/* Template-specific sections. */

/* =========================================================================
 * Home
 * ====================================================================== */
.hero {
	position: relative;
	background: var(--ink);
	color: var(--white);
	overflow: hidden;
}
.hero__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 60% 55%;
}
.hero__shade {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(var(--ink-rgb), .94) 0%, rgba(var(--ink-rgb), .82) 45%, rgba(var(--ink-rgb), .35) 100%);
}
.hero__shade--bottom {
	background: linear-gradient(180deg, rgba(var(--ink-rgb), 0) 55%, rgba(var(--ink-rgb), .9) 100%);
}
.hero__inner {
	position: relative;
	max-width: 77.5rem;
	margin: 0 auto;
	padding: clamp(72px, 10vw, 128px) 20px clamp(64px, 8vw, 96px);
}
.hero__content {
	max-width: 45rem;
	display: flex;
	flex-direction: column;
	gap: 28px;
}
.hero__badge {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 0.813rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--accent);
}
.hero__dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--accent);
	box-shadow: 0 0 0 4px var(--accent-glow);
}
.hero__title {
	font-size: clamp(3.25rem, 8vw, 7rem);
	font-weight: 900;
	line-height: .92;
	color: var(--white);
}
.hero__title-accent {
	color: var(--accent);
}
.hero__text {
	font-size: clamp(1.063rem, 1.6vw, 1.313rem);
	line-height: 1.5;
	color: var(--dsoft);
	max-width: 35rem;
}
.hero__call {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	background: var(--accent);
	color: var(--ink);
	font-weight: 700;
	font-size: clamp(1rem, 0.708rem + 0.442vw, 1.063rem);
	padding: 16px 24px;
	border-radius: 6px;
}
.hero__call:hover {
	background: var(--accent-hover);
	color: var(--ink);
}
.hero__call-label {
	font-size: 0.813rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	opacity: .75;
}
.hero__wa {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	border: 1.5px solid var(--white);
	color: var(--white);
	font-weight: 600;
	font-size: 1rem;
	padding: 15px 22px;
	border-radius: 6px;
}
.hero__wa:hover {
	background: var(--invert);
	color: var(--ink);
}
.hero__bullets {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 28px;
	font-size: 0.875rem;
	color: var(--dsoft);
	font-weight: 500;
}
.hero__bullets li {
	display: flex;
	align-items: center;
	gap: 8px;
}
.hero__bullets span {
	color: var(--accent);
}

.home-calc {
	background: var(--page);
	padding: 0 20px;
}
.home-calc__inner {
	max-width: 77.5rem;
	margin: -72px auto 0;
	position: relative;
	z-index: 2;
}

.usp {
	padding-bottom: 0;
}
.usp__inner {
	display: grid;
	gap: 48px;
}
.counters {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 11.25rem), 1fr));
	gap: 24px;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	padding: 28px 0;
}
.counter {
	display: grid;
	gap: 4px;
}
.counter__value {
	font-family: 'Big Shoulders Display', sans-serif;
	font-size: clamp(2.75rem, 5vw, 4rem);
	font-weight: 900;
	color: var(--accent-num);
	line-height: 1;
}
.counter__label {
	font-size: 0.875rem;
	color: var(--muted);
	font-weight: 500;
}
.usp-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
	gap: 16px;
}
.usp-card {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: 10px;
	padding: 28px;
	display: grid;
	gap: 12px;
	align-content: start;
}
.usp-card__label,
.card-nr {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: .14em;
	color: var(--accent-text);
}
.usp-card__title {
	font-size: clamp(1.219rem, 1.083rem + 0.676vw, 1.625rem);
	font-weight: 800;
}
.usp-card__text,
.steps__text {
	color: var(--muted);
	line-height: 1.55;
	font-size: 0.938rem;
}

