@charset "UTF-8";

/* ---------------- base ---------------- */
/* ---------------- text ---------------- */
/* ------------- clickpath -------------- */
/* ---------------- hero ---------------- */
/* ------------ positioning ------------ */
/* -------------- container ------------- */
/* --------------- section -------------- */
/* ------------ section title ----------- */
/* --------------- header --------------- */
/* ------------ navigation -------------- */
/* --------------- footer --------------- */
/* -------------- sitemap --------------- */
/* ------------- scroll top ------------- */
/* --------------- steps ---------------- */
/* -------------- content --------------- */
/* ---------------- faq ----------------- */
/* -------------- gallery --------------- */
/* -------------- features -------------- */
/* ---------------- band ---------------- */
/* --------------- report --------------- */
/* ----------- report options ----------- */
/* ------------- report menu ------------ */
/* --------------- buttons -------------- */
/* ----------- cookie consent ----------- */

/* ---------------- base ---------------- */

#main
{
    --background-color:         #F5F9FE;
    position:                   relative;
    padding-bottom:             70px;
    background:                 linear-gradient(135deg, var(--background-color) 0%, color-mix(in srgb, var(--accent-color), transparent 95%) 100%);
    background-attachment:      fixed;
}

#main::before
{
    content:                    "";
    position:                   fixed;
    bottom:                     -30%;
    left:                       -10%;
    width:                      50%;
    height:                     100%;
    background:                 radial-gradient(circle, color-mix(in srgb, var(--accent-color), transparent 92%) 0%, transparent 70%);
    pointer-events:             none;
    z-index:                    -1;
}

#main::after
{
    content:                    "";
    position:                   fixed;
    top:                        10%;
    right:                      -5%;
    width:                      40%;
    height:                     80%;
    background:                 radial-gradient(circle, color-mix(in srgb, var(--accent-color), transparent 94%) 0%, transparent 60%);
    pointer-events:             none;
    z-index:                    -1;
}

@media screen and (max-width: 768px)
{
    [data-aos-delay]
    {
        transition-delay:       0s !important;
    }
}

/* ---------------- text ---------------- */

.fcr-text-title
{
    padding:                    0px;
    margin:                     0px 0px 28px 0px;
    color:                      var(--heading-color);
    font-size:                  40px;
    font-weight:                600;
    line-height:                1.2;
}

.fcr-text-subtitle
{
    max-width:                  720px;
    margin:                     -10px 0px 32px 0px;
    color:                      color-mix(in srgb, var(--default-color) 70%, transparent);
    font-size:                  18px;
    font-weight:                400;
    line-height:                1.6;
}

.fcr-text-content
{
    padding:                    40px 44px;
    background:                 var(--surface-color);
    border:                     1px solid color-mix(in srgb, var(--accent-color) 8%, transparent);
    border-radius:              18px;
    box-shadow:                 0 8px 28px rgba(15,48,88,0.06);
}

.fcr-text-heading
{
    margin:                     40px 0px 14px 0px;
    color:                      var(--heading-color);
    font-size:                  24px;
    font-weight:                600;
    line-height:                1.3;
}

.fcr-text-heading:first-child
{
    margin-top:                 0px;
}

.fcr-text-body
{
    padding:                    0px;
    color:                      var(--default-color);
    font-size:                  16px;
    line-height:                1.75;
}

/* CMS content stays within its column, long urls, images and tables included */

.fcr-text-body,
.fcr-content-card-text,
.fcr-content-extra-text,
.fcr-faq-preview-content
{
    min-width:                  0px;
    overflow-wrap:              anywhere;
}

.fcr-text-body img,
.fcr-content-card-text img,
.fcr-content-extra-text img,
.fcr-faq-preview-content img
{
    max-width:                  100%;
    height:                     auto;
}

@media (max-width: 575.98px)
{
    .fcr-text-body table,
    .fcr-content-card-text table,
    .fcr-content-extra-text table,
    .fcr-faq-preview-content table
    {
        display:                block;
        overflow-x:             auto;
    }
}

.fcr-text-body p
{
    margin-bottom:              20px;
}

.fcr-text-body p:last-child
{
    margin-bottom:              0px;
}

@media (max-width: 575.98px)
{
    .fcr-text-title
    {
        font-size:              34px;
    }

    .fcr-text-content
    {
        padding:                28px 24px;
    }

    .fcr-text-heading
    {
        font-size:              21px;
    }
}

/* ------------- clickpath -------------- */

.fcr-clickpath
{
    padding:                    0px;
}

.fcr-clickpath-nav
{
    padding:                    28px 0px 0px 0px;
    overflow-x:                 auto;
    scrollbar-width:            none;
}

.fcr-clickpath-nav::-webkit-scrollbar
{
    display:                    none;
}

.fcr-clickpath-list
{
    display:                    flex;
    align-items:                center;
    flex-wrap:                  nowrap;
    gap:                        0px;
    padding:                    0px;
    margin:                     0px;
    list-style:                 none;
    white-space:                nowrap;
}

.fcr-clickpath-item
{
    display:                    inline-flex;
    align-items:                center;
    color:                      color-mix(in srgb, var(--default-color) 62%, transparent);
    font-size:                  14px;
    line-height:                1.4;
}

.fcr-clickpath-item + .fcr-clickpath-item::before
{
    content:                    "›";
    margin:                     0px 10px;
    color:                      color-mix(in srgb, var(--default-color) 35%, transparent);
    font-size:                  17px;
    line-height:                1;
}

.fcr-clickpath-link
{
    color:                      var(--accent-color);
    text-decoration:            none;
    transition:                 color 0.2s ease;
}

.fcr-clickpath-link:hover
{
    color:                      color-mix(in srgb, var(--accent-color), black 18%);
}

.fcr-clickpath-current
{
    color:                      color-mix(in srgb, var(--default-color) 72%, transparent);
}

/* on the report form the clickpath spans the full container, in line with the report cards */

#main:has(#fcrreport_category_container) .fcr-clickpath .row > div
{
    width:                      100%;
}

/* on the analysis page the clickpath spans the full container, in line with the cards */

#main:has(#findings) .fcr-clickpath .row > div
{
    width:                      100%;
}

/* on the report form the clickpath starts in line with the card headings */

#main:has(#fcrreport_category_container) .fcr-clickpath-nav
{
    padding-left:               40px;
}

@media (max-width: 575.98px)
{
    #main:has(#fcrreport_category_container) .fcr-clickpath-nav
    {
        padding-left:           32px;
    }
}

/* the text page title carries extra space above its letters, the clickpath shifts down to sit visually centred */

#main:has(.fcr-text-title) .fcr-clickpath-nav
{
    position:                   relative;
    top:                        3px;
}

@media (max-width: 575.98px)
{
    .fcr-clickpath-nav
    {
        padding:                24px 0px 0px 0px;
    }

    .fcr-clickpath-item
    {
        font-size:              13px;
    }

    .fcr-clickpath-item + .fcr-clickpath-item::before
    {
        margin:                 0px 8px;
    }
}

/* ---------------- hero ---------------- */

.fcr-home-hero
{
    position:                   relative;
    overflow:                   hidden;
    padding:                    70px 0px;
    background:                 linear-gradient(135deg, var(--background-color) 0%, color-mix(in srgb, var(--accent-color), transparent 95%) 100%);
}

.fcr-home-hero::before
{
    content:                    "";
    position:                   absolute;
    bottom:                     -30%;
    left:                       -10%;
    width:                      50%;
    height:                     100%;
    background:                 radial-gradient(circle, color-mix(in srgb, var(--accent-color), transparent 92%) 0%, transparent 70%);
    pointer-events:             none;
}

.fcr-home-hero::after
{
    content:                    "";
    position:                   absolute;
    top:                        10%;
    right:                      -5%;
    width:                      40%;
    height:                     80%;
    background:                 radial-gradient(circle, color-mix(in srgb, var(--accent-color), transparent 94%) 0%, transparent 60%);
    pointer-events:             none;
}

.fcr-home-hero-content
{
    position:                   relative;
    z-index:                    2;
}

.fcr-home-hero-content .hero-headline
{
    max-width:                  13ch;
    margin-bottom:              24px;
    color:                      var(--heading-color);
    font-size:                  3.5rem;
    font-weight:                700;
    line-height:                1.15;
}

.fcr-home-hero-content .hero-text
{
    max-width:                  520px;
    margin-bottom:              20px;
    color:                      color-mix(in srgb, var(--default-color), transparent 25%);
    font-size:                  1.3rem;
    line-height:                1.55;
}

.fcr-home-hero-cta
{
    display:                    flex;
    align-items:                center;
    flex-wrap:                  wrap;
    gap:                        32px;
}

.fcr-home-hero-cta .cta-link
{
    display:                    inline-flex;
    align-items:                center;
    gap:                        10px;
    color:                      var(--heading-color);
    font-weight:                500;
    text-decoration:            none;
    transition:                 all 0.3s ease;
}

.fcr-home-hero-cta .cta-link i
{
    color:                      var(--accent-color);
    font-size:                  1.5rem;
    transition:                 transform 0.3s ease;
}

.fcr-home-hero-cta .cta-link:hover
{
    color:                      var(--accent-color);
}

.fcr-home-hero-cta .cta-link:hover i
{
    transform:                  scale(1.1);
}

@media (max-width: 1199.98px)
{
    .fcr-home-hero-content .hero-headline
    {
        font-size:              3rem;
    }
}

@media (max-width: 991.98px)
{
    .fcr-home-hero
    {
        padding:                70px 0px 60px 0px;
    }

    .fcr-home-hero::before,
    .fcr-home-hero::after
    {
        display:                none;
    }

    .fcr-home-hero-content
    {
        margin-bottom:          48px;
        text-align:             center;
    }

    .fcr-home-hero-content .hero-headline
    {
        margin-left:            auto;
        margin-right:           auto;
        font-size:              2.5rem;
    }

    .fcr-home-hero-content .hero-text
    {
        margin-left:            auto;
        margin-right:           auto;
    }

    .fcr-home-hero-cta
    {
        justify-content:        center;
    }
}

@media (max-width: 767.98px)
{
    .fcr-home-hero-content .hero-text
    {
        margin-bottom:          16px;
        font-size:              1rem;
    }
}

