/*
 * Elementor Free page styling. Elementor Free has no Custom CSS panel, so the
 * reference design is applied through CSS classes set in
 * Elementor → Advanced → CSS Classes (bc-*). Values come from the reference CSS.
 */

/* Elementor neutralisation inside our pages -------------------------------- */
.bc-main .e-con {
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--gap: 0px 0px;
	--row-gap: 0px;
	--column-gap: 0px;
	--widgets-spacing: 0px;
	--widgets-spacing-row: 0px;
	--widgets-spacing-column: 0px;
}
.bc-main .elementor-heading-title { line-height: inherit; font-family: var(--bc-font); }
.bc-main .elementor-widget-text-editor p { margin: 0; }
.bc-main .elementor-widget-image img { display: block; }
.bc-main .elementor-button {
	font-family: var(--bc-font);
	border-radius: 2px;
	line-height: 1.2;
	fill: currentColor;
}

/* Shared headings / text ----------------------------------------------------- */
.bc-main .elementor-widget:not(:last-child) { margin-block-end: 0; }
.bc-main .elementor-widget.bc-eyebrow { margin-block-end: 22px !important; }
.bc-eyebrow .elementor-heading-title {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 12px;
	letter-spacing: 0.16em;
	color: var(--bc-muted);
	font-weight: 400;
}
.bc-eyebrow .elementor-heading-title::before {
	content: "";
	flex: none;
	width: 22px;
	height: 8px;
	background: var(--bc-blue);
}
.bc-eyebrow--dual .elementor-heading-title::before {
	width: 40px;
	background: linear-gradient(90deg, var(--bc-blue) 0 22px, transparent 22px 32px, var(--bc-red) 32px 40px);
}
.bc-eyebrow--red .elementor-heading-title::before { background: var(--bc-red); }

.bc-h-upper .elementor-heading-title {
	font-size: 44px;
	line-height: 1.08;
	font-weight: 700;
	text-transform: uppercase;
	color: var(--bc-navy);
	letter-spacing: 0.01em;
}
.bc-h-40 .elementor-heading-title { font-size: 40px; }
.bc-h-38 .elementor-heading-title { font-size: 38px; line-height: 1.1; }
.bc-h-36 .elementor-heading-title { font-size: 36px; line-height: 1.1; }
.bc-maxw-920 { max-width: 920px; }
.bc-lead { margin-top: 20px; }
.bc-lead .elementor-heading-title { font-size: 22px; line-height: 1.4; font-weight: 600; color: var(--bc-blue); }
.bc-body-text p { font-size: 16.5px; line-height: 1.75; color: var(--bc-muted); margin-top: 16px !important; }
.bc-fine p { font-size: 11px; line-height: 1.7; color: var(--bc-fine); margin-top: 32px !important; }

/* Panels (full-width bands with the 1440 px content box) */
.bc-main .e-con.bc-panel {
	padding: 64px max(56px, calc((100% - 1440px) / 2 + 56px));
	background: var(--bc-white);
	display: block;
}
.bc-main .e-con.bc-panel--grey { background: var(--bc-light); }

/* Tabs (Elementor Free Nested Tabs → reference .bc-tab) --------------------- */
.bc-tabs.elementor-widget-n-tabs {
	--n-tabs-gap: 0px;
	--n-tabs-heading-justify-content: flex-start;
	--n-tabs-heading-wrap: wrap;
	--n-tabs-title-gap: 8px;
	--n-tabs-title-justify-content: flex-start;
	--n-tabs-title-font-size: 12px;
	--n-tabs-title-color: var(--bc-navy);
	--n-tabs-title-color-hover: var(--bc-navy);
	--n-tabs-title-color-active: var(--bc-white);
	--n-tabs-title-background-color: var(--bc-white);
	--n-tabs-title-background-color-hover: var(--bc-white);
	--n-tabs-title-background-color-active: var(--bc-blue);
	--n-tabs-title-padding-top: 12px;
	--n-tabs-title-padding-bottom: 12px;
	--n-tabs-title-padding-left: 18px;
	--n-tabs-title-padding-right: 18px;
	--n-tabs-title-border-radius: 2px;
	--n-tabs-title-transition: 0s;
}
.bc-tabs .e-n-tabs { display: flex; flex-direction: column; gap: 0; }
.bc-tabs .e-n-tabs-heading {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	gap: 8px;
}
.bc-main .bc-tabs .e-n-tab-title {
	flex: none;
	border-style: solid !important;
	width: auto;
	font-family: var(--bc-font);
	font-size: 12px;
	font-weight: 400;
	letter-spacing: 0.06em;
	padding: 12px 18px;
	cursor: pointer;
	border: 1px solid var(--bc-line);
	background: var(--bc-white);
	color: var(--bc-navy);
	border-radius: 2px;
	line-height: 1.2;
	justify-content: flex-start;
}
.bc-main .bc-tabs .e-n-tab-title:hover { border-color: var(--bc-blue); background: var(--bc-white); color: var(--bc-navy); }
.bc-main .bc-tabs .e-n-tab-title[aria-selected="true"],
.bc-main .bc-tabs .e-n-tab-title[aria-selected="true"]:hover {
	background: var(--bc-blue);
	color: var(--bc-white);
	border-color: var(--bc-blue);
}
.bc-main .bc-tabs .e-n-tab-title-text { font-size: inherit; font-weight: inherit; color: inherit; }
.bc-tabs .e-n-tabs-content > .e-con { border: 0; }