.about__figure {
	position: relative;
}
.about__badge {
	position: absolute;
	left: 20px;
	bottom: 20px;
	background: var(--accent);
	color: var(--ink);
	padding: 14px 18px;
	border-radius: 8px;
	display: grid;
	gap: 2px;
}
.about__badge-label {
	font-size: 0.688rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.about__badge-value {
	font-family: 'Big Shoulders Display', sans-serif;
	font-size: clamp(1.406rem, 1.25rem + 0.78vw, 1.875rem);
	font-weight: 900;
	line-height: 1;
}

.services__inner {
	display: grid;
	gap: 40px;
}
.services__head .sec-head__text {
	max-width: 40rem;
}
.service-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 17.5rem), 1fr));
	gap: 20px;
}
.service-card {
	display: grid;
	grid-template-rows: auto 1fr;
	background: var(--page);
	border: 1px solid var(--line);
	border-radius: 12px;
	overflow: hidden;
	color: var(--text);
}
.service-card:hover {
	border-color: var(--accent);
	color: var(--text);
}
.service-card__img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	display: block;
}
.service-card__body {
	padding: 26px;
	display: grid;
	gap: 14px;
	align-content: start;
}
.service-card__title {
	font-size: clamp(1.313rem, 1.167rem + 0.728vw, 1.75rem);
	font-weight: 800;
}
.more {
	font-weight: 600;
	color: var(--accent-text);
	font-size: 0.938rem;
}

.steps__col {
	display: grid;
	gap: 28px;
}
.steps {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 22px;
}
.steps__item {
	display: grid;
	grid-template-columns: 52px 1fr;
	gap: 16px;
}
.steps__nr {
	font-family: 'Big Shoulders Display', sans-serif;
	font-size: clamp(1.875rem, 1.667rem + 1.04vw, 2.5rem);
	font-weight: 900;
	color: var(--accent-num);
	line-height: 1;
}
.steps__body {
	display: grid;
	gap: 6px;
}
.steps__title,
.b2b-card__title {
	font-size: clamp(1.031rem, 0.917rem + 0.572vw, 1.375rem);
	font-weight: 800;
}

.b2b__cards {
	display: grid;
	gap: 14px;
}
.b2b-card {
	background: var(--dsurface);
	border: 1px solid var(--dline2);
	border-radius: 10px;
	padding: 22px 24px;
	display: grid;
	gap: 6px;
}
.b2b-card__title {
	color: var(--white);
}
.b2b-card__text {
	color: var(--dmuted);
	font-size: 0.938rem;
	line-height: 1.5;
}
.b2b-card__strong {
	font-size: clamp(1rem, 0.708rem + 0.442vw, 1.063rem);
}

.gallery-teaser__inner {
	display: grid;
	gap: 32px;
}
.gallery-teaser__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
	gap: 16px;
}
.gallery-teaser__item {
	display: grid;
	gap: 10px;
}
.gallery-teaser__img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 10px;
	display: block;
}
.gallery-teaser__item figcaption {
	font-size: 0.875rem;
	color: var(--muted);
}

.reviews__inner {
	display: grid;
	gap: 36px;
}
.rating {
	display: flex;
	align-items: center;
	gap: 12px;
}
.rating__score {
	font-family: 'Big Shoulders Display', sans-serif;
	font-size: clamp(2.063rem, 1.833rem + 1.144vw, 2.75rem);
	font-weight: 900;
	line-height: 1;
}
.rating__meta {
	display: grid;
	gap: 2px;
}
.stars {
	color: var(--accent);
	letter-spacing: 0.125rem;
	font-size: 1rem;
}
.rating__label {
	font-size: 0.813rem;
	color: var(--muted);
}
.review-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 17.5rem), 1fr));
	gap: 16px;
}
.review {
	margin: 0;
	background: var(--page);
	border: 1px solid var(--line);
	border-radius: 10px;
	padding: 26px;
	display: grid;
	gap: 14px;
	align-content: start;
}
.review .stars {
	font-size: 0.875rem;
}
.review__text {
	font-size: 1rem;
	line-height: 1.55;
	color: var(--text);
}
.review__who {
	font-size: 0.813rem;
	color: var(--muted);
	font-weight: 500;
}