@media (max-width: 575.98px)
{
    .fcr-home-hero-content .hero-headline
    {
        font-size:              2rem;
    }

    .fcr-home-hero-cta
    {
        gap:                    24px;
    }
}

/* ------------ positioning ------------ */

.fcr-positioning
{
    background:                     #f3f7fb;
}

.fcr-positioning-lead
{
    height:                         100%;
    padding:                        58px 52px;
    color:                          var(--contrast-color);
    background-color:               #183f6d;
    background-image:               radial-gradient(circle at calc(100% + 40px) calc(100% + 20px), transparent 0px 149px, rgba(255,255,255,.13) 149px 150px, rgba(255,255,255,.05) 150px 188px, rgba(255,255,255,.025) 188px 226px, transparent 226px);
}

.fcr-positioning-kicker
{
    display:                        block;
    margin-bottom:                  16px;
    color:                          #9fc7f1;
    font-size:                      13px;
    font-weight:                    700;
    letter-spacing:                 .09em;
    text-transform:                 uppercase;
}

.fcr-positioning-lead h2
{
    margin:                         0px 0px 20px 0px;
    color:                          inherit;
    font-size:                      38px;
    line-height:                    1.16;
}

.fcr-positioning-lead p
{
    margin:                         0px;
    color:                          rgba(255,255,255,.82);
    font-size:                      17px;
    line-height:                    1.65;
}

.fcr-positioning-points
{
    padding:                        14px 0px 14px 52px;
}

.fcr-positioning-point
{
    display:                        flex;
    gap:                            18px;
    padding:                        25px 0px;
}

.fcr-positioning-icon
{
    display:                        grid;
    place-items:                    center;
    flex:                           0 0 46px;
    height:                         46px;
    color:                          var(--accent-color);
    background:                     color-mix(in srgb, var(--accent-color) 10%, transparent);
    border-radius:                  50%;
    font-size:                      20px;
    transform:                      translateY(-5px);
}

.fcr-positioning-label
{
    display:                        block;
    margin-bottom:                  2px;
    color:                          var(--heading-color);
    font-family:                    var(--heading-font);
    font-size:                      24px;
    font-weight:                    700;
    letter-spacing:                 0;
    text-transform:                 none;
}

.fcr-positioning-point h3
{
    margin:                         10px 0px 4px 0px;
    color:                          var(--default-color);
    font-family:                    var(--default-font);
    font-size:                      16px;
    font-weight:                    500;
    line-height:                    1.6;
}

.fcr-positioning-point p
{
    margin:                         0px;
    line-height:                    1.6;
}

@media (max-width: 991.98px)
{
    .fcr-positioning-lead
    {
        padding:                    42px 34px;
    }

    .fcr-positioning-lead h2
    {
        font-size:                  32px;
    }

    .fcr-positioning-points
    {
        padding:                    20px 0px 0px 0px;
    }
}

/* -------------- container ------------- */

/* between 1200px and 1399px the page uses the full width, up to the 1320px of wider screens */

@media (min-width: 1200px) and (max-width: 1399.98px)
{
    .container
    {
        max-width:              1320px;
        padding-left:           24px;
        padding-right:          24px;
    }
}

/* --------------- section -------------- */

.fcr-section
{
    color:                      var(--default-color);
    background-color:           var(--background-color);
    padding:                    70px 0px;
    scroll-margin-top:          90px;
    overflow:                   clip;
}

.fcr-section.soft-background + .fcr-section.soft-background
{
    padding-top:                0px;
}

@media (max-width: 1199.98px)
{
    .fcr-section
    {
        scroll-margin-top:      66px;
    }
}

@media (max-width: 575.98px)
{
    .fcr-section
    {
        padding:                48px 0px;
    }
}

/* ------------ section title ----------- */

.fcr-section-title
{
    position:                   relative;
    padding-bottom:             40px;
    text-align:                 center;
}

.fcr-section-title h2
{
    position:                   relative;
    margin-bottom:              20px;
    padding-bottom:             20px;
    font-size:                  32px;
    font-weight:                700;
}

.fcr-section-title h2::after
{
    content:                    "";
    position:                   absolute;
    display:                    block;
    width:                      50px;
    height:                     3px;
    right:                      0px;
    bottom:                     0px;
    left:                       0px;
    margin:                     auto;
    background:                 var(--accent-color);
}

.fcr-section-title p
{
    margin-bottom:              0px;
}

/* --------------- header --------------- */

.header
{
    --surface-color:             #1b2430;
    color:                      var(--default-color);
    background-color:           var(--background-color);
    padding:                    15px 0px;
    border-bottom:              1px solid color-mix(in srgb, var(--default-color), transparent 90%);
    transition:                 all 0.5s;
    z-index:                    997;
}

.header .logo
{
    line-height:                1;
}

.header .logo img
{
    max-height:                 36px;
    margin-right:               8px;
}

@media (max-width: 1199.98px)
{
    .header .logo
    {
        order:                  1;
    }

    .header .fcr-header-actions
    {
        order:                  2;
    }

    .header .navmenu
    {
        order:                  3;
    }
}

@media (max-width: 575.98px)
{
    .header .logo img
    {
        max-height:             28px;
    }

    .header .mobile-nav-toggle
    {
        margin-right:           0px;
    }
}

/* ------------ navigation -------------- */

@media (min-width: 1200px)
{
    .navmenu
    {
        padding:                0px;
    }

    .navmenu ul
    {
        display:                flex;
        align-items:            center;
        padding:                0px;
        margin:                 0px;
        list-style:             none;
    }

    .navmenu li
    {
        position:               relative;
    }

    .navmenu a,
    .navmenu a:focus
    {
        display:                flex;
        align-items:            center;
        justify-content:        space-between;
        padding:                18px 15px;
        color:                  var(--nav-color);
        font-family:            var(--nav-font);
        font-size:              16px;
        font-weight:            400;
        white-space:            nowrap;
        transition:             0.3s;
    }

    .navmenu a i,
    .navmenu a:focus i
    {
        margin-left:            5px;
        font-size:              12px;
        line-height:            0;
        transition:             0.3s;
    }

    .navmenu li:last-child a
    {
        padding-right:          0px;
    }

    .navmenu li:hover > a,
    .navmenu .active,
    .navmenu .active:focus
    {
        color:                  var(--nav-hover-color);
    }

    .navmenu .dropdown ul
    {
        position:               absolute;
        top:                    130%;
        left:                   14px;
        z-index:                99;
        display:                block;
        visibility:             hidden;
        padding:                10px 0px;
        margin:                 0px;
        background:             var(--nav-dropdown-background-color);
        border-radius:          4px;
        box-shadow:             0px 0px 30px rgba(0,0,0,0.1);
        opacity:                0;
        transition:             0.3s;
    }

    .navmenu .dropdown ul li
    {
        min-width:              200px;
    }

    .navmenu .dropdown ul a
    {
        padding:                10px 20px;
        color:                  var(--nav-dropdown-color);
        font-size:              15px;
        text-transform:         none;
    }

    .navmenu .dropdown ul a i
    {
        font-size:              12px;
    }

    .navmenu .dropdown ul a:hover,
    .navmenu .dropdown ul .active:hover,
    .navmenu .dropdown ul li:hover > a
    {
        color:                  var(--nav-dropdown-hover-color);
    }

    .navmenu .dropdown:hover > ul
    {
        top:                    100%;
        visibility:             visible;
        opacity:                1;
    }

    .navmenu .dropdown .dropdown ul
    {
        top:                    0px;
        left:                   -90%;
        visibility:             hidden;
    }

    .navmenu .dropdown .dropdown:hover > ul
    {
        top:                    0px;
        left:                   -100%;
        visibility:             visible;
        opacity:                1;
    }
}

@media (max-width: 1199.98px)
{
    .mobile-nav-toggle
    {
        margin-right:           10px;
        color:                  var(--nav-color);
        font-size:              28px;
        line-height:            0;
        cursor:                 pointer;
        transition:             color 0.3s;
    }

    .navmenu
    {
        padding:                0px;
        z-index:                9997;
    }

    .navmenu ul
    {
        position:               absolute;
        inset:                  60px 20px 20px 20px;
        z-index:                9998;
        display:                none;
        padding:                10px 0px;
        margin:                 0px;
        overflow-y:             auto;
        background-color:       var(--nav-mobile-background-color);
        border-radius:          6px;
        box-shadow:             0px 0px 30px rgba(0,0,0,0.1);
        list-style:             none;
        transition:             0.3s;
    }

    .navmenu a,
    .navmenu a:focus
    {
        display:                flex;
        align-items:            center;
        justify-content:        space-between;
        padding:                10px 20px;
        color:                  var(--nav-dropdown-color);
        font-family:            var(--nav-font);
        font-size:              17px;
        font-weight:            500;
        white-space:            nowrap;
        transition:             0.3s;
    }

    .navmenu a i,
    .navmenu a:focus i
    {
        width:                  30px;
        height:                 30px;
        display:                flex;
        align-items:            center;
        justify-content:        center;
        margin-left:            5px;
        background-color:       color-mix(in srgb, var(--accent-color), transparent 90%);
        border-radius:          50%;
        font-size:              12px;
        line-height:            0;
        transition:             0.3s;
    }

    .navmenu a i:hover,
    .navmenu a:focus i:hover
    {
        color:                  var(--contrast-color);
        background-color:       var(--accent-color);
    }

    .navmenu a:hover,
    .navmenu .active,
    .navmenu .active:focus
    {
        color:                  var(--nav-dropdown-hover-color);
    }

    .navmenu .active i,
    .navmenu .active:focus i
    {
        color:                  var(--contrast-color);
        background-color:       var(--accent-color);
        transform:              rotate(180deg);
    }

    .navmenu .dropdown ul
    {
        position:               static;
        z-index:                99;
        display:                none;
        padding:                10px 0px;
        margin:                 10px 20px;
        background-color:       var(--nav-dropdown-background-color);
        border:                 1px solid color-mix(in srgb, var(--default-color), transparent 90%);
        box-shadow:             none;
        transition:             all 0.5s ease-in-out;
    }

    .navmenu .dropdown ul ul
    {
        background-color:       rgba(33,37,41,0.1);
    }

    .navmenu .dropdown > .dropdown-active
    {
        display:                block;
        background-color:       rgba(33,37,41,0.03);
    }

    .mobile-nav-active
    {
        overflow:               hidden;
    }

    .mobile-nav-active .mobile-nav-toggle
    {
        position:               absolute;
        top:                    15px;
        right:                  15px;
        z-index:                9999;
        margin-right:           0px;
        color:                  #fff;
        font-size:              32px;
    }

    .mobile-nav-active .navmenu
    {
        position:               fixed;
        inset:                  0;
        overflow:               hidden;
        background:             rgba(33,37,41,0.8);
        transition:             0.3s;
    }

    .mobile-nav-active .navmenu > ul
    {
        display:                block;
    }
}

