/* ============================================================
   XLTFS HOMEPAGE - tt_css/brand.css
   Brand palette taken from xltfs.com (Excel Tax & Financial
   Solutions LLC): gold #e3b62c, navy #0f2244, deep green #16294a,
   footer gold #0f2244, accent yellow #e3b62c, salmon #e3b62c and
   paragraph ink #414b60.
   Layout utilities are single-property; application classes are
   prefixed with b_. Framework classes (k_*) live in ttstyles.css.
   ============================================================ */
/* ---- Category: background colours ---- */
.b_bg_page { background-color: #ffffff; }
.b_bg_white { background-color: #ffffff; }
.b_bg_cream { background-color: #f6f7fb; }
.b_bg_light { background-color: #f4f6fb; }
.b_bg_gold { background-color: #e3b62c; }
.b_bg_goldsoft { background-color: #eef2f9; }
.b_bg_navy { background-color: #0f2244; }
.b_bg_green { background-color: #16294a; }
.b_bg_footer { background-color: #0f2244; }
.b_bg_salmon { background-color: #e3b62c; }
.b_bg10 { background-color: #ffffff; }
.b_bg_w06 { background-color: rgba(255, 255, 255, 0.06); }
.b_bg_w10 { background-color: rgba(255, 255, 255, 0.1); }
.b_bgtrans { background-color: transparent; }
.b_p0 { padding: 0; }
/* ---- Category: text colours ---- */
.b_fc_ink { color: #16294a; }
.b_fc_navy { color: #0f2244; }
.b_fc_gold { color: #e3b62c; }
.b_fc_body { color: #414b60; }
.b_fc_muted { color: #6b7485; }
.b_fc_white { color: #ffffff; }
.b_fc_salmon { color: #e3b62c; }
.b_fc_nav { color: #16294a; }
.b_fc_footer { color: #c9d4e8; }
.b_fc_tint { color: #cfd9ea; }
/* ---- Category: fonts of the original page ---- */
@font-face { font-family: URClassico-Bold; src: url(../fonts/URWClassico-Bold.woff); }
@font-face { font-family: URClassico-Regular; src: url(../fonts/URWClassico-Regular.woff); }
@font-face { font-family: GT-Super-Display-Bold; src: url(../fonts/GT-Super-Display-Bold.otf); }
@font-face { font-family: GT-Super-Display-Medium; src: url(../fonts/GT-Super-Display-Medium.otf); }
@font-face { font-family: GT-Super-Display-Super; src: url(../fonts/GT-Super-Display-Super.otf); }
/* ---- Category: base element helpers ---- */
.b_scroll_smooth { scroll-behavior: smooth; }
.b_font_mulish {
    font-family: Mulish, URClassico-Regular, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
}
.b_font_title { font-family: GT-Super-Display-Super, URClassico-Bold, Georgia, serif; }
.b_lh28 { line-height: 28px; }
.b_lh1p6 { line-height: 1.6; }
.b_lh1p45 { line-height: 1.45; }
.b_lh1p2 { line-height: 1.2; }
.b_undn { text-decoration: none; }
.b_fcinherit { color: inherit; }
.b_lsn { list-style: none; }
.b_img { width: 100%; height: auto; display: block; }
.b_ovf_h { overflow: hidden; }
.b_dispinlinefx { display: inline-flex; }
/* ---- Category: container ---- */
.b_wmin1160 { width: min(1160px, 92%); }
.b_container { width: min(1220px, 92%); margin: 0 auto; }
.b_mauto { margin: auto; }
.b_justsb { justify-content: space-between; }
/* ---- Category: spacing utilities ---- */
.b_gap8 { gap: 8px; }
.b_gap9 { gap: 9px; }
.b_gap10 { gap: 10px; }
.b_gap12 { gap: 12px; }
.b_gap18 { gap: 18px; }
.b_gap22 { gap: 22px; }
.b_gap24 { gap: 24px; }
.b_gap26 { gap: 26px; }
.b_gap28 { gap: 28px; }
.b_gap30 { gap: 30px; }
.b_gap40 { gap: 40px; }
.b_gap65 { gap: 65px; }
.b_p8 { padding: 8px; }
.b_p16 { padding: 16px; }
.b_p24 { padding: 24px; }
.b_p30 { padding: 30px; }
.b_ptb8 { padding-top: 8px; padding-bottom: 8px; }
.b_pt100 { padding-top: 100px; }
.b_pb100 { padding-bottom: 100px; }
.b_ptb100 { padding-top: 100px; padding-bottom: 100px; }
.b_ptb70 { padding-top: 70px; padding-bottom: 70px; }
.b_pt70 { padding-top: 70px; }
.b_pb70 { padding-bottom: 70px; }
.b_ptb50 { padding-top: 50px; padding-bottom: 50px; }
.b_m0 { margin: 0; }
.b_mt20 { margin-top: 20px; }
.b_mt30 { margin-top: 30px; }
.b_mt40 { margin-top: 40px; }
.b_mt50 { margin-top: 50px; }
.b_mb10 { margin-bottom: 10px; }
.b_mb20 { margin-bottom: 20px; }
.b_mb30 { margin-bottom: 30px; }
.b_mb40 { margin-bottom: 40px; }
.b_m12_0_17 { margin: 12px 0 17px; }
.b_m10_0_0 { margin: 10px 0 0; }
.b_m0auto { margin-left: auto; margin-right: auto; }
/* ---- Category: typography utilities ---- */
.b_fw600 { font-weight: 600; }
.b_fw700 { font-weight: 700; }
.b_fw800 { font-weight: 800; }
.b_fw900 { font-weight: 900; }
.b_ls1em { letter-spacing: 0.1em; }
.b_ls15em { letter-spacing: 0.15em; }
.b_ls16em { letter-spacing: 0.16em; }
.b_ttup { text-transform: uppercase; }
.b_fs11 { font-size: 11px; }
.b_fs12 { font-size: 12px; }
.b_fs13 { font-size: 13px; }
.b_fs14 { font-size: 14px; }
.b_fs15 { font-size: 15px; }
.b_fs16 { font-size: 16px; }
.b_fs17 { font-size: 17px; }
.b_fs18 { font-size: 18px; }
.b_fs19 { font-size: 19px; }
.b_fs20 { font-size: 20px; }
.b_fs22 { font-size: 22px; }
.b_fs24 { font-size: 24px; }
.b_tac { text-align: center; }
/* ---- Category: sizing and radius utilities ---- */
.b_w100p { width: 100%; }
.b_h100p { height: 100%; }
.b_w30 { width: 30px; }
.b_w40 { width: 40px; }
.b_w50 { width: 50px; }
.b_w60 { width: 60px; }
.b_maxw600 { max-width: 600px; }
.b_maxw700 { max-width: 700px; }
.b_maxw760 { max-width: 760px; }
.b_brd8 { border-radius: 8px; }
.b_brd10 { border-radius: 10px; }
.b_brd12 { border-radius: 12px; }
.b_brd18 { border-radius: 18px; }
.b_brd24 { border-radius: 24px; }
.b_brd50 { border-radius: 50%; }
.b_brd18_tl0 { border-radius: 18px; border-top-left-radius: 0; }
.b_brd1_line { border: 1px solid #e3e8f1; }
.b_brd1_w18 { border: 1px solid rgba(255, 255, 255, 0.18); }
.b_trs2 { transition: 0.2s; }
/* ---- Category: hover states (single property each) ---- */
.b_hov_up:hover { transform: translateY(-2px); }
.b_hov_bg2:hover { background-color: #e3b62c; }
.b_hov_bg1:hover { background-color: #0f2244; }
.b_hov_fc2:hover { color: #ffffff; }
.b_hov_brd7:hover { color: #e3b62c; }
/* ---- Category: topbar (branded: light navy tint) ---- */
.b_topbar { background-color: #e8edf5; color: #16294a; font-size: 13px; padding: 8px 0; }
.b_toplist li { color: #16294a; }
.b_toplist a:hover { color: #e3b62c; }
.b_ic14 { width: 14px; height: 14px; display: block; }
.b_ic12 { width: 12px; height: 12px; display: block; }
.b_socl { width: 18px; height: 18px; color: #16294a; transition: all ease 0.5s; }
.b_socl:hover { color: #e3b62c; }
/* ---- Category: header and navigation ---- */
.b_hdr {
    background-color: #ffffff;
    border-bottom: 1px solid #e3e8f1;
    padding: 0;
    position: sticky;
    top: 0;
    z-index: 20;
}
.b_logo { width: 210px; height: auto; display: block; }
.b_nav { flex-wrap: wrap; }
.b_navlink {
    color: #16294a;
    font-family: URClassico-Regular, Mulish, sans-serif;
    font-size: 16px;
    padding: 36px 0;
    transition: all ease 0.5s;
}
.b_navlink:hover { color: #e3b62c; }
.b_navitem { position: relative; }
.b_dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 230px;
    padding: 10px 0;
    display: none;
    z-index: 25;
    box-shadow: 0 14px 30px rgba(16, 41, 74, 0.14);
}
.b_navitem:hover .b_dropdown { display: block; }
.b_droplink {
    display: block;
    padding: 9px 18px;
    color: #16294a;
    font-size: 14px;
    font-weight: 600;
    transition: 0.2s;
}
.b_droplink:hover { background-color: #f4f6fb; color: #0f2244; }
/* ---- Category: buttons and links (theme .btn / .link) ---- */
.b_btn1, .b_btn2, .b_btn5 {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 16px 30px;
    font-weight: 700;
    font-size: 15px;
    line-height: 1.2;
    border: none;
    border-radius: 0;
    overflow: hidden;
    cursor: pointer;
    transition: all ease 0.5s;
}
.b_btn1::before, .b_btn2::before, .b_btn5::before {
    position: absolute;
    top: -5%;
    left: -5%;
    content: "";
    width: 0;
    height: 110%;
    z-index: -1;
    border-radius: 5px;
    transform: skewX(15deg);
    overflow: hidden;
    transition: all ease 0.5s;
}
.b_btn1:hover::before, .b_btn2:hover::before, .b_btn5:hover::before { width: 110%; }
.b_btn1 img, .b_btn2 img, .b_btn5 img { display: block; transition: all ease 0.5s; }
/* .btn.style-one */
.b_btn1 { background-color: #e3b62c; color: #0f2244; }
.b_btn1::before { background-color: #16294a; }
.b_btn1:hover { color: #ffffff; }
.b_btn1:hover img { filter: brightness(0) invert(1); }
/* .btn.style-three */
.b_btn2 { background-color: #0f2244; color: #ffffff; }
.b_btn2::before { background-color: #e3b62c; }
.b_btn2:hover { background-color: #e3b62c; color: #16294a; }
/* .btn.style-five */
.b_btn5 { background-color: transparent; color: #0f2244; border: 1px solid #0f2244; }
.b_btn5::before { background-color: #0f2244; }
.b_btn5:hover { color: #ffffff; }
.b_btn5:hover img { filter: brightness(0) invert(1); }
/* .link with the animated underline */
.b_link {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
    text-decoration: none;
}
.b_link::after {
    position: absolute;
    bottom: -2px;
    left: 0;
    content: "";
    width: 0;
    height: 1px;
    visibility: hidden;
    opacity: 0;
    transition: all ease 0.5s;
}
.b_link:hover::after { width: 100%; visibility: visible; opacity: 1; }
.b_link img { display: block; transition: all ease 0.5s; }
.b_link:hover img { margin-left: 13px; }
.b_svc_link img { display: block; transition: all ease 0.5s; }
.b_svc_link:hover img { margin-left: 13px; }
/* the original page turns every image white on hover (wp-custom-css) */
.b_brandlogo:hover,
.b_cert_grid img:hover,
.b_testi_img:hover,
.b_about_img:hover,
.b_wh_img:hover,
.b_blogimg:hover { background-color: #ffffff !important; }
.b_link1 { color: #0f2244; }
.b_link1::after { background-color: #0f2244; }
.b_link2 { color: #e3b62c; }
.b_link2::after { background-color: #e3b62c; }
.b_link3 { color: #16294a; }
.b_link3::after { background-color: #16294a; }
/* ---- Category: burger and off-canvas ---- */
.b_burger { width: 34px; height: 24px; display: none; cursor: pointer; }
.b_bline { display: block; height: 3px; background-color: #16294a; border-radius: 3px; margin: 4px 0; }
.b_offcanvas { position: fixed; inset: 0; background-color: rgba(10, 26, 51, 0.55); display: none; z-index: 60; }
.b_offcanvas_on { display: block; }
.b_offpanel {
    width: min(330px, 86%);
    height: 100%;
    margin-left: auto;
    overflow-y: auto;
    box-shadow: -12px 0 30px rgba(15, 34, 68, 0.22);
}
.b_offclose { font-size: 26px; line-height: 1; color: #16294a; background-color: transparent; cursor: pointer; }
.b_offmenu { padding: 8px 0 26px; }
.b_offlink {
    display: block;
    padding: 13px 22px;
    border-bottom: 1px solid #e8ecf4;
    color: #16294a;
    font-weight: 700;
    font-size: 15px;
}
.b_offlink:hover { color: #0f2244; }
.b_offbtn { margin: 18px 22px 0; }
/* ---- Category: form feedback (chat + terms of the processors) ---- */
.b_msg { border-radius: 10px; padding: 12px 14px; font-size: 13px; margin-top: 14px; }
.b_msg_ok { background-color: #eaf7ee; color: #1d6b39; }
.b_msg_err { background-color: #fdeaea; color: #b3261e; }
/* ============================================================
   HOME SECTIONS
   ============================================================ */
/* ---- Category: hero banner (fade) with the service strip laid over it ---- */
.b_hero { position: relative; }
.b_hero_slider { position: relative; z-index: 1; overflow: hidden; }
.b_hero_slides { display: grid; background-color: #0a1a33; }
.b_hero_slide {
    grid-area: 1 / 1;
    position: relative;
    z-index: 0;
    height: 830px;
    opacity: 0;
    transition: opacity 0.5s ease;
    background-size: cover;
    background-position: center center;
    background-color: #0f2244;
}
.b_hero_slide.b_slide_on { opacity: 1; z-index: 1; }
/* the first slide stays visible until the slider is initialised, so the hero
   never renders empty (the class is added by bSlider once it has started) */
.b_hero_slider:not(.b_slider_ready) .b_hero_slide:first-child { opacity: 1; }
.b_hero_slide::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(10, 26, 51, 0.5);
}
.b_hero_s1 { background-image: url(../images/hero-1.png); }
.b_hero_s2 { background-image: url(../images/hero-2.png); }
.b_hero_s3 { background-image: url(../images/hero-3.png); }
.b_hero_s4 { background-image: url(../images/hero-4.png); }
.b_hero_txt { position: relative; z-index: 5; max-width: 700px; padding-top: 100px; }
.b_hero_h1 {
    font-family: GT-Super-Display-Super, URClassico-Bold, Georgia, serif;
    color: #ffffff;
    font-size: 64px;
    line-height: 75px;
    font-weight: 700;
    margin: 0 0 20px;
}
.b_hero_p { color: #dfe5f0; font-size: 16px; line-height: 28px; margin: 0; }
/* ---- Category: service strip of the hero (bottom aligned, hover reveal) ---- */
.b_hero_strip {
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 100%;
    height: 100%;
    overflow: hidden;
    transform: translateX(-50%);
    z-index: 2;
}
.b_hero_strip_track { display: flex; height: 100%; transition: transform 0.5s ease; }
.b_thumb {
    flex: 0 0 100%;
    height: 100%;
    padding: 0 20px 80px 50px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    border-right: 1px solid rgba(255, 255, 255, 0.16);
    position: relative;
    z-index: 1;
    cursor: pointer;
}
.b_thumb::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    background: linear-gradient(0deg, #0a1a33 0%, rgba(255, 255, 255, 0.01) 64%);
    visibility: hidden;
    opacity: 0;
    transition: 0.5s;
}
.b_thumb:hover::after { visibility: visible; opacity: 1; }
.b_thumb_ic { width: 34px; height: 34px; display: block; }
.b_thumb_h {
    color: #ffffff;
    font-size: 21px;
    line-height: 31px;
    font-weight: 400;
    font-family: GT-Super-Display-Medium, URClassico-Bold, Georgia, serif;
    margin: 20px 0 0;
}
.b_thumb_p {
    color: #ffffff;
    font-size: 16px;
    line-height: 28px;
    margin: 0;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.5s ease, opacity 0.5s ease, margin 0.5s ease;
}
.b_thumb:hover .b_thumb_p { max-height: 200px; opacity: 1; margin: 15px 0 0; }
.b_thumb_link { display: inline-block; margin-top: 0; padding-left: 3px; opacity: 0; transition: 0.5s; }
.b_thumb:hover .b_thumb_link { opacity: 1; margin-top: 15px; }
.b_thumb_cover { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
/* ---- Category: slider arrows (white circles that turn navy on hover) ---- */
.b_arrows { display: flex; align-items: center; gap: 12px; }
.b_arrow {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    border: 0;
    background-color: #ffffff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: 0.5s;
}
.b_arrow:hover { background-color: #0f2244; }
.b_arrow img { width: 18px; height: 18px; display: block; }
/* ---- Category: hero arrows over the slide ---- */
.b_hero_arrows { position: absolute; top: 55%; left: 0; right: 0; z-index: 5; }
.b_hero_arrows .b_arrow { position: absolute; }
.b_hero_arrows .b_arrow:first-child { left: 8px; }
.b_hero_arrows .b_arrow:last-child { right: 8px; }
/* ---- Category: section headings ---- */
.b_intro { padding: 100px 0; }
.b_h2 {
    font-family: URClassico-Bold, Georgia, serif;
    font-size: 42px;
    line-height: 54px;
    font-weight: 700;
    color: #16294a;
    margin: 0;
}
.b_f_gt { font-family: GT-Super-Display-Super, URClassico-Bold, Georgia, serif; }
.b_lead { font-size: 16px; line-height: 28px; color: #414b60; margin: 16px 0 0; }
.b_kicker { font-size: 12px; font-weight: 900; letter-spacing: 0.16em; text-transform: uppercase; color: #0f2244; }
/* ---- Category: insurance provider band (theme .brand-wrap.style-two) ---- */
.b_brandrow {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    border: 1px solid #e3e8f1;
    margin-top: 50px;
}
.b_brandrow > * {
    width: 25%;
    padding: 74.5px 20px;
    border-right: 1px solid #e3e8f1;
    transition: all ease 0.5s;
}
.b_brandrow > *:last-child { border-right: none; }
.b_brandrow > *:hover { background-color: #e3e8f1; }
.b_brandrow > *:hover img { transform: scale(1.04); }
.b_brandlogo { width: 100%; max-width: 220px; height: auto; display: block; margin: 0 auto; transition: all ease 0.5s; }
/* ---- Category: about ---- */
.b_about_grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.b_about_img { border-radius: 18px; }
.b_featlist { padding: 0; margin: 22px 0 30px; }
.b_featli { position: relative; padding-left: 28px; margin: 12px 0; font-size: 15px; color: #414b60; }
.b_featli::before {
    content: "\2713";
    position: absolute;
    left: 0;
    color: #e3b62c;
    font-weight: 900;
}
/* ---- Category: service cards (theme .service-card.style-one) ---- */
.b_svc_grid { display: flex; flex-wrap: wrap; align-items: flex-start; }
.b_svc_title { width: calc(41% - 12px); margin: 0 0 30px; }
.b_svc_card {
    width: calc(28.7% - 12px);
    min-height: 360px;
    padding: 35px 25px 25px;
    margin: 0 20px 30px 0;
    background-color: #e9eef7;
    transition: all ease 0.5s;
}
.b_svc_grid > .b_svc_card:nth-child(2),
.b_svc_grid > .b_svc_card:nth-child(3) { width: calc(30% - 30px); margin-right: 0; }
.b_svc_card:hover { transform: translateY(-5px); }
.b_svc_1 { background-color: #e9eef7; }
.b_svc_2 { background-color: #faf3da; }
.b_svc_3 { background-color: #eef1f8; }
.b_svc_4 { background-color: #eef2f9; }
.b_svc_5 { background-color: #f6f8fc; }
.b_svc_icon {
    width: 100px;
    height: 100px;
    margin-bottom: 95px;
    border-radius: 50%;
    background-color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
}
.b_svc_icon img { width: 46px; height: 46px; display: block; }
.b_svc_h { margin: 0 50px 12px 0; font-size: 22px; line-height: 30px; font-weight: 700; }
.b_svc_h a { color: #16294a; text-decoration: none; }
.b_svc_h a:hover { color: #e3b62c; }
.b_svc_link {
    position: relative;
    color: #e3b62c;
    font-weight: 600;
    font-size: 16px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
}
.b_svc_link::after {
    position: absolute;
    bottom: -2px;
    left: 0;
    content: "";
    width: 0;
    height: 1px;
    background-color: #e3b62c;
    visibility: hidden;
    opacity: 0;
    transition: all ease 0.5s;
}
.b_svc_link:hover::after { width: 100%; visibility: visible; opacity: 1; }
.b_svc_btnrow { display: flex; justify-content: center; margin-bottom: 30px; }
/* vertical "View All Services" button of the theme */
.b_svc_btncell { width: 125px; min-height: 360px; margin: 0 20px 30px 0; }
.b_svc_vbtn {
    position: relative;
    z-index: 1;
    width: 100%;
    min-height: 360px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background-color: transparent;
    border: 1px solid #0f2244;
    color: #0f2244;
    font-weight: 700;
    font-size: 15px;
    text-decoration: none;
    transition: all ease 0.5s;
}
.b_svc_vbtn::before {
    position: absolute;
    top: -5%;
    left: -5%;
    content: "";
    width: 0;
    height: 110%;
    z-index: -1;
    background-color: #0f2244;
    transform: skewX(15deg);
    transition: all ease 0.5s;
}
.b_svc_vbtn:hover::before { width: 110%; }
.b_svc_vbtn:hover { color: #ffffff; }
.b_svc_vbtn span {
    display: block;
    width: 200px;
    height: 30px;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%) rotate(-90deg);
    text-align: center;
}
/* ---- Category: why choose slider ---- */
.b_wh_grid { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: center; }
.b_wh_grid > * { min-width: 0; }
.b_wh_slider { overflow: hidden; }
.b_wh_slides { display: flex; transition: transform 0.5s ease; }
.b_wh_card { flex: 0 0 100%; }
.b_wh_num {
    display: block;
    font-family: GT-Super-Display-Bold, URClassico-Bold, Georgia, serif;
    font-size: 80px;
    line-height: 58px;
    font-weight: 700;
    color: #16294a;
}
.b_wh_h {
    font-family: GT-Super-Display-Super, URClassico-Bold, Georgia, serif;
    font-size: 22px;
    line-height: 30px;
    font-weight: 700;
    color: #16294a;
    margin: 23px 0 14px;
}
.b_wh_img { width: 100%; height: auto; display: block; filter: drop-shadow(0 4px 44px rgba(16, 41, 74, 0.16)); }
.b_wh_btnrow { display: flex; align-items: center; gap: 30px; flex-wrap: wrap; margin-top: 30px; }
.b_call {
    display: inline-flex;
    align-items: center;
    background-color: #ffffff;
    border-radius: 50px;
    padding: 12px 27px;
}
.b_call_icon { width: 30px; margin-right: 20px; display: block; flex: 0 0 auto; }
.b_call_icon img { width: 30px; height: auto; display: block; }
.b_call_lbl { display: block; font-size: 14px; color: #414b60; }
.b_call_num { display: block; font-size: 18px; font-weight: 800; color: #16294a; }
/* ---- Category: what set us apart ---- */
.b_apart_grid { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 40px; align-items: center; }
/* ---- Category: how it works ---- */
.b_how_grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px; }
.b_how_card { position: relative; padding: 8px 25px 39px; background-color: #f4f6fb; transition: 0.5s; }
.b_how_card:hover { transform: translateY(-5px); }
.b_how_one { background-color: #e9eef7; }
.b_how_two { background-color: #faf3da; }
.b_how_three { background-color: #eef1f8; }
.b_how_num {
    display: block;
    font-family: GT-Super-Display-Super, URClassico-Bold, Georgia, serif;
    font-size: 80px;
    line-height: 80px;
    font-weight: 700;
    color: #16294a;
    text-align: right;
    margin-bottom: 40px;
}
.b_how_h { font-size: 22px; line-height: 30px; font-weight: 700; color: #16294a; margin: 0 0 16px; }
.b_how_p { color: #414b60; font-size: 16px; line-height: 28px; margin: 0; }
/* ---- Category: full width image band ---- */
.b_imgband { padding: 100px 0 0; }
/* ---- Category: booking and consultation ---- */
.b_book_grid { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: start; }
.b_book_h { font-size: 34px; line-height: 1.2; font-weight: 800; color: #16294a; margin: 0 0 16px; }
.b_book_sub { font-size: 24px; font-weight: 700; color: #16294a; margin: 24px 0 10px; }
.b_book_note { font-size: 18px; font-weight: 600; color: #16294a; margin: 20px 0 0; }
.b_book_form { background-color: #ffffff; border: 1px solid #e3e8f1; border-radius: 10px; padding: 30px; }
.b_frow { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.b_fgroup { margin-bottom: 16px; }
.b_flabel { display: block; font-weight: 700; font-size: 13px; color: #16294a; margin-bottom: 6px; }
.b_finput {
    width: 100%;
    height: 44px;
    border: 1px solid #dfe4ee;
    border-radius: 6px;
    padding: 0 12px;
    font-size: 14px;
    background-color: #ffffff;
    color: #16294a;
}
.b_farea { min-height: 140px; height: auto; padding: 10px 12px; }
.b_fset { border: 1px solid #e3e8f1; border-radius: 8px; padding: 14px 16px; margin: 16px 0 20px; }
.b_flegend { font-weight: 800; font-size: 14px; color: #16294a; padding: 0 6px; }
.b_fcheck {
    display: grid;
    grid-template-columns: 15% 85%;
    align-items: center;
    width: 100%;
    margin: 8px 0;
    font-size: 15px;
    color: #414b60;
}
.b_fcheck input[type="checkbox"] {
    grid-column: 1;
    justify-self: start;
    margin: 0;
    transform: scale(0.5);
    transform-origin: left center;
}
.b_fcheck > *:not(input) { grid-column: 2; text-align: left; }
.b_fsubmit { border: 0; cursor: pointer; }
/* ---- Category: certification strip ---- */
.b_cert_grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; align-items: center; }
.b_cert_grid img { width: 100%; height: auto; display: block; }
/* ---- Category: service grid extras ---- */
.b_svc_btncell { display: flex; align-items: center; justify-content: center; }
/* ---- Category: what set as apart ---- */
.b_apart_note { font-size: 18px; font-weight: 700; color: #16294a; }
/* ---- Category: testimonials (theme .testimonial-card.style-one) ---- */
.b_testi_grid { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 50px; align-items: center; }
.b_testi_grid > * { min-width: 0; }
.b_testi_img { width: 100%; height: auto; display: block; }
.b_testi_slider { overflow: hidden; }
.b_testi_slides { display: flex; transition: transform 0.5s ease; }
.b_tslide { flex: 0 0 100%; }
.b_tcard { background-color: transparent; padding: 0; }
.b_tmeta { display: flex; align-items: center; flex-wrap: wrap; font-size: 16px; line-height: 1; color: #56617a; }
.b_tmeta > img { margin-right: 10px; display: block; }
.b_tstars { display: inline-flex; align-items: center; position: relative; top: -3px; margin: 0 0 0 4px; padding: 0; }
.b_tstars img { display: block; }
.b_tstars li { margin-right: -4px; }
.b_ttext { color: #414b60; font-size: 16px; line-height: 28px; margin: 20px 0 30px; }
.b_tclient { display: flex; align-items: center; }
.b_tavatar { width: 46px; height: 46px; position: relative; top: -3px; border-radius: 50%; overflow: hidden; }
.b_tavatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.b_tclient > span:last-child { margin-left: 10px; }
.b_tname { display: block; font-size: 16px; font-weight: 700; color: #16294a; }
.b_trev { display: block; font-size: 14px; color: #6b7485; }
/* ---- Category: counters band ---- */
.b_bg_yellow { background-color: #f7ebc6; }
.b_counters { background-color: #f7ebc6; color: #16294a; }
.b_count_grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; text-align: center; }
.b_counter_n {
    display: block;
    font-family: GT-Super-Display-Super, URClassico-Bold, Georgia, serif;
    font-size: 54px;
    line-height: 1;
    font-weight: 700;
    color: #16294a;
    margin-bottom: 10px;
}
.b_counter_l { font-size: 13px; letter-spacing: 2.6px; text-transform: uppercase; color: #414b60; }
/* ---- Category: faq accordion (theme .accordion) ---- */
.b_faq_grid { display: grid; grid-template-columns: 1fr 1fr; gap: 34px; align-items: start; }
.b_acc_item { border: none; margin: 0 0 24px; background-color: transparent; }
.b_acc_item:last-child { margin-bottom: 0; }
.b_acc_btn {
    position: relative;
    z-index: 3;
    width: 100%;
    text-align: left;
    margin: 0;
    padding: 22px 40px 22px 25px;
    font-family: Mulish, URClassico-Regular, sans-serif;
    font-size: 17px;
    font-weight: 600;
    line-height: 26px;
    color: #16294a;
    background-color: #eef2f8;
    border: none;
    border-radius: 0;
    cursor: pointer;
    transition: all ease 0.5s;
}
.b_acc_btn:focus { outline: none; }
.b_acc_icon {
    position: absolute;
    top: 18px;
    right: 27px;
    width: 25px;
    height: 25px;
    font-size: 19px;
    font-weight: 300;
    line-height: 1;
    text-align: right;
    color: #16294a;
    transition: all ease 0.5s;
}
.b_acc_open .b_acc_icon { transform: rotate(-180deg); }
.b_acc_panel { max-height: 0; overflow: hidden; transition: max-height 0.35s ease; }
.b_acc_open .b_acc_panel { max-height: 420px; }
.b_acc_body { background-color: #eef2f8; color: #414b60; font-size: 16px; line-height: 28px; }
.b_acc_body p { margin: 0 30px 0 25px; padding: 8px 0 30px; }
/* ---- Category: blog ---- */
.b_blog_wrap { position: relative; }
.b_blog_grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.b_blogcard { position: relative; }
.b_blogimg { width: 100%; height: 200px; object-fit: cover; display: block; margin-bottom: 22px; }
.b_blogmeta {
    position: absolute;
    top: 144px;
    right: 0;
    display: inline-flex;
    align-items: center;
    gap: 15px;
    background-color: #ffffff;
    padding: 11px 15px;
    margin: 0;
    font-size: 15px;
    color: #56617a;
    transition: all ease 0.5s;
}
.b_blogmeta span { position: relative; padding-left: 25px; display: inline-block; }
.b_blogmeta img { position: absolute; top: 3.5px; left: 0; width: 15px; height: 15px; display: block; transition: all ease 0.5s; }
.b_blogcard:hover .b_blogmeta { background-color: #16294a; color: #cfd6e4; }
.b_blogcard:hover .b_blogmeta img { filter: brightness(0) invert(1); }
.b_blogh { font-family: GT-Super-Display-Super, URClassico-Bold, Georgia, serif; font-size: 24px; line-height: 34px; font-weight: 700; margin: 0 0 12px; }
.b_blogh a { color: #16294a; text-decoration: none; }
.b_blogh a:hover { color: #e3b62c; }
.b_blog_arrows { position: absolute; top: 34%; left: 0; right: 0; z-index: 1; }
.b_blog_arrows .b_arrow { position: absolute; background-color: #ffffff; border: 1px solid #0f2244; }
.b_blog_arrows .b_arrow:first-child { left: 5px; }
.b_blog_arrows .b_arrow:last-child { right: 5px; }
.b_blog_arrows .b_arrow:hover { border-color: transparent; background-color: #0f2244; }
.b_blog_arrows .b_arrow:hover img { filter: brightness(0) invert(1); }
/* ---- Category: footer ---- */
.b_footer { background-color: #0f2244; color: #ffffff; }
.b_footer_grid { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 44px; }
.b_fh { font-size: 18px; font-weight: 800; color: #ffffff; margin: 0 0 18px; }
.b_fh_sm { font-size: 16px; font-weight: 700; color: #ffffff; margin: 0 0 14px; }
.b_fmenu { margin: 0; padding: 0; }
.b_fmenu li { margin: 10px 0; }
.b_fmenu a { color: #c9d4e8; text-decoration: none; font-size: 15px; }
.b_fmenu a:hover { color: #ffffff; }
.b_faddr { color: #c9d4e8; font-size: 15px; margin: 14px 0 8px; }
.b_fcontact a { color: #ffffff; text-decoration: none; }
.b_fsoc { display: flex; gap: 8px; margin: 18px 0 0; padding: 0; }
.b_fsoc .b_socl { color: #ffffff; opacity: 0.9; }
.b_fsoc .b_socl:hover { color: #0f2244; opacity: 1; }
.b_newsletter { margin-bottom: 30px; }
.b_ninput {
    width: 100%;
    height: 44px;
    border: 0;
    border-radius: 6px;
    padding: 0 12px;
    font-size: 14px;
    margin-bottom: 12px;
    background-color: #ffffff;
    color: #16294a;
}
.b_nbtn { width: 100%; }
.b_topics { margin: 0; padding: 0; }
.b_topici { display: flex; align-items: center; gap: 10px; margin: 10px 0; color: #ffffff; font-size: 15px; }
.b_topici::before {
    content: "\2713";
    color: #ffffff;
    font-weight: 900;
}
.b_copyright {
    border-top: 1px solid rgba(255, 255, 255, 0.28);
    padding: 20px 0;
    text-align: center;
    color: #ffffff;
    font-size: 14px;
}
.b_copyright a { color: #ffffff; font-weight: 700; text-decoration: none; }
/* ---- Category: back to top ---- */
.b_backtop {
    position: fixed;
    right: 16px;
    bottom: 86px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 0;
    background-color: #e3b62c;
    color: #0f2244;
    font-size: 20px;
    line-height: 1;
    display: none;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 35;
}
.b_backtop_on { display: flex; }
/* ---- Category: scroll reveal ---- */
.b_reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.6s ease, transform 0.6s ease; }
.b_reveal_on { opacity: 1; transform: none; }
/* ============================================================
   CHAT WIDGET (services of kprocess_0 and kprocess_2)
   ============================================================ */
.b_chat_starter {
    position: fixed;
    right: calc(16px + env(safe-area-inset-right, 0px));
    bottom: calc(20px + env(safe-area-inset-bottom, 0px));
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background-color: #e3b62c;
    color: #0f2244;
    border: 2px solid #0f2244;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 6px 18px rgba(15, 34, 68, 0.45);
    z-index: 30;
    cursor: pointer;
}
.b_chat_starter:hover { background-color: #0f2244; color: #e3b62c; }
.b_w24 { width: 24px; }
.b_h24 { height: 24px; }
.b_inset0 { inset: 0; }
.b_zi40 { z-index: 40; }
.b_ovfx_auto { overflow-x: auto; }
.b_wsn { white-space: nowrap; }
.b_chat_header {
    padding: 12px 16px;
    background-color: #0f2244;
    color: #ffffff;
    font-weight: bold;
    font-size: 14px;
}
.b_chatlogo {
    display: block;
    width: 78px;
    height: auto;
    padding: 3px 5px;
    border-radius: 4px;
    background-color: #ffffff;
}
.b_chat_history {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 10px;
}
.b_chat_input_area {
    display: flex;
    padding: 8px;
    border-top: 1px solid #e0e0e0;
}
.b_chat_input {
    flex: 1;
    border: 1px solid #ccc;
    border-radius: 18px;
    padding: 8px 12px;
    font-size: 14px;
    outline: none;
}
.b_chat_send {
    width: 38px;
    height: 38px;
    margin-left: 6px;
    border: none;
    border-radius: 50%;
    background-color: #e3b62c;
    color: #0f2244;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}
/* ---- Category: responsive overrides ---- */
@media (max-width: 1024px) {
    .b_about_grid { grid-template-columns: 1fr; gap: 34px; }
    .b_wh_grid { grid-template-columns: 1fr; gap: 34px; }
    .b_book_grid { grid-template-columns: 1fr; }
    .b_testi_grid { grid-template-columns: 1fr; }
    .b_faq_grid { grid-template-columns: 1fr; }
    .b_apart_grid { grid-template-columns: 1fr; }
    .b_how_grid { grid-template-columns: 1fr; }
    .b_svc_grid { grid-template-columns: 1fr 1fr; }
    .b_blog_grid { grid-template-columns: 1fr 1fr; }
    .b_count_grid { grid-template-columns: 1fr 1fr; }
    .b_cert_grid { grid-template-columns: repeat(3, 1fr); }
    .b_brandrow { grid-template-columns: 1fr 1fr; }
    .b_footer_grid { grid-template-columns: 1fr 1fr; }
    .b_h2 { font-size: 34px; }
}
@media (max-width: 640px) {
    .b_nav { display: none; }
    .b_burger { display: block; flex: 0 0 auto; }
    .b_hdr .b_container { flex-wrap: wrap; row-gap: 8px; }
    .b_hide_xs { display: none; }
    .b_intro { padding: 64px 0; }
    .b_h2 { font-size: 27px; }
    .b_book_h { font-size: 26px; }
    .b_thumb { flex: 0 0 100%; }
    .b_svc_grid { grid-template-columns: 1fr; }
    .b_svc_title, .b_svc_card,
    .b_svc_grid > .b_svc_card:nth-child(2),
    .b_svc_grid > .b_svc_card:nth-child(3) { width: 100%; margin-right: 0; }
    .b_svc_h { margin-right: 0; }
    .b_svc_icon { margin-bottom: 30px; }
    .b_blog_grid { grid-template-columns: 1fr; }
    .b_count_grid { grid-template-columns: 1fr; }
    .b_cert_grid { grid-template-columns: 1fr 1fr; }
    .b_footer_grid { grid-template-columns: 1fr; }
    .b_frow { grid-template-columns: 1fr; }
    .b_logo { width: 120px; }
    .b_btn { padding: 12px 18px; }
    .b_backtop { bottom: 80px; }
    .b_chat_starter { bottom: calc(24px + env(safe-area-inset-bottom, 0px)); }
}
/* desktop chat panel */
@media (min-width: 769px) {
    .b_inset0 { inset: auto 16px 84px auto; }
    .b_chat_w { width: 320px; }
    .b_chat_h { height: 560px; }
    .b_chat_rd { border-radius: 12px; }
    .b_chat_shd { box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25); }
    .b_chat_ui { font-size: 13px; }
    .b_chat_topbar { padding: 8px 16px; }
    .b_chat_header { font-size: 12px; }
    .b_chat_input { font-size: 12px; }
    .b_chat_send { font-size: 14px; }
    .b_chiprow { font-size: 12px; }
}
.b_terms { color: #414b60; }
/* ============================================================
   INNER PAGES (b_page) - banner, prose, tiles, pricing, team
   ============================================================ */
.b_bnr { background-color: #09093a; color: #ffffff; padding: 70px 0 60px; }
.b_bnr_h1 {
    font-family: GT-Super-Display-Super, URClassico-Bold, Georgia, serif;
    color: #ffffff;
    font-size: 42px;
    line-height: 54px;
    margin: 0;
}
.b_bnr_crumb { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 14px 0 0; padding: 0; font-size: 15px; color: #c9d4e8; }
.b_bnr_crumb a { color: #e3b62c; text-decoration: none; }
.b_bnr_crumb a:hover { color: #ffffff; }
.b_bnr_crumb li + li:before { content: "/"; margin-right: 8px; color: #c9d4e8; }
/* prose blocks */
.b_prose { color: #414b60; font-size: 16px; line-height: 28px; }
.b_prose h2 { font-family: GT-Super-Display-Super, URClassico-Bold, Georgia, serif; font-size: 34px; line-height: 44px; color: #16294a; margin: 0 0 18px; }
.b_prose h3 { font-size: 22px; line-height: 30px; color: #16294a; margin: 0 0 12px; }
.b_prose p { margin: 0 0 18px; }
.b_prose ul { margin: 0 0 18px; padding: 0; list-style: none; }
.b_prose ul li { position: relative; padding-left: 28px; margin: 10px 0; }
.b_prose ul li:before { content: "\2713"; position: absolute; left: 0; color: #e3b62c; font-weight: 900; }
.b_prose .b_lead { font-size: 17px; }
/* section heading helpers */
.b_sec_h { font-family: GT-Super-Display-Super, URClassico-Bold, Georgia, serif; font-size: 34px; line-height: 44px; color: #16294a; margin: 0 0 10px; }
.b_sec_kick { font-size: 12px; font-weight: 900; letter-spacing: 0.16em; text-transform: uppercase; color: #e3b62c; }
.b_center { text-align: center; }
/* generic tile grid */
.b_tiles { display: flex; flex-wrap: wrap; margin: 0 -12px; }
.b_tiles > * { width: calc(33.333% - 24px); margin: 0 12px 24px; }
.b_tile { background-color: #e9eef7; padding: 30px 26px; transition: all ease 0.5s; }
.b_tile:hover { transform: translateY(-5px); }
.b_tile_gold { background-color: #faf3da; }
.b_tile_2 { width: calc(50% - 24px); }
.b_tile_h { font-size: 20px; line-height: 28px; font-weight: 700; color: #16294a; margin: 0 0 10px; }
.b_tile_p { color: #414b60; font-size: 15px; line-height: 26px; margin: 0; }
/* team */
.b_teamcard { text-align: center; }
.b_mono {
    width: 110px;
    height: 110px;
    margin: 0 auto 18px;
    border-radius: 50%;
    background-color: #16294a;
    color: #e3b62c;
    font-family: GT-Super-Display-Super, URClassico-Bold, Georgia, serif;
    font-size: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.b_role { font-size: 12px; font-weight: 900; letter-spacing: 0.14em; text-transform: uppercase; color: #e3b62c; }
/* case studies */
.b_casecard { background-color: #f6f7fb; padding: 30px 26px; transition: all ease 0.5s; }
.b_casecard:hover { transform: translateY(-5px); }
.b_case_meta { font-size: 12px; font-weight: 900; letter-spacing: 0.14em; text-transform: uppercase; color: #e3b62c; }
.b_case_h { font-size: 20px; line-height: 28px; font-weight: 700; color: #16294a; margin: 10px 0 8px; }
.b_case_h a { color: #16294a; text-decoration: none; }
.b_case_h a:hover { color: #e3b62c; }
/* pricing / service charges */
.b_pricebox { background-color: #ffffff; border: 1px solid #e3e8f1; padding: 30px; }
/* ---- Category: service charges (description 40%, calculator 60%) ---- */
.b_charge_grid { display: grid; grid-template-columns: 40fr 60fr; gap: 40px; align-items: start; }
@media (max-width: 1024px) {
    .b_charge_grid { grid-template-columns: 1fr; }
}
.b_freadonly { background-color: #f5f5f5; }

.b_pricenum {
    font-family: GT-Super-Display-Super, URClassico-Bold, Georgia, serif;
    font-size: 34px;
    color: #16294a;
    margin: 18px 0 0;
}
/* contact tiles */
.b_ctile { background-color: #e9eef7; padding: 26px; }
.b_ctile_h { font-size: 14px; font-weight: 900; letter-spacing: 0.12em; text-transform: uppercase; color: #16294a; margin: 0 0 8px; }
.b_ctile a { color: #16294a; text-decoration: none; }
.b_ctile a:hover { color: #e3b62c; }
/* call to action band of the inner pages */
.b_ctaband { background-color: #0f2244; color: #ffffff; padding: 70px 0; }
.b_ctaband .b_sec_h { color: #ffffff; margin-bottom: 22px; }
/* pagination / list helpers */
.b_pager { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.b_pager a, .b_pager span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    background-color: #ffffff;
    border: 1px solid #e3e8f1;
    color: #16294a;
    text-decoration: none;
}
.b_pager a:hover, .b_pager span.b_on { background-color: #e3b62c; border-color: #e3b62c; color: #0f2244; }
/* javascript off: the swappable page keeps its own spacing */
#b_page { display: block; }
/* ---- Category: blog slider track ---- */
.b_blog_slider { overflow: hidden; }
.b_blog_track { display: flex; align-items: flex-start; gap: 24px; transition: transform 0.5s ease; }
.b_blog_item { flex: 0 0 calc((100% - 48px) / 3); }
.b_blogcard { height: 100%; }
/* ---- Category: shared layout helpers of the chat and topbar ---- */
.b_fw400 { font-weight: 400; }
.b_fxwrap { flex-wrap: wrap; }
.b_socrow { flex-wrap: wrap; }
/* ---- Category: footer brand ---- */
.b_footer_logo { width: 170px; height: auto; display: block; margin-bottom: 14px; }
/* ---- Category: inner page tiles stack on tablet and mobile ----
   Declared after the b_tiles base rule (inner pages section) so it wins. */
@media (max-width: 1024px) {
    .b_tiles > * { width: calc(50% - 24px); }
}
@media (max-width: 640px) {
    .b_tiles > * { width: calc(100% - 24px); }
}
/* ---- Category: responsive overrides (sliders) ---- */
@media (max-width: 1024px) {
    .b_blog_item { flex: 0 0 calc((100% - 24px) / 2); }
}
@media (max-width: 640px) {
    .b_blog_item { flex: 0 0 100%; }
    .b_blog_track { gap: 16px; }
}
/* ============================================================
   HERO BREAKPOINTS
   Mirrors the slide and service strip sizes of the original page:
   1 / 2 / 3 / 4 cards per view and the same heights and paddings.
   ============================================================ */
@media (min-width: 768px) and (max-width: 991px) {
    .b_thumb { flex: 0 0 50%; padding-bottom: 30px; padding-left: 32px; }
    .b_hero_slide { height: 650px; }
    .b_hero_slide::after { background-color: rgba(10, 26, 51, 0.55); }
    .b_hero_txt { padding-top: 60px; }
    .b_hero_h1 { font-size: 44px; line-height: 55px; }
}
@media (min-width: 992px) and (max-width: 1199px) {
    .b_thumb { flex: 0 0 33.3333%; padding-bottom: 40px; padding-left: 16px; }
    .b_hero_slide { height: 700px; }
    .b_hero_slide::after { background-color: rgba(10, 26, 51, 0.55); }
    .b_hero_txt { padding-top: 70px; }
    .b_hero_h1 { font-size: 48px; line-height: 58px; }
}
@media (min-width: 1200px) and (max-width: 1399px) {
    .b_thumb { flex: 0 0 33.3333%; }
}
@media (min-width: 1400px) {
    .b_thumb { flex: 0 0 25%; }
}
@media (min-width: 1400px) and (max-width: 1599px) {
    .b_hero_h1 { font-size: 70px; line-height: 80px; }
    .b_thumb_h { font-size: 24px; line-height: 34px; }
    .b_hero_arrows { top: 50%; }
}
@media (min-width: 1600px) {
    .b_hero_h1 { font-size: 80px; line-height: 85px; }
    .b_hero_strip { max-width: 1710px; margin: 0 auto; }
}
@media (min-width: 1820px) {
    .b_thumb { padding-left: 100px; padding-right: 50px; }
}
@media (max-width: 767px) {
    .b_thumb { flex: 0 0 100%; padding-bottom: 30px; padding-left: 32px; }
    .b_hero_slide { height: auto; padding: 300px 0; }
    .b_hero_slide::after { background-color: rgba(10, 26, 51, 0.55); }
    .b_hero_txt { padding-top: 45px; }
    .b_hero_h1 { font-size: 32px; line-height: 42px; }
}
/* ============================================================
   SECTION EXTRAS (about circle shape, apart block, counters)
   ============================================================ */
.b_about_wrap { position: relative; }
.b_about_circle {
    position: absolute;
    top: 44%;
    right: 10px;
    width: 200px;
    height: 200px;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.b_about_circle_img { width: 100%; height: auto; display: block; }
.b_apart_wrap .b_apart_grid { grid-template-columns: 1fr; }
.b_apart_wrap .b_h2 { margin-bottom: 0; }

/* Team, case study, industry and article images of the inner pages */
.b_teampic { width: 120px; height: 120px; margin: 0 auto; border-radius: 50%; object-fit: cover; display: block; }
.b_teampic_big { width: 100%; max-width: 420px; height: auto; margin: 0 auto; border-radius: 6px; display: block; }
.b_caseimg { width: 100%; height: 200px; object-fit: cover; display: block; }
.b_caseimg_big { width: 100%; max-width: 460px; height: auto; margin: 0 auto; display: block; }
.b_indimg { width: 100%; max-width: 320px; height: auto; margin: 0 auto; display: block; }
.b_postmeta { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; font-size: 15px; color: #56617a; }
.b_postmeta img { width: 15px; height: 15px; margin-right: 6px; vertical-align: middle; }



/* ============================================================
   FRAMEWORK UI - progress loader, message box and dialog box
   Geometry copied from the framework systems, brand colours applied.
   ============================================================ */
.b_ttloading { position: fixed; left: calc(50% - 60px); top: calc(40% - 60px); width: 120px; height: 120px; z-index: 55; display: none; }
.b_ttloader { border: 16px solid #e9eef7; border-radius: 50%; border-top: 16px solid #0f2244; border-bottom: 16px solid #e3b62c; width: 120px; height: 120px; animation: b_spin 2s linear infinite; }
@keyframes b_spin { 100% { transform: rotate(360deg); } }
/* CHAT LAYOUT rules are declared at the end of this file. */

.b_msgbox { position: fixed; top: 25%; left: 10%; width: 80%; min-height: 170px; box-shadow: 0 10px 30px rgba(15, 34, 68, 0.28); background-color: #ffffff; border-radius: 6px; z-index: 70; display: none; flex-direction: column; align-items: center; justify-content: center; padding: 30px 20px 20px; }
.b_msgtxt { width: 100%; text-align: center; font-family: Mulish, Arial, Helvetica, sans-serif; font-size: 15px; line-height: 24px; color: #16294a; }
.b_msgok { margin-top: 18px; font-weight: 800; font-size: 14px; letter-spacing: 0.08em; text-transform: uppercase; color: #e3b62c; text-decoration: underline; }
.b_dlgbox { position: fixed; top: 25%; left: 10%; width: 80%; min-height: 170px; box-shadow: 0 10px 30px rgba(15, 34, 68, 0.28); background-color: #ffffff; border-radius: 6px; z-index: 70; display: none; padding: 20px; overflow: auto; }


/* ============================================================
   CHAT LAYOUT - title, fixed rows and full screen height on phones
   The chat panel is exactly one visible viewport tall, its rows never shrink
   and only the conversation scrolls, so no page scrolling appears on phones.
   ============================================================ */
.b_chat_title { font-size: 14px; font-weight: 700; letter-spacing: 0.02em; }
.b_chat_header, .b_chiprow, .b_chat_input_area { flex: 0 0 auto; }
.b_chat_ui { max-height: 100%; }
body.b_view_locked { position: fixed; left: 0; right: 0; width: 100%; overflow: hidden; overscroll-behavior: none; }
@media (max-width: 767px) {
    .b_chat_ui { height: 100svh; max-height: 100svh; padding-bottom: env(safe-area-inset-bottom, 0px); }
    .b_offpanel { height: 100svh; }
    .b_offcanvas, .b_chat_ui { overscroll-behavior: none; }
}