/* Page-level tab bar (About): white strip with bottom border */
.bc-tabs--page .e-n-tabs > .e-n-tabs-heading {
	padding: 18px max(56px, calc((100% - 1440px) / 2 + 56px)) 8px;
	border-bottom: 1px solid var(--bc-border);
	background: var(--bc-white);
}
.bc-tabs--sub { margin-top: 24px; }
.bc-tabs--sub .e-n-tabs-content { margin-top: 24px; }
.bc-tabs--inline .e-n-tabs-content { margin-top: 32px; }

/* HOME ----------------------------------------------------------------------- */
.bc-home .bc-main { background: var(--bc-white); }
.bc-main .e-con.bc-home-head { padding: clamp(12px, 1.8vh, 20px) var(--bc-gutter) 0; display: block; }
.bc-home-h1 .elementor-heading-title {
	font-size: clamp(22px, 3.2vh, 34px);
	line-height: 1.3;
	font-weight: 700;
	color: var(--bc-navy);
	max-width: 1200px;
	letter-spacing: 0;
}
.bc-home-h1 .bc-red { color: var(--bc-red); }
.bc-home-industry { margin-top: 10px; }
.bc-home-industry .elementor-heading-title { font-size: clamp(18px, 2.4vh, 26px); line-height: 1.35; color: var(--bc-body); font-weight: 600; }

.bc-main .e-con.bc-home-cards {
	flex: 1 1 auto;
	min-height: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(10px, 1.2vw, 16px);
	align-items: stretch;
	padding: clamp(8px, 1.2vh, 14px) var(--bc-gutter);
}
.bc-main .e-con.bc-home-card {
	display: flex;
	flex-direction: column;
	min-height: 0;
	min-width: 0;
	border: 1px solid var(--bc-border);
	border-radius: 4px;
	overflow: hidden;
	background: var(--bc-white);
	color: inherit;
	text-decoration: none;
	transition: box-shadow 0.15s ease, transform 0.15s ease, border-color 0.15s ease;
}
.bc-main .e-con.bc-home-card:hover,
.bc-main .e-con.bc-home-card:focus-visible {
	box-shadow: 0 6px 18px rgba(10, 23, 41, 0.14);
	transform: translateY(-2px);
	border-color: var(--bc-blue);
}
.bc-home-card__media {
	flex: none;
	aspect-ratio: 16 / 10;
	max-height: 168px;
	overflow: hidden;
	background: var(--bc-light);
	width: 100%;
}
.bc-home-card__media img {
	width: 100% !important;
	height: 100% !important;
	max-width: none;
	object-fit: cover;
	object-position: center;
	transition: transform 0.25s ease;
}
.bc-home-card--contain .bc-home-card__media img { object-fit: contain; padding: 8px; }
/* Card whose image was removed in Elementor (empty Image widgets are not output):
   keep the blank image area until the client adds an image. */