/* --------------- footer --------------- */

.footer
{
    position:                   relative;
    padding:                    70px 0px 20px 0px;
    color:                      var(--default-color);
    background-color:           var(--background-color);
    font-size:                  14px;
}

.footer .footer-top
{
    padding-bottom:             25px;
}

.footer .footer-brand img
{
    display:                    block;
    width:                      auto;
    height:                     27px;
    margin-bottom:              18px;
}

.footer .footer-brand-text
{
    max-width:                  280px;
    margin:                     0px;
    color:                      color-mix(in srgb, var(--default-color), transparent 20%);
    line-height:                1.5;
}

.footer h4
{
    position:                   relative;
    padding-bottom:             9px;
    margin-bottom:              18px;
    font-size:                  15px;
    font-weight:                600;
}

.footer h4::after
{
    content:                    "";
    position:                   absolute;
    display:                    block;
    width:                      30px;
    height:                     2px;
    bottom:                     0px;
    left:                       0px;
    background-color:           var(--accent-color);
}

.footer .footer-links ul
{
    padding:                    0px;
    margin:                     0px;
    list-style:                 none;
}

.footer .footer-links ul li
{
    display:                    flex;
    align-items:                center;
    gap:                        7px;
    padding:                    5px 0px;
}

.footer .footer-links ul li:first-child
{
    padding-top:                0px;
}

.footer .footer-links ul li i
{
    width:                      16px;
    flex:                       0 0 16px;
    color:                      color-mix(in srgb, var(--default-color), transparent 35%);
    font-size:                  14px;
}

.footer .footer-links ul a
{
    color:                      color-mix(in srgb, var(--default-color), transparent 20%);
    line-height:                1.2;
    transition:                 color 0.3s ease;
}

.footer .footer-links ul a:hover
{
    color:                      var(--accent-color);
}

.footer .footer-bottom
{
    padding-top:                18px;
}

.footer .footer-bottom .copyright p
{
    margin:                     0px;
    font-size:                  13px;
}

/* below 768px the footer columns stack, everything is centred */

@media (max-width: 767.98px)
{
    .footer .footer-top
    {
        text-align:             center;
    }

    .footer .footer-top .row
    {
        --bs-gutter-y:          2.5rem;
    }

    .footer .footer-brand img,
    .footer .footer-brand-text
    {
        margin-left:            auto;
        margin-right:           auto;
    }

    .footer h4::after
    {
        right:                  0px;
        margin:                 auto;
    }

    .footer .footer-links ul li
    {
        justify-content:        center;
    }
}

/* -------------- sitemap --------------- */

.fcr-sitemap .fcr-text-title
{
    margin-bottom:              28px;
}

.fcr-sitemap-card
{
    padding:                    16px 32px;
    background:                 var(--surface-color);
    border:                     1px solid color-mix(in srgb, var(--accent-color) 10%, transparent);
    border-radius:              18px;
    box-shadow:                 0 8px 28px rgba(15,48,88,0.08);
}

.fcr-sitemap-list,
.fcr-sitemap-list ul
{
    padding:                    0px;
    margin:                     0px;
    list-style:                 none;
}

.fcr-sitemap-list > li
{
    padding:                    0px;
}

.fcr-sitemap-list a.nav-link
{
    display:                    block;
    padding:                    7px 12px;
    margin:                     0px -12px;
    color:                      var(--heading-color);
    border-radius:              10px;
    line-height:                1.45;
    text-decoration:            none;
    transition:                 color 0.2s ease, background-color 0.2s ease;
}

.fcr-sitemap-list a.nav-link:hover
{
    color:                      var(--accent-color);
    background:                 color-mix(in srgb, var(--accent-color) 6%, transparent);
}

.fcr-sitemap-list > li > a.nav-link
{
    padding:                    11px 12px;
    font-size:                  18px;
    font-weight:                600;
}

.fcr-sitemap .sitemap-category-title
{
    display:                    block;
    padding:                    7px 12px;
    margin:                     0px -12px;
    color:                      var(--heading-color);
    font-size:                  15px;
    font-weight:                600;
    line-height:                1.45;
}

.fcr-sitemap-list ul
{
    position:                   relative;
    padding-left:               28px;
    margin:                     6px 0px 0px 10px !important;
    border-left:                1px solid color-mix(in srgb, var(--accent-color) 16%, transparent);
}

.fcr-sitemap-list ul > li
{
    position:                   relative;
    margin:                     3px 0px;
}

.fcr-sitemap-list ul > li::before
{
    content:                    "";
    position:                   absolute;
    top:                        19px;
    left:                       -28px;
    width:                      16px;
    border-top:                 1px solid color-mix(in srgb, var(--accent-color) 16%, transparent);
}

.fcr-sitemap-list ul a.nav-link
{
    font-size:                  15px;
    font-weight:                500;
}

.fcr-sitemap-list h6
{
    margin:                     4px 0px 0px 0px !important;
    font-size:                  12px;
    font-weight:                400;
    line-height:                1.55;
}

.fcr-sitemap-list h6.text-muted
{
    color:                      color-mix(in srgb, var(--default-color) 55%, transparent) !important;
    font-family:                "Roboto Mono", monospace;
}

.fcr-sitemap-list h6.text-dark
{
    padding:                    8px 10px;
    margin-top:                 7px !important;
    color:                      var(--default-color) !important;
    background:                 color-mix(in srgb, var(--default-color) 4%, transparent);
    border-radius:              8px;
}

@media (max-width: 575.98px)
{
    .fcr-sitemap-card
    {
        padding:                10px 20px;
    }

    .fcr-sitemap-list > li
    {
        padding:                0px;
    }

    .fcr-sitemap-list ul
    {
        padding-left:           20px;
        margin-left:            4px !important;
    }

    .fcr-sitemap-list ul > li::before
    {
        left:                   -20px;
        width:                  12px;
    }

    .fcr-sitemap-list > li > a.nav-link
    {
        font-size:              17px;
    }
}

/* ------------- scroll top ------------- */

.scroll-top
{
    position:                   fixed;
    right:                      15px;
    bottom:                     15px;
    z-index:                    99999;
    width:                      40px;
    height:                     40px;
    visibility:                 hidden;
    background-color:           var(--accent-color);
    border-radius:              4px;
    opacity:                    0;
    transition:                 all 0.4s;
}

.scroll-top i
{
    color:                      var(--contrast-color);
    font-size:                  24px;
    line-height:                0;
}

.scroll-top:hover
{
    color:                      var(--contrast-color);
    background-color:           color-mix(in srgb, var(--accent-color), transparent 20%);
}

.scroll-top.active
{
    visibility:                 visible;
    opacity:                    1;
}

/* --------------- steps ---------------- */

.fcr-steps-timeline
{
    position:                   relative;
    margin-bottom:              0px;
}

.fcr-steps-timeline::before
{
    content:                    "";
    position:                   absolute;
    left:                       28px;
    top:                        0px;
    bottom:                     0px;
    width:                      2px;
    background:                 color-mix(in srgb, var(--accent-color) 20%, transparent);
}

.fcr-step
{
    display:                    flex;
    position:                   relative;
    gap:                        24px;
    padding-bottom:             32px;
}

.fcr-step:last-child
{
    padding-bottom:             0px;
}

.fcr-step-number
{
    width:                      58px;
    height:                     58px;
    display:                    flex;
    align-items:                center;
    justify-content:            center;
    flex-shrink:                0;
    position:                   relative;
    z-index:                    1;
    color:                      var(--contrast-color);
    background:                 var(--accent-color);
    border-radius:              50%;
    font-size:                  18px;
    font-weight:                800;
}

.fcr-step-content
{
    padding-top:                14px;
}

.fcr-step-content h3
{
    margin-bottom:              18px;
    font-size:                  24px;
    font-weight:                700;
}

.fcr-step-content p
{
    margin-bottom:              0px;
    color:                      color-mix(in srgb, var(--default-color) 75%, transparent);
    font-size:                  15px;
    line-height:                1.7;
}

@media (max-width: 575.98px)
{
    .fcr-steps-timeline::before
    {
        left:                   20px;
    }

    .fcr-step-number
    {
        width:                  42px;
        height:                 42px;
        font-size:              14px;
    }

    .fcr-step-content
    {
        padding-top:            9px;
    }

    .fcr-step-content h3
    {
        font-size:              20px;
    }
}

/* -------------- content --------------- */

.fcr-content-card
{
    position:                   relative;
    padding:                    40px;
    margin-bottom:              24px;
    background:                 var(--surface-color);
    border:                     1px solid color-mix(in srgb, var(--accent-color) 10%, transparent);
    border-radius:              18px;
    box-shadow:                 0 8px 28px rgba(15,48,88,0.08);
}

.fcr-content-card-heading
{
    display:                    flex;
    align-items:                center;
    gap:                        14px;
    margin:                     0px 0px 20px 0px;
    padding:                    0px 0px 18px 0px;
    border-bottom:              1px solid color-mix(in srgb, var(--default-color) 10%, transparent);
    font-size:                  1.75rem;
    font-weight:                700;
}

.fcr-content-card-icon
{
    width:                      44px;
    height:                     44px;
    display:                    flex;
    align-items:                center;
    justify-content:            center;
    flex-shrink:                0;
    color:                      var(--accent-color);
    background:                 color-mix(in srgb, var(--accent-color) 10%, transparent);
    border-radius:              12px;
    font-size:                  22px;
}

.fcr-content-card-title
{
    flex:                       1;
}

