/* KCE content styles — used on the site and inside the block editor. */
:root {
	--kce-ink: #1C1D20;
	--kce-text-2: #4A4F56;
	--kce-steel: #5A5F66;
	--kce-red: #C4161C;
	--kce-red-dark: #9E1015;
	--kce-red-logo: #E82025;
	--kce-blue: #03A4E4;
	--kce-line: #E2E4E7;
	--kce-mist: #F4F5F6;
	--kce-dark: #2A2C30;
	--kce-wrap: 1240px;
	--kce-gutter: 32px;
	--kce-font-head: "Archivo", "IBM Plex Sans", system-ui, sans-serif;
	--kce-font-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;
	--i-check: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='m5 12 5 5 9-10'/></svg>");
	--i-crane: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M4 21V5l14 3'/><path d='M4 5 2 9'/><path d='M18 8v6'/><rect x='15' y='14' width='6' height='4'/><path d='M2 21h20'/></svg>");
	--i-box: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M21 8 12 3 3 8v8l9 5 9-5z'/><path d='m3 8 9 5 9-5'/><path d='M12 13v8'/></svg>");
	--i-wrench: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M14.7 6.3a4 4 0 0 0-5.4 5.4L3 18l3 3 6.3-6.3a4 4 0 0 0 5.4-5.4l-2.5 2.5-2.4-.6-.6-2.4z'/></svg>");
	--i-team: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M4 14a8 8 0 0 1 16 0'/><path d='M2 14h20v2H2z'/><path d='M10 6V4h4v2'/><path d='M12 6v4'/></svg>");
	--i-helmet: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M3 18h18'/><path d='M5 18v-3a7 7 0 0 1 14 0v3'/><path d='M3 21h18'/><path d='M12 8V5'/></svg>");
	--i-pipe: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M2 7h8a4 4 0 0 1 4 4v11'/><path d='M2 12h6a1 1 0 0 1 1 1v9'/><path d='M2 5v9M12 22h6'/></svg>");
	--i-tank: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><ellipse cx='12' cy='5' rx='8' ry='2.5'/><path d='M4 5v13c0 1.4 3.6 2.5 8 2.5s8-1.1 8-2.5V5'/><path d='M4 11.5c0 1.4 3.6 2.5 8 2.5s8-1.1 8-2.5'/></svg>");
}

/* Classic themes wrap group content in an inner container; let children join the parent's grid/flex. */
.kce-content .wp-block-group__inner-container { display: contents; }