.area__links {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
	gap: 10px 20px;
	font-size: 0.938rem;
	font-weight: 500;
}
.area__links a {
	color: var(--text);
}
.area__links a:hover {
	color: var(--accent-text);
}

.home-faq {
	border-bottom: 0;
}
.home-faq .split {
	align-items: start;
}
.home-faq__intro {
	display: grid;
	gap: 18px;
	position: sticky;
	top: 100px;
}

.home-contact {
	border-top: 1px solid var(--line);
}
.contact-grid {
	max-width: 77.5rem;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 18.75rem), 1fr));
	gap: 24px;
	align-items: start;
}
.contact-grid__side {
	display: grid;
	gap: 24px;
}

/* =========================================================================
 * Services overview and service page
 * ====================================================================== */
.service-list {
	display: grid;
	gap: 24px;
}
.service-row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 18.75rem), 1fr));
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: 12px;
	overflow: hidden;
	color: var(--text);
}
.service-row:hover {
	border-color: var(--accent);
	color: var(--text);
}
.service-row__img {
	width: 100%;
	height: 100%;
	min-height: 260px;
	object-fit: cover;
	display: block;
}
.service-row__body {
	padding: clamp(26px, 4vw, 44px);
	display: grid;
	gap: 16px;
	align-content: center;
}
.service-row__title {
	font-size: clamp(1.875rem, 3.6vw, 2.875rem);
	font-weight: 800;
	margin: 0;
	font-family: 'Big Shoulders Display', sans-serif;
	text-transform: uppercase;
	line-height: 1;
}
.service-row__text {
	margin: 0;
	font-size: 1rem;
	line-height: 1.6;
	color: var(--muted);
}
.service-row .dots {
	color: var(--text);
}

.b2b--inner .stack {
	gap: 20px;
}
.b2b--inner .h-b2b {
	font-size: clamp(2.25rem, 4.4vw, 3.625rem);
	font-weight: 800;
	margin: 0;
	color: var(--white);
}
.b2b--inner .btn {
	gap: 0;
}

/* Running text of service and region pages: lead paragraphs, lists, sections (h2 + text). */
.entry-text {
	font-size: clamp(1rem, 0.708rem + 0.442vw, 1.063rem);
	line-height: 1.65;
	color: var(--body);
}
.entry-text > * {
	margin: 0;
}
.entry-text > * + * {
	margin-top: 16px;
}
.entry-text > h2 {
	margin-top: 40px;
	font-size: clamp(2rem, 3.6vw, 2.875rem);
	font-weight: 800;
	color: var(--text);
	line-height: 1;
}
.entry-text > :first-child {
	margin-top: 0;
}
.entry-text > h2 + * {
	margin-top: 14px;
}
.entry-text > h2 + ul {
	margin-top: 18px;
}
.entry-text ul {
	display: grid;
	gap: 10px;
	font-size: 1rem;
	line-height: normal;
	color: var(--text);
}
.entry-text li {
	display: flex;
	gap: 12px;
	align-items: flex-start;
}
.entry-text li::before,
.entry-prose li::before,
.entry-post li::before {
	content: '◆';
	color: var(--accent);
	font-weight: 700;
	flex-shrink: 0;
}
.entry-text a,
.entry-prose a,
.entry-post a {
	color: var(--accent-text);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.work-steps {
	display: grid;
	gap: 22px;
}
.work-steps__list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 13.75rem), 1fr));
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.work-steps__item {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: 10px;
	padding: 22px;
	display: grid;
	gap: 8px;
	align-content: start;
}
.work-steps__nr {
	font-family: 'Big Shoulders Display', sans-serif;
	font-size: clamp(1.688rem, 1.5rem + 0.936vw, 2.25rem);
	font-weight: 900;
	color: var(--accent-num);
	line-height: 1;
}
.work-steps__item strong {
	font-size: 1rem;
}
.work-steps__item p {
	margin: 0;
	font-size: 0.875rem;
	color: var(--muted);
	line-height: 1.5;
}
.price-box__text {
	margin: 0;
	font-size: 1rem;
	line-height: 1.6;
	color: var(--dmuted);
}
.price-box .btn {
	border-radius: 8px;
	gap: 0;
}
.faq-block {
	display: grid;
	gap: 18px;
}
.need-list {
	display: grid;
	gap: 8px;
	font-size: 0.906rem;
	color: var(--body);
	margin: 0;
	padding: 0;
	list-style: none;
}
.need-list li {
	display: flex;
	gap: 10px;
}
.need-list span:first-child {
	color: var(--accent);
}
.strength {
	display: grid;
	gap: 4px;
}
.strength strong {
	font-size: 0.938rem;
}
.strength span {
	font-size: 0.875rem;
	color: var(--muted);
}