.fcr-content-card-number
{
    width:                      32px;
    height:                     32px;
    display:                    flex;
    align-items:                center;
    justify-content:            center;
    flex-shrink:                0;
    color:                      var(--accent-color);
    background:                 color-mix(in srgb, var(--accent-color) 9%, transparent);
    border:                     1px solid color-mix(in srgb, var(--accent-color) 18%, transparent);
    border-radius:              50%;
    font-family:                var(--default-font);
    font-size:                  13px;
    font-weight:                700;
}

.fcr-content-card-intro
{
    margin:                     0px 0px 20px 0px;
    color:                      color-mix(in srgb, var(--default-color) 80%, transparent);
    font-size:                  1.125rem;
    line-height:                1.65;
}

.fcr-content-card-text
{
    line-height:                1.7;
}

.fcr-content-card-text p:last-child
{
    margin-bottom:              0px;
}

.fcr-content-extra
{
    padding:                    40px;
    background:                 color-mix(in srgb, var(--accent-color) 6%, var(--surface-color));
    border:                     1px solid color-mix(in srgb, var(--accent-color) 13%, transparent);
    border-left:                4px solid var(--accent-color);
    border-radius:              18px;
    box-shadow:                 0 8px 28px rgba(15,48,88,0.06);
}

.fcr-content-extra-heading
{
    display:                    flex;
    align-items:                flex-start;
    gap:                        18px;
    margin-bottom:              26px;
    padding-bottom:             24px;
    border-bottom:              1px solid color-mix(in srgb, var(--accent-color) 12%, transparent);
}

.fcr-content-extra-icon
{
    width:                      48px;
    height:                     48px;
    display:                    flex;
    align-items:                center;
    justify-content:            center;
    flex-shrink:                0;
    color:                      #fff;
    background:                 var(--accent-color);
    border-radius:              13px;
    font-size:                  23px;
}

.fcr-content-extra-heading-text
{
    flex:                       1;
}

.fcr-content-extra-heading h2
{
    margin:                     0px 0px 6px 0px;
    font-size:                  1.65rem;
    font-weight:                700;
}

.fcr-content-extra-heading p
{
    margin:                     0px;
    color:                      color-mix(in srgb, var(--default-color) 72%, transparent);
    font-size:                  1rem;
    line-height:                1.6;
}

.fcr-content-extra-text
{
    font-size:                  1rem;
    line-height:                1.7;
}

.fcr-content-extra-text p:last-child
{
    margin-bottom:              0px;
}

@media (max-width: 575.98px)
{
    .fcr-content-card
    {
        padding:                24px;
    }

    .fcr-content-card-heading
    {
        gap:                    10px;
        font-size:              1.4rem;
    }

    .fcr-content-card-icon
    {
        width:                  40px;
        height:                 40px;
        font-size:              20px;
    }

    .fcr-content-card-number
    {
        width:                  28px;
        height:                 28px;
        font-size:              12px;
    }

    .fcr-content-card-intro
    {
        font-size:              1rem;
    }

    .fcr-content-extra
    {
        padding:                28px 24px;
    }

    .fcr-content-extra-heading
    {
        gap:                    14px;
    }

    .fcr-content-extra-icon
    {
        width:                  42px;
        height:                 42px;
        font-size:              20px;
    }
}

/* ---------------- faq ----------------- */

.fcr-faq-intro
{
    margin:                     -12px 0px 40px 0px;
    color:                      color-mix(in srgb, var(--default-color) 75%, transparent);
    font-size:                  16px;
    line-height:                1.7;
}

.fcr-faq-items
{
    margin:                     -4px 0px 0px 0px;
}

.fcr-faq-item
{
    display:                    flex;
    align-items:                center;
    margin:                     0px -8px;
    padding:                    0px 8px;
    border-bottom:              1px solid color-mix(in srgb, var(--default-color) 10%, transparent);
    border-radius:              10px;
    transition:                 background 0.2s ease;
}

.fcr-faq-item:last-child
{
    border-bottom:              0px;
}

.fcr-faq-item:hover
{
    background:                 color-mix(in srgb, var(--accent-color) 5%, transparent);
}

.fcr-faq-link
{
    display:                    flex;
    align-items:                center;
    flex:                       1;
    gap:                        16px;
    padding:                    16px 0px;
    color:                      var(--accent-color);
    text-decoration:            none;
}

.fcr-faq-link:hover
{
    color:                      var(--accent-color);
}

.fcr-faq-number
{
    width:                      22px;
    flex-shrink:                0;
    color:                      color-mix(in srgb, var(--default-color) 58%, transparent);
    font-size:                  16px;
    font-weight:                400;
}

.fcr-faq-question
{
    flex:                       1;
    font-size:                  1.125rem;
    font-weight:                600;
    line-height:                1.4;
}

.fcr-faq-arrow
{
    flex-shrink:                0;
    font-size:                  18px;
    transition:                 transform 0.2s ease;
}

.fcr-faq-link:hover .fcr-faq-arrow
{
    transform:                  translateX(4px);
}

.fcr-faq-admin
{
    display:                    flex;
    align-items:                center;
    gap:                        4px;
    flex-shrink:                0;
    margin-left:                8px;
}

@media (max-width: 575.98px)
{
    .fcr-faq-intro
    {
        margin-bottom:          28px;
    }

    .fcr-faq-link
    {
        gap:                    10px;
        padding:                14px 0px;
    }

    .fcr-faq-question
    {
        font-size:              1rem;
    }
}

.fcr-faq-preview-item
{
    display:                    flex;
    gap:                        24px;
    padding:                    40px 0px;
    border-bottom:              1px solid color-mix(in srgb, var(--default-color), transparent 92%);
    scroll-margin-top:          100px;
}

.fcr-faq-preview-item:last-child
{
    border-bottom:              0px;
}

.fcr-faq-preview-number
{
    min-width:                  58px;
    text-align:                 center;
    color:                      color-mix(in srgb, var(--accent-color), transparent 70%);
    font-family:                var(--heading-font);
    font-size:                  2.5rem;
    font-weight:                800;
    line-height:                1;
}

.fcr-faq-preview-content
{
    flex:                       1;
    padding-top:                9px;
}

.fcr-faq-preview-content h3
{
    margin-bottom:              10px;
    color:                      var(--heading-color);
    font-size:                  1.5rem;
    font-weight:                700;
}

.fcr-faq-preview-content p
{
    margin-bottom:              20px;
    color:                      color-mix(in srgb, var(--default-color), transparent 20%);
    font-size:                  15px;
    line-height:                1.7;
}

.fcr-faq-preview-content p:last-child
{
    margin-bottom:              0px;
}

@media (max-width: 767.98px)
{
    .fcr-faq-preview-item
    {
        gap:                    12px;
        padding:                32px 0px;
    }

    .fcr-faq-preview-number
    {
        min-width:              0px;
        font-size:              2rem;
    }

    .fcr-faq-preview-content
    {
        padding-top:            4px;
    }

    .fcr-faq-preview-content h3
    {
        font-size:              1.25rem;
    }
}

/* -------------- gallery --------------- */

.fcr-gallery
{
    margin:                     40px 0px 0px 0px;
}

.fcr-gallery a
{
    position:                   relative;
    display:                    block;
    overflow:                   hidden;
    border-radius:              12px;
}

.fcr-gallery a::before
{
    content:                    "";
    position:                   absolute;
    inset:                      0;
    z-index:                    1;
    background:                 color-mix(in srgb, var(--accent-color) 0%, transparent);
    transition:                 all 0.3s ease;
}

.fcr-gallery a::after
{
    content:                    "\f52c";
    position:                   absolute;
    top:                        50%;
    left:                       50%;
    z-index:                    2;
    color:                      #fff;
    font-family:                "bootstrap-icons";
    font-size:                  24px;
    opacity:                    0;
    transform:                  translate(-50%, -50%) scale(0.8);
    transition:                 all 0.3s ease;
}

.fcr-gallery a:hover::before
{
    background:                 color-mix(in srgb, var(--accent-color) 70%, transparent);
}

.fcr-gallery a:hover::after
{
    opacity:                    1;
    transform:                  translate(-50%, -50%) scale(1);
}

.fcr-gallery img
{
    display:                    block;
    width:                      100%;
    transition:                 transform 0.5s ease;
}

.fcr-gallery a:hover img
{
    transform:                  scale(1.05);
}

.fcr-gallery-caption
{
    margin:                     16px 0px 40px 0px;
    color:                      color-mix(in srgb, var(--default-color) 60%, transparent);
    font-size:                  14px;
    line-height:                1.5;
    text-align:                 center;
}

.fcr-gallery-home
{
    margin-top:                 0px;
}

.fcr-gallery-home img
{
    height:                     200px;
    object-fit:                 cover;
}

.fcr-gallery-caption-home
{
    margin-bottom:              0px;
}

/* on phones the report preview is one row that scrolls sideways */

@media (max-width: 991.98px)
{
    .fcr-gallery-home .row
    {
        flex-wrap:              nowrap;
        overflow-x:             auto;
        padding-bottom:         8px;
    }

    .fcr-gallery-home .row > div
    {
        flex:                   0 0 44%;
    }
}

@media (min-width: 768px) and (max-width: 991.98px)
{
    .fcr-gallery-home .row > div
    {
        flex:                   0 0 30%;
    }
}

/* -------------- features -------------- */

.fcr-features
{
    margin-bottom:              0px;
}

.fcr-feature-card
{
    display:                    flex;
    gap:                        20px;
    height:                     100%;
    padding:                    28px;
    background:                 var(--surface-color);
    border-radius:              16px;
    box-shadow:                 0 10px 40px rgba(0,0,0,0.06);
    transition:                 all 0.4s cubic-bezier(0.25,0.46,0.45,0.94);
}

.fcr-feature-card:hover
{
    transform:                  translateY(-6px);
    box-shadow:                 0 20px 50px rgba(0,0,0,0.1);
}

.fcr-feature-icon
{
    width:                      52px;
    height:                     52px;
    display:                    flex;
    align-items:                center;
    justify-content:            center;
    flex-shrink:                0;
    background:                 color-mix(in srgb, var(--accent-color) 12%, transparent);
    border-radius:              12px;
}

