/* BigExcel additions. Uses the theme's CSS variables so colours follow the theme (light/dark). */

/* Dark mode: text the theme leaves on Bootstrap's default dark colour. Low specificity, so any theme or BigExcel class still wins. */
body.dark { color: var(--text-color); }
body.dark :where(h1, h2, h3, h4, h5, h6, th) { color: var(--title-color); }
body.dark :where(main p, main li, main td, main dd, main dt, main label, main small) { color: var(--text-color); }
body.dark main :where(p, li, td) a:not([class]) { color: var(--primary-color1); }
body.dark main .be-note a { color: var(--primary-color1); }
body.dark a.be-autolink { color: var(--title-color); }
/* keyword pills on About-style sections: white on pastel was unreadable in both modes */
.home4-about-us-section .about-us-left-area .feature-wrap .throwable-item { color: #1e1e1e; }

.be-card {
    display: block;
    height: 100%;
    padding: 28px;
    border: 1px solid rgba(var(--title-color-opc, 30, 30, 30), 0.12);
    border-radius: 16px;
    color: var(--text-color);
    text-decoration: none;
    transition: transform .25s ease, border-color .25s ease;
}
.be-card:hover { transform: translateY(-4px); border-color: var(--title-color); }
.be-card h3 { font-size: 22px; margin-bottom: 10px; color: var(--title-color); }
.be-card p { margin-bottom: 14px; }
.be-card-link { font-weight: 600; color: var(--title-color); }

.be-table-wrap { overflow-x: auto; margin: 0 0 8px; }
.be-table { width: 100%; border-collapse: collapse; min-width: 560px; }
.be-table th, .be-table td { padding: 14px 16px; text-align: left; border-bottom: 1px solid rgba(var(--title-color-opc, 30, 30, 30), 0.12); }
.be-table th { color: var(--title-color); font-weight: 600; white-space: nowrap; }

.be-block { margin-bottom: 70px; }
.be-block h2 { margin-bottom: 20px; }
.be-block p { margin-bottom: 14px; }
.be-bullets { list-style: disc; padding-left: 22px; }
.be-bullets li { margin-bottom: 8px; }
.be-grid-item { height: 100%; padding: 24px; border: 1px solid rgba(var(--title-color-opc, 30, 30, 30), 0.12); border-radius: 14px; }
.be-grid-item h3 { font-size: 20px; margin-bottom: 8px; color: var(--title-color); }
.be-grid-item p { margin: 0; }
.be-note { padding: 18px 22px; border-left: 4px solid var(--primary-color1); background: rgba(var(--primary-color1-opc, 166, 192, 255), 0.25); border-radius: 8px; }

/* contact form messages */
.be-alert { padding: 14px 18px; border-radius: 10px; margin-bottom: 24px; }
.be-alert.error { background: #fdecec; color: #8a1c1c; border: 1px solid #f5c2c2; }
.be-field-error { color: #b42318; font-size: 14px; margin-top: 6px; display: block; }
.be-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* product cards */
.be-flag { display: inline-block; padding: 4px 12px; border-radius: 20px; background: var(--primary-color1); color: #1e1e1e; font-size: 13px; font-weight: 600; margin-bottom: 10px; }

.be-legal h2 { font-size: 26px; margin: 34px 0 12px; }
.be-legal p, .be-legal li { margin-bottom: 12px; }
.be-legal ul { list-style: disc; padding-left: 22px; }

/* Brand logo (wide PNG with tagline): give it room in header, mobile menu, sidebar and footer */
header .header-area-wrap .company-logo img { width: 190px; height: auto; max-width: none; }
header .header-area-wrap .mobile-logo-area img, .right-sidebar-menu .sidebar-logo-wrap img { width: 170px; height: auto; }
.footer-logo img { width: 230px; height: auto; max-width: 100%; }
@media (max-width: 575px) {
    header .header-area-wrap .company-logo img { width: 150px; }
}

.single-contact-list a { text-transform: none; }

/* Single-column mega menus (Services, Industries) */
header .header-area-wrap .main-menu > ul > li .mega-menu.be-mega .menu-row { display: block; }
header .header-area-wrap .main-menu > ul > li .mega-menu.be-mega .menu-row .service-wrap { padding: 50px 60px; }
header .header-area-wrap .main-menu > ul > li .mega-menu.be-mega .menu-row .service-wrap .service-list { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 991px) {
    header .header-area-wrap .main-menu > ul > li .mega-menu.be-mega .menu-row .service-wrap { padding: 20px 0 20px 15px; }
    header .header-area-wrap .main-menu > ul > li .mega-menu.be-mega .menu-row .service-wrap .service-list { grid-template-columns: 1fr; }
}


/* Trade mark and automatic interlinks */
sup.tm { font-family: Arial, Helvetica, sans-serif; font-size: .45em; font-weight: 400; line-height: 0; vertical-align: super; letter-spacing: 0; text-transform: none; }
a.be-autolink { color: inherit; font-weight: 600; text-decoration: underline; text-decoration-color: var(--primary-color2); text-underline-offset: 3px; }
body.dark a.be-autolink { text-decoration-color: var(--primary-color1); }
a.be-autolink:hover { color: var(--primary-color2); }
body.dark a.be-autolink:hover { color: var(--primary-color1); }

/* ===== MySchoolOS page: theme tokens only, follows light and dark ===== */
:root { --mso-card: #ffffff; --mso-soft: #f4f7ff; --mso-check: #1552d6; --mso-deep: #0a1f5c; --mso-deep2: #061238; --brand-blue: #1552d6; --brand-indigo: #4252d6; }
body.dark { --mso-card: #2a2a2a; --mso-soft: #1e1e1e; --mso-check: #a6c0ff; }

.mso-hero { position: relative; overflow: hidden; padding: 120px 0 90px; margin-bottom: 60px; color: #fff; background: radial-gradient(800px 420px at 90% 0%, rgba(166, 192, 255, .14), transparent 60%), linear-gradient(135deg, var(--mso-deep2) 0%, var(--mso-deep) 100%); }
.mso-crumbs { display: flex; flex-wrap: wrap; gap: 8px; font-size: 14px; color: rgba(255, 255, 255, .6); margin-bottom: 36px; }
.mso-crumbs a { color: rgba(255, 255, 255, .85); text-decoration: none; }
.mso-crumbs b { color: #fff; font-weight: 500; }
.mso-badge { display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; border-radius: 999px; border: 1px solid rgba(166, 192, 255, .45); font-size: 14px; color: var(--primary-color1); margin-bottom: 22px; }
.mso-hero h1 { color: #fff; font-size: clamp(34px, 4.4vw, 58px); line-height: 1.1; margin-bottom: 20px; }
.mso-lead { color: rgba(255, 255, 255, .78); font-size: 19px; line-height: 1.6; max-width: 560px; margin-bottom: 30px; }
.mso-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin-bottom: 22px; }
.mso-btn-outline { display: inline-flex; align-items: center; gap: 8px; padding: 14px 20px; border-radius: 10px; border: 1px solid rgba(255, 255, 255, .4); color: #fff; font-weight: 500; font-size: 16px; line-height: 1; text-decoration: none; transition: all .2s; }
.mso-btn-outline:hover { background: #fff; color: var(--dark-black-color); }
.mso-updated { margin: 0 0 24px; color: rgba(255, 255, 255, .65); font-size: 14px; }
.mso-updated a { color: #fff; text-decoration: underline; }
.mso-chips { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; padding: 0; margin: 0; }
.mso-chips li { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 10px; border: 1px solid rgba(255, 255, 255, .18); font-size: 14px; color: rgba(255, 255, 255, .85); }
.mso-visual { position: relative; }

.mso-frame { border-radius: 14px; overflow: hidden; background: var(--mso-card); border: 1px solid var(--borders-color); box-shadow: 0 24px 50px rgba(0, 0, 0, .18); }
.mso-frame-bar { display: flex; align-items: center; gap: 7px; padding: 11px 16px; background: var(--mso-soft); color: var(--text-color); font-size: 13px; border-bottom: 1px solid var(--borders-color); }
.mso-frame-bar i { width: 10px; height: 10px; border-radius: 50%; background: #ff6b6b; }
.mso-frame-bar i:nth-child(2) { background: #ffc542; }
.mso-frame-bar i:nth-child(3) { background: #3ddc84; }
.mso-frame-bar span { margin: 0 auto; padding-right: 40px; font-weight: 500; }
.mso-frame img { display: block; width: 100%; height: auto; }

.mso-stats { margin-bottom: 90px; }
.mso-stat { height: 100%; padding: 28px 22px; border-radius: 16px; background: var(--mso-card); border: 1px solid var(--borders-color); text-align: center; }
.mso-stat b { display: block; font-family: var(--font-spaceGrotesk); font-size: 44px; line-height: 1; font-weight: 500; color: var(--title-color); margin-bottom: 10px; }
.mso-stat b::after { content: ""; display: block; width: 36px; height: 3px; border-radius: 2px; background: var(--primary-color1); margin: 12px auto 0; }
.mso-stat span { color: var(--text-color); font-size: 15px; }

.mso-block { margin-bottom: 110px; }
.mso-eyebrow { display: inline-block; padding: 6px 14px; border-radius: 999px; border: 1px solid var(--borders-color); color: var(--title-color); font-size: 14px; margin-bottom: 14px; }
.mso-eyebrow::before { content: ""; display: inline-block; vertical-align: middle; margin: -2px 8px 0 0; width: 8px; height: 8px; border-radius: 50%; background: var(--primary-color1); box-shadow: 0 0 0 2px var(--mso-deep); }
.mso-eyebrow.light { border-color: rgba(255, 255, 255, .3); color: #fff; }
.mso-eyebrow.light::before { box-shadow: none; }
.mso-block h2, .mso-mods h2 { margin-bottom: 18px; }
.mso-head { max-width: 760px; margin: 0 auto 44px; }
.mso-head p { color: var(--text-color); }
.mso-panel { padding: 30px; border-radius: 16px; background: var(--mso-soft); border: 1px solid var(--borders-color); }
.mso-ticks { list-style: none; padding: 0; margin: 0; }
.mso-ticks li { position: relative; padding: 8px 0 8px 30px; color: var(--text-color); }
.mso-ticks li::before { content: "\F26A"; font-family: "bootstrap-icons"; position: absolute; left: 0; top: 8px; color: var(--mso-check); }
.mso-ticks.small li { padding: 5px 0 5px 28px; font-size: 15px; }
.mso-ticks.small li::before { top: 5px; }
.mso-position { padding: 18px 22px; border-left: 4px solid var(--primary-color1); background: var(--mso-soft); border-radius: 0 12px 12px 0; font-size: 18px; line-height: 1.65; color: var(--title-color); }
.mso-facts { display: grid; gap: 8px; margin: 18px 0; }
.mso-facts div { display: flex; gap: 14px; padding: 10px 14px; border-radius: 10px; background: var(--mso-card); border: 1px solid var(--borders-color); }
.mso-facts dt { flex: none; width: 90px; font-weight: 600; color: var(--title-color); }
.mso-facts dd { margin: 0; color: var(--text-color); }

.mso-tour-tabs { gap: 8px; margin-bottom: 28px; flex-wrap: wrap; list-style: none; padding: 0; }
.mso-tour-tabs button { padding: 11px 20px; border-radius: 10px; border: 1px solid var(--borders-color); background: var(--mso-card); color: var(--title-color); font-weight: 500; font-size: 15px; transition: all .2s; }
.mso-tour-tabs button.active, .mso-tour-tabs button:hover { background: var(--primary-color1); border-color: var(--primary-color1); color: var(--dark-title-color); }
.mso-tour-cap { max-width: 820px; margin: 22px auto 0; text-align: center; color: var(--text-color); }

.mso-ai { margin: 0 0 110px; padding: 100px 0; color: #fff; background: radial-gradient(700px 400px at 100% 0%, rgba(166, 192, 255, .12), transparent 60%), linear-gradient(135deg, var(--mso-deep2), var(--mso-deep)); }
.mso-ai h2 { color: #fff; font-size: clamp(30px, 3.6vw, 46px); margin-bottom: 18px; }
.mso-ai-lead { color: rgba(255, 255, 255, .78); font-size: 17px; line-height: 1.7; margin-bottom: 26px; }
.mso-ai-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 14px; }
.mso-ai-list li { display: flex; gap: 14px; align-items: flex-start; }
.mso-ai-list i { flex: none; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; background: rgba(166, 192, 255, .14); color: var(--primary-color1); }
.mso-ai-list b { display: block; color: #fff; font-weight: 500; }
.mso-ai-list span { color: rgba(255, 255, 255, .7); font-size: 15px; }
.mso-try { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 18px; }
.mso-try b { color: #fff; font-weight: 500; margin-right: 4px; }
.mso-try span { padding: 7px 12px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .22); color: rgba(255, 255, 255, .85); font-size: 13px; }
.mso-fine { margin-top: 14px; font-size: 13px; color: rgba(255, 255, 255, .6); }

.mso-mods { margin: 0 0 110px; padding: 90px 0; background: var(--mso-soft); }
.mso-filter { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 0 auto 40px; max-width: 980px; }
.mso-filter button { padding: 10px 18px; border-radius: 10px; border: 1px solid var(--borders-color); background: var(--mso-card); color: var(--title-color); font-weight: 500; font-size: 14px; transition: all .2s; }
.mso-filter button:hover, .mso-filter button.active { background: var(--primary-color1); border-color: var(--primary-color1); color: var(--dark-title-color); }
.mso-mod-grid { align-items: flex-start; }
.mso-mod { padding: 26px; border-radius: 16px; background: var(--mso-card); border: 1px solid var(--borders-color); transition: transform .2s, border-color .2s; }
.mso-mod:hover { transform: translateY(-3px); border-color: var(--primary-color2); }
body.dark .mso-mod:hover { border-color: var(--primary-color1); }
.mso-mod .mso-mod-head { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
.mso-mod-ico { flex: none; display: grid; place-items: center; width: 50px; height: 50px; border-radius: 12px; font-size: 22px; color: var(--mso-deep); background: var(--primary-color1); }
.mso-mod h3 { font-size: 20px; line-height: 1.25; margin: 0 0 2px; }
.mso-mod .mso-mod-head small { color: var(--text-color); font-size: 13px; }
.mso-mod-intro { color: var(--text-color); font-size: 15px; line-height: 1.6; margin: 0 0 12px; }
.mso-mod-top { list-style: none; padding: 0; margin: 0; }
.mso-mod-top li { position: relative; padding: 5px 0 5px 24px; color: var(--title-color); font-size: 15px; }
.mso-mod-top li::before { content: "\F26A"; font-family: "bootstrap-icons"; position: absolute; left: 0; top: 5px; color: var(--mso-check); font-size: 14px; }
.mso-mod-top li.more { color: var(--text-color); }
.mso-mod-top li.more::before { content: "\F4FE"; }

.mso-role { height: 100%; padding: 26px; border-radius: 16px; background: var(--mso-card); border: 1px solid var(--borders-color); }
.mso-role h3 { margin-bottom: 8px; }
.mso-role p { color: var(--text-color); }

.mso-table-wrap { overflow-x: auto; border-radius: 16px; border: 1px solid var(--borders-color); background: var(--mso-card); }
.mso-table { width: 100%; min-width: 640px; border-collapse: collapse; }
.mso-table th, .mso-table td { padding: 16px 20px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--borders-color); }
.mso-table thead th { background: var(--mso-deep); color: #fff; border: 0; font-weight: 500; }
.mso-table tbody th { font-weight: 600; color: var(--title-color); width: 20%; }
.mso-table td { color: var(--text-color); }
.mso-table td b { color: var(--title-color); font-weight: 600; }
.mso-table td:last-child { background: rgba(166, 192, 255, .22); }
body.dark .mso-table td:last-child { background: rgba(166, 192, 255, .07); }
.mso-switch-title { margin: 34px 0 14px; }
.mso-switch { list-style: none; counter-reset: sw; display: flex; flex-wrap: wrap; gap: 12px; padding: 0; margin: 0; }
.mso-switch li { counter-increment: sw; display: inline-flex; align-items: center; gap: 10px; padding: 10px 18px; border-radius: 10px; border: 1px solid var(--borders-color); background: var(--mso-card); color: var(--title-color); font-weight: 500; }
.mso-switch li::before { content: counter(sw); display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--primary-color1); color: var(--mso-deep); font-size: 13px; }

.mso-cta-band { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; padding: 44px; border-radius: 20px; color: #fff; background: radial-gradient(600px 300px at 100% 0%, rgba(166, 192, 255, .12), transparent 60%), linear-gradient(135deg, var(--mso-deep2), var(--mso-deep)); }
.mso-cta-band h2 { color: #fff; }
.mso-cta-band p { color: rgba(255, 255, 255, .75); max-width: 760px; margin: 0; }
.mso-cta-band a:not(.primary-btn1) { color: #fff; text-decoration: underline; }
.mso-log { list-style: none; padding: 0; margin: 20px 0 0; display: grid; gap: 12px; }
.mso-log li { display: flex; gap: 16px; padding: 14px 16px; border-radius: 10px; background: var(--mso-card); border: 1px solid var(--borders-color); }
.mso-log time { flex: none; font-weight: 600; color: var(--title-color); }
.mso-log span { color: var(--text-color); }
.mso-official-card { padding: 34px; border-radius: 16px; color: #fff; background: linear-gradient(135deg, var(--mso-deep2), var(--mso-deep)); }
.mso-official-card img { background: #fff; padding: 8px 14px; border-radius: 10px; margin-bottom: 18px; width: auto; height: 44px; }
.mso-official-card h3 { color: #fff; margin-bottom: 10px; }
.mso-official-card p { color: rgba(255, 255, 255, .75); margin-bottom: 22px; }
@media (max-width: 991px) { .mso-hero { padding: 90px 0 60px; } }

/* headings and text follow the theme's light/dark tokens */
.mso-block h2, .mso-block h3, .mso-mods h2, .mso-mod h3, .mso-role h3, .mso-panel h3, .mso-switch-title, .mso-head h2 { color: var(--title-color); }
.mso-block p, .mso-mods p, .mso-head p { color: var(--text-color); }
.mso-cta-band h2, .mso-official-card h3 { color: #fff; }
.mso-cta-band p, .mso-official-card p { color: rgba(255, 255, 255, .78); }
.mso-ai h2 { color: #fff; }
.features-section .single-feature-card { height: auto; min-height: 0; padding-bottom: 30px; }
.features-section .section-title p { text-align: center; margin: 12px auto 0; max-width: 620px; }

/* Banner video was rendered in the old green; rotate it to the logo blue */
.home2-banner-section video, .home2-banner video, section video { filter: hue-rotate(128deg) saturate(1.15); }

/* Keyword pills: lighter tints with dark text; plain body links in the brand blue (light mode) */
.home4-about-us-section .about-us-left-area .feature-wrap .throwable-item { background-color: #dbe5ff; }
.home4-about-us-section .about-us-left-area .feature-wrap .throwable-item.terracotta { background-color: #e3e6ff; }
.home4-about-us-section .about-us-left-area .feature-wrap .throwable-item.periwinkle { background-color: #d4e0ff; }
.home4-about-us-section .about-us-left-area .feature-wrap .throwable-item.muted-green { background-color: #dff0f5; }
.home4-about-us-section .about-us-left-area .feature-wrap .throwable-item.aqua-green { background-color: #d9ecff; }
.home4-about-us-section .about-us-left-area .feature-wrap .throwable-item.green { background-color: #e6edff; }
main :where(p, li, td) a:not([class]) { color: var(--brand-blue); }

/* ===== Contact page ===== */
.ct-hero { position: relative; overflow: hidden; padding: 120px 0 90px; margin-bottom: 70px; color: #fff; background: radial-gradient(800px 420px at 90% 0%, rgba(166, 192, 255, .16), transparent 60%), linear-gradient(135deg, var(--mso-deep2) 0%, var(--mso-deep) 100%); }
.ct-hero h1 { color: #fff; font-size: clamp(34px, 4.2vw, 56px); line-height: 1.1; margin-bottom: 18px; }
.ct-quick { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.ct-quick a { display: flex; align-items: center; gap: 14px; padding: 14px 18px; border-radius: 12px; border: 1px solid rgba(255, 255, 255, .22); color: #fff; text-decoration: none; font-weight: 500; transition: background .2s; }
.ct-quick a:hover { background: rgba(255, 255, 255, .08); }
.ct-quick i { font-size: 22px; color: var(--primary-color1); }
.ct-quick small { display: block; font-size: 12px; opacity: .65; font-weight: 400; }
.ct-main { position: relative; z-index: 2; margin-bottom: 110px; }
.ct-side, .ct-form { margin-top: 0; }
.ct-card { padding: 30px; border-radius: 18px; background: var(--mso-card); border: 1px solid var(--borders-color); box-shadow: 0 18px 44px rgba(10, 31, 92, .08); }
body.dark .ct-card { box-shadow: none; }
.ct-card h2 { font-size: 26px; margin-bottom: 8px; color: var(--title-color); }
.ct-card h3 { font-size: 20px; margin-bottom: 8px; color: var(--title-color); }
.ct-card p { color: var(--text-color); }
.ct-side { display: grid; gap: 20px; }
.ct-dark { background: linear-gradient(135deg, var(--mso-deep2), var(--mso-deep)); border-color: transparent; color: #fff; }
.ct-dark h2 { color: #fff; margin-bottom: 20px; }
.ct-methods { list-style: none; padding: 0; margin: 0; display: grid; gap: 18px; }
.ct-methods li { display: flex; align-items: center; gap: 16px; }
.ct-methods i { flex: none; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 12px; background: rgba(166, 192, 255, .16); color: var(--primary-color1); font-size: 20px; }
.ct-methods small { display: block; font-size: 12px; color: rgba(255, 255, 255, .6); }
.ct-methods a, .ct-methods span { color: #fff; font-size: 18px; font-weight: 500; text-decoration: none; word-break: break-word; text-transform: none; }
.ct-methods a:hover { text-decoration: underline; }
.ct-social { display: flex; gap: 10px; margin-top: 24px; padding-top: 22px; border-top: 1px solid rgba(255, 255, 255, .16); }
.ct-social a { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 10px; border: 1px solid rgba(255, 255, 255, .25); color: #fff; transition: all .2s; }
.ct-social a:hover { background: var(--primary-color1); border-color: var(--primary-color1); color: var(--dark-title-color); }
.ct-steps { list-style: none; counter-reset: ct; padding: 0; margin: 16px 0 0; display: grid; gap: 16px; }
.ct-steps li { counter-increment: ct; position: relative; padding-left: 48px; }
.ct-steps li::before { content: counter(ct); position: absolute; left: 0; top: 0; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--primary-color1); color: var(--dark-title-color); font-weight: 600; }
.ct-steps b { display: block; color: var(--title-color); font-weight: 600; }
.ct-steps span { color: var(--text-color); font-size: 15px; }
.ct-note { background: var(--mso-soft); }
.ct-note a { color: var(--brand-blue); font-weight: 600; }
body.dark .ct-note a { color: var(--primary-color1); }

.ct-form { padding: 38px; }
.ct-form-head { margin-bottom: 26px; }
.ct-form-head p { margin: 0; }
.ct-group { margin-bottom: 24px; }
.ct-label, .ct-field label { display: block; margin-bottom: 8px; font-size: 14px; font-weight: 600; color: var(--title-color); }
.ct-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.ct-chip { position: relative; margin: 0; cursor: pointer; }
.ct-chip input { position: absolute; opacity: 0; pointer-events: none; }
.ct-chip span { display: inline-block; padding: 9px 16px; border-radius: 999px; border: 1px solid var(--borders-color); background: var(--mso-soft); color: var(--title-color); font-size: 14px; font-weight: 500; transition: all .2s; }
.ct-chip:hover span { border-color: var(--brand-blue); }
.ct-chip input:checked + span { background: var(--primary-color1); border-color: var(--primary-color1); color: var(--dark-title-color); }
.ct-chip input:focus-visible + span { outline: 2px solid var(--brand-blue); outline-offset: 2px; }
.ct-field input, .ct-field textarea { width: 100%; padding: 14px 16px; border-radius: 12px; border: 1px solid var(--borders-color); background: var(--mso-soft); color: var(--title-color); font-size: 16px; outline: none; transition: border-color .2s, box-shadow .2s, background .2s; }
.ct-field textarea { resize: vertical; min-height: 150px; }
.ct-field input::placeholder, .ct-field textarea::placeholder { color: var(--text-color); opacity: .6; }
.ct-field input:focus, .ct-field textarea:focus { border-color: var(--brand-blue); background: var(--mso-card); box-shadow: 0 0 0 4px rgba(21, 82, 214, .14); }
body.dark .ct-field input:focus, body.dark .ct-field textarea:focus { border-color: var(--primary-color1); box-shadow: 0 0 0 4px rgba(166, 192, 255, .16); }
.ct-submit { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; margin-top: 26px; }
.ct-submit p { margin: 0; font-size: 13px; }
.ct-submit p a { color: var(--brand-blue); }
body.dark .ct-submit p a { color: var(--primary-color1); }
.be-field-error { display: block; margin-top: 6px; font-size: 13px; color: #d92d20; }
body.dark .be-field-error { color: #ff8a80; }
@media (max-width: 991px) { .ct-hero { padding: 90px 0 70px; } .ct-form { padding: 26px; } }

/* links on dark panels stay light (beats the generic body-link colour) */
:is(.mso-hero, .mso-ai, .ct-hero, .ct-dark, .mso-cta-band, .mso-official-card) a:not([class]) { color: #fff; text-decoration: none; }
:is(.mso-hero, .mso-ai, .ct-hero, .ct-dark, .mso-cta-band, .mso-official-card) p a:not([class]) { text-decoration: underline; }
.ct-quick a, .ct-methods a { text-decoration: none; }

/* Mobile menu: show only the logo that matches the theme (the white one is for dark mode) */
header .header-area-wrap .mobile-logo-area .logo-light { display: none; }

/* Stacked product cards: tags wrap instead of running off the screen on phones */
.home4-portfolio-section .portfolioCard .portfolio-content ul { display: flex; flex-wrap: wrap; gap: 8px; padding-left: 0; }
.home4-portfolio-section .portfolioCard .portfolio-content ul li { margin: 0; }
.home4-portfolio-section .portfolioCard .portfolio-content h3, .home4-portfolio-section .portfolioCard .portfolio-content p { overflow-wrap: anywhere; }
@media (max-width: 575px) {
    .home4-portfolio-section .portfolioCard .portfolio-content { padding: 22px 20px; }
}

/* Call-to-action band above the footer: compact height */
.home2-footer-top-section { min-height: 0; padding: 96px 0; }
.home2-footer-top-section .footer-top-wrapper .footer-top-content h2 { font-size: clamp(30px, 3.4vw, 42px); }
@media (max-width: 991px) { .home2-footer-top-section { padding: 70px 0; } }
.home2-footer-top-section .footer-top-wrapper .footer-top-content { max-width: 720px; }
.home2-footer-top-section .footer-top-wrapper .footer-top-content h2 { margin-bottom: 14px; }

/* Compact mega menus (Services, Industries) */
@media (min-width: 992px) {
    header .header-area-wrap .main-menu > ul > li .mega-menu.be-mega { background: var(--mso-card); border-radius: 16px; }
    header .header-area-wrap .main-menu > ul > li .mega-menu.be-mega .menu-row .service-wrap { padding: 26px 34px 24px; }
    header .header-area-wrap .main-menu > ul > li .mega-menu.be-mega .menu-row .mega-menu-title { font-size: 18px; line-height: 24px; margin-bottom: 16px; }
    header .header-area-wrap .main-menu > ul > li .mega-menu.be-mega .menu-row .service-wrap .service-list { gap: 10px 14px; }
    header .header-area-wrap .main-menu > ul > li .mega-menu.be-mega .menu-row .service-wrap .service-list .single-service a { padding: 10px 16px; gap: 12px; font-size: 15px; line-height: 20px; border-radius: 9px; }
    header .header-area-wrap .main-menu > ul > li .mega-menu.be-mega .menu-row .service-wrap .service-list .single-service a svg { width: 30px; min-width: 30px; height: 30px; }
    header .header-area-wrap .main-menu > ul > li .mega-menu.be-mega .menu-row .service-wrap .contact-area { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--borders-color); }
    header .header-area-wrap .main-menu > ul > li .mega-menu.be-mega .menu-row .service-wrap .contact-area .be-h3 { font-size: 16px; line-height: 22px; margin: 0; }
}

/* Home: About BigExcel Technologies */
.ab-title { font-size: clamp(30px, 3.4vw, 46px); line-height: 1.15; margin: 4px 0 20px; color: var(--title-color); }
.ab-lead { font-size: 18px; line-height: 1.7; color: var(--title-color); }
.home2-about-us p { color: var(--text-color); }
.ab-pillars { list-style: none; padding: 0; margin: 26px 0; display: grid; gap: 14px; }
.ab-pillars li { display: flex; gap: 16px; align-items: flex-start; padding: 16px 18px; border-radius: 14px; border: 1px solid var(--borders-color); background: var(--mso-card); }
.ab-pillars i { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--primary-color1); color: var(--mso-deep); font-size: 20px; }
.ab-pillars b { display: block; color: var(--title-color); font-weight: 600; }
.ab-pillars span { color: var(--text-color); font-size: 15px; }
.ab-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; }
.ab-link { color: var(--title-color); font-weight: 500; text-decoration: none; border-bottom: 1px solid var(--borders-color); padding-bottom: 2px; }
.ab-link:hover { border-color: var(--title-color); }
.ab-card { padding: 34px; }
.ab-logo { width: 220px; height: auto; margin-bottom: 14px; }
.ab-card-lead { color: rgba(255, 255, 255, .8); font-size: 18px; margin-bottom: 24px; }
.ab-card .ct-methods span { font-size: 16px; }
.ab-sectors { margin-top: 24px; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, .16); }
.ab-sectors small { display: block; font-size: 12px; color: rgba(255, 255, 255, .6); margin-bottom: 6px; }
.ab-sectors p { margin: 0; color: rgba(255, 255, 255, .85) !important; font-size: 15px; }
.ab-card h2, .ab-card p { color: #fff; }

/* word + trade mark stay together, also inside flex rows */
.tmw { display: inline; white-space: nowrap; }

/* Home About: "Two ways to work with us" on one line (wraps only on small screens) */
.home2-about-us .right-about-area .counter-area-wrap, .home2-about-us .right-about-area .counter-area-wrap .author-area { max-width: none; width: 100%; }
.home2-about-us .right-about-area .counter-area-wrap .author-area h3 { max-width: none; width: auto; white-space: nowrap; font-size: clamp(16px, 1.7vw, 22px); }
@media (max-width: 767px) { .home2-about-us .right-about-area .counter-area-wrap .author-area h3 { white-space: normal; } }

/* header-area headings are neutral divs (keeps the page outline clean: no h3/h6 before the H1); restore Bootstrap's heading spacing */
:where(.be-h3, .be-h6) { margin-top: 0; margin-bottom: .5rem; font-weight: 500; line-height: 1.2; }

/* Light/dark switch lives in the header, just before the right-sidebar button */
header .header-area-wrap .nav-right .tt-style-switch.be-theme-switch { position: static; top: auto; left: auto; width: 41px; min-width: 41px; height: 40px; border-radius: 5px; border: 1px solid var(--borders-color); background: transparent; color: var(--black-color) !important; font-size: 17px; z-index: auto; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: .5s; }
header .header-area-wrap .nav-right .tt-style-switch.be-theme-switch .bi { color: inherit; z-index: auto; }
header .header-area-wrap .nav-right .tt-style-switch.be-theme-switch:hover { width: 41px; background-color: var(--primary-color1); color: var(--dark-black-color) !important; }
header.home2-header .header-area-wrap .nav-right .tt-style-switch.be-theme-switch { background: rgba(145, 145, 145, .25); border: 1px solid rgba(255, 255, 255, .11); color: #fff !important; }
header.home2-header .header-area-wrap .nav-right .tt-style-switch.be-theme-switch:hover { background-color: var(--primary-color1); color: var(--dark-black-color) !important; }
body.dark header .header-area-wrap .nav-right .tt-style-switch.be-theme-switch { background: transparent; }
body.dark header.home2-header .header-area-wrap .nav-right .tt-style-switch.be-theme-switch { background: rgba(145, 145, 145, .25); }
@media (max-width: 575px) { header .header-area-wrap .nav-right .tt-style-switch.be-theme-switch { gap: 0; } }

/* reCAPTCHA v3 badge hidden; the form shows the required Google disclosure text instead */
.grecaptcha-badge { visibility: hidden; }

/* WhatsApp chat button (bottom right); the scroll-percentage / back-to-top ring is bottom left */
.be-wa-float { position: fixed; right: 30px; bottom: 30px; z-index: 10000; display: grid; place-items: center; width: 55px; height: 55px; border-radius: 50%; background: #25d366; color: #fff; font-size: 28px; text-decoration: none; box-shadow: 0 6px 18px rgba(0, 0, 0, .25); transition: transform .2s; }
.be-wa-float:hover { transform: scale(1.08); color: #fff; }
.be-wa-float i { line-height: 1; }
#scroll-percentage { left: 30px !important; right: auto !important; bottom: 30px !important; }
@media (max-width: 575px) {
    .be-wa-float { right: 16px; bottom: 16px; width: 50px; height: 50px; font-size: 26px; }
    #scroll-percentage { left: 16px !important; right: auto !important; bottom: 16px !important; width: 50px; height: 50px; }
}