.bc-main .e-con.bc-home-card:not(:has(.bc-home-card__media))::after {
	content: "";
	order: -1;
	display: block;
	flex: none;
	width: 100%;
	aspect-ratio: 16 / 10;
	max-height: 168px;
	background: var(--bc-light);
}
.bc-home-card:hover .bc-home-card__media img { transform: scale(1.04); }
.bc-main .e-con.bc-home-card__body {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 12px 14px 14px;
	min-height: 0;
}
.bc-home-card__tab { align-self: flex-start; max-width: 100%; width: auto !important; }
.bc-home .bc-main .elementor-heading-title { text-wrap: wrap; }
.bc-home-card__tab .elementor-heading-title {
	font-size: 12px;
	letter-spacing: 0.06em;
	color: var(--bc-white);
	background: var(--bc-blue);
	font-weight: 700;
	text-transform: uppercase;
	display: inline-block;
	padding: 5px 9px;
	border-radius: 2px;
	line-height: 1.2;
}
.bc-home-card__title .elementor-heading-title { font-size: clamp(16px, 2vh, 21px); line-height: 1.25; color: var(--bc-navy); letter-spacing: 0; }
.bc-home-card__cta { margin-top: auto; padding-top: 8px; }
.bc-home-card__cta .elementor-heading-title { font-size: 13px; font-weight: 600; letter-spacing: 0.05em; color: var(--bc-blue); }
.bc-home-card:hover .bc-home-card__cta .elementor-heading-title { color: var(--bc-red); }

.bc-main .e-con.bc-home-bottom {
	display: block;
	padding: clamp(12px, 1.8vh, 20px) var(--bc-gutter) 10px;
	text-align: center;
	border-top: 2px solid var(--bc-red);
}
.bc-home-bottom__text .elementor-heading-title { font-size: clamp(17px, 2.2vh, 22px); line-height: 1.4; color: var(--bc-body); font-weight: 500; }
.bc-home-goal { margin-top: 6px; }
.bc-home-goal .elementor-heading-title { font-weight: 700; font-size: clamp(20px, 2.6vh, 28px); color: var(--bc-navy); line-height: 1.4; }

@media (max-width: 980px) {
	.bc-main .e-con.bc-home-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.bc-home-h1 .elementor-heading-title { font-size: clamp(18px, 5.2vw, 24px); }
	.bc-home-industry .elementor-heading-title { font-size: clamp(15px, 4vw, 18px); }
}
@media (max-width: 599px) {
	/* Reference: only the gap override takes effect at this width (its other
	   ≤599 card rules are overridden by later base rules in index.html). */
	.bc-main .e-con.bc-home-cards { gap: 10px; }
}
@media (max-width: 360px) {
	.bc-main .e-con.bc-home-head,
	.bc-main .e-con.bc-home-cards,
	.bc-main .e-con.bc-home-bottom { padding-left: 10px; padding-right: 10px; }
	.bc-main .e-con.bc-home-cards { gap: 8px; }
}