.fcr-feature-icon i
{
    color:                      var(--accent-color);
    font-size:                  24px;
}

.fcr-feature-content
{
    flex:                       1;
    min-width:                  0px;
    padding-top:                11px;
}

.fcr-feature-content h3
{
    margin-bottom:              22px;
    font-size:                  24px;
    font-weight:                700;
}

.fcr-feature-content p
{
    margin-bottom:              0px;
    color:                      color-mix(in srgb, var(--default-color) 75%, transparent);
    font-size:                  15px;
    line-height:                1.7;
}

@media (max-width: 575.98px)
{
    .fcr-feature-content
    {
        padding-top:            14px;
    }

    .fcr-feature-content h3
    {
        font-size:              20px;
    }
}

/* ---------------- band ---------------- */

.fcr-band
{
    position:                   relative;
    overflow:                   hidden;
    padding:                    40px;
    color:                      var(--contrast-color);
    background:                 linear-gradient(135deg, var(--accent-color), color-mix(in srgb, var(--accent-color) 70%, #6366f1));
    border-radius:              18px;
}

.fcr-band-content
{
    position:                   relative;
    z-index:                    2;
}

.fcr-band-cta
{
    padding:                    64px;
    border-radius:              24px;
    text-align:                 center;
}

.fcr-band-label
{
    display:                    inline-flex;
    align-items:                center;
    gap:                        8px;
    padding:                    10px 20px;
    margin-bottom:              24px;
    color:                      var(--contrast-color);
    background:                 color-mix(in srgb, var(--contrast-color) 15%, transparent);
    border-radius:              50px;
    font-size:                  13px;
    font-weight:                600;
    text-transform:             uppercase;
    letter-spacing:             1px;
}

.fcr-band-label i
{
    font-size:                  16px;
}

.fcr-band-title
{
    margin:                     0px 0px 16px 0px;
    color:                      var(--contrast-color);
    font-size:                  36px;
    font-weight:                800;
    line-height:                1.2;
    letter-spacing:             -0.02em;
}

.fcr-band-text
{
    max-width:                  600px;
    margin:                     0px auto 32px auto;
    color:                      color-mix(in srgb, var(--contrast-color) 85%, transparent);
    font-size:                  18px;
    line-height:                1.7;
}

.fcr-band-buttons
{
    display:                    flex;
    justify-content:            center;
    gap:                        16px;
    flex-wrap:                  wrap;
}

.fcr-band-decoration
{
    position:                   absolute;
    inset:                      0;
    overflow:                   hidden;
    pointer-events:             none;
}

.fcr-band-shape
{
    position:                   absolute;
    background:                 color-mix(in srgb, var(--contrast-color) 10%, transparent);
    border-radius:              50%;
}

.fcr-band-shape-1
{
    width:                      300px;
    height:                     300px;
    top:                        -100px;
    right:                      -50px;
}

.fcr-band-shape-2
{
    width:                      200px;
    height:                     200px;
    bottom:                     -80px;
    left:                       -60px;
}

.fcr-band-shape-3
{
    width:                      120px;
    height:                     120px;
    top:                        50%;
    left:                       20%;
    transform:                  translateY(-50%);
}

.fcr-band .fcr-content-extra
{
    padding:                    0px;
    color:                      var(--contrast-color);
    background:                 transparent;
    border:                     0px;
    border-radius:              0px;
    box-shadow:                 none;
}

.fcr-band .fcr-content-extra-heading
{
    border-bottom-color:        color-mix(in srgb, var(--contrast-color) 18%, transparent);
}

.fcr-band .fcr-content-extra-icon
{
    color:                      var(--contrast-color);
    background:                 color-mix(in srgb, var(--contrast-color) 15%, transparent);
    border:                     1px solid color-mix(in srgb, var(--contrast-color) 18%, transparent);
}

.fcr-band .fcr-content-extra-heading h2
{
    color:                      var(--contrast-color);
}

.fcr-band .fcr-content-extra-heading p
{
    color:                      color-mix(in srgb, var(--contrast-color) 82%, transparent);
}

.fcr-band .fcr-content-extra-text
{
    color:                      color-mix(in srgb, var(--contrast-color) 90%, transparent);
}

.fcr-band .fcrreport-link
{
    color:                      var(--contrast-color);
}

.fcr-band .fcrreport-link:hover
{
    color:                      color-mix(in srgb, var(--contrast-color) 85%, transparent);
}

@media (max-width: 991.98px)
{
    .fcr-band-cta
    {
        padding:                48px 32px;
    }
}

@media (max-width: 767.98px)
{
    .fcr-band-title
    {
        font-size:              28px;
    }

    .fcr-band-text
    {
        font-size:              16px;
    }
}

@media (max-width: 575.98px)
{
    .fcr-band
    {
        padding:                28px 24px;
        border-radius:          16px;
    }

    .fcr-band-cta
    {
        padding:                40px 24px;
    }

    .fcr-band-buttons
    {
        flex-direction:         column;
        align-items:            center;
    }
}

/* --------------- report --------------- */

.fcrreport-admin-title
{
	background:					color-mix(in srgb, var(--accent-color) 10%, var(--surface-color));
	color:						var(--heading-color);
}

.fcrreportdelivery-link.fcrreport-admin-link
{
	font-size:					11px;
}

.fcrreport-page-header
{
    position:                   relative;
    z-index:                    2;
}

.fcrreport-page-tag
{
    display:                    inline-flex;
    align-items:                center;
    gap:                        10px;
    margin-bottom:              24px;
}

.fcrreport-page-tag-dot
{
    width:                      10px;
    height:                     10px;
    background:                 var(--accent-color);
    border-radius:              50%;
    animation:                  fcrreport-pulse 2s infinite;
}


@keyframes fcrreport-pulse
{
    0%,
    100%
    {
        opacity:                    1;
        transform:                  scale(1);
    }

    50%
    {
        opacity:                    0.6;
        transform:                  scale(1.2);
    }
}

.fcrreport-page-tag-text
{
    color:                      var(--accent-color);
    font-size:                  0.875rem;
    font-weight:                600;
    text-transform:             uppercase;
    letter-spacing:             1.5px;
}

.fcrreport-page-title
{
    margin-bottom:              24px;
    color:                      var(--heading-color);
    font-size:                  3.5rem;
    font-weight:                700;
    line-height:                1.15;
}

.fcrreport-panel
{
    position:                   relative;
    display:                    flex;
    flex-direction:             column;
    height:                     100%;
    padding:                    32px;
    background:                 var(--surface-color);
    border-radius:              16px;
    box-shadow:                 0 10px 40px rgba(0,0,0,0.08);
    transition:                 all 0.4s cubic-bezier(0.25,0.46,0.45,0.94);
}

.fcrreport-panel:hover
{
    transform:                  translateY(-8px);
    box-shadow:                 0 20px 60px rgba(0,0,0,0.12);
}

.fcrreport-panel-icon
{
    width:                      56px;
    height:                     56px;
    display:                    flex;
    align-items:                center;
    justify-content:            center;
    flex-shrink:                0;
    margin-bottom:              24px;
    background:                 color-mix(in srgb, var(--accent-color) 15%, transparent);
    border-radius:              12px;
    transition:                 all 0.3s ease;
}

.fcrreport-panel-icon i
{
    color:                      var(--accent-color);
    font-size:                  28px;
    transition:                 all 0.3s ease;
}

.fcrreport-panel:not(.fcrreport-panel-static):hover .fcrreport-panel-icon
{
    background:                 var(--accent-color);
}

.fcrreport-panel:not(.fcrreport-panel-static):hover .fcrreport-panel-icon i
{
    color:                      var(--contrast-color);
}

.fcrreport-panel h3:not(:where(.fcr-band *))
{
    margin-bottom:              12px;
    color:                      var(--heading-color);
    font-size:                  20px;
    font-weight:                600;
    line-height:                1.4;
}

.fcrreport-panel p:not(:where(.fcr-band *))
{
    margin-bottom:              24px;
    color:                      var(--default-color);
    font-size:                  16px;
    line-height:                1.7;
}

.fcrreport-edit-notice
{
    background-color:           #FFF3CD;
    border-left:                4px solid #FFC107;
    color:                      #664D03;
}

.fcrreport-edit-notice .fcrreport-link
{
    color:                      inherit;
}

.fcrreport-edit-notice .fcrreport-link:hover
{
    color:                      color-mix(in srgb, #664D03 75%, black);
}

.fcrreport-edit-notice .fcrreport-link span
{
    text-decoration:            underline;
}

/* the link sits bottom right at every width */

.fcrreport-edit-notice > div:last-child
{
    align-self:                 flex-end;
}

@media (max-width: 991.98px)
{
    .fcrreport-edit-notice
    {
        font-size:              13px;
    }

    /* the link is toned down to the size of the text */

    .fcrreport-edit-notice .fcrreport-link
    {
        font-size:              13px;
        font-weight:            500;
    }

    .fcrreport-edit-notice .fcrreport-link i
    {
        font-size:              14px;
    }
}

.fcrreport-link
{
    display:                    inline-flex;
    align-items:                center;
    gap:                        8px;
    color:                      var(--accent-color);
    font-size:                  14px;
    font-weight:                600;
    transition:                 all 0.3s ease;
}

.fcrreport-link i
{
    font-size:                  16px;
    transition:                 transform 0.3s ease;
}

.fcrreport-link:hover
{
    color:                      color-mix(in srgb, var(--accent-color) 80%, black);
}

.fcrreport-panel:not(.fcrreport-panel-static):hover .fcrreport-link i
{
    transform:                  translateX(4px);
}

.fcrreport-panel-static:hover
{
    transform:                  none;
    box-shadow:                 0 10px 40px rgba(0,0,0,0.08);
}

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

.fcrreportdelivery-linkbar
{
    padding:                    24px;
    border-radius:              8px;
}

.fcrreportdelivery-linkvalid
{
    margin-top:                 6px;
    color:                      var(--bs-secondary-color);
    font-size:                  12px;
}

.fcrreportdelivery-linkbuttons
{
    display:                    flex;
    flex-wrap:                  wrap;
    justify-content:            center;
    gap:                        8px;
    margin-top:                 16px;
}

.fcrreportdelivery-linkbutton
{
    display:                    inline-flex;
    align-items:                center;
    gap:                        8px;
    padding:                    7px 16px;
    color:                      var(--bs-secondary-color);
    font-size:                  14px;
    font-weight:                600;
    white-space:                nowrap;
    background:                 #ffffff;
    border:                     1px solid var(--bs-border-color);
    border-radius:              999px;
}

.fcrreportdelivery-linkbutton:hover
{
    border-color:               var(--bs-secondary-color);
}

.fcrreportdelivery-linknote
{
    width:                      0px;
    min-width:                  100%;
    margin-top:                 16px;
}

.fcrreportdelivery-linkbar .fcrreportdelivery-linknote p
{
    font-size:                  14px;
    line-height:                1.5;
}

.fcrreportdelivery-split
{
    display:                    grid;
    grid-template-columns:      1fr 1fr;
}

.fcrreportdelivery-split > :first-child
{
    justify-self:               end;
}

.fcrreportdelivery-split > :last-child
{
    justify-self:               start;
}

.fcrreportdelivery-link
{
    padding:                    0px;
    font-size:                  15px;
    word-break:                 break-all;
    resize:                     none;
    field-sizing:               content;
    cursor:                     pointer;
}

@media (max-width: 1199.98px)
{
    .fcrreport-page-title
    {
        font-size:              3rem;
    }
}

@media (max-width: 991.98px)
{
    .fcrreport-page-title
    {
        font-size:              2.5rem;
    }
}

@media (max-width: 767.98px)
{
    .fcrreport-panel
    {
        padding:                24px;
    }

    .fcrreport-panel-icon
    {
        width:                  48px;
        height:                 48px;
    }

    .fcrreport-panel-icon i
    {
        font-size:              24px;
    }

    .fcrreport-panel h3:not(:where(.fcr-band *))
    {
        font-size:              18px;
    }
}

@media (max-width: 575.98px)
{
    .fcrreport-page-title
    {
        font-size:              2rem;
    }
}

.fcrreport-card-heading
{
    display:					flex;
    align-items:				center;
    min-height:					32px;
}

.fcrreport-card-heading h3
{
    margin:						0;
    color:						var(--heading-color);
    font-size:					1.25rem;
    font-weight:				700;
}

.fcrreport-card-heading-menu
{
    margin-left:					16px;
    margin-bottom:					28px;
}

.fcrreport-card-heading-category
{
    margin-left:					4px;
    margin-bottom:					0px;
}

.fcrreport-card-heading-total
{
    margin-left:					0px;
    margin-right:					0px;
    margin-bottom:					12px;
}

.fcrreport-total-summary
{
    position:					relative;
    padding:					18px 14px;
    margin-top:                 30px;
    background:					rgba(45, 127, 214, 0.06);
    border:						1px solid rgba(45, 127, 214, 0.10);
    border-radius:				14px;
}

.fcrreport-analysis-readiness
{
    padding:					0 14px;
    margin-top:					18px;
}

.fcrreport-readiness-bar
{
    height:						6px;
    background:					rgba(45,127,214,0.06);
    border:						1px solid rgba(45,127,214,0.10);
    border-radius:				999px;
    overflow:					hidden;
}

.fcrreport-readiness-bar-value
{
    height:						100%;
    background:					#2d7fd6;
    border-radius:				999px;
    transition:					width 0.3s ease;
}

.fcrreport-readiness-bar-ready
{
    background:					#198754;
}

.fcrreport-title-icon
{
    color:						var(--heading-color);
}

.fcrreport-row
{
    display:                    flex;
    align-items:                center;
    gap:                        8px;
    padding:                    3px 0px;
    margin-bottom:              6px;
}

.fcrreport-row input[type="text"],
.fcrreport-row select
{
    height:                     38px;
}

.fcrreport-item-row
{
    margin-left:				-8px;
    margin-right:				-8px;
    margin-bottom:				2px;
    padding:					5px 8px;
    border:						1px solid transparent;
    border-radius:				8px;
    transition:					background-color 0.15s ease, border-color 0.15s ease;
}

/* hover and focus share one treatment, same accent family as the input ring */

.fcrreport-item-row:hover,
.fcrreport-item-row:focus-within
{
    background:					color-mix(in srgb, var(--accent-color) 8%, transparent);
    border-color:				color-mix(in srgb, var(--accent-color) 12%, transparent);
}

.fcrreport-row-header
{
    padding:                    10px 0px 0px 0px;
    margin-bottom:              0px;
    color:                      #6B7783;
    font-size:                  11px;
    font-weight:                600;
    text-transform:             uppercase;
    letter-spacing:             0.06em;
}

/* header cells, widths mirror the item row columns */

.fcrreport-header-label
{
    flex:                       1;
    padding-left:               12px;
}

.fcrreport-header-value
{
    width:                      90px;
    padding-right:              20px;
    text-align:                 right;
}

.fcrreport-header-period
{
    width:                      180px;
    padding-left:               9px;
}

.fcrreport-header-flexibility
{
    width:                      34px;
    white-space:                nowrap;
    text-align:                 center;
}

.fcrreport-header-spacer
{
    width:                      22px;
}

.fcrreport-icon
{
    width:                      22px;
    text-align:                 center;
}

.fcrreport-icon i.category_icon,
.fcrreport-icon i.category_item_icon,
.fcrreport-icon i.category_custom_item_icon
{
    font-size:                  14px;
    line-height:                1;
}

.fcrreport-icon svg.category_icon,
.fcrreport-icon svg.category_item_icon,
.fcrreport-icon svg.category_custom_item_icon
{
    width:                      14px;
    height:                     14px;
}

.fcrreport-icon i.category_item_icon
{
    color:                      #A0A0A0;
}

.fcrreport-icon svg.category_item_icon
{
    fill:                       #A0A0A0;
}

.fcrreport-icon.fcrreport_category_item_active i.category_item_icon
{
    color:                      var(--fcr-category-color, #6B7783);
    opacity:                    1.00;
}

.fcrreport-icon.fcrreport_category_item_active svg.category_item_icon
{
    fill:                       var(--fcr-category-color, #6B7783);
    opacity:                    1.00;
}

/* item row icons, sized here so the phone layout can enlarge them */

.fcrreport-item-row .fcrreport-icon i,
.fcrreport-item-row .fcrreport-icon svg
{
    width:                      16px;
    height:                     16px;
    font-size:                  16px;
}

.fcrreport-input
{
    border:                     1px solid #e5e7eb;
    border-radius:              8px;
    padding:                    6px 10px;
    font-size:                  13px;
}

.fcrreport-row[inert] .fcrreport-input,
.fcrreport-row[inert] .fcrreport-period
{
    color:                      #8b949e;
    background:                 #f3f4f6;
    border-color:               #d1d5db;
    cursor:                     not-allowed;
}

.fcrreport-row[inert] .fcrreport-renewal-badge,
.fcrreport-row[inert] .fcrreport-flexibility-badge,
.fcrreport-row[inert] .fcrreport-reset,
.btn-group[inert]
{
    opacity:                    0.45;
    cursor:                     not-allowed;
}

.fcrreport-row[inert] .fcrreport-spinner
{
    opacity:                    0;
}

/* focus ring, replaces the UA default black outline */

.fcrreport-input:focus,
.fcrreport-period:focus,
.fcrreport-period-wrap:focus .fcrreport-period
{
    outline:                    none;
    border-color:               var(--accent-color);
    box-shadow:                 0 0 0 4px color-mix(in srgb, var(--accent-color) 12%, transparent);
}

.fcrreport-period-wrap:focus
{
    outline:                    none;
}

.fcrreport-label
{
    flex:                       1;
    min-width:                  0px;
    text-overflow:              ellipsis;
}

.fcrreport-value
{
    width:                      90px;
    text-align:                 right;
}

.fcrreport-period
{
    width:                      180px;
    font-size:                  13px;
    padding:                    2px 4px;
    border:                     1px solid #e5e7eb;
    border-radius:              8px;
    background:                 #fff;
}

.fcrreport-reset
{
    width:                      22px;
    height:                     22px;
    display:                    flex;
    align-items:                center;
    justify-content:            center;
    cursor:                     pointer;
    font-size:                  14px;
    border-radius:              999px;
    color:                      #6b7280;
    background:                 #eef2f7;
}

.fcrreport-reset:hover
{
    color:                      #202020;
    background:                 #e2e8f0;
}

.fcrreport-reset.fcrreport_category_item_inactive
{
    visibility:                 hidden;
}

.fcrreport_category_item_active
{
    color:                      #202020;
}

.fcrreport_category_item_inactive
{
    color:                      #a0a0a0;
}

.fcrreport_category_item_inactive::placeholder
{
    color:                      #a0a0a0;
    opacity:                    1;
}

.fcrreport-number
{
    position:                   relative;
    display:                    inline-block;
}

.fcrreport-number input
{
    padding-right:              22px;
}

.fcrreport-spinner
{
    position:                   absolute;
    right:                      1px;
    top:                        1px;
    bottom:                     1px;
    width:                      18px;
    display:                    flex;
    flex-direction:             column;
    border-left:                1px solid #e5e7eb;
    border-radius:              0 7px 7px 0;
    overflow:                   hidden;
    opacity:                    0;
    transition:                 opacity 0.15s ease;
}

.fcrreport-row:hover .fcrreport-spinner,
.fcrreport-row:focus-within .fcrreport-spinner
{
    opacity:                    1;
}

.fcrreport-spinner button
{
    flex:                       1;
    border:                     none;
    background:                 transparent;
    font-size:                  12px;
    line-height:                1;
    padding:                    0;
    margin:                     0;
    cursor:                     pointer;
    color:                      #888;
    display:                    flex;
    align-items:                center;
    justify-content:            center;
}

.fcrreport-spinner-divider
{
    height:                     1px;
    background:                 #e5e7eb;
    flex-shrink:                0;
}

.fcrreport-spinner button:hover
{
    color:                      #212529;
    background:                 rgba(0,0,0,0.04);
}

.fcrreport-spinner button:active
{
    background:                 rgba(0,0,0,0.08);
}

/* no +/- buttons on touch screens, the amount gets the room back */

@media (hover: none)
{
    .fcrreport-spinner
    {
        display:                none;
    }

    .fcrreport-number input
    {
        padding-left:           4px;
        padding-right:          10px;
    }

    /* the amount gives the freed room to the name */

    .fcrreport-value,
    .fcrreport-header-value
    {
        width:                  72px;
    }

    /* homepage form: the amount gives the freed room to the name */

    .fcrreport-home .fcrreport-value
    {
        width:                  74px;
        padding-left:           6px;
    }
}

.fcrreport-step-badge
{
    position:                   absolute;
    right:                      0px;
    top:                        -11px;
    font-size:                  9px;
    font-weight:                600;
    color:                      #fff;
    background:                 #4a90d9;
    border-radius:              2px;
    padding:                    1px 3px;
    pointer-events:             none;
    opacity:                    0;
    transition:                 opacity 0.15s;
    white-space:                nowrap;
    line-height:                1.1;
}

.fcrreport-step-badge.visible
{
    opacity:                    1;
}

.fcrreport-home .fcrreport-renewal-badge
{
    display:                    none !important;
}

.fcrreport-home .fcrreport-period
{
    width:                      100%;
}

.fcrreport-home .fcrreport-period-wrap
{
    flex:                       0 0 80px;
}

.fcrreport-home .fcrreport-label
{
    min-width:                  0px;
}

.fcrreport-period-wrap
{
    position:                   relative;
}

.fcrreport-renewal-badge
{
    position:                   absolute;
    left:                       36px;
    bottom:                     9px;
    width:                      28px;
    height:                     16px;
    text-align:                 center;
    font-size:                  10px;
    line-height:                1.2;
    font-family:                'Roboto Mono', monospace;
    letter-spacing:             0px;
    padding:                    1px 3px 1px 2px;
    border-radius:              999px;
    background:                 #eef2f7;
    color:                      #6b7280;
    cursor:                     pointer;
    white-space:                nowrap;
}

.fcrreport-renewal-badge[data-period="quarter"]
{
    left:                       60px;
    width:                      100px;
}

.fcrreport-renewal-popup
{
    position:                   absolute;
    z-index:                    9999;
    display:                    none;
    min-width:                  60px;
    background:                 #fff;
    border:                     1px solid #dfe3e8;
    border-radius:              6px;
    box-shadow:                 0 2px 10px rgba(0,0,0,0.08);
    overflow:                   hidden;
}

.fcrreport-renewal-grid
{
    display:                    grid;
    grid-template-columns:      repeat(3, 1fr);
}

.fcrreport-renewal-grid-quarter
{
    display:                    grid;
    grid-template-columns:      1fr;
}

.fcrreport-renewal-option
{
    padding:                    4px 8px;
    color:                      #5f6b7a;
    font-size:                  10px;
    line-height:                1.2;
    font-family:                'Roboto Mono', monospace;
    letter-spacing:             0px;
    border-radius:              999px;
    margin:                     2px;
    white-space:                nowrap;
}

.fcrreport-renewal-option:hover
{
    background:                 #eef2f7;
    color:                      #5f6b7a;
    cursor:                     pointer;
}

.fcrreport-period-popup
{
    top:                        calc(100% + 4px);
    left:                       0px;
    min-width:                  100%;
}

.fcrreport-period-option
{
    padding:                    8px 12px;
    color:                      #5f6b7a;
    font-size:                  13px;
    line-height:                1.2;
    border-radius:              999px;
    margin:                     2px;
    white-space:                nowrap;
    cursor:                     pointer;
}

.fcrreport-period-option-selected
{
    background:                 #eef2f7;
}

/* touch screens: the period field ignores taps, its wrapper opens the period popup */
@media (pointer: coarse)
{
    .fcrreport-period
    {
        pointer-events:         none;
    }
}

.fcrreport-flexibility-grid
{
    display:                    grid;
    grid-template-columns:      1fr;
}

.fcrreport-flexibility-option
{
    padding:                    4px 8px;
    color:                      #5f6b7a;
    font-size:                  11px;
    line-height:                1.3;
    border-radius:              999px;
    margin:                     2px;
    white-space:                nowrap;
}

.fcrreport-flexibility-option
{
    display:                    flex;
    align-items:                center;
    padding:                    4px 10px 4px 4px;
    color:                      #5f6b7a;
    font-size:                  11px;
    line-height:                1.2;
    border-radius:              999px;
    margin:                     2px;
    white-space:                nowrap;
}

.fcrreport-flexibility-chip
{
    width:                      20px;
    height:                     20px;
    display:                    flex;
    align-items:                center;
    justify-content:            center;
    border-radius:              999px;
    font-size:                  10px;
    margin-right:               6px;
    flex-shrink:                0;
}

.fcrreport-flexibility-hint
{
    color:                      #a0a0a0;
    font-size:                  10px;
    margin-left:                5px;
}

.fcrreport-flexibility-option:hover
{
    background:                 #eef2f7;
    cursor:                     pointer;
}

.fcrreport-flexibility-badge
{
    width:                      26px;
    height:                     26px;
    margin:                     0px 4px;
    display:                    flex;
    align-items:                center;
    justify-content:            center;
    cursor:                     pointer;
    font-size:                  14px;
    border-radius:              999px;
}

.fcrreport-flexibility-fixed
{
    color:                      #6b7280;
    background:                 #eef2f7;
}

.fcrreport-flexibility-review
{
    color:                      #b45309;
    background:                 #fdf1dc;
}

.fcrreport-flexibility-flexible
{
    color:                      #2f7d4f;
    background:                 #e4f3ea;
}

.fcrreport-flexibility-badge.fcrreport_category_item_inactive
{
    color:                      #a0a0a0;
    background:                 transparent;
}

@media (max-width: 767.98px)
{
    .fcrreport-row-header
    {
        display:                none;
    }

    .fcrreport-item-row
    {
        flex-wrap:              wrap;
        row-gap:                4px;
        margin-bottom:          10px;
    }

    /* line 1: icon, label, flexibility, reset (122px = 22 + 38 + 38 + 3 gaps) */

    .fcrreport-item-row .fcrreport-label
    {
        flex:                   1 1 calc(100% - 122px);
        min-width:              0px;
    }

    /* touch: lock and reset as tall as the fields, taller month badge */

    .fcrreport-item-row .fcrreport-flexibility-badge,
    .fcrreport-item-row .fcrreport-reset
    {
        width:                  38px;
        height:                 38px;
        margin:                 0px;
        font-size:              16px;
    }

    .fcrreport-item-row .fcrreport-renewal-badge
    {
        bottom:                 7px;
        height:                 24px;
        line-height:            22px;
    }

    .fcrreport-item-row .fcrreport-icon i,
    .fcrreport-item-row .fcrreport-icon svg
    {
        width:                  20px;
        height:                 20px;
        font-size:              20px;
    }

    /* line 2: amount, period */

    .fcrreport-item-row .fcrreport-number,
    .fcrreport-item-row .fcrreport-period-wrap
    {
        order:                  1;
    }

    .fcrreport-item-row .fcrreport-number
    {
        flex:                   1;
        min-width:              0px;
        max-width:              140px;
        margin-left:            30px;
    }

    .fcrreport-item-row .fcrreport-value
    {
        width:                  100%;
    }

    /* prev/next share the row equally, long names are cut off */

    .fcrreport-category-navigation .fcrreportmenu
    {
        flex:                   1 1 0;
        min-width:              0px;
        display:                flex;
        align-items:            center;
        justify-content:        center;
        gap:                    4px;
    }

    .fcrreport-category-navigation .fcrreportmenu span
    {
        overflow:               hidden;
        text-overflow:          ellipsis;
        white-space:            nowrap;
    }

    /* touch: larger popup options */

    .fcrreport-renewal-option
    {
        padding:                10px 12px;
        font-size:              12px;
    }

    .fcrreport-flexibility-option
    {
        padding:                8px 10px 8px 4px;
    }
}

.fcrreport-card
{
    box-shadow:                 0 8px 28px rgba(15,48,88,0.08);
}

.fcrreport-help
{
    width:                      fit-content;
    margin:                     0px auto;
}

.fcrreport-help-steps
{
    margin:                     0px;
    padding-left:               0px;
    list-style:                 none;
    color:                      #5f6b7a;
    font-size:                  13px;
    line-height:                1.5;
}

.fcrreport-help-steps li + li
{
    margin-top:                 8px;
}

.fcrreport-help-steps strong
{
    color:                      var(--default-color);
    font-weight:                600;
}

/* ----------- report options ----------- */

.fcrreport-options
{
    position:                   relative;
    z-index:                    1;
}

.fcrreport-option
{
    position:                   relative;
    display:                    flex;
    align-items:                flex-start;
    gap:                        18px;
    padding:                    18px 58px 18px 20px;
    margin-bottom:              12px;
    background:                 #4d88df;
    border:                     1px solid rgba(255,255,255,0.20);
    border-radius:              16px;
    box-shadow:                 0 8px 20px rgba(15,48,88,0.08);
    cursor:                     pointer;
    transition:                 all 0.25s ease;
}

.fcrreport-option:not(.fcrreport-option-selected):hover
{
    background:                 #518de3;
    border-color:               rgba(255,255,255,0.30);
    box-shadow:                 0 10px 24px rgba(15,48,88,0.12);
    transform:                  translateY(-1px);
}

.fcrreport-option-selected
{
    background:                 #fff;
    border-color:               #c5d9f1;
    box-shadow:                 0 12px 28px rgba(15,48,88,0.18);
    transform:                  translateY(-1px);
}

.fcrreport-option:last-child
{
    margin-bottom:              0px;
}

.fcrreport-option-radio
{
    position:                   absolute;
    opacity:                    0;
    pointer-events:             none;
}

.fcrreport-option::after
{
    content:                    "";
    position:                   absolute;
    top:                        20px;
    right:                      20px;
    width:                      20px;
    height:                     20px;
    display:                    flex;
    align-items:                center;
    justify-content:            center;
    box-sizing:                 border-box;
    color:                      transparent;
    background:                 transparent;
    border:                     2px solid rgba(255,255,255,0.72);
    border-radius:              50%;
    font-size:                  13px;
    font-weight:                800;
    line-height:                1;
    pointer-events:             none;
    transition:                 all 0.20s ease;
}

.fcrreport-option-selected::after
{
    content:                    "✓";
    color:                      #fff;
    background:                 var(--accent-color);
    border-color:               var(--accent-color);
}

.fcrreport-option-icon
{
    width:                      52px;
    height:                     52px;
    display:                    flex;
    align-items:                center;
    justify-content:            center;
    flex-shrink:                0;
    color:                      #fff;
    background:                 rgba(255,255,255,0.16);
    border:                     1px solid rgba(255,255,255,0.18);
    border-radius:              13px;
    font-size:                  24px;
    transition:                 all 0.25s ease;
}

.fcrreport-option-icon i
{
    color:                      #fff;
}

.fcrreport-option-selected .fcrreport-option-icon
{
    color:                      #fff;
    background:                 var(--accent-color);
    border-color:               var(--accent-color);
}

.fcrreport-option-selected .fcrreport-option-icon i
{
    color:                      #fff;
}

.fcrreport-option-content
{
    flex:                       1;
    min-width:                  0;
    text-align:                 left;
}

.fcrreport-option-label
{
    display:                    block;
    margin:                     0px;
    cursor:                     pointer;
}

.fcrreport-option-title
{
    display:                    block;
    margin-bottom:              5px;
    color:                      #fff;
    font-family:                var(--heading-font);
    font-size:                  18px;
    font-weight:                700;
    line-height:                1.3;
}

.fcrreport-option-description
{
    display:                    block;
    margin:                     0px;
    color:                      rgba(255,255,255,0.80);
    font-size:                  14px;
    line-height:                1.55;
    text-align:                 left;
}

.fcrreport-option-example
{
    display:                    inline-block;
    margin-top:                 4px;
    color:                      #fff;
    font-size:                  13px;
    text-decoration:            underline;
}

.fcrreport-option-example:hover
{
    color:                      #fff;
}

.fcrreport-option-selected .fcrreport-option-example
{
    color:                      #1c3050;
}

.fcrreport-option-selected .fcrreport-option-example:hover
{
    color:                      #1c3050;
}

.fcrreport-option-selected .fcrreport-option-title
{
    color:                      #1c3050;
}

.fcrreport-option-selected .fcrreport-option-description
{
    color:                      rgba(28,48,80,0.76);
}

.fcrreport-option-email
{
    display:                    none;
    width:                      100%;
    max-width:                  310px;
    margin-top:                 10px;
    color:                      #1c3050;
    background:                 rgba(255,255,255,0.92);
    border:                     1px solid rgba(255,255,255,0.28);
    opacity:                    1;
    cursor:                     text;
}

.fcrreport-option-email::placeholder
{
    color:                      rgba(28,48,80,0.68);
    opacity:                    1;
}

.fcrreport-option-email:focus
{
    color:                      #1c3050;
    background:                 #fff;
    border-color:               rgba(255,255,255,0.55);
    box-shadow:                 0 0 0 3px rgba(255,255,255,0.16);
}

.fcrreport-option-email:disabled
{
    color:                      rgba(28,48,80,0.58);
    background:                 rgba(255,255,255,0.76);
    border-color:               rgba(255,255,255,0.18);
    opacity:                    1;
    cursor:                     pointer;
}

.fcrreport-option-selected .fcrreport-option-email
{
    color:                      #1c3050;
    background:                 #eef5fd;
    border-color:               #c5d9f1;
}

.fcrreport-option-selected .fcrreport-option-email::placeholder
{
    color:                      rgba(28,48,80,0.65);
}

.fcrreport-option-selected .fcrreport-option-email:focus
{
    color:                      #1c3050;
    background:                 #fff;
    border-color:               color-mix(in srgb, var(--accent-color) 55%, #fff);
    box-shadow:                 0 0 0 3px rgba(47,126,215,0.14);
}

.fcrreport-consents
{
    width:                      max-content;
    max-width:                  calc(100% - 90px);
    margin:                     0px 0px 0px 90px;
    padding:                    0px;
}

.fcrreport-consent
{
    display:                    flex;
    align-items:                flex-start;
    gap:                        10px;
    color:                      rgba(255,255,255,0.92);
    font-size:                  13px;
    line-height:                1.45;
    text-align:                 left;
}

.fcrreport-consent + .fcrreport-consent
{
    margin-top:                 9px;
}

.fcrreport-consent input
{
    flex:                       0 0 auto;
    width:                      15px;
    height:                     15px;
    margin:                     2px 0px 0px;
    cursor:                     pointer;
}

.fcrreport-consent label
{
    margin:                     0px;
    color:                      inherit;
    font-size:                  inherit;
    line-height:                inherit;
    text-align:                 left;
    cursor:                     pointer;
}

.fcrreport-consent-error
{
    display:                    none;
    width:                      100%;
    box-sizing:                 border-box;
    margin-top:                 10px;
    padding:                    10px 14px;
    color:                      #fff;
    background:                 #c9565f;
    border:                     1px solid rgba(255,255,255,0.20);
    border-radius:              10px;
    box-shadow:                 0 8px 20px rgba(15,48,88,0.08);
    font-size:                  13px;
    font-weight:                600;
    line-height:                1.45;
    text-align:                 center;
}

.fcrreport-consent-invalid
{
    color:                      rgba(255,255,255,0.92);
}

.fcrreport-consent-invalid input
{
    outline:                    none;
}

@media (max-width: 575.98px)
{
    .fcrreport-option
    {
        gap:                    14px;
        padding:                16px 48px 16px 16px;
    }

    .fcrreport-option::after
    {
        top:                    17px;
        right:                  16px;
    }

    .fcrreport-option-icon
    {
        width:                  46px;
        height:                 46px;
        font-size:              21px;
    }

    .fcrreport-option-title
    {
        font-size:              16px;
    }

    .fcrreport-consents
    {
        width:                  max-content;
        max-width:              calc(100% - 76px);
        margin-left:            76px;
        padding:                0px;
    }
}

/* ------------- report menu ------------ */

.fcrreportmenu {
    cursor:pointer;
}

/* SELECTED = very clear, hover identical */
#fcrreport_menu_container .fcr-menu-row:hover,
#fcrreport_menu_container .fcr-menu-row.fcrreportmenu_selected {
    background-color:color-mix(in srgb, var(--accent-color) 8%, transparent);
    border-left:3px solid var(--accent-color);
    border-radius:6px;
    box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent-color) 12%, transparent);
    padding-left:8px;
}

/* DEFAULT = normal readable (NOT faded) */
.fcrreport_category_inactive {
    color:#212529;   /* was grey → wrong */
}

/* HAS VALUES = subtle emphasis */
.fcrreport_category_active {
    color:#212529;
    font-weight:500;
}

/* ROW */
#fcrreport_menu_container .fcr-menu-row {
    padding:4px 12px 4px 11px; /* more space on right */
    border-radius:6px;
    transition:background-color 0.15s ease;
    display:flex;
    align-items:center;
}

#fcrreport_menu_container .fcr-menu-row + .fcr-menu-row {
    margin-top:2px;
}

/* ICON = visible (NOT faded away) */
#fcrreport_menu_container .fcr-menu-icon {
    width:24px;
    text-align:center;
    flex-shrink:0;
}