/* =========================================================================
 * Region page and overview
 * ====================================================================== */
.region-services {
	display: grid;
	gap: 18px;
}
.region-services__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 12.5rem), 1fr));
	gap: 12px;
}
.mini-card {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: 10px;
	padding: 20px;
	color: var(--text);
	display: grid;
	gap: 6px;
}
.mini-card:hover {
	border-color: var(--accent);
	color: var(--text);
}
.mini-card strong {
	font-size: 1rem;
}
.mini-card span {
	font-size: 0.875rem;
	color: var(--accent-text);
}
.places {
	display: grid;
	gap: 14px;
}
.places__intro {
	margin: 0;
	font-size: 1rem;
	color: var(--muted);
}
.places__list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.places__list li {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: 999px;
	padding: 8px 14px;
	font-size: 0.875rem;
	font-weight: 500;
}
.region-cta .h-card {
	font-size: clamp(1.219rem, 1.083rem + 0.676vw, 1.625rem);
	font-weight: 800;
	margin: 0;
	color: var(--white);
}
.region-cta p {
	margin: 0;
	font-size: 0.875rem;
	color: var(--dmuted);
	line-height: 1.5;
}

.regions__inner {
	display: grid;
	gap: 48px;
}
.regions__intro {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 18.75rem), 1fr));
	gap: clamp(32px, 5vw, 64px);
	align-items: center;
}
.regions__intro-text {
	display: grid;
	gap: 16px;
}
.regions__intro-text h2 {
	font-size: clamp(2rem, 3.8vw, 3.125rem);
	font-weight: 800;
	margin: 0;
}
.regions__intro-text p {
	margin: 0;
	font-size: clamp(1rem, 0.708rem + 0.442vw, 1.063rem);
	line-height: 1.65;
	color: var(--body);
}
.regions__intro-text .regions__note {
	font-size: 1rem;
	line-height: 1.6;
	color: var(--muted);
}
.regions__group {
	display: grid;
	gap: 18px;
}
.regions__group h2 {
	font-size: clamp(1.75rem, 3vw, 2.375rem);
	font-weight: 800;
	margin: 0;
}
.regions__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 11.25rem), 1fr));
	gap: 12px;
}
.region-card {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: 10px;
	padding: 20px;
	color: var(--text);
	display: grid;
	gap: 4px;
}
.region-card:hover {
	border-color: var(--accent);
	color: var(--text);
}
.region-card strong {
	font-size: clamp(1rem, 0.708rem + 0.442vw, 1.063rem);
}
.region-card span {
	font-size: 0.813rem;
	color: var(--muted);
}
.region-card--town {
	padding: 16px 20px;
	display: flex;
	justify-content: space-between;
	gap: 8px;
	font-weight: 500;
}
.region-card--town span {
	font-size: inherit;
	color: inherit;
}
.region-card--town span:last-child {
	color: var(--accent);
}
.regions__foot {
	margin: 0;
	font-size: 0.875rem;
	color: var(--muted);
}

/* =========================================================================
 * Gallery
 * ====================================================================== */