/* PRODUCTS BROWSER ([bccore_product_browser]) -------------------------------- */
.bc-browser { max-width: 1440px; margin: 0 auto; padding: 0 var(--bc-pad-page); }
.bc-browser__cats { padding: 14px 0 0; }
.bc-browser__eyebrow { font-size: 11px; letter-spacing: 0.14em; color: var(--bc-muted); margin: 0 0 10px; font-weight: 600; }
.bc-browser__tabs { display: flex; flex-wrap: wrap; gap: 8px; }
.bc-browser__tab {
	flex: none;
	background: var(--bc-white);
	color: var(--bc-navy);
	border: 1px solid var(--bc-line);
	border-radius: 2px;
	font-family: var(--bc-font);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.01em;
	padding: 9px 14px;
	line-height: 1.25;
	cursor: pointer;
}
.bc-browser__tab:hover { border-color: var(--bc-blue); }
.bc-browser__tab[aria-expanded="true"] { background: var(--bc-blue); color: var(--bc-white); border-color: var(--bc-blue); }
.bc-browser__panel { padding: 8px 0 10px; }
.bc-browser__grid {
	display: none;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-auto-rows: min-content;
	align-content: start;
	gap: 6px;
}
.bc-browser__grid.is-active { display: grid; }
.bc-browser__card {
	display: flex;
	align-items: center;
	gap: 10px;
	border: 1px solid var(--bc-border);
	border-radius: 3px;
	background: var(--bc-white);
	color: inherit;
	padding: 6px 10px;
	transition: box-shadow 0.15s ease, border-color 0.15s ease;
}
.bc-browser__card:hover,
.bc-browser__card:focus-visible { box-shadow: 0 3px 10px rgba(10, 23, 41, 0.1); border-color: var(--bc-blue); color: inherit; }
.bc-browser__media {
	flex: none;
	width: clamp(40px, 5vh, 52px);
	height: clamp(40px, 5vh, 52px);
	background: var(--bc-light);
	border-radius: 2px;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.bc-browser__media img { width: 100%; height: 100%; object-fit: contain; }
.bc-browser__card { min-width: 0; }
.bc-browser__body { flex: 1; min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.bc-browser__name { overflow-wrap: anywhere; min-width: 0; font-size: clamp(13px, 1.55vh, 15px); font-weight: 600; color: var(--bc-navy); line-height: 1.3; }
.bc-browser__arrow { color: var(--bc-blue); font-size: 15px; flex: none; }
.bc-browser__card:hover .bc-browser__arrow { color: var(--bc-red); }
/* Category text (term description), e.g. Special Purpose Solution */
.bc-browser__note {
	grid-column: 1 / -1;
	max-width: 760px;
	padding: 6px 0 4px;
	font-size: clamp(13px, 1.55vh, 15px);
	line-height: 1.6;
	color: var(--bc-body);
}
.bc-browser__note p { margin: 0; }
.bc-browser__note p + p { margin-top: 6px; }
.bc-browser__note strong { color: var(--bc-navy); font-weight: 700; }
/* Tablet and phone: product names wrap between words only (never inside a word). */
@media (max-width: 1023px) {
	.bc-browser__name { overflow-wrap: break-word; word-break: normal; }
}
/* Phone: one product per row, so names get the full content width. */
@media (max-width: 767px) {
	.bc-browser__grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 599px) {
	.bc-browser { padding: 0 20px; }
	.bc-browser__tabs { flex-direction: column; align-items: stretch; }
	.bc-browser__tab { width: 100%; text-align: left; }
	.bc-browser__panel { padding: 10px 0; }
}

/* ABOUT ---------------------------------------------------------------------- */
.bc-main .e-con.bc-about-company {
	display: grid;
	grid-template-columns: 1.15fr 1fr;
	gap: 80px;
	align-items: start;
}
.bc-main .e-con.bc-about-company__text { display: block; }
.bc-main .e-con.bc-photo-frame { position: relative; display: block; }
.bc-photo-frame::after {
	content: "";
	position: absolute;
	left: -6px;
	top: -6px;
	width: 56px;
	height: 56px;
	border-top: 2px solid var(--bc-red);
	border-left: 2px solid var(--bc-red);
	z-index: 1;
}
.bc-about-photo {
	position: relative;
	overflow: hidden;
	border-radius: 16px 120px 16px 120px;
	aspect-ratio: 4 / 3;
	background: #e7ebf0;
}
.bc-about-photo img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; }

.bc-main .e-con.bc-leaders {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	margin-top: 44px;
	align-items: start;
}
.bc-main .e-con.bc-leader {
	display: block;
	background: var(--bc-white);
	border: 1px solid var(--bc-border);
	border-radius: 3px;
	padding: 28px;
}
.bc-main .e-con.bc-leader__top { display: flex; flex-direction: row; flex-wrap: wrap; gap: 24px; align-items: flex-start; }
.bc-leader__photo {
	position: relative;
	width: 180px;
	aspect-ratio: 1;
	border-radius: 3px;
	overflow: hidden;
	background: #e7ebf0;
	flex: none;
}
.bc-leader__photo img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; object-position: top center; }
.bc-main .e-con.bc-leader__meta { display: block; min-width: 180px; flex: 1; }
.bc-leader__role .elementor-heading-title { font-size: 10.5px; letter-spacing: 0.14em; color: var(--bc-blue); font-weight: 400; }
.bc-leader__name { margin-top: 10px; }
.bc-leader__name .elementor-heading-title { font-size: 26px; font-weight: 700; color: var(--bc-navy); text-transform: uppercase; line-height: 1.2; }
.bc-talk { margin-top: 10px; }
.bc-main .bc-talk .elementor-button {
	font-size: 11.5px;
	font-weight: 400;
	letter-spacing: 0.07em;
	color: var(--bc-white);
	background: var(--bc-blue);
	padding: 11px 18px;
	border: 0;
	border-radius: 2px;
}
.bc-main .bc-talk .elementor-button:hover { background: var(--bc-blue-hover); color: var(--bc-white); }
.bc-leader__bio { margin-top: 22px; padding-top: 8px; border-top: 1px solid #eef1f5; }
.bc-leader__bio p { font-size: 14.5px; line-height: 1.75; color: var(--bc-muted); margin: 12px 0 0 !important; }
.bc-leader__bio p.bc-quote {
	font-size: 17px;
	line-height: 1.5;
	font-weight: 600;
	color: var(--bc-navy);
	margin-top: 22px !important;
	padding-left: 18px;
	border-left: 3px solid var(--bc-red);
}

.bc-main .e-con.bc-presence-card {
	display: block;
	border: 1px solid var(--bc-border);
	border-radius: 3px;
	background: var(--bc-white);
	padding: 28px 26px 32px;
}
.bc-presence__title .elementor-heading-title { font-size: 22px; font-weight: 700; color: var(--bc-navy); text-transform: uppercase; }
.bc-presence__sub { margin-top: 8px; }
.bc-presence__sub .elementor-heading-title { font-size: 15px; color: var(--bc-muted); font-weight: 400; }
.bc-presence__map {
	margin-top: 18px;
	height: 420px;
	background: var(--bc-light);
	border: 1px solid var(--bc-border);
	border-radius: 3px;
	padding: 8px;
}
.bc-presence__map img { width: 100% !important; height: 100% !important; max-width: none; object-fit: contain; }
.bc-presence__count { margin-top: 22px; }
.bc-presence__count .elementor-heading-title { font-size: 11px; letter-spacing: 0.12em; color: var(--bc-navy); font-weight: 400; }
.bc-chips { margin-top: 12px; }
.bc-main .bc-chips .elementor-icon-list-items {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
}
.bc-main .bc-chips .elementor-icon-list-item {
	margin: 0 !important;
	font-size: 12px;
	color: var(--bc-body);
	border: 1px solid var(--bc-border);
	background: var(--bc-white);
	border-radius: 2px;
	padding: 8px 11px;
	line-height: 1.2;
}
.bc-main .bc-chips .elementor-icon-list-item::after { display: none !important; }
.bc-main .bc-chips .elementor-icon-list-text { color: var(--bc-body); padding: 0; }
.bc-chips.is-collapsed .elementor-icon-list-item:nth-child(n+9) { display: none; }
.bc-chips-toggle { margin-top: 18px; }
.bc-main .bc-chips-toggle .elementor-button {
	background: transparent;
	border: 1px solid var(--bc-line);
	color: var(--bc-blue);
	font-size: 11.5px;
	font-weight: 400;
	letter-spacing: 0.08em;
	padding: 12px 16px;
	border-radius: 2px;
}
.bc-main .bc-chips-toggle .elementor-button:hover { border-color: var(--bc-blue); color: var(--bc-blue); background: transparent; }

/* CONTACT -------------------------------------------------------------------- */
.bc-main .e-con.bc-contact {
	display: block;
	padding: 48px max(56px, calc((100% - 1440px) / 2 + 56px)) 72px;
}
.bc-main .e-con.bc-contact-panel { display: block; }
.bc-form-placeholder { margin-top: 30px; }
.bc-form-placeholder p { font-size: 15px; line-height: 1.7; color: var(--bc-muted); }
.bc-main .e-con.bc-contact-cards {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	align-items: stretch;
}
.bc-main .e-con.bc-contact-card {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--bc-border);
	border-radius: 3px;
	padding: 30px 30px 32px;
	background: var(--bc-white);
	transition: border-color 0.15s ease;
}
.bc-main .e-con.bc-contact-card:hover { border-color: var(--bc-blue); }
.bc-icon-tile {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 50px;
	height: 50px;
	border: 1px solid var(--bc-border);
	border-radius: 2px;
	background: var(--bc-light);
}
.bc-contact-card__title { margin-top: 22px; }
.bc-contact-card__title .elementor-heading-title { font-size: 19px; font-weight: 700; color: var(--bc-navy); text-transform: uppercase; }
.bc-contact-card__text { margin-top: 14px; }
.bc-contact-card__text p { font-size: 15px; line-height: 1.75; color: var(--bc-muted); }
.bc-contact-card__text strong { display: block; color: var(--bc-navy); font-weight: 600; }
.bc-contact-card__text .bc-phones { display: flex; flex-direction: column; gap: 10px; margin-top: 2px; }
.bc-contact-card__text .bc-phones a { font-size: 16px; color: var(--bc-navy); padding: 4px 0; line-height: 1.3; }
.bc-contact-card__text .bc-phones a:hover { color: var(--bc-blue); }
.bc-small-label { display: block; font-size: 10.5px; letter-spacing: 0.12em; color: var(--bc-fine); line-height: 1.4; }
.bc-contact-card__text .bc-small-label + a { display: inline-block; margin-top: 5px; font-size: 15px; color: var(--bc-blue); word-break: break-word; }
.bc-square-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 11px; }
.bc-square-list li { font-size: 14.5px; line-height: 1.5; color: var(--bc-muted); padding-left: 18px; position: relative; }
.bc-square-list li::before { content: ""; position: absolute; left: 0; top: 7px; width: 7px; height: 7px; background: var(--bc-blue); }
.bc-square-list li.is-red::before { background: var(--bc-red); }
.bc-contact-card__fine { margin-top: auto; padding-top: 20px; }
.bc-contact-card__fine p { font-size: 12px; color: var(--bc-fine); }
.bc-link-cta { margin-top: auto; padding-top: 20px; }
.bc-main .bc-link-cta .elementor-button {
	background: transparent;
	border: 0;
	padding: 0;
	color: var(--bc-blue);
	font-size: 11.5px;
	font-weight: 400;
	letter-spacing: 0.07em;
}
.bc-main .bc-link-cta .elementor-button:hover { color: var(--bc-red); background: transparent; }
.bc-map { margin-top: 24px; border: 1px solid var(--bc-border); border-radius: 3px; overflow: hidden; background: var(--bc-light); }
.bc-map iframe { width: 100%; height: 420px; border: 0; display: block; }
.bc-main .e-con.bc-btn-row { display: flex; flex-direction: row; flex-wrap: wrap; gap: 14px; margin-top: 18px; }
.bc-main .bc-btn-outline .elementor-button {
	background: transparent;
	border: 1px solid var(--bc-line);
	color: var(--bc-navy);
	font-size: 11.5px;
	font-weight: 400;
	letter-spacing: 0.07em;
	padding: 13px 18px;
	border-radius: 0;
}
.bc-main .bc-btn-outline .elementor-button:hover { border-color: var(--bc-blue); color: var(--bc-blue); background: transparent; }
.bc-contact-panel .bc-body-text p { font-size: 15.5px; line-height: 1.7; margin-top: 18px !important; }

