/*
 * GCAPL blocks. Colours and fonts come from the Kadence global palette and typography
 * variables, so the output follows the theme's design settings.
 */
.gcapl-lines,
.gcapl-catalog,
.gcapl-industries,
.gcapl-events,
.gcapl-form-block,
.gcapl-modal {
	--gcapl-accent: var(--global-palette1, #e31e24);
	--gcapl-accent-2: var(--global-palette2, #b8171c);
	--gcapl-ink: var(--global-palette3, #161b28);
	--gcapl-navy: var(--global-palette4, #1e2434);
	--gcapl-body: var(--global-palette5, #4a5163);
	--gcapl-line: var(--global-palette7, #e1e4ea);
	--gcapl-soft: var(--global-palette8, #f3f4f6);
	--gcapl-white: var(--global-palette9, #fff);
	--gcapl-head: var(--global-heading-font-family, inherit);
}

/* Buttons */
.gcapl-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 22px;
	border: 1px solid var(--global-palette1, #e31e24);
	border-radius: 2px;
	background: var(--global-palette1, #e31e24);
	color: var(--global-palette9, #fff);
	font-family: var(--global-heading-font-family, inherit);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.06em;
	line-height: 1.2;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.gcapl-btn:hover,
.gcapl-btn:focus-visible {
	background: var(--global-palette2, #b8171c);
	border-color: var(--global-palette2, #b8171c);
	color: var(--global-palette9, #fff);
}
.gcapl-btn-outline {
	background: transparent;
	border-color: var(--global-palette3, #161b28);
	color: var(--global-palette3, #161b28);
}
.gcapl-btn-outline:hover,
.gcapl-btn-outline:focus-visible {
	background: var(--global-palette3, #161b28);
	border-color: var(--global-palette3, #161b28);
}
.gcapl-btn:focus-visible,
.gcapl-more:focus-visible,
.gcapl-catalog-nav a:focus-visible,
.gcapl-lb:focus-visible {
	outline: 2px solid var(--global-palette1, #e31e24);
	outline-offset: 2px;
}
.gcapl-button-block.has-text-align-center { text-align: center; }
.gcapl-button-block.has-text-align-right { text-align: right; }

.gcapl-more {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--gcapl-accent);
	font-family: var(--gcapl-head);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
}
.gcapl-more::after {
	content: "\2192";
	transition: transform 0.2s ease;
}
.gcapl-more:hover::after { transform: translateX(3px); }

/* Check lists */
.gcapl-checks {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 6px;
}
.gcapl-checks li {
	position: relative;
	padding-left: 24px;
	font-size: 15px;
	line-height: 1.5;
}
.gcapl-checks li::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 0.45em;
	width: 11px;
	height: 6px;
	border-left: 2px solid var(--gcapl-accent);
	border-bottom: 2px solid var(--gcapl-accent);
	transform: rotate(-45deg);
}
.gcapl-checks-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; max-width: 600px; }

/* Product line cards */
.gcapl-lines {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat(var(--gcapl-cols, 3), minmax(0, 1fr));
}
.gcapl-cols-1 { --gcapl-cols: 1; }
.gcapl-cols-2 { --gcapl-cols: 2; }
.gcapl-cols-3 { --gcapl-cols: 3; }
.gcapl-cols-4 { --gcapl-cols: 4; }
.gcapl-card {
	display: flex;
	flex-direction: column;
	background: var(--gcapl-white);
	border: 1px solid var(--gcapl-line);
	border-radius: 4px;
	overflow: hidden;
	transition: border-color 0.2s ease;
}
.gcapl-card:hover { border-color: var(--gcapl-accent); }
.gcapl-card-media {
	display: block;
	aspect-ratio: 4 / 3;
	background: var(--gcapl-soft);
}
.gcapl-card-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.gcapl-card-body {
	display: flex;
	flex-direction: column;
	gap: 14px;
	flex: 1;
	padding: 24px 24px 28px;
}
.gcapl-card-title {
	margin: 0 !important;
	font-size: 24px;
	line-height: 1.2;
}
.gcapl-card-title a {
	color: var(--gcapl-ink);
	text-decoration: none;
}
.gcapl-card-body .gcapl-more { margin-top: auto; }

/* Catalogue */
.gcapl-catalog-nav {
	margin: 0 0 56px;
	padding: 0 0 24px;
	border-bottom: 1px solid var(--gcapl-line);
}
.gcapl-catalog-nav ul {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.gcapl-catalog-nav a {
	display: block;
	padding: 8px 14px;
	border: 1px solid var(--gcapl-line);
	border-radius: 2px;
	color: var(--gcapl-ink);
	font-family: var(--gcapl-head);
	font-size: 15px;
	font-weight: 600;
	white-space: nowrap;
	text-decoration: none;
}
.gcapl-catalog-nav a:hover {
	border-color: var(--gcapl-accent);
	color: var(--gcapl-accent);
}
.gcapl-line {
	scroll-margin-top: 160px;
	padding: 0 0 72px;
}
.gcapl-line + .gcapl-line {
	padding-top: 72px;
	border-top: 1px solid var(--gcapl-line);
}
.gcapl-line-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px 32px;
	margin-bottom: 32px;
}
.gcapl-line-head h2 { margin: 0; }
.gcapl-line-intro {
	margin: 8px 0 0;
	max-width: 68ch;
	font-size: 18px;
	color: var(--gcapl-body);
}
.gcapl-products {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.gcapl-product {
	display: flex;
	flex-direction: column;
	scroll-margin-top: 160px;
	background: var(--gcapl-white);
	border: 1px solid var(--gcapl-line);
	border-radius: 4px;
	overflow: hidden;
}
.gcapl-product:target { border-color: var(--gcapl-accent); box-shadow: 0 0 0 1px var(--gcapl-accent); }
.gcapl-product-media {
	aspect-ratio: 4 / 3;
	background: var(--gcapl-soft);
}
.gcapl-product-media img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}
.gcapl-product-body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 24px 24px 28px;
}
.gcapl-product-title {
	margin: 0 0 14px !important;
	font-size: 22px;
	line-height: 1.2;
}
.gcapl-product-content {
	font-size: 15px;
	line-height: 1.55;
}
.gcapl-product-content h4 {
	margin: 16px 0 8px;
	font-size: 15px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--gcapl-accent);
}
.gcapl-product-content ul {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 6px;
}
.gcapl-product-content li {
	position: relative;
	padding-left: 22px;
}
.gcapl-product-content li::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 0.5em;
	width: 10px;
	height: 5px;
	border-left: 2px solid var(--gcapl-accent);
	border-bottom: 2px solid var(--gcapl-accent);
	transform: rotate(-45deg);
}
.gcapl-product-content p { margin: 0 0 8px; }
.gcapl-product-actions {
	margin-top: auto;
	padding-top: 22px;
}

/* Industries */
.gcapl-industry {
	display: grid;
	/* Industry photos are ~320px originals: keep them at native size so they stay sharp. */
	grid-template-columns: minmax(0, 320px) minmax(0, 1fr);
	gap: 56px;
	align-items: start;
	scroll-margin-top: 140px;
	padding: 56px 0;
}
.gcapl-industry + .gcapl-industry { border-top: 1px solid var(--gcapl-line); }
.gcapl-industry-media {
	aspect-ratio: 312 / 190;
	border-radius: 4px;
	overflow: hidden;
	background: var(--gcapl-soft);
}
.gcapl-industry-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.gcapl-industry-body h2 { margin: 0 0 12px; }
.gcapl-industry-body > p { max-width: 68ch; }
.gcapl-subhead {
	margin: 24px 0 12px;
	font-size: 15px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--gcapl-accent);
}
.gcapl-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.gcapl-chips a {
	display: inline-block;
	padding: 6px 12px;
	border: 1px solid var(--gcapl-line);
	border-radius: 2px;
	color: var(--gcapl-ink);
	font-size: 14px;
	text-decoration: none;
}
.gcapl-chips a:hover { border-color: var(--gcapl-accent); color: var(--gcapl-accent); }
.gcapl-industry-actions { margin-top: 28px; }

/* Events */
.gcapl-events {
	display: grid;
	gap: 24px;
	/* Event photos are ~423px originals: three columns keep the cover at native size. */
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.gcapl-event {
	display: flex;
	flex-direction: column;
	background: var(--gcapl-white);
	border: 1px solid var(--gcapl-line);
	border-radius: 4px;
	overflow: hidden;
}
.gcapl-event-gallery { display: grid; gap: 4px; }
.gcapl-lb { display: block; position: relative; overflow: hidden; }
.gcapl-lb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.3s ease; }
.gcapl-lb:hover img { transform: scale(1.03); }
.gcapl-lb.is-cover { aspect-ratio: 16 / 9; }
.gcapl-lb.is-hidden { display: none; }
.gcapl-event-thumbs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; }
.gcapl-event-thumbs .gcapl-lb { aspect-ratio: 1; }
.gcapl-more-count {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	background: rgba(22, 27, 40, 0.65);
	color: #fff;
	font-family: var(--gcapl-head);
	font-size: 22px;
	font-weight: 700;
}
.gcapl-event-body { padding: 24px 24px 28px; }
.gcapl-event-date {
	margin: 0 0 6px;
	color: var(--gcapl-accent);
	font-family: var(--gcapl-head);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.gcapl-badge {
	display: inline-block;
	margin-right: 6px;
	padding: 2px 8px;
	border-radius: 2px;
	background: var(--gcapl-accent);
	color: #fff;
	font-size: 12px;
}
.gcapl-event-title { margin: 0 0 8px !important; font-size: 22px; line-height: 1.2; }
.gcapl-event-place { margin: 0 0 12px; }

/* Forms */
.gcapl-form { margin: 0; }
.gcapl-fields {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px 20px;
}
.gcapl-field.is-wide { grid-column: 1 / -1; }
.gcapl-field label {
	display: block;
	margin-bottom: 6px;
	color: var(--global-palette3, #161b28);
	font-size: 14px;
	font-weight: 600;
}
.gcapl-field label span { color: var(--global-palette1, #e31e24); }
.gcapl-field input,
.gcapl-field select,
.gcapl-field textarea {
	width: 100%;
	padding: 11px 14px;
	border: 1px solid #c6cad3;
	border-radius: 2px;
	background: #fff;
	color: var(--global-palette3, #161b28);
	font: inherit;
	font-size: 16px;
}
.gcapl-field input[type="file"] { padding: 9px; }
.gcapl-field input:focus,
.gcapl-field select:focus,
.gcapl-field textarea:focus {
	outline: none;
	border-color: var(--global-palette3, #161b28);
	box-shadow: 0 0 0 2px rgba(227, 30, 36, 0.35);
}
.gcapl-field [aria-invalid="true"] { border-color: var(--global-palette1, #e31e24); }
.gcapl-error {
	margin: 6px 0 0;
	color: #b8171c;
	font-size: 14px;
}
.gcapl-form-footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px;
	margin-top: 24px;
}
.gcapl-form-status { margin: 0; font-size: 15px; }
.gcapl-form-status.is-error { color: #b8171c; }
.gcapl-form-status.is-success {
	padding: 16px 18px;
	border-left: 3px solid #1a7f37;
	background: #edfaef;
	color: #11441f;
	font-size: 16px;
}
.gcapl-form-product {
	margin: 0 0 20px;
	padding: 12px 16px;
	background: var(--global-palette8, #f3f4f6);
	border-left: 3px solid var(--global-palette1, #e31e24);
}
.gcapl-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* Dialogs */
.gcapl-modal,
.gcapl-lightbox {
	border: 0;
	padding: 0;
	max-width: min(760px, calc(100vw - 32px));
	width: 100%;
	max-height: calc(100vh - 32px);
	border-radius: 4px;
	background: #fff;
	color: var(--global-palette5, #4a5163);
	box-shadow: 0 24px 64px rgba(22, 27, 40, 0.35);
}
.gcapl-modal::backdrop,
.gcapl-lightbox::backdrop { background: rgba(22, 27, 40, 0.72); }
.gcapl-modal-inner { position: relative; padding: 40px; overflow: auto; max-height: calc(100vh - 32px); }
.gcapl-modal h2 { margin: 0 0 6px; font-size: 32px; }
.gcapl-modal-intro { margin: 0 0 24px; }
.gcapl-modal-close {
	position: absolute;
	top: 12px;
	right: 12px;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 2px;
	background: transparent;
	color: var(--global-palette3, #161b28);
	cursor: pointer;
}
.gcapl-modal-close:hover { background: var(--global-palette8, #f3f4f6); }
.gcapl-lightbox {
	max-width: min(1100px, calc(100vw - 32px));
	background: #0d1018;
}
.gcapl-lightbox img { display: block; width: 100%; max-height: calc(100vh - 32px); object-fit: contain; }
.gcapl-lightbox .gcapl-modal-close { color: #fff; z-index: 2; background: rgba(0, 0, 0, 0.35); }
.gcapl-lb-nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 44px;
	height: 44px;
	border: 0;
	border-radius: 2px;
	background: rgba(0, 0, 0, 0.45);
	color: #fff;
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
}
.gcapl-lb-nav.is-prev { left: 12px; }
.gcapl-lb-nav.is-next { right: 12px; }

@media (max-width: 1024px) {
	.gcapl-lines,
	.gcapl-products,
	.gcapl-events { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gcapl-industry { grid-template-columns: minmax(0, 280px) minmax(0, 1fr); }
	.gcapl-industry { gap: 32px; }
}
@media (max-width: 767px) {
	.gcapl-lines,
	.gcapl-products,
	.gcapl-events,
	.gcapl-fields,
	.gcapl-checks-2 { grid-template-columns: minmax(0, 1fr); }
	.gcapl-industry { grid-template-columns: minmax(0, 1fr); gap: 24px; padding: 40px 0; }
	.gcapl-industry-media { max-width: 420px; }
	.gcapl-modal-inner { padding: 32px 20px 24px; }
	.gcapl-modal h2 { font-size: 26px; }
}
@media (prefers-reduced-motion: reduce) {
	.gcapl-btn,
	.gcapl-card,
	.gcapl-lb img,
	.gcapl-more::after { transition: none; }
}

/* Theme content styles indent lists; plugin lists sit flush. */
.gcapl-checks,
.gcapl-chips,
.gcapl-catalog-nav ul,
.gcapl-product-content ul {
	margin-left: 0 !important;
	padding-left: 0 !important;
}
