/* Downhole tool springs catalog (template-stock-oil-gas.php). Roby's design 2026-10-23, Figma ib9hullhzs4LofkvOS0eiO 1754:8.
   Sizes in px: the theme sets html to 62.5%, so rem here would be 10px. */

.ks-cat {
	--ks-navy: #242B3B;
	--ks-navy-2: #294166;
	--ks-gold: #FFBA37;
	--ks-yellow: #FFC800;
	--ks-blue: #0B55FF;
	--ks-ink: #393939;
	--ks-gray: #F4F4F4;
	--ks-line: #E7E7E7; /* theme card border; frame #E5E5E5 */
	--ks-pad: 60px;
	color: var(--ks-navy);
	font-family: 'IBM Plex Sans', sans-serif;
	font-size: 18px;
	line-height: 1.4;
	overflow-x: clip;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
.ks-cat *, .ks-cat *::before, .ks-cat *::after { box-sizing: border-box; }
.ks-cat :where(p, h1, h2, h3, h4, ul, ol, dl, dd, figure, blockquote) { margin: 0; }
.ks-cat :where(img) { max-width: 100%; height: auto; display: block; }
.ks-cat__wrap { max-width: 1440px; margin: 0 auto; padding: 0 var(--ks-pad); }
.ks-cat-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ks-cat :focus-visible { outline: 2px solid var(--ks-blue); outline-offset: 3px; }

/* ---------- Type ---------- */
.ks-cat-display {
	font-family: 'EurostileConHea', sans-serif;
	font-weight: 900;
	text-transform: uppercase;
	font-size: clamp(44px, 5.5vw, 79px);
	line-height: .8;
	letter-spacing: -.03em;
	color: var(--ks-navy);
}
.ks-cat-display--md { font-size: clamp(40px, 4.87vw, 70px); line-height: .85; letter-spacing: -.02em; }
.ks-cat-display--center { text-align: center; }
.ks-cat-display--light { color: #fff; }
.ks-cat-eyebrow {
	font-family: 'Akkurat Mono LL', monospace;
	font-weight: 700;
	font-size: 13px;
	line-height: 1.5;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ks-navy);
}
.ks-cat-eyebrow--light { color: #fff; }
.ks-cat-eyebrow--sub { font-size: 12px; letter-spacing: .11em; max-width: 680px; margin: 10px auto 0; text-align: center; }
.ks-cat-lede {
	font-family: 'Akkurat Pro', sans-serif;
	font-size: 19px;
	line-height: 1.4;
	letter-spacing: -.02em;
	max-width: 672px;
	margin: 24px auto 0;
	text-align: center;
}

/* ---------- Buttons ---------- */
.ks-cat-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 22px;
	min-height: 56px;
	padding: 14px 32px;
	border-radius: 500px;
	font-family: 'Akkurat Pro', sans-serif;
	font-weight: 700;
	font-size: 18px;
	line-height: 1.3;
	text-decoration: none;
	color: var(--ks-navy);
	background: var(--ks-gray);
	border: 0;
	transition: background-color .15s ease, color .15s ease;
}
.ks-cat-btn:hover, .ks-cat-btn:focus-visible { color: var(--ks-navy); text-decoration: none; }
.ks-cat-btn--yellow { background: var(--ks-yellow); }
.ks-cat-btn--yellow:hover { background: var(--ks-gold); }
.ks-cat-btn--quote { width: 100%; margin-top: auto; }
.ks-cat-btn--quote:hover, .ks-cat-btn--quote:focus-visible { background: var(--ks-yellow); }

/* ---------- Hero ---------- */
.ks-cat-hero { padding: 58px 0 70px; background: #fff; }
.ks-cat-hero__grid { display: grid; grid-template-columns: 1fr; gap: 40px; align-items: center; }
.ks-cat-hero__media { display: flex; flex-direction: column; align-items: center; gap: 48px; }
.ks-cat-hero__img { width: 100%; max-width: 624px; }
.ks-cat-hero__badges { width: 349px; max-width: 80%; }
.ks-cat-crumb {
	display: flex; gap: 10px; flex-wrap: wrap;
	font-family: 'Akkurat Mono LL', monospace; font-weight: 700; font-size: 12px; line-height: 1.5;
	letter-spacing: .11em; text-transform: uppercase; color: var(--ks-navy);
	margin-bottom: 44px;
}
.ks-cat-crumb a { color: inherit; text-decoration: none; }
.ks-cat-crumb a:hover { text-decoration: underline; }
.ks-cat-hero__text { font-size: 18px; line-height: 1.4; margin: 7px 0 37px; max-width: 610px; }
.ks-cat-hero__more { color: var(--ks-navy); text-decoration: none; }
.ks-cat-hero__more:hover { text-decoration: underline; color: var(--ks-navy); }
@media (min-width: 992px) {
	.ks-cat-hero__grid { grid-template-columns: 624fr 620fr; gap: 0 61px; }
	.ks-cat-hero__media { padding-top: 47px; margin-left: -12px; }
	.ks-cat-hero__copy { margin-left: -12px; }
}

/* ---------- Highlights band ---------- */
.ks-cat-band { background: var(--ks-navy); padding: 58px 0 62px; }
.ks-cat-band__grid { display: grid; grid-template-columns: 1fr; gap: 32px; }
.ks-cat-band__item { display: flex; gap: 16px; align-items: flex-start; }
.ks-cat-band__icon { flex: 0 0 60px; display: flex; justify-content: center; }
.ks-cat-band__icon svg { width: 56px; height: auto; }
.ks-cat-band__item:first-child .ks-cat-band__icon svg { width: 73px; }
.ks-cat-band__title { font-family: 'Akkurat Pro', sans-serif; font-weight: 700; font-size: 22px; line-height: 1.4; letter-spacing: -.02em; color: #fff; }
.ks-cat-band__text { font-size: 17px; line-height: 1.4; color: #A2A8B5; margin-top: 3px; max-width: 300px; }
@media (min-width: 768px) {
	.ks-cat-band__grid { grid-template-columns: repeat(3, 1fr); gap: 24px; }
	.ks-cat-band__item { flex-direction: column; }
}
@media (min-width: 1100px) {
	.ks-cat-band__item { flex-direction: row; }
	.ks-cat-band__grid { padding-left: 64px; padding-right: 64px; }
}

/* ---------- Catalog ---------- */
.ks-cat-catalog { padding: 86px 0 114px; }
.ks-cat-catalog__head { text-align: center; }
.ks-cat-catalog__head .ks-cat-display { margin-top: 44px; } /* Heading/display (79): Roby's 81.24 was a scaled copy of it */
.ks-cat-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 40px 0 0; }
.ks-cat-chip {
	appearance: none; border: 0; cursor: pointer;
	min-height: 45px; padding: 10px 30px; border-radius: 500px;
	background: var(--ks-gray); color: var(--ks-ink);
	font-family: 'IBM Plex Sans', sans-serif; font-weight: 700; font-size: 14px; line-height: 1.4;
	transition: background-color .15s ease, color .15s ease;
}
.ks-cat-chip span { font-weight: 400; }
.ks-cat-chip[aria-pressed="true"] { background: var(--ks-navy); color: #fff; }
.ks-cat-group { margin-top: 96px; }
.ks-cat-group + .ks-cat-group { margin-top: 60px; }
.ks-cat-group[hidden] { display: none; }
.ks-cat-group__title { font-family: 'IBM Plex Sans', sans-serif; font-weight: 700; font-size: 28px; line-height: 1.4; color: var(--ks-navy); margin-bottom: 19px; }
.ks-cat-grid { display: grid; grid-template-columns: 1fr; gap: 32px; }
@media (min-width: 640px) { .ks-cat-grid { grid-template-columns: repeat(2, 1fr); gap: 28px; } }
@media (min-width: 1100px) { .ks-cat-grid { grid-template-columns: repeat(3, 1fr); gap: 32px; } }

.ks-cat-card {
	display: flex; flex-direction: column;
	border: 1px solid var(--ks-line); border-radius: 6px; background: #fff;
	padding: 12px 12px 31px;
}
.ks-cat-card__media { position: relative; border-radius: 6px; overflow: hidden; aspect-ratio: 394 / 192; background: #D7E1DF; }
.ks-cat-card__img { width: 100%; height: 100%; object-fit: cover; }
.ks-cat-card__tags { position: absolute; top: 14px; left: 10px; display: flex; gap: 9px; flex-wrap: wrap; }
.ks-cat-tag {
	display: inline-block; padding: 4px 10px; border-radius: 500px;
	background: #EEF2F7; color: var(--ks-navy);
	font-family: 'IBM Plex Sans', sans-serif; font-weight: 600; font-size: 12px; line-height: 1.3;
}
.ks-cat-tag--app { background: #E8EFFB; color: #1B4FA0; }
.ks-cat-card__title { font-family: 'IBM Plex Sans', sans-serif; font-weight: 700; font-size: 22px; line-height: 1.4; color: var(--ks-navy); margin: 22px 10px 0; }
.ks-cat-card__desc { font-size: 16px; line-height: 1.4; color: var(--ks-ink); margin: 22px 7px 0; }
.ks-cat-card__more {
	appearance: none; border: 0; background: none; padding: 0 0 0 6px; cursor: pointer;
	font-family: 'Akkurat Pro', sans-serif; font-weight: 700; font-size: 14px; line-height: 1.2;
	text-transform: uppercase; color: var(--ks-navy);
}
.ks-cat-card__more:hover { text-decoration: underline; }
.ks-cat-spec { margin: 28px 10px 27px; display: grid; gap: 8px; }
.ks-cat-spec > div { display: grid; grid-template-columns: 94px 1fr; align-items: baseline; }
.ks-cat-spec dt { font-family: 'Akkurat Pro', sans-serif; font-weight: 700; font-size: 14px; text-transform: uppercase; color: var(--ks-navy); }
.ks-cat-spec dd { font-family: 'Akkurat Pro', sans-serif; font-size: 16px; line-height: 1.4; letter-spacing: -.02em; color: var(--ks-navy); }
.ks-cat-card .ks-cat-btn--quote { width: calc(100% - 20px); margin-left: 10px; margin-right: 10px; }

/* ---------- Pricing (navy) ---------- */
.ks-cat-pricing { background: var(--ks-navy); padding: 100px 0; color: #fff; }
.ks-cat-pricing__grid { display: grid; grid-template-columns: 1fr; gap: 48px; align-items: start; }
.ks-cat-pricing__copy { padding-left: 31px; }
.ks-cat-pricing__copy .ks-cat-display { margin-top: 34px; }
.ks-cat-pricing__text { font-family: 'Akkurat Pro', sans-serif; font-size: 18px; line-height: 1.4; letter-spacing: -.02em; margin: 22px 0 0 5px; max-width: 600px; }
.ks-cat-pricing__list-title { font-family: 'Akkurat Pro', sans-serif; font-weight: 700; font-size: 18px; line-height: 1.4; color: var(--ks-yellow); margin: 31px 0 0 5px; }
.ks-cat-pricing__list { margin: 25px 0 0 5px; padding-left: 27px; color: #D2D2D2; }
.ks-cat-pricing__list li { font-family: 'Akkurat Pro', sans-serif; font-size: 18px; line-height: 1.4; margin-bottom: 8px; }
.ks-cat-pricing__list a { color: #D2D2D2; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.ks-cat-pricing__list a:hover { color: #fff; }
.ks-cat-pricing__card { background: #fff; border: 5px solid var(--ks-line); border-radius: 10px; padding: 60px 42px 36px; color: var(--ks-navy); }
.ks-cat-pricing__form-title { font-family: 'EurostileHea', sans-serif; font-weight: 900; font-size: clamp(24px, 2.3vw, 32px); line-height: 1; letter-spacing: .03em; text-transform: uppercase; text-align: center; margin-bottom: 46px; }
@media (min-width: 992px) {
	.ks-cat-pricing { padding: 108px 0 86px; }
	.ks-cat-pricing__grid { grid-template-columns: 1fr 645px; gap: 40px; }
	.ks-cat-pricing__card { margin-top: 20px; }
}

/* Anchored scrolls stop 24px below the sticky header (ks-catalog.js keeps --ks-head current). */
.ks-cat [id], #pricing-form { scroll-margin-top: calc(var(--ks-head, 130px) + 24px); }

/* ---------- Forms (Gravity Forms 1 and 3, scoped) ---------- */
.ks-cat-form .gform_wrapper.gform-theme { margin: 0; --gf-ctrl-label-color-primary: var(--ks-navy); }
.ks-cat-form .gform_heading { display: none; }
/* Roby's card title is the heading here, so step 1's own title and sub line stay hidden; step 2's greeting still shows. */
.ks-cat-form .gform_page:first-of-type .ks-qf-headfield .ks-qf-title,
.ks-cat-form .gform_page:first-of-type .ks-qf-headfield .ks-qf-sub { display: none; }
.ks-cat-form .gfield_label, .ks-cat-form .gfield_required, .ks-cat-form .gform_required_legend { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ks-cat-form .gform_fields { row-gap: 12px !important; column-gap: 14px !important; }
.ks-cat-form .gform-theme--framework .gfield input[type=text],
.ks-cat-form .gform-theme--framework .gfield input[type=email],
.ks-cat-form .gform-theme--framework .gfield input[type=tel],
.ks-cat-form .gform-theme--framework .gfield select,
.ks-cat-form .gform-theme--framework .gfield textarea {
	min-height: 59px; padding: 16px; border-radius: 6px; border: .5px solid #B4B4B4; box-shadow: none;
	background-color: #fff; color: var(--ks-navy);
	font-family: 'Akkurat Pro', sans-serif; font-size: 18px; line-height: 1.5;
}
.ks-cat-form .gform-theme--framework .gfield textarea { min-height: 92px; height: 92px; }
.ks-cat-form .gfield input::placeholder, .ks-cat-form .gfield textarea::placeholder { color: var(--ks-navy); opacity: 1; }
.ks-cat-form .gform_footer, .ks-cat-form .gform_page_footer { margin-top: 38px !important; padding: 0 !important; display: flex !important; align-items: center; gap: 24px; flex-wrap: wrap; }
.ks-cat-form .gform-theme--framework .gform_footer input[type=submit].gform_button {
	min-height: 51px; padding: 0 52px 0 32px; border-radius: 6px; border: 0;
	background: var(--ks-blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='14' viewBox='0 0 9 15' fill='none'%3E%3Cpath d='M1 13.7L8 7.2L1 .7' stroke='white' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat right 24px center;
	color: #fff; font-family: 'Akkurat Pro', sans-serif; font-weight: 700; font-size: 18px; line-height: 1;
}
.ks-cat-secure { display: inline-flex; align-items: center; gap: 6px; font-family: 'Akkurat Pro', sans-serif; font-weight: 700; font-size: 13px; color: #9BA1AE; }
.ks-cat-form--light .gform_fileupload_rules, .ks-cat-form--light .gform_drop_instructions { font-size: 14px; }

/* "We have your springs": the quote form's copy (navy skin) straight on the photo, in the heading's 666px column, as drawn (Figma 1754:552). */
.ks-cat-contact .ks-qf { margin: 0; --ks-card-bg: transparent; --ks-card-pad: 0; --ks-gap: 12px; --ks-col-gap: 16px; --ks-box-h: 59px; --ks-box-stroke: var(--ks-gold); }
.ks-cat-contact .ks-qf .ks-qf__card { max-width: none; padding: 0; border: 0; background: transparent; box-shadow: none; }
.ks-cat-contact__form { margin-top: 28px; }
/* On dark the gold mono labels show (QF 08 navy skin); Roby's light card keeps placeholders only. */
.ks-cat-form--dark .gfield_label, .ks-cat-form--dark .gfield_required { position: static !important; width: auto; height: auto; overflow: visible; clip: auto; white-space: normal; }
.ks-cat-form--dark .gform-theme--framework .gfield :is(input, select, textarea) { border-radius: 0; }

/* ---------- Gallery ---------- */
.ks-cat-gallery { padding: 123px 0 0; }
.ks-cat-gallery__head { display: grid; grid-template-columns: 56px 1fr 56px; align-items: center; gap: 16px; max-width: 1215px; }
.ks-cat-arrow {
	width: 56px; height: 56px; border-radius: 50%; border: 1px solid var(--ks-navy); background: #fff; color: var(--ks-navy);
	display: inline-flex; align-items: center; justify-content: center; cursor: pointer; padding: 0;
	transition: background-color .15s ease, color .15s ease;
}
.ks-cat-arrow:hover { background: var(--ks-navy); color: #fff; }
.ks-cat-gallery__track {
	display: flex; gap: 6px; margin-top: 76px; height: clamp(260px, 35vw, 504px);
	overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none;
}
.ks-cat-gallery__track::-webkit-scrollbar { display: none; }
.ks-cat-gallery__item { flex: 0 0 auto; height: 100%; width: clamp(280px, 38.6vw, 556px); scroll-snap-align: center; background: var(--ks-gray); }
.ks-cat-gallery__item:nth-child(3n+2) { width: clamp(260px, 36.3vw, 522px); }
.ks-cat-gallery__item img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 767.9px) {
	.ks-cat-gallery { padding-top: 80px; }
	.ks-cat-gallery__head { grid-template-columns: 1fr 1fr; }
	.ks-cat-gallery__titles { grid-column: 1 / -1; grid-row: 1; }
	.ks-cat-arrow[data-dir="-1"] { justify-self: end; }
	.ks-cat-gallery__track { margin-top: 32px; }
}

/* ---------- Process ---------- */
.ks-cat-process { padding: 170px 0 0; }
.ks-cat-process__head { padding-bottom: 60px; border-bottom: 1px solid #D6D6D7; /* border/divider, as in Roby's frame */ margin: 0 6px; }
.ks-cat-steps { list-style: none; padding: 55px 69px 0; margin: 0; display: grid; grid-template-columns: 1fr; gap: 48px; }
.ks-cat-step__title { display: flex; align-items: center; gap: 14px; font-family: 'Akkurat Pro', sans-serif; font-weight: 700; font-size: 22px; line-height: 1.4; letter-spacing: -.02em; color: var(--ks-navy); }
.ks-cat-step__num { flex: 0 0 35px; height: 35px; border-radius: 50%; background: var(--ks-gold); display: inline-flex; align-items: center; justify-content: center; font-size: 20px; }
.ks-cat-step__img { width: 100%; max-width: 343px; aspect-ratio: 343 / 200; object-fit: cover; margin-top: 18px; }
.ks-cat-step__text { font-family: 'Akkurat Pro', sans-serif; font-size: 19px; line-height: 1.4; letter-spacing: -.02em; margin-top: 30px; max-width: 352px; }
.ks-cat-cta { margin: 32px 69px 0; background: var(--ks-gray); padding: 36px 34px 36px 55px; display: flex; flex-wrap: wrap; gap: 20px; align-items: center; justify-content: space-between; }
.ks-cat-cta__title { font-family: 'EurostileHea', sans-serif; font-weight: 900; font-size: clamp(20px, 1.8vw, 25.75px); line-height: 1.3; letter-spacing: .04em; text-transform: uppercase; color: var(--ks-navy); }
.ks-cat-cta .ks-cat-btn { min-height: 55px; padding: 0 30px; }
@media (min-width: 768px) {
	.ks-cat-steps { grid-template-columns: repeat(3, 1fr); gap: 32px; }
	.ks-cat-step__img { max-width: none; }
}
@media (min-width: 1100px) { .ks-cat-steps { gap: 0 76px; } }
@media (max-width: 1099.9px) {
	.ks-cat-steps { padding-left: 0; padding-right: 0; }
	.ks-cat-cta { margin-left: 0; margin-right: 0; padding: 28px; }
}
@media (max-width: 767.9px) { .ks-cat-process { padding-top: 96px; } }

/* ---------- Testimonials ---------- */
.ks-cat-reviews { padding: 164px 0 0; }
.ks-cat-reviews .ks-cat-display { margin-bottom: 89px; }
/* Two rows drifting opposite ways, slowing on hover (the G&M home page marquee, gmV8 portfolio-slider). ks-catalog.js sets the duration from the width. */
.ks-cat-reviews__row { overflow: hidden; padding: 1px 0; }
.ks-cat-reviews__track { display: flex; gap: 32px; width: max-content; padding-right: 32px; animation: ks-cat-marquee 90s linear infinite; will-change: transform; }
.ks-cat-reviews__row--2 .ks-cat-reviews__track { animation-direction: reverse; }
@keyframes ks-cat-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
	.ks-cat-reviews__row { overflow-x: auto; scrollbar-width: none; }
	.ks-cat-reviews__track { animation: none; }
}
.ks-cat-reviews__row + .ks-cat-reviews__row { margin-top: 32px; }
/* Phones: one row you swipe, stepped by the gallery's arrows with a count between them (Eric 10/26). */
.ks-cat-reviews__swipe { display: none; }
@media (max-width: 767.9px) {
	.ks-cat-reviews__row { display: none; }
	.ks-cat-reviews__swipe { display: block; }
	.ks-cat-reviews__list {
		position: relative; display: flex; gap: 16px; padding: 1px 9vw;
		overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; overscroll-behavior-x: contain;
	}
	.ks-cat-reviews__list::-webkit-scrollbar { display: none; }
	.ks-cat-reviews__list .ks-cat-review { flex: 0 0 82vw; width: 82vw; scroll-snap-align: center; }
	.ks-cat-reviews__nav { display: flex; align-items: center; justify-content: center; gap: 24px; margin-top: 28px; }
	.ks-cat-reviews__count { min-width: 4em; margin: 0; text-align: center; font-family: 'Akkurat Mono LL', monospace; font-weight: 700; font-size: 13px; line-height: 1.5; letter-spacing: .05em; color: var(--ks-navy); }
}
@media (max-width: 767.9px) and (prefers-reduced-motion: reduce) {
	.ks-cat-reviews__list { scroll-behavior: auto; }
}
.ks-cat-review {
	flex: 0 0 min(413px, 82vw); width: min(413px, 82vw); min-height: 326px; /* the width too: Safari sized the strip from each quote's unwrapped length without it and slid the cards out of view (Eric 10/26) */
	border: 1px solid var(--ks-line); border-radius: 12px; background: #fff;
	padding: 34px 46px 42px 46px; display: flex; flex-direction: column;
}
.ks-cat-review__stars { display: flex; gap: 1px; }
.ks-cat-review__quote { margin-top: 30px; flex: 1; }
.ks-cat-review__quote p { font-family: 'Akkurat Pro', sans-serif; font-size: 19px; line-height: 1.4; letter-spacing: -.02em; color: var(--ks-navy); }
.ks-cat-review__by { display: flex; align-items: center; gap: 21px; margin-top: 24px; }
.ks-cat-review__avatar { width: 50px; height: 50px; border-radius: 50%; flex: 0 0 50px; }
.ks-cat-review__by strong { display: block; font-family: 'Akkurat Pro', sans-serif; font-weight: 700; font-size: 16px; line-height: 1.5; letter-spacing: .05em; text-transform: uppercase; }
.ks-cat-review__by small { display: block; font-family: 'Akkurat Mono LL', monospace; font-weight: 700; font-size: 13px; line-height: 1.5; letter-spacing: .05em; text-transform: uppercase; }

/* ---------- Contact form ---------- */
.ks-cat-contact { padding: 137px var(--ks-pad) 75px; }
.ks-cat-contact__box {
	max-width: 1314px; margin: 0 auto; border-radius: 36px; overflow: hidden;
	background-color: var(--ks-navy); background-size: cover; background-position: center;
	position: relative;
}
.ks-cat-contact__box::before { content: ""; position: absolute; inset: 0; background: rgba(36, 43, 59, .9); }
.ks-cat-contact__inner { position: relative; max-width: 666px; margin: 0 auto; padding: 136px 0 112px; }
.ks-cat-contact__inner .ks-cat-display { margin-bottom: 20px; }

/* ---------- Small screens ---------- */
@media (max-width: 991.9px) {
	.ks-cat-hero { padding-top: 40px; }
	.ks-cat-hero__copy { order: -1; }
	.ks-cat-pricing__copy { padding-left: 0; }
}
@media (max-width: 767.9px) {
	.ks-cat { --ks-pad: 20px; font-size: 17px; }
	.ks-cat-catalog { padding: 64px 0 80px; }
	.ks-cat-catalog__head .ks-cat-display { margin-top: 20px; }
	.ks-cat-chips { gap: 8px; margin-top: 32px; }
	.ks-cat-chip { padding: 8px 18px; min-height: 40px; }
	.ks-cat-group { margin-top: 56px; }
	.ks-cat-group__title { font-size: 24px; }
	.ks-cat-card__title { font-size: 20px; }
	.ks-cat-pricing { padding: 64px 0; }
	.ks-cat-pricing__card { padding: 36px 20px 28px; }
	.ks-cat-pricing__form-title { margin-bottom: 28px; }
	.ks-cat-reviews { padding-top: 96px; }
	.ks-cat-reviews .ks-cat-display { margin-bottom: 40px; }
	.ks-cat-review { padding: 28px 26px 30px; min-height: 0; }
	.ks-cat-reviews__track { gap: 16px; padding-right: 16px; }
	.ks-cat-contact { padding: 80px 12px 48px; }
	.ks-cat-contact__box { border-radius: 20px; }
	.ks-cat-contact__inner { padding: 56px 20px 48px; }
	.ks-cat-form .gform_footer input[type=submit].gform_button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
	.ks-cat-gallery__track { scroll-behavior: auto; }
}

/* ---------- The quote form (QF 08) inside the pricing card: this page only ---------- */
.ks-cat-pricing__card .ks-qf { margin: 0; }
.ks-cat-pricing__card .ks-qf .ks-qf__card { max-width: none; padding: 0; border: 0; background: transparent; }