/* EXHIBITIONS ---------------------------------------------------------------- */
.bc-main .e-con.bc-exh { padding-top: 56px; padding-bottom: 56px; }
.bc-main .e-con.bc-exh-head {
	display: flex;
	flex-direction: row;
	align-items: flex-end;
	justify-content: space-between;
	gap: 30px;
	flex-wrap: wrap;
}
.bc-exh-hint .elementor-heading-title { font-size: 11.5px; letter-spacing: 0.1em; color: var(--bc-muted); font-weight: 400; }
.bc-exhibitions__tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 28px; }
.bc-exhibitions__tab {
	font-family: var(--bc-font);
	font-size: 12px;
	letter-spacing: 0.06em;
	padding: 12px 18px;
	cursor: pointer;
	border: 1px solid var(--bc-line);
	background: var(--bc-white);
	color: var(--bc-navy);
	border-radius: 2px;
}
.bc-exhibitions__tab:hover { border-color: var(--bc-blue); }
.bc-exhibitions__tab[aria-selected="true"] { background: var(--bc-blue); color: var(--bc-white); border-color: var(--bc-blue); }
.bc-exhibitions__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	margin-top: 44px;
	align-items: stretch;
}
.bc-exhibitions__item {
	margin: 0;
	display: flex;
	flex-direction: column;
	height: 100%;
	background: var(--bc-white);
	border: 1px solid var(--bc-border);
	border-radius: 3px;
	overflow: hidden;
}
.bc-exhibitions__item:hover { border-color: var(--bc-blue); }
.bc-exhibitions__item[hidden] { display: none; }
.bc-exhibitions__item.is-featured { grid-column: span 2; grid-row: span 2; }
.bc-exhibitions__open {
	position: relative;
	flex: 1;
	width: 100%;
	min-height: 0;
	padding: 0;
	border: 0;
	background: var(--bc-navy);
	cursor: zoom-in;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	display: block;
}
.bc-exhibitions__item.is-featured .bc-exhibitions__open { aspect-ratio: auto; }
.bc-exhibitions .bc-exhibitions__open img { position: absolute; inset: 0; width: 100%; height: 100% !important; max-width: none; object-fit: cover; object-position: center; display: block; }
.bc-exhibitions__item figcaption {
	flex: none;
	padding: 12px 14px;
	font-size: 11.5px;
	letter-spacing: 0.05em;
	color: var(--bc-navy);
	border-top: 1px solid var(--bc-border);
}
.bc-exhibitions.is-filtered .bc-exhibitions__item.is-featured { grid-column: span 1; grid-row: span 1; }
.bc-exhibitions.is-filtered .bc-exhibitions__item.is-featured .bc-exhibitions__open { aspect-ratio: 4 / 3; }