/* Sections: full-width bands whose content sits in the 1240px container. */
.kce-content > *:first-child { margin-top: 0; }
.kce-section {
	padding: 96px max(var(--kce-gutter), calc((100% - var(--kce-wrap)) / 2 + var(--kce-gutter)));
	margin: 0 !important;
	position: relative;
}
.kce-section > * + * { margin-top: 36px; }
.kce-section > .kce-eyebrow + h2, .kce-section > h2 + .wp-block-list, .kce-section > .kce-eyebrow + .wp-block-heading { margin-top: 12px; }
.kce-section--mist { background: var(--kce-mist); border-top: 1px solid var(--kce-line); }
.kce-section--dark { background: var(--kce-ink); color: #fff; }
.kce-section--tight { padding-top: 64px; padding-bottom: 64px; }
.kce-section--flush { padding-top: 40px; }
.kce-section--hero { padding-top: 64px; padding-bottom: 72px; overflow: hidden; }
@media (max-width: 700px) {
	:root { --kce-gutter: 16px; }
	.kce-eyebrow.has-rule::before { width: 36px; }
	.kce-section { padding-top: 64px; padding-bottom: 64px; }
	.kce-section--hero { padding-top: 32px; padding-bottom: 48px; }
}

/* Type -------------------------------------------------------------------- */
.kce-content h2, .editor-styles-wrapper h2 { font-family: var(--kce-font-head); font-weight: 800; font-size: clamp(30px, 3.4vw, 40px); line-height: 1.1; letter-spacing: -0.015em; margin: 0; text-wrap: balance; }
.kce-content h3, .editor-styles-wrapper h3 { font-family: var(--kce-font-head); font-weight: 700; font-size: 21px; line-height: 1.25; margin: 0; }
.kce-content p { margin: 0; }
.kce-content p + p { margin-top: 14px; }
.kce-eyebrow {
	font-family: var(--kce-font-mono); font-size: 12px !important; letter-spacing: .12em; text-transform: uppercase;
	color: var(--kce-red); font-weight: 600; margin: 0 0 12px !important; display: flex; align-items: center; gap: 12px;
}
.kce-eyebrow.has-rule::before { content: ""; width: 72px; height: 4px; flex-shrink: 0; background: linear-gradient(90deg, var(--kce-red-logo) 0 75%, var(--kce-blue) 75% 100%); }
.kce-section--dark .kce-eyebrow { color: #B9BDC2; }
.kce-lead { font-size: 17px; color: var(--kce-text-2); line-height: 1.65; text-wrap: pretty; }
.kce-section--dark .kce-lead, .kce-section--dark p { color: #C9CCD0; }
.kce-more { margin-top: 18px; }
.kce-more a { font-weight: 600; text-decoration: none; }
.kce-more a:hover { text-decoration: underline; }

/* Buttons (block styles) -------------------------------------------------- */
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 4px; }
.wp-block-button.is-style-kce-primary .wp-block-button__link,
.wp-block-button.is-style-kce-line .wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 24px;
	border-radius: 8px; font-weight: 600; font-size: 16px; line-height: 1.2; text-decoration: none; border: 1.5px solid transparent;
	transition: background-color .15s ease, color .15s ease;
}
.wp-block-button.is-style-kce-primary .wp-block-button__link { background: var(--kce-red); color: #fff; }
.wp-block-button.is-style-kce-primary .wp-block-button__link:hover { background: var(--kce-red-dark); color: #fff; }
.wp-block-button.is-style-kce-line .wp-block-button__link { background: #fff; color: var(--kce-ink); border-color: var(--kce-ink); }
.wp-block-button.is-style-kce-line .wp-block-button__link:hover { background: var(--kce-ink); color: #fff; }
.kce-section--dark .wp-block-button.is-style-kce-line .wp-block-button__link { background: transparent; color: #fff; border-color: #fff; }

/* Lists ------------------------------------------------------------------- */
.wp-block-list.is-style-kce-checks { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; font-size: 15.5px; }
.wp-block-list.is-style-kce-checks li { position: relative; padding-left: 28px; }
.wp-block-list.is-style-kce-checks li::before {
	content: ""; position: absolute; left: 0; top: 4px; width: 18px; height: 18px; background: var(--kce-red);
	-webkit-mask: var(--i-check) center / contain no-repeat; mask: var(--i-check) center / contain no-repeat;
}
.wp-block-list.kce-inline-checks { flex-direction: row; flex-wrap: wrap; gap: 8px 24px; font-size: 14px; color: #3A3E44; margin-top: 28px !important; }

/* Columns ----------------------------------------------------------------- */
.kce-content .wp-block-columns { margin-bottom: 0; }
.kce-head { align-items: flex-end !important; gap: 24px 48px !important; }
.kce-head > .wp-block-column:last-child { display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
@media (min-width: 782px) { .kce-head > .wp-block-column:last-child { align-items: flex-end; text-align: left; } .kce-head > .wp-block-column:last-child .kce-lead { max-width: 440px; } }
.kce-split { gap: 40px 64px !important; align-items: center !important; }
.kce-split--form { align-items: flex-start !important; }
.kce-split > .wp-block-column > * + * { margin-top: 20px; }
.kce-split > .wp-block-column > .kce-eyebrow + h2 { margin-top: 0; }

/* Hero -------------------------------------------------------------------- */
.kce-hero { gap: 40px 56px !important; align-items: center !important; }
.kce-hero > .wp-block-column:first-child > * + * { margin-top: 22px; }
.kce-hero > .wp-block-column:first-child > .kce-eyebrow + h1 { margin-top: 0; }
.kce-hero__title { font-family: var(--kce-font-head); font-weight: 800; font-size: clamp(38px, 5.2vw, 60px) !important; line-height: 1.03 !important; letter-spacing: -0.025em; margin: 0; text-wrap: balance; }
.kce-hero .kce-lead { font-size: 19px; max-width: 580px; }
.kce-hero__media { position: relative; min-height: 520px; }
.kce-hero__photo { position: absolute; inset: 0; }
.kce-hero__photo .kce-photo__img { height: 100%; border-radius: 4px; clip-path: polygon(14% 0, 100% 0, 100% 100%, 0 100%, 0 22%); }
.kce-hero__card {
	position: absolute; left: -24px; bottom: 28px; width: 330px; max-width: 88%; background: #fff; border-radius: 10px;
	box-shadow: 0 18px 44px rgba(28, 29, 32, .18); padding: 22px; display: flex; flex-direction: column; gap: 10px; z-index: 2;
}
.kce-hero__card .kce-eyebrow { margin: 0 !important; font-size: 11px !important; }
.kce-hero__card-title { font-family: var(--kce-font-head); font-weight: 700; font-size: 20px; line-height: 1.25; }
.kce-hero__card .wp-block-buttons { margin-top: 6px; }
.kce-hero__card .wp-block-button, .kce-hero__card .wp-block-button__link { width: 100%; }
.kce-hero__card .wp-block-button__link { min-height: 46px !important; font-size: 15px !important; }
@media (max-width: 781px) {
	.kce-hero__media { min-height: 0; }
	.kce-hero__photo { position: relative; inset: auto; aspect-ratio: 4 / 3; }
	.kce-hero__photo .kce-photo__img { clip-path: none; border-radius: 8px; }
	.kce-hero__card { position: relative; left: auto; bottom: auto; width: auto; max-width: none; margin: -40px 16px 0 !important; }
}

/* Photos in content */
.kce-content .kce-photo .kce-photo__img { aspect-ratio: 4 / 3; height: auto; }
.kce-content .kce-hero__photo .kce-photo__img { aspect-ratio: auto; height: 100%; }
.kce-epc__photo { margin-top: 32px !important; }
.kce-epc__photo .kce-photo__img { aspect-ratio: 16 / 9 !important; }

/* Service cards ----------------------------------------------------------- */
.kce-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(250px, 100%), 1fr)); gap: 20px; }
.kce-scard {
	position: relative; background: #fff; border: 1px solid var(--kce-line); border-radius: 10px;
	padding: 100px 28px 28px; display: flex; flex-direction: column; gap: 14px; transition: box-shadow .2s ease, transform .2s ease;
}
.kce-scard:hover { box-shadow: 0 14px 32px rgba(28, 29, 32, .09); transform: translateY(-2px); }
.kce-scard::before { content: ""; position: absolute; left: 28px; top: 28px; width: 52px; height: 52px; border-radius: 10px; background: var(--kce-ink); }
.kce-scard::after { content: ""; position: absolute; left: 40px; top: 40px; width: 28px; height: 28px; background: #fff; -webkit-mask: var(--i-box) center / contain no-repeat; mask: var(--i-box) center / contain no-repeat; }
.kce-ic-crane::after { -webkit-mask-image: var(--i-crane); mask-image: var(--i-crane); }
.kce-ic-wrench::after { -webkit-mask-image: var(--i-wrench); mask-image: var(--i-wrench); }
.kce-ic-team::after { -webkit-mask-image: var(--i-team); mask-image: var(--i-team); }
.kce-ic-helmet::after { -webkit-mask-image: var(--i-helmet); mask-image: var(--i-helmet); }
.kce-ic-pipe::after { -webkit-mask-image: var(--i-pipe); mask-image: var(--i-pipe); }
.kce-ic-tank::after { -webkit-mask-image: var(--i-tank); mask-image: var(--i-tank); }
.kce-scard > * { margin: 0 !important; }
.kce-scard p { color: var(--kce-text-2); font-size: 15px; }
.kce-scard__points { list-style: none; padding: 14px 0 0 !important; border-top: 1px solid #ECEEF0; font-size: 14px; color: #3A3E44; display: flex; flex-direction: column; gap: 4px; }
.kce-scard .kce-more { margin-top: auto !important; padding-top: 4px; }

/* Numbered points (dark & light) ----------------------------------------- */
.kce-points { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 1px; background: #3A3C40; border: 1px solid #3A3C40; border-radius: 10px; overflow: hidden; }
.kce-point { background: var(--kce-ink); padding: 28px; display: flex; flex-direction: column; gap: 10px; }
.kce-point > * { margin: 0 !important; }
.kce-point h3 { font-size: 19px; color: #fff; }
.kce-point p { font-size: 15px; color: #C9CCD0; }
.kce-num { font-family: var(--kce-font-mono); color: #FF6B6F !important; font-size: 13px !important; font-weight: 600; }
.kce-points--light { background: var(--kce-line); border-color: var(--kce-line); }
.kce-points--light .kce-point { background: #fff; }
.kce-points--light .kce-point h3 { color: var(--kce-ink); }
.kce-points--light .kce-point p { color: var(--kce-text-2); }
.kce-points--light .kce-num { color: var(--kce-red) !important; }
@media (min-width: 900px) { .kce-points--three { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* Founder ----------------------------------------------------------------- */
.kce-founder { gap: 40px 56px !important; align-items: center !important; }
.kce-founder > .wp-block-column:last-child > * + * { margin-top: 20px; }
.kce-founder > .wp-block-column:last-child > .kce-eyebrow + h2 { margin-top: 0; }
.kce-founder__photo { position: relative; }
.kce-founder__photo::after { content: ""; position: absolute; left: 0; bottom: 0; width: 46%; height: 6px; background: linear-gradient(90deg, var(--kce-red-logo) 0 75%, var(--kce-blue) 75% 100%); }
.kce-founder__photo .kce-photo__img { aspect-ratio: 4 / 3; border-radius: 6px; }
.kce-people { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(230px, 100%), 1fr)); gap: 20px 28px; border-top: 1px solid var(--kce-line); padding-top: 22px; }
.kce-person > * { margin: 0 !important; }
.kce-person__role { font-family: var(--kce-font-mono); font-size: 11px !important; letter-spacing: .1em; text-transform: uppercase; color: var(--kce-steel); font-weight: 600; }
.kce-person__name { font-family: var(--kce-font-head); font-weight: 700; font-size: 20px; margin-top: 2px !important; }
.kce-person__meta { font-size: 14px; color: var(--kce-text-2); margin-top: 2px !important; }

/* Company tiles ----------------------------------------------------------- */
.wp-block-list.kce-tiles { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr)); gap: 12px; font-size: 13px; color: var(--kce-steel); }
.kce-tiles li { border: 1px solid var(--kce-line); border-radius: 8px; padding: 20px; background: #fff; line-height: 1.5; }
.kce-tiles strong { font-family: var(--kce-font-head); font-size: 16px; color: var(--kce-ink); font-weight: 700; }

/* Steps ------------------------------------------------------------------- */
.wp-block-list.kce-steps { list-style: none; padding: 0; margin-top: 36px !important; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(190px, 100%), 1fr)); gap: 0 20px; counter-reset: kstep; font-size: 14.5px; color: var(--kce-text-2); }
.kce-steps li { counter-increment: kstep; padding: 22px 8px 24px 0; border-top: 3px solid var(--kce-ink); line-height: 1.5; }
.kce-steps li::before { content: counter(kstep, decimal-leading-zero); display: block; font-family: var(--kce-font-mono); font-weight: 600; color: var(--kce-steel); font-size: 14px; margin-bottom: 8px; }
.kce-steps li:first-child { border-top-color: var(--kce-red-logo); }
.kce-steps li:first-child::before { color: var(--kce-red); }
.kce-steps li:last-child { border-top-color: var(--kce-blue); }
.kce-steps strong { font-family: var(--kce-font-head); font-size: 18px; color: var(--kce-ink); font-weight: 700; display: inline-block; margin-bottom: 4px; }
.kce-steps--seven strong { font-size: 16px; }

/* Bands ------------------------------------------------------------------- */
.kce-band { border: 1px solid var(--kce-line); border-radius: 12px; padding: 36px 40px; background: #fff; }
.kce-band__cols { align-items: center !important; gap: 20px 40px !important; }
.kce-band__cols > .wp-block-column > * + * { margin-top: 10px; }
.kce-band h2 { font-size: clamp(26px, 3vw, 32px) !important; }
.kce-band h3 { font-size: 24px; font-weight: 800; }
@media (min-width: 782px) { .kce-band__cols > .wp-block-column:last-child { display: flex; justify-content: flex-end; flex-grow: 0 !important; flex-basis: auto !important; } }
.kce-band--profile { position: relative; padding-left: 128px; }
.kce-band--profile::before { content: ""; position: absolute; left: 40px; top: 50%; transform: translateY(-50%); width: 64px; height: 53px; background: url("../img/kce-emblem.png") center / contain no-repeat; }
@media (max-width: 600px) { .kce-band { padding: 26px 22px; } .kce-band--profile { padding-left: 22px; padding-top: 90px; } .kce-band--profile::before { top: 26px; left: 22px; transform: none; } }

/* Facts & prose ----------------------------------------------------------- */
.wp-block-list.kce-facts { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--kce-line); }
.kce-facts li { padding: 10px 0; border-bottom: 1px solid var(--kce-line); font-size: 15px; }
.kce-facts strong { display: inline-block; min-width: 190px; color: var(--kce-steel); font-weight: 500; }
.kce-prose { max-width: 760px; }
.kce-prose h2 { font-size: 24px !important; margin-top: 36px !important; margin-bottom: 8px !important; }
.kce-prose h2:first-child { margin-top: 0 !important; }
.kce-prose p { color: var(--kce-text-2); }

/* Editor niceties --------------------------------------------------------- */
.editor-styles-wrapper .kce-section { padding-left: 32px; padding-right: 32px; }