.gallery-page {
	padding: clamp(48px, 6vw, 80px) 20px;
}
.gallery-page__inner {
	display: grid;
	gap: 28px;
}
.filters {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.filter {
	border: 1.5px solid var(--line);
	background: var(--pill-bg);
	color: var(--pill);
	border-radius: 999px;
	padding: 10px 16px;
	font-size: 0.875rem;
	font-weight: 600;
	cursor: pointer;
}
.filter[aria-pressed="true"] {
	border-color: var(--pill);
	background: var(--pill);
	color: var(--white);
}
.gallery-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 17.5rem), 1fr));
	gap: 16px;
}
.gallery-item {
	margin: 0;
	display: grid;
	gap: 10px;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: 12px;
	overflow: hidden;
}
.gallery-item__img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	display: block;
}
.gallery-item figcaption {
	padding: 0 16px 16px;
	display: grid;
	gap: 4px;
}
.gallery-item__cat {
	font-size: 0.688rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--accent-text);
}
.gallery-item__cap {
	font-size: 0.938rem;
	font-weight: 500;
}
.gallery-item__where {
	font-size: 0.813rem;
	color: var(--muted);
}
.small-note {
	margin: 0;
	font-size: 0.875rem;
	color: var(--muted);
}

/* =========================================================================
 * About
 * ====================================================================== */
.about-page .stack {
	gap: 20px;
}
.h-about {
	font-size: clamp(2.125rem, 4vw, 3.375rem);
	font-weight: 800;
	margin: 0;
}
.body-text {
	margin: 0;
	font-size: clamp(1rem, 0.708rem + 0.442vw, 1.063rem);
	line-height: 1.65;
	color: var(--body);
}
.values__inner {
	display: grid;
	gap: 36px;
}
.value-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
	gap: 16px;
}
.value-card {
	background: var(--page);
	border: 1px solid var(--line);
	border-radius: 10px;
	padding: 28px;
	display: grid;
	gap: 10px;
	align-content: start;
}
.value-card strong {
	font-size: clamp(1rem, 0.75rem + 0.468vw, 1.125rem);
}
.value-card p {
	margin: 0;
	font-size: 0.938rem;
	color: var(--muted);
	line-height: 1.55;
}
.equipment {
	display: grid;
	gap: 14px;
}
.equipment__item {
	display: grid;
	gap: 4px;
}
.equipment__item strong {
	font-size: clamp(1rem, 0.708rem + 0.442vw, 1.063rem);
}
.equipment__item span {
	font-size: 0.938rem;
	color: var(--muted);
	line-height: 1.5;
}
.about-page .btn--neutral,
.about-page .btn--outline {
	gap: 0;
}

/* =========================================================================
 * Contact page
 * ====================================================================== */
.contact-calc {
	padding: clamp(48px, 6vw, 80px) 20px 0;
}

/* =========================================================================
 * Blog
 * ====================================================================== */