/* LABEL */
#fcrreport_menu_container .fcr-menu-label {
    margin-left:6px;
    line-height:1.1;
}

#fcrreport_menu_container .fcr-menu-count {
    min-width:20px;
    height:18px;
    line-height:18px;

    font-size:11px;
    font-weight:500;

    color:#495057;              /* darker text */
    background-color:#e9ecef;   /* slightly stronger */
    border-radius:9px;

    text-align:center;
    display:inline-block;
}

/* --------------- buttons -------------- */

/* the income apply button stays on bootstrap so input-group keeps its height, flush left edge and z-index, only the colour moves to the brand */

.btn-primary
{
    --bs-btn-bg:                    var(--accent-color);
    --bs-btn-border-color:          var(--accent-color);
    --bs-btn-hover-bg:              color-mix(in srgb, var(--accent-color), black 12%);
    --bs-btn-hover-border-color:    color-mix(in srgb, var(--accent-color), black 12%);
    --bs-btn-active-bg:             color-mix(in srgb, var(--accent-color), black 12%);
    --bs-btn-active-border-color:   color-mix(in srgb, var(--accent-color), black 12%);
    --bs-btn-disabled-bg:           var(--accent-color);
    --bs-btn-disabled-border-color: var(--accent-color);
    --bs-btn-focus-shadow-rgb:      47, 128, 214;
}