/* Responsive (reference inner-page breakpoints 1240 / 1080 / 760) ------------ */
@media (max-width: 1240px) {
	.bc-main .e-con.bc-contact-cards { grid-template-columns: repeat(2, 1fr); }
	.bc-exhibitions__grid { grid-template-columns: repeat(3, 1fr); }
	.bc-exhibitions__item.is-featured { grid-column: span 1; grid-row: span 1; }
	.bc-exhibitions__item.is-featured .bc-exhibitions__open { aspect-ratio: 4 / 3; }
}
@media (max-width: 1080px) {
	.bc-main .e-con.bc-about-company,
	.bc-main .e-con.bc-leaders { grid-template-columns: 1fr; gap: 44px; }
	.bc-h-upper .elementor-heading-title { font-size: 34px; }
	.bc-exhibitions__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 760px) {
	.bc-main .e-con.bc-panel { padding: 74px 22px; }
	.bc-tabs--page .e-n-tabs > .e-n-tabs-heading { padding-left: 22px; padding-right: 22px; }
	.bc-main .e-con.bc-contact { padding-left: 22px; padding-right: 22px; }
	.bc-h-upper .elementor-heading-title { font-size: 27px; }
	.bc-main .e-con.bc-contact-cards { grid-template-columns: 1fr; }
	.bc-tabs .e-n-tabs-heading { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 8px; }
	.bc-main .bc-tabs .e-n-tab-title { white-space: nowrap; }
	.bc-main .bc-btn-outline,
	.bc-main .bc-btn-outline .elementor-button { width: 100%; text-align: center; justify-content: center; }
	.bc-exhibitions__grid { gap: 12px; }
	.bc-exhibitions__tabs { flex-direction: column; }
	.bc-exhibitions__tab { width: 100%; text-align: left; }
}

