/* Keystone Blocks: shared section styles. Loaded only on pages that use a Keystone block. */
body .ks-section {
	--ks-ink: var(--wp--preset--color--ink, #010101);
	--ks-muted: var(--wp--preset--color--muted, #6f6a65);
	--ks-accent: var(--wp--preset--color--accent, #b95418);
	position: relative;
	box-sizing: border-box;
	color: var(--ks-muted);
	margin-block: 0 !important;
	max-width: none !important;
	width: auto;
}
body .ks-section *, body .ks-section *::before, body .ks-section *::after { box-sizing: border-box; }
body .ks-section :where(h1, h2, h3, h4, h5, h6) { color: var(--ks-ink); }
body .ks-wrap { width: 100%; max-width: var(--wp--style--global--wide-size, 1290px); margin-inline: auto; padding-inline: 20px; }

/* Backgrounds */
body .ks-bg-white { background: var(--wp--preset--color--white, #fff); }
body .ks-bg-light { background: var(--wp--preset--color--light, #f8f8f8); }
body .ks-bg-dark { background: var(--wp--preset--color--dark, #170b03); --ks-muted: #cfc8c1; }
body .ks-bg-accent { background: var(--ks-accent); --ks-muted: #fbe9dd; }
body .ks-bg-dark, body .ks-bg-accent { --ks-ink: #fff; }
body .ks-bg-accent .ks-btn--solid { background: var(--wp--preset--color--dark, #170b03); }
body .ks-bg-accent .ks-eyebrow, body .ks-bg-dark .ks-eyebrow { color: #fff; }

/* Spacing */
body .ks-pad-s { padding-block: clamp(30px, 4vw, 50px); }
body .ks-pad-m { padding-block: clamp(60px, 8vw, 110px); }
body .ks-pad-l { padding-block: clamp(80px, 11vw, 160px); }
body .ks-hero.ks-section, body .ks-banner.ks-section { padding-block: clamp(40px, 6vw, 80px); }

/* Type helpers */
body .ks-eyebrow {
	margin: 0 0 6px;
	font-size: 14px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase;
	color: var(--ks-accent);
}
body .ks-section h2 { line-height: 1.05; }

/* Intro row */
body .ks-intro {
	display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(20px, 5vw, 80px);
	align-items: end; margin-bottom: clamp(36px, 5vw, 64px);
}
body .ks-intro__title { margin: 0; font-size: var(--wp--preset--font-size--display-xl, 52px); }
body .ks-intro__text { margin: 0; font-size: 18px; }
@media (max-width: 781px) { body .ks-intro { grid-template-columns: 1fr; } }

/* Buttons */
body .ks-btns { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 26px; }
body .ks-btn {
	display: inline-flex; align-items: center; gap: 10px;
	padding: 18px 30px;
	font-family: var(--wp--preset--font-family--body, inherit);
	font-size: 15px; font-weight: 500; letter-spacing: .05em; text-transform: uppercase;
	text-decoration: none; line-height: 1;
	transition: background .2s, color .2s, border-color .2s;
}
body .ks-btn--solid { background: var(--ks-accent); color: #fff; }
body .ks-btn--solid:hover, body .ks-btn--solid:focus-visible { background: var(--ks-ink); color: #fff; }
body .ks-bg-dark .ks-btn--solid:hover, body .ks-hero .ks-btn--solid:hover, body .ks-bg-accent .ks-btn--solid:hover { background: #fff; color: #010101; }
body .ks-btn--ghost { padding-inline: 0; color: var(--ks-ink); }
body .ks-btn--ghost:hover { color: var(--ks-accent); }
body .ks-btn__arrow { transition: transform .2s; }
body .ks-btn--ghost:hover .ks-btn__arrow { transform: translateX(4px); }
body .ks-btn--outline { padding: 13px 22px; border: 1px solid var(--ks-ink); color: var(--ks-ink); }
body .ks-btn--outline:hover { background: var(--ks-ink); color: var(--wp--preset--color--white, #fff); }
body .ks-bg-dark .ks-btn--outline:hover { color: #010101; }
body .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* Fine-tune: spacing per side */
body .ks-section.ks-pt-none { padding-top: 0; }
body .ks-section.ks-pt-s { padding-top: clamp(30px, 4vw, 50px); }
body .ks-section.ks-pt-m { padding-top: clamp(60px, 8vw, 110px); }
body .ks-section.ks-pt-l { padding-top: clamp(80px, 11vw, 160px); }
body .ks-section.ks-pb-none { padding-bottom: 0; }
body .ks-section.ks-pb-s { padding-bottom: clamp(30px, 4vw, 50px); }
body .ks-section.ks-pb-m { padding-bottom: clamp(60px, 8vw, 110px); }
body .ks-section.ks-pb-l { padding-bottom: clamp(80px, 11vw, 160px); }

/* Fine-tune: button style for the whole section */
body .ks-btns-outline .ks-btn--solid { background: transparent; color: var(--ks-ink); box-shadow: inset 0 0 0 1px var(--ks-ink); }
body .ks-btns-outline .ks-btn--solid:hover { background: var(--ks-ink); color: var(--wp--preset--color--white, #fff); }
body .ks-hero.ks-btns-outline .ks-btn--solid, body .ks-bg-dark.ks-btns-outline .ks-btn--solid { color: #fff; box-shadow: inset 0 0 0 1px #fff; }
body .ks-hero.ks-btns-outline .ks-btn--solid:hover, body .ks-bg-dark.ks-btns-outline .ks-btn--solid:hover { background: #fff; color: #010101; }
body .ks-btns-link .ks-btn--solid, body .ks-btns-link .ks-btn--outline { background: transparent; color: var(--ks-ink); padding-inline: 0; border: 0; box-shadow: none; text-decoration: underline; text-underline-offset: 6px; }
body .ks-btns-link .ks-btn--solid:hover, body .ks-btns-link .ks-btn--outline:hover { color: var(--ks-accent); background: transparent; }
body .ks-hero.ks-btns-link .ks-btn--solid { color: #fff; }

/* Fine-tune: photo focus */
body .ks-focus-top img, body .ks-focus-top [class*="__bg"], body .ks-focus-top .ks-contact__photo { object-position: center top; background-position: center top; }
body .ks-focus-bottom img, body .ks-focus-bottom [class*="__bg"], body .ks-focus-bottom .ks-contact__photo { object-position: center bottom; background-position: center bottom; }

/* Fine-tune: rounded corners */
body .ks-rounded .ks-btn { border-radius: 999px; }
body .ks-rounded :is(.ks-it__img1, .ks-it__img2, .ks-cta__img, .ks-card, .ks-review, .ks-contact__photo, .ks-contact__panel, .ks-hero__box, .ks-field, .ks-features__grid) { border-radius: 14px; overflow: hidden; }
body .ks-rounded .ks-features__grid { border-radius: 14px; }

/* Fine-tune: boxed section */
body .ks-section.ks-contained { max-width: var(--wp--style--global--wide-size, 1290px) !important; margin-inline: auto !important; }
body .ks-section.ks-contained.ks-rounded { border-radius: 18px; overflow: hidden; }
body .ks-rounded .ks-hero__box { border-left: 0; }