/* ----------- cookie consent ----------- */

.fcr-consent
{
    position:                   fixed;
    right:                      0px;
    bottom:                     0px;
    left:                       0px;
    z-index:                    100000;
    display:                    none;
    padding:                    14px 0px;
    color:                      var(--default-color);
    background:                 var(--surface-color);
    border-top:                 1px solid color-mix(in srgb, var(--default-color), transparent 90%);
    box-shadow:                 0 -8px 28px rgba(15,48,88,0.08);
    font-size:                  14px;
}

.fcr-consent-inner
{
    display:                    flex;
    align-items:                center;
    justify-content:            space-between;
    gap:                        24px;
}

.fcr-consent-text
{
    line-height:                1.5;
}

.fcr-consent-title
{
    display:                    block;
    margin-bottom:              2px;
    color:                      var(--heading-color);
    font-weight:                600;
}

.fcr-consent-buttons
{
    display:                    flex;
    flex-shrink:                0;
    gap:                        10px;
}

.fcr-consent-button
{
    padding:                    8px 18px;
    color:                      var(--contrast-color);
    background:                 var(--accent-color);
    border:                     1px solid var(--accent-color);
    border-radius:              8px;
    font-size:                  14px;
    font-weight:                600;
    line-height:                1.2;
    cursor:                     pointer;
    transition:                 background-color 0.2s ease;
}

.fcr-consent-button:hover
{
    background:                 color-mix(in srgb, var(--accent-color), black 12%);
    border-color:               color-mix(in srgb, var(--accent-color), black 12%);
}

@media (max-width: 575.98px)
{
    .fcr-consent-inner
    {
        flex-direction:         column;
        align-items:            stretch;
        gap:                    12px;
    }

    .fcr-consent-button
    {
        flex:                   1;
    }
}