/* LIGHTBOX (products + exhibitions) ------------------------------------------ */
.bc-lightbox {
	position: fixed;
	inset: 0;
	z-index: 300;
	background: rgba(10, 23, 41, 0.95);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 28px;
	animation: bcFade 0.25s ease both;
}
.bc-lightbox[hidden] { display: none; }
.bc-lightbox__img { max-width: 92vw; max-height: 70vh; object-fit: contain; }
.bc-lightbox__caption { font-size: 18px; font-weight: 600; color: var(--bc-white); margin: 22px 0 0; text-align: center; }
.bc-lightbox__controls { display: flex; align-items: center; gap: 12px; margin-top: 18px; flex-wrap: wrap; justify-content: center; }
.bc-lightbox__nav {
	width: 44px;
	height: 44px;
	border: 1px solid rgba(255, 255, 255, 0.45);
	background: transparent;
	color: var(--bc-white);
	cursor: pointer;
	font-size: 15px;
}
.bc-lightbox__count { font-size: 12px; color: var(--bc-mono-muted); letter-spacing: 0.08em; min-width: 64px; text-align: center; }
.bc-lightbox__close {
	margin-left: 8px;
	border: 1px solid rgba(255, 255, 255, 0.45);
	background: var(--bc-white);
	color: var(--bc-navy);
	font-size: 12px;
	letter-spacing: 0.08em;
	padding: 13px 20px;
	cursor: pointer;
}
body.bc-noscroll { overflow: hidden; }
@keyframes bcFade { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