.post-grid {
	max-width: 77.5rem;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 18.75rem), 1fr));
	gap: 20px;
}
.post-card {
	display: grid;
	grid-template-rows: auto 1fr;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: 12px;
	overflow: hidden;
	color: var(--text);
}
.post-card:hover {
	border-color: var(--accent);
	color: var(--text);
}
.post-card__img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	display: block;
}
.post-card__body {
	padding: 24px;
	display: grid;
	gap: 12px;
	align-content: start;
}
.post-card__meta {
	display: flex;
	gap: 10px;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--accent-text);
}
.post-card__sep {
	color: var(--dmuted);
}
.post-card__date {
	color: var(--muted);
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
}
.post-card__title {
	font-size: clamp(1.313rem, 1.167rem + 0.728vw, 1.75rem);
	font-weight: 800;
	margin: 0;
}
.post-card__excerpt {
	margin: 0;
	font-size: 0.938rem;
	line-height: 1.55;
	color: var(--muted);
}
.pagination {
	max-width: 77.5rem;
	margin: 32px auto 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.pagination .page-numbers {
	border: 1px solid var(--line);
	border-radius: 8px;
	padding: 10px 14px;
	color: var(--text);
}
.pagination .page-numbers.current,
.pagination a.page-numbers:hover {
	border-color: var(--accent);
	color: var(--accent-text);
}

.article {
	gap: 28px;
}
.article__meta {
	display: flex;
	gap: 10px;
	font-size: 0.813rem;
	color: var(--muted);
}
.article__cat {
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--accent-text);
}
.entry-post {
	display: contents;
}
.entry-post > p {
	margin: 0;
	font-size: clamp(1rem, 0.708rem + 0.442vw, 1.063rem);
	line-height: 1.7;
	color: var(--body);
}
.entry-post > h2 {
	font-size: clamp(1.75rem, 3.2vw, 2.5rem);
	font-weight: 800;
	margin: 12px 0 0;
}
.entry-post > h3 {
	font-size: clamp(1.25rem, 2.2vw, 1.75rem);
	font-weight: 800;
	margin: 8px 0 0;
}
.entry-post > ul,
.entry-post > ol {
	display: grid;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 1rem;
	line-height: 1.5;
}
.entry-post li {
	display: flex;
	gap: 12px;
}
.entry-post > figure,
.entry-post > .wp-block-image {
	margin: 0;
}
.entry-post img {
	border-radius: 12px;
}
.article__cta {
	gap: 12px;
	margin-top: 12px;
	padding: clamp(24px, 4vw, 36px);
}
.article__cta strong {
	font-size: clamp(1.125rem, 1rem + 0.624vw, 1.5rem);
	font-family: 'Big Shoulders Display', sans-serif;
	text-transform: uppercase;
}
.article__cta-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.article__cta-call {
	background: var(--accent);
	color: var(--ink);
	font-weight: 700;
	padding: 12px 20px;
	border-radius: 8px;
}
.article__cta-call:hover {
	background: var(--accent-hover);
	color: var(--ink);
}
.article__cta-calc {
	border: 1.5px solid var(--white);
	color: var(--white);
	font-weight: 600;
	padding: 11px 20px;
	border-radius: 8px;
}
.article__cta-calc:hover {
	background: var(--invert);
	color: var(--ink);
}

/* =========================================================================
 * Legal pages and default page content
 * ====================================================================== */
.prose-sec {
	padding: clamp(3rem, 6vw, 6rem) 1.25rem;
}
.entry-prose {
	max-width: 48rem;
	margin: 0 auto;
	font-size: clamp(1rem, 0.95rem + 0.25vw, 1.0625rem);
	line-height: 1.7;
	color: var(--body);
}
.entry-prose > * {
	margin: 0;
}
.entry-prose > * + * {
	margin-top: 0.75rem;
}
.entry-prose > h2 {
	margin-top: clamp(2rem, 4vw, 3rem);
	font-size: clamp(1.625rem, 1.3rem + 1.4vw, 2.375rem);
	font-weight: 800;
	line-height: 1;
	color: var(--text);
}
.entry-prose > :first-child {
	margin-top: 0;
}
.entry-prose ul {
	display: grid;
	gap: 0.75rem;
}
.entry-prose li {
	display: flex;
	gap: 0.75rem;
}
.entry-prose strong {
	color: var(--text);
}
.entry-prose h3 {
	font-size: clamp(1.25rem, 1.1rem + 0.6vw, 1.625rem);
	font-weight: 800;
	color: var(--text);
	margin-top: 1.5rem;
}

/* Search results and 404 */
.search-list {
	max-width: 48rem;
	margin: 0 auto;
	display: grid;
	gap: 16px;
}
.search-form {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	max-width: 48rem;
	margin: 0 auto 32px;
}
.search-form .field {
	flex: 1;
	min-width: min(100%, 14rem);
	width: auto;
}
.b2b--inner .b2b-card__text {
	line-height: normal;
}
.narrow {
	max-width: 48rem;
	margin: 0 auto;
}
