/*
Theme Name:     Hostadum v2.1
Template:       kadence
Version:        3.1
Description:    Karppiset & Co — Elementor design system (maps to Site Settings globals)
*/

/* ═══════════════════════════════════════════════════════════
   DESIGN TOKENS — mirror Elementor Global Colors / Fonts
   Edit globals in Elementor → Site Settings; CSS reads these.
   ═══════════════════════════════════════════════════════════ */
:root {
	/* Color — light professional palette (no dark bands, no brown/gold) */
	--k-ink: #334155;
	--k-ink-muted: #64748b;
	--k-accent: #2563eb;
	--k-accent-rgb: 37, 99, 235;
	--k-accent-light: #eff6ff;
	--k-accent-dark: #1d4ed8;
	--k-accent-text: #1d4ed8;
	--k-accent-btn: #2563eb;
	--k-accent-btn-hover: #1d4ed8;
	--k-accent-icon: #2563eb;
	--k-focus-ring: #2563eb;
	--k-focus-glow: rgba(37, 99, 235, 0.2);
	--k-bg: #ffffff;
	--k-bg-alt: #f8fafc;
	--k-bg-warm: #f1f5f9;
	--k-border: #e2e8f0;
	--k-hero-overlay: #0f172a;
	--k-hero-overlay-opacity: 0.62;

	/* Type scale — ratio 1.333 from 17px body */
	--k-text-xs: 0.75rem;
	--k-text-sm: 0.875rem;
	--k-text-base: 1.0625rem;
	--k-text-lg: 1.25rem;
	--k-text-xl: 1.5rem;
	--k-text-2xl: 2rem;
	--k-text-3xl: 3rem;
	--k-text-4xl: 3.5rem;

	/* Spacing — 8-based scale */
	--k-space-1: 8px;
	--k-space-2: 16px;
	--k-space-3: 24px;
	--k-space-4: 32px;
	--k-space-5: 48px;
	--k-space-6: 64px;
	--k-space-7: 96px;
	--k-space-8: 128px;
	--k-space-9: 72px;
	--k-space-10: 104px;

	--k-section-y: var(--k-space-10);
	--k-section-y-tablet: var(--k-space-9);
	--k-section-y-mobile: var(--k-space-5);
	--k-gutter: var(--k-space-3);
	--k-gutter-desktop: var(--k-space-4);
	--k-content-max: 1140px;

	/* Radius + motion — single radius everywhere */
	--k-radius: 8px;
	--k-ease: cubic-bezier(0.25, 0.1, 0.25, 1);
	--k-duration: 0.25s;

	/* Layered shadows — three tiers only */
	--k-shadow-surface: 0 1px 2px rgba(21, 28, 40, 0.06), 0 4px 12px rgba(21, 28, 40, 0.06);
	--k-shadow-card: 0 2px 4px rgba(15, 23, 41, 0.06), 0 12px 32px rgba(15, 23, 41, 0.08);
	--k-shadow-card-hover: 0 4px 8px rgba(15, 23, 41, 0.08), 0 20px 48px rgba(15, 23, 41, 0.14);
	--k-shadow-btn: 0 1px 2px rgba(21, 28, 40, 0.1), 0 4px 14px rgba(var(--k-accent-rgb), 0.28);
	--k-shadow-btn-hover: 0 2px 4px rgba(21, 28, 40, 0.12), 0 8px 22px rgba(var(--k-accent-rgb), 0.38);
	--k-shadow-input: 0 1px 2px rgba(21, 28, 40, 0.04);
	--k-shadow-focus: 0 0 0 2px var(--k-bg), 0 0 0 5px var(--k-focus-ring), 0 0 0 8px var(--k-focus-glow);

	/* Legacy aliases */
	--k-shadow-sm: var(--k-shadow-surface);
	--k-shadow-md: var(--k-shadow-card);
	--k-shadow-lg: var(--k-shadow-card-hover);
	--k-shadow-service: var(--k-shadow-card);
	--k-shadow-service-hover: var(--k-shadow-card-hover);
}

@media (max-width: 1024px) {
	:root {
		--k-section-y: var(--k-section-y-tablet);
	}
}

@media (max-width: 767px) {
	:root {
		--k-section-y: var(--k-section-y-mobile);
	}
}

@media (prefers-reduced-motion: reduce) {
	:root {
		--k-duration: 0.01ms;
	}
}

/* Scroll-reveal — Elementor Motion Effects (fade up 20px, 0.4s, ease) */
@keyframes karppisetFadeUp {
	from {
		opacity: 0;
		transform: translate3d(0, 20px, 0);
	}
	to {
		opacity: 1;
		transform: translate3d(0, 0, 0);
	}
}

@media (prefers-reduced-motion: no-preference) {
	.elementor-element.karppiset-reveal.animated.fadeInUp {
		animation-name: karppisetFadeUp !important;
		animation-duration: 0.4s !important;
		animation-timing-function: ease !important;
		animation-fill-mode: both;
		visibility: visible !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.elementor-element.karppiset-reveal {
		animation: none !important;
		opacity: 1 !important;
		visibility: visible !important;
		transform: none !important;
	}
}

/* ═══ Base typography ═══ */
body,
.elementor-widget-text-editor {
	font-family: "DM Sans", var(--e-global-typography-primary-font-family, sans-serif);
	color: var(--k-ink-muted);
	font-weight: 400;
	line-height: 1.6;
}

.elementor-widget-heading .elementor-heading-title {
	font-family: "DM Sans", var(--e-global-typography-primary-font-family, sans-serif);
	color: var(--k-ink);
}

.elementor-widget-text-editor p {
	font-size: var(--k-text-base);
	line-height: 1.6;
	font-weight: 400;
	color: var(--k-ink-muted);
}

/* ═══ Header ═══ */
.site-header-main {
	box-shadow: var(--k-shadow-surface);
	border-bottom: 1px solid var(--k-border);
}

.site-title,
.site-branding .brand {
	font-weight: 700 !important;
	color: var(--k-ink) !important;
	letter-spacing: -0.02em;
	font-size: var(--k-text-lg) !important;
}

.menu-toggle-open.drawer-toggle {
	background-color: var(--k-accent-btn) !important;
	color: #fff !important;
	border-color: var(--k-accent-btn) !important;
}

.menu-toggle-open.drawer-toggle:hover {
	background-color: var(--k-accent-btn-hover) !important;
}

.main-navigation .menu {
	gap: var(--k-space-1);
}

.main-navigation .menu > li > a {
	font-weight: 600;
	font-size: var(--k-text-base);
	padding: 0.5em 0.85em;
	border-radius: var(--k-radius);
	transition: background-color var(--k-duration) var(--k-ease), color var(--k-duration) var(--k-ease);
	display: inline-block;
}

/* Desktop — align header logo with Elementor hero/content column */
@media (min-width: 768px) {
	.site-main-header-wrap.site-header-row-container {
		padding-left: var(--k-gutter-desktop) !important;
		padding-right: var(--k-gutter-desktop) !important;
	}

	.site-main-header-wrap .site-header-row-container-inner > .site-container {
		max-width: var(--k-content-max) !important;
		width: 100% !important;
		margin-left: auto !important;
		margin-right: auto !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
}

/* ═══ Keyboard focus — visible on all interactive elements ═══ */
.skip-link:focus-visible,
.main-navigation .menu > li > a:focus-visible,
.mobile-navigation .menu > li > a:focus-visible,
.menu-toggle-open:focus-visible,
.drawer-toggle:focus-visible,
#kt-scroll-up-reader:focus-visible,
.kadence-scroll-to-top:focus-visible,
.elementor-button:focus-visible,
.elementor-nav-menu a:focus-visible,
.elementor-icon-list-item a:focus-visible,
a.contact-value:focus-visible,
.karppiset-text-link:focus-visible,
button[type="submit"]:focus-visible {
	outline: 3px solid var(--k-focus-ring) !important;
	outline-offset: 3px !important;
	box-shadow: 0 0 0 6px var(--k-focus-glow) !important;
}

.elementor-field-group .elementor-field:focus,
.elementor-field-group .elementor-field:focus-visible {
	border-color: var(--k-accent-btn) !important;
	outline: 2px solid var(--k-accent-btn) !important;
	outline-offset: 1px !important;
	box-shadow: var(--k-shadow-focus) !important;
}

/* ═══ Hero ═══ */
.karppiset-hero {
	position: relative;
	isolation: isolate;
}

.karppiset-hero > .e-con-inner {
	position: relative;
	z-index: 2;
	justify-content: center !important;
	align-items: flex-start !important;
	width: 100%;
	max-width: var(--k-content-max);
}

.karppiset-hero .elementor-background-overlay {
	background: linear-gradient(
		to bottom,
		rgba(15, 23, 42, 0.74) 0%,
		rgba(15, 23, 42, 0.5) 50%,
		rgba(15, 23, 42, 0.78) 100%
	) !important;
	opacity: 1 !important;
}

.karppiset-hero-content,
.karppiset-hero-content > .e-con-inner {
	max-width: 600px;
	width: 100%;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.karppiset-hero .elementor-heading-title,
.karppiset-hero h1 {
	color: #fff !important;
	font-size: clamp(2.25rem, 5vw, var(--k-text-4xl)) !important;
	font-weight: 700 !important;
	line-height: 1.1 !important;
	letter-spacing: -0.02em !important;
	text-shadow: 0 2px 24px rgba(0, 0, 0, 0.35);
}

.karppiset-hero .elementor-widget-text-editor p {
	color: rgba(255, 255, 255, 0.88) !important;
	font-size: var(--k-text-lg) !important;
	line-height: 1.5 !important;
}

.karppiset-hero .elementor-button {
	margin-top: var(--k-space-3);
	box-shadow: var(--k-shadow-btn) !important;
}

.karppiset-page-head .elementor-heading-title {
	color: var(--k-ink) !important;
	font-size: clamp(1.75rem, 4vw, var(--k-text-3xl)) !important;
	font-weight: 700 !important;
	line-height: 1.1 !important;
	letter-spacing: -0.02em !important;
	margin: 0 !important;
}

.karppiset-section-heading .elementor-heading-title::after {
	display: none !important;
}

.karppiset-page-head {
	min-height: 280px;
}

.karppiset-page-head .elementor-widget-text-editor p {
	color: var(--k-ink-muted) !important;
	font-size: var(--k-text-base) !important;
	margin: var(--k-space-1) 0 0 !important;
}

/* ═══ Sections — generous rhythm, alternating planes ═══ */
.karppiset-section {
	padding-top: var(--k-section-y) !important;
	padding-bottom: var(--k-section-y) !important;
	padding-left: var(--k-gutter) !important;
	padding-right: var(--k-gutter) !important;
}

.karppiset-hero,
.karppiset-page-head,
.karppiset-cta {
	padding-left: var(--k-gutter) !important;
	padding-right: var(--k-gutter) !important;
}

@media (min-width: 768px) {
	.karppiset-section,
	.karppiset-hero,
	.karppiset-page-head,
	.karppiset-cta {
		padding-left: var(--k-gutter-desktop) !important;
		padding-right: var(--k-gutter-desktop) !important;
	}
}

.karppiset-section--alt {
	background-color: var(--k-bg-alt) !important;
}

.karppiset-section--warm {
	background-color: var(--k-bg-warm) !important;
	padding-top: var(--k-space-8) !important;
	padding-bottom: var(--k-space-4) !important;
}

.karppiset-section--warm > .e-con-inner {
	align-items: flex-start !important;
	gap: var(--k-space-3) !important;
}

.karppiset-section--warm .karppiset-section-heading .elementor-heading-title {
	margin-bottom: 0 !important;
}

.karppiset-section--warm .karppiset-section-heading .elementor-heading-title::after {
	display: block !important;
	content: "";
	width: 60px;
	height: 3px;
	background: var(--k-accent);
	margin: var(--k-space-2) 0 0;
	border-radius: 2px;
}

/* Meistä — always visible (no scroll-trigger; avoids blank plank on mobile) */
.karppiset-section--warm .elementor-widget-heading,
.karppiset-section--warm .elementor-widget-text-editor {
	visibility: visible !important;
	opacity: 1 !important;
	transform: none !important;
}

.karppiset-meista-prose {
	max-width: 680px;
	margin: 0;
	text-align: left;
}

.karppiset-meista-prose p {
	margin: 0 0 var(--k-space-2);
	line-height: 1.6;
	color: var(--k-ink-muted);
}

.karppiset-meista-prose p:last-child {
	margin-bottom: 0;
}

/* Meistä — two-column layout + photo collage */
.karppiset-meista > .e-con-inner {
	display: grid !important;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr) !important;
	grid-template-rows: auto !important;
	gap: var(--k-space-5) !important;
	align-items: start !important;
}

.karppiset-meista-copy {
	align-self: center;
}

.karppiset-meista-visual,
.karppiset-meista-visual .elementor-widget-text-editor {
	width: 100%;
}

.karppiset-meista-visual .elementor-widget-text-editor p {
	margin: 0 !important;
}

.karppiset-meista-collage {
	display: grid;
	grid-template-columns: 1.2fr 0.8fr 0.75fr;
	grid-template-rows: 118px 118px 104px;
	gap: 12px;
	width: 100%;
}

.karppiset-meista-photo {
	margin: 0;
	overflow: hidden;
	border: 1px solid var(--k-border);
	border-top: 2px solid var(--k-accent);
	border-radius: var(--k-radius);
	box-shadow: var(--k-shadow-card);
	background: var(--k-bg);
	transition:
		transform var(--k-duration) var(--k-ease),
		box-shadow var(--k-duration) var(--k-ease);
}

.karppiset-meista-photo:hover {
	transform: translateY(-4px);
	box-shadow: var(--k-shadow-card-hover);
}

.karppiset-meista-photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.karppiset-meista-photo--hero {
	grid-column: 1;
	grid-row: 1 / 3;
	min-height: 240px;
}

.karppiset-meista-photo--a {
	grid-column: 2;
	grid-row: 1;
}

.karppiset-meista-photo--b {
	grid-column: 3;
	grid-row: 1 / 3;
	min-height: 230px;
}

.karppiset-meista-photo--c {
	grid-column: 2;
	grid-row: 2 / 4;
	min-height: 210px;
}

.karppiset-meista-photo--d {
	grid-column: 1;
	grid-row: 3;
}

.karppiset-content > .e-con-inner {
	max-width: var(--k-content-max);
	margin: 0 auto;
}

.karppiset-section-heading .elementor-heading-title {
	color: var(--k-ink) !important;
	font-size: clamp(2rem, 4vw, var(--k-text-3xl)) !important;
	font-weight: 800 !important;
	line-height: 1.1 !important;
	letter-spacing: -0.02em !important;
	margin: 0 0 var(--k-space-2) !important;
}

.karppiset-section-lead,
.karppiset-locations-grid .elementor-widget-text-editor p.karppiset-section-lead {
	max-width: 640px;
	margin: 0 auto var(--k-space-5) !important;
	text-align: center;
	font-size: var(--k-text-base);
	line-height: 1.6;
	color: var(--k-ink-muted);
}

.karppiset-locations-grid > .e-con-inner > .karppiset-section-heading,
.karppiset-locations-grid > .e-con-inner > .elementor-widget-text-editor {
	grid-column: 1 / -1;
}

.karppiset-location-card > .e-con-inner > .e-con,
.karppiset-location-card > .e-con {
	padding: var(--k-space-3) !important;
}

/* ═══ Service cards (homepage) ═══ */
.karppiset-services-grid > .e-con-inner {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr) !important;
	gap: var(--k-space-3) !important;
	align-items: stretch;
}

.karppiset-service-card {
	background: var(--k-bg) !important;
	border: 1px solid var(--k-border) !important;
	border-top: 2px solid var(--k-accent) !important;
	border-radius: var(--k-radius) !important;
	padding: var(--k-space-4) !important;
	box-shadow: var(--k-shadow-card);
	transition: transform var(--k-duration) var(--k-ease), box-shadow var(--k-duration) var(--k-ease);
	height: 100%;
	display: flex !important;
	flex-direction: column !important;
}

.karppiset-service-card > .e-con-inner {
	display: flex !important;
	flex-direction: column !important;
	flex: 1 1 auto;
	height: 100%;
	width: 100%;
}

.karppiset-service-card .elementor-widget-icon-box {
	flex: 1 1 auto;
}

.karppiset-service-card .elementor-widget-button {
	margin-top: auto !important;
	padding-top: var(--k-space-3);
	flex-shrink: 0;
	align-self: flex-start;
}

.karppiset-service-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--k-shadow-card-hover);
}

.karppiset-service-card .elementor-icon-box-icon i,
.karppiset-service-card .elementor-icon-box-icon svg {
	color: var(--k-accent-icon) !important;
	fill: var(--k-accent-icon) !important;
	font-size: 1.75rem;
}

.karppiset-service-card .elementor-icon-box-title {
	font-size: var(--k-text-xl) !important;
	font-weight: 700 !important;
	color: var(--k-ink) !important;
	margin-bottom: var(--k-space-1) !important;
}

.karppiset-service-card .elementor-icon-box-description {
	color: var(--k-ink-muted) !important;
	line-height: 1.6 !important;
	font-size: var(--k-text-base) !important;
}

.karppiset-service-card .elementor-button {
	margin-top: 0 !important;
}

/* Prose blocks — Palvelut page */
.karppiset-prose-stack > .e-con-inner {
	max-width: 720px !important;
	margin: 0 auto;
	display: flex !important;
	flex-direction: column !important;
	gap: 0 !important;
}

.karppiset-service-block {
	border-bottom: 1px solid var(--k-border);
	padding: var(--k-space-4) 0 !important;
}

.karppiset-prose-stack > .e-con-inner > .karppiset-service-block:last-child {
	border-bottom: none;
	padding-bottom: 0 !important;
}

.karppiset-service-block .elementor-heading-title {
	font-size: var(--k-text-xl) !important;
	font-weight: 700 !important;
	color: var(--k-ink) !important;
	margin-bottom: var(--k-space-1) !important;
}

.karppiset-text-link {
	color: var(--k-accent-text) !important;
	font-weight: 600;
	text-decoration: none;
	transition: color var(--k-duration) var(--k-ease);
}

.karppiset-text-link:hover {
	color: var(--k-accent-btn-hover) !important;
	text-decoration: underline;
}

/* ═══ Feature trust cards ═══ */
.karppiset-features > .e-con-inner {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: var(--k-space-5) !important;
}

.karppiset-features > .e-con-inner > .elementor-widget-heading,
.karppiset-features > .e-con-inner > .karppiset-feature-card {
	grid-column: auto;
}

.karppiset-features > .e-con-inner > .elementor-widget-heading {
	grid-column: 1 / -1;
}

.karppiset-feature-card {
	background: var(--k-bg) !important;
	border: 1px solid var(--k-border) !important;
	border-top: 2px solid var(--k-accent) !important;
	border-radius: var(--k-radius) !important;
	padding: var(--k-space-5) !important;
	box-shadow: var(--k-shadow-card);
	text-align: center;
	transition: transform var(--k-duration) var(--k-ease), box-shadow var(--k-duration) var(--k-ease);
	height: 100%;
}

.karppiset-feature-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--k-shadow-card-hover);
}

.karppiset-feature-card .elementor-icon-box-wrapper {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: var(--k-space-3);
}

.karppiset-feature-card .elementor-icon-box-icon {
	width: 64px;
	height: 64px;
	display: flex !important;
	align-items: center;
	justify-content: center;
	background: var(--k-accent-light);
	border-radius: var(--k-radius);
	margin: 0 auto var(--k-space-2) !important;
}

.karppiset-feature-card .elementor-icon-box-icon i,
.karppiset-feature-card .elementor-icon-box-icon svg {
	color: var(--k-accent-icon) !important;
	fill: var(--k-accent-icon) !important;
	font-size: 1.75rem;
}

.karppiset-feature-card .elementor-icon-box-title {
	font-size: var(--k-text-xl) !important;
	font-weight: 700 !important;
	color: var(--k-ink) !important;
	line-height: 1.25 !important;
	margin-bottom: var(--k-space-1) !important;
}

.karppiset-feature-card .elementor-icon-box-description {
	font-size: var(--k-text-base) !important;
	color: var(--k-ink-muted) !important;
	line-height: 1.6 !important;
	max-width: 280px;
	margin: 0 auto;
}

/* ═══ Location cards — vuokrakohteet ═══ */
.karppiset-locations-grid > .e-con-inner {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: var(--k-space-3) !important;
	align-items: stretch;
}

.karppiset-locations-grid > .e-con-inner > .elementor-widget-heading,
.karppiset-locations-grid > .e-con-inner > .elementor-widget-text-editor {
	grid-column: 1 / -1;
}

.karppiset-location-card {
	background: var(--k-bg) !important;
	border: 1px solid var(--k-border) !important;
	border-radius: var(--k-radius) !important;
	overflow: hidden;
	box-shadow: var(--k-shadow-card);
	transition: transform var(--k-duration) var(--k-ease), box-shadow var(--k-duration) var(--k-ease);
	height: 100%;
	display: flex !important;
	flex-direction: column !important;
}

.karppiset-location-card > .elementor-widget-image,
.karppiset-location-card .elementor-widget-image {
	flex-shrink: 0;
	overflow: hidden;
	border-bottom: 1px solid var(--k-border);
	border-radius: var(--k-radius) var(--k-radius) 0 0;
	line-height: 0;
}

.karppiset-location-card > .e-con {
	flex: 1 1 auto !important;
	display: flex !important;
	flex-direction: column !important;
	width: 100%;
}

.karppiset-location-card > .e-con > .e-con-inner {
	display: flex !important;
	flex-direction: column !important;
	flex: 1 1 auto;
	height: 100%;
}

.karppiset-location-card .elementor-widget-button {
	margin-top: auto !important;
	padding-top: var(--k-space-3);
	flex-shrink: 0;
	align-self: flex-start;
}

.karppiset-location-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--k-shadow-card-hover);
}

.karppiset-location-card .elementor-widget-image img {
	height: 200px;
	object-fit: cover;
	width: 100%;
	display: block;
	border-radius: var(--k-radius) var(--k-radius) 0 0;
	transition: transform 0.4s var(--k-ease);
}

.karppiset-location-card:hover .elementor-widget-image img {
	transform: scale(1.03);
}

.karppiset-location-card .elementor-heading-title {
	font-size: var(--k-text-lg) !important;
	font-weight: 700 !important;
	color: var(--k-ink) !important;
	margin-bottom: var(--k-space-1) !important;
}

.karppiset-location-card .elementor-heading-title::after {
	display: none !important;
}

.karppiset-location-card .elementor-widget-text-editor p {
	color: var(--k-ink-muted);
	line-height: 1.6;
	font-size: var(--k-text-sm);
	margin: 0;
}

.karppiset-location-card .elementor-button {
	margin-top: 0 !important;
}

@media (max-width: 1099px) {
	.karppiset-locations-grid > .e-con-inner {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: var(--k-space-4) !important;
	}
}

@media (max-width: 1024px) {
	.karppiset-meista > .e-con-inner {
		grid-template-columns: 1fr !important;
		gap: var(--k-space-5) !important;
	}

	.karppiset-meista-collage {
		max-width: 520px;
		margin: 0 auto;
	}

	.karppiset-services-grid > .e-con-inner {
		gap: var(--k-space-4) !important;
	}

	.karppiset-features > .e-con-inner {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: var(--k-space-4) !important;
	}

	.karppiset-contact-layout > .e-con-inner {
		grid-template-columns: 1fr !important;
		gap: var(--k-space-5) !important;
	}
}

@media (max-width: 767px) {
	.karppiset-locations-grid > .e-con-inner {
		grid-template-columns: 1fr !important;
	}

	.karppiset-services-grid > .e-con-inner,
	.karppiset-features > .e-con-inner {
		grid-template-columns: 1fr !important;
		gap: var(--k-space-4) !important;
	}

	/* Hero / page head — mobile editorial layout */
	.karppiset-hero {
		min-height: clamp(400px, 56vh, 480px) !important;
	}

	.karppiset-hero > .e-con-inner {
		justify-content: flex-end !important;
		align-items: flex-start !important;
		min-height: inherit;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
	}

	.karppiset-hero-content,
	.karppiset-hero-content > .e-con-inner {
		max-width: 100% !important;
		align-items: flex-start !important;
	}

	.karppiset-hero .elementor-heading-title,
	.karppiset-hero h1 {
		text-align: left !important;
		font-size: clamp(1.75rem, 8.2vw, 2.125rem) !important;
		line-height: 1.12 !important;
		text-shadow: 0 1px 18px rgba(0, 0, 0, 0.45);
	}

	.karppiset-hero .elementor-widget-text-editor p {
		text-align: left !important;
		font-size: var(--k-text-base) !important;
		line-height: 1.45 !important;
		margin-top: var(--k-space-1) !important;
	}

	.karppiset-hero .elementor-background-overlay {
		background: linear-gradient(
			to bottom,
			rgba(15, 23, 42, 0.45) 0%,
			rgba(15, 23, 42, 0.72) 45%,
			rgba(15, 23, 42, 0.9) 100%
		) !important;
	}

	.karppiset-hero .elementor-widget-button {
		width: 100% !important;
		max-width: 100% !important;
		margin-top: var(--k-space-3) !important;
	}

	.karppiset-hero .elementor-button {
		width: 100% !important;
		display: block !important;
		padding: 14px 20px !important;
	}

	.karppiset-hero .elementor-widget-button .elementor-button-wrapper {
		text-align: center !important;
	}

	.karppiset-page-head {
		min-height: 220px !important;
	}

	.karppiset-cta {
		padding-top: var(--k-space-4) !important;
		padding-bottom: var(--k-space-4) !important;
	}

	.karppiset-feature-card {
		padding: var(--k-space-4) !important;
	}

	.karppiset-section--warm {
		padding-top: var(--k-space-5) !important;
		padding-bottom: var(--k-space-3) !important;
	}

	/* Service cards — left-aligned prose, full-width tap target */
	.karppiset-service-card .elementor-icon-box-wrapper {
		display: flex !important;
		flex-direction: column !important;
		align-items: flex-start !important;
		text-align: left !important;
	}

	.karppiset-service-card .elementor-icon-box-icon {
		margin: 0 0 var(--k-space-2) !important;
	}

	.karppiset-service-card .elementor-widget-button {
		align-self: stretch !important;
		width: 100% !important;
		padding-top: var(--k-space-3);
	}

	.karppiset-service-card .elementor-widget-button .elementor-button-wrapper {
		text-align: center !important;
	}

	.karppiset-service-card .elementor-button {
		width: 100% !important;
	}

	.karppiset-services-grid > .e-con-inner {
		gap: var(--k-space-3) !important;
	}

	.karppiset-service-card {
		padding: var(--k-space-3) !important;
	}

	.karppiset-cta .elementor-heading-title {
		font-size: clamp(1.375rem, 5.5vw, var(--k-text-2xl)) !important;
	}

	.karppiset-meista-prose {
		max-width: none;
	}

	.karppiset-meista > .e-con-inner {
		grid-template-columns: 1fr !important;
		gap: var(--k-space-4) !important;
	}

	.karppiset-meista .karppiset-section-heading .elementor-heading-title {
		text-align: left !important;
	}

	.karppiset-meista .elementor-widget-text-editor,
	.karppiset-meista .karppiset-meista-prose,
	.karppiset-meista .karppiset-meista-prose p {
		text-align: left !important;
	}

	.karppiset-meista-collage {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: auto;
		min-height: 0;
	}

	.karppiset-meista-photo--hero {
		grid-column: 1 / -1;
		grid-row: auto;
		min-height: 220px;
	}

	.karppiset-meista-photo--a,
	.karppiset-meista-photo--b,
	.karppiset-meista-photo--c,
	.karppiset-meista-photo--d {
		grid-column: auto;
		grid-row: auto;
		min-height: 140px;
	}

	.karppiset-meista-photo--b {
		grid-column: 1 / -1;
		min-height: 180px;
	}

	/* Buttons — single-line labels on narrow screens */
	.elementor-button,
	button[type="submit"] {
		white-space: nowrap !important;
		font-size: 0.9375rem !important;
		line-height: 1.2 !important;
		padding: 12px 16px !important;
		box-sizing: border-box !important;
	}

	.karppiset-service-card .elementor-button,
	.karppiset-location-card .elementor-button,
	.karppiset-cta .elementor-button,
	.karppiset-contact-layout .elementor-field-type-submit .elementor-button,
	.elementor-form .elementor-button {
		display: block !important;
		width: 100% !important;
	}

	.karppiset-location-card .elementor-widget-button {
		align-self: stretch !important;
		width: 100% !important;
	}
}

/* ═══ Contact — polished, no harsh dividers ═══ */
.karppiset-contact-layout > .e-con-inner {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: var(--k-space-6) !important;
	align-items: start !important;
}

.karppiset-contact-fields {
	padding: var(--k-space-4) !important;
	background: var(--k-bg) !important;
	border: 1px solid var(--k-border) !important;
	border-top: 2px solid var(--k-accent) !important;
	border-radius: var(--k-radius) !important;
	box-shadow: var(--k-shadow-card);
}

.karppiset-contact-form-col {
	padding: 0 !important;
}

.karppiset-contact-fields .elementor-icon-box-icon i,
.karppiset-contact-fields .elementor-icon-box-icon svg {
	color: var(--k-accent-icon) !important;
	fill: var(--k-accent-icon) !important;
}

.karppiset-contact-fields .elementor-icon-box-title {
	font-size: var(--k-text-xs) !important;
	font-weight: 600 !important;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--k-ink-muted) !important;
}

.karppiset-contact-fields .elementor-icon-box-description {
	font-weight: 600;
	color: var(--k-ink) !important;
	font-size: var(--k-text-base) !important;
}

.karppiset-contact-fields .elementor-icon-box-description a.contact-value {
	color: var(--k-ink);
	text-decoration: none;
	transition: color var(--k-duration) var(--k-ease);
}

.karppiset-contact-fields .elementor-icon-box-description a.contact-value:hover {
	color: var(--k-accent);
}

.karppiset-contact-form-col .karppiset-section-heading .elementor-heading-title {
	font-size: var(--k-text-2xl) !important;
	margin-bottom: var(--k-space-1) !important;
}

.karppiset-contact-layout .elementor-widget-form,
.karppiset-contact-layout .elementor-widget-shortcode {
	margin-bottom: 0 !important;
}

/* Gravity Forms — match contact layout field styling */
.karppiset-contact-form-col .gform_wrapper {
	margin: 0 !important;
}

.karppiset-contact-form-col .gform_wrapper form {
	display: flex;
	flex-direction: column;
	gap: var(--k-space-3);
}

.karppiset-contact-form-col .gform_wrapper .gform_fields {
	display: flex;
	flex-direction: column;
	gap: var(--k-space-3);
}

.karppiset-contact-form-col .gform_wrapper .gfield {
	margin: 0 !important;
	padding: 0 !important;
}

.karppiset-contact-form-col .gform_wrapper .gfield_label,
.karppiset-contact-form-col .gform_wrapper .gform-field-label {
	display: block;
	font-family: "DM Sans", sans-serif;
	font-size: var(--k-text-sm) !important;
	font-weight: 600 !important;
	color: var(--k-ink) !important;
	margin-bottom: var(--k-space-1) !important;
	letter-spacing: 0.01em;
	line-height: 1.4;
}

.karppiset-contact-form-col .gform_wrapper input[type="text"],
.karppiset-contact-form-col .gform_wrapper input[type="email"],
.karppiset-contact-form-col .gform_wrapper input[type="tel"],
.karppiset-contact-form-col .gform_wrapper textarea {
	width: 100%;
	background: var(--k-bg) !important;
	border: 1px solid var(--k-border) !important;
	border-radius: var(--k-radius) !important;
	padding: 16px 18px !important;
	font-family: "DM Sans", sans-serif;
	font-size: var(--k-text-base) !important;
	font-weight: 400;
	color: var(--k-ink) !important;
	line-height: 1.5 !important;
	box-shadow: var(--k-shadow-input);
	transition:
		border-color var(--k-duration) var(--k-ease),
		box-shadow var(--k-duration) var(--k-ease),
		background-color var(--k-duration) var(--k-ease);
}

.karppiset-contact-form-col .gform_wrapper textarea {
	min-height: 148px;
	resize: vertical;
}

.karppiset-contact-form-col .gform_wrapper input:hover,
.karppiset-contact-form-col .gform_wrapper textarea:hover {
	border-color: #cbd5e1 !important;
}

.karppiset-contact-form-col .gform_wrapper input:focus,
.karppiset-contact-form-col .gform_wrapper textarea:focus,
.karppiset-contact-form-col .gform_wrapper input:focus-visible,
.karppiset-contact-form-col .gform_wrapper textarea:focus-visible {
	border-color: var(--k-accent-btn) !important;
	outline: 2px solid var(--k-accent-btn) !important;
	outline-offset: 1px !important;
	box-shadow: var(--k-shadow-focus) !important;
	background: var(--k-bg) !important;
}

.karppiset-contact-form-col .gform_wrapper .gform_footer {
	margin: var(--k-space-1) 0 0 !important;
	padding: 0 !important;
}

.karppiset-contact-form-col .gform_wrapper .gform_button,
.karppiset-contact-form-col .gform_wrapper #gform_submit_button_1 {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-width: 200px;
	padding: 14px 28px !important;
	font-family: "DM Sans", sans-serif !important;
	font-size: var(--k-text-base) !important;
	font-weight: 600 !important;
	color: #fff !important;
	background: var(--k-accent-btn) !important;
	border: none !important;
	border-radius: var(--k-radius) !important;
	box-shadow: var(--k-shadow-btn);
	cursor: pointer;
	transition:
		background-color var(--k-duration) var(--k-ease),
		box-shadow var(--k-duration) var(--k-ease),
		transform var(--k-duration) var(--k-ease);
}

.karppiset-contact-form-col .gform_wrapper .gform_button:hover,
.karppiset-contact-form-col .gform_wrapper #gform_submit_button_1:hover {
	background: var(--k-accent-btn-hover) !important;
	box-shadow: var(--k-shadow-btn-hover);
}

.karppiset-contact-form-col .gform_wrapper .gform_confirmation_message {
	font-family: "DM Sans", sans-serif;
	font-size: var(--k-text-base);
	color: var(--k-ink);
	padding: var(--k-space-2);
	background: var(--k-accent-light);
	border: 1px solid var(--k-border);
	border-radius: var(--k-radius);
}

/* Premium contact form fields */
.karppiset-contact-layout .elementor-form-fields-wrapper {
	display: flex;
	flex-direction: column;
	gap: var(--k-space-3);
}

.karppiset-contact-layout .elementor-field-group {
	margin-bottom: 0 !important;
	padding: 0 !important;
}

.karppiset-contact-layout .elementor-field-label {
	display: block;
	font-family: "DM Sans", sans-serif;
	font-size: var(--k-text-sm) !important;
	font-weight: 600 !important;
	color: var(--k-ink) !important;
	margin-bottom: var(--k-space-1) !important;
	letter-spacing: 0.01em;
	line-height: 1.4;
}

.karppiset-contact-layout .elementor-field-group .elementor-field {
	width: 100%;
	background: var(--k-bg) !important;
	border: 1px solid var(--k-border) !important;
	border-radius: var(--k-radius) !important;
	padding: 16px 18px !important;
	font-family: "DM Sans", sans-serif;
	font-size: var(--k-text-base) !important;
	font-weight: 400;
	color: var(--k-ink) !important;
	line-height: 1.5 !important;
	box-shadow: var(--k-shadow-input);
	transition:
		border-color var(--k-duration) var(--k-ease),
		box-shadow var(--k-duration) var(--k-ease),
		background-color var(--k-duration) var(--k-ease);
}

.karppiset-contact-layout .elementor-field-group .elementor-field::placeholder {
	color: rgba(71, 85, 105, 0.55);
	opacity: 1;
}

.karppiset-contact-layout .elementor-field-group .elementor-field:hover {
	border-color: #cbd5e1 !important;
}

.karppiset-contact-layout .elementor-field-group .elementor-field:focus,
.karppiset-contact-layout .elementor-field-group .elementor-field:focus-visible {
	border-color: var(--k-accent-btn) !important;
	outline: 2px solid var(--k-accent-btn) !important;
	outline-offset: 1px !important;
	box-shadow: var(--k-shadow-focus) !important;
	background: var(--k-bg) !important;
}

.karppiset-contact-layout textarea.elementor-field {
	min-height: 148px;
	resize: vertical;
}

.karppiset-contact-layout .elementor-field-type-submit {
	margin-top: var(--k-space-1);
}

.karppiset-contact-layout .elementor-field-type-submit .elementor-button {
	width: auto !important;
	min-width: 200px;
}

.karppiset-contact-layout + .karppiset-cta {
	margin-top: 0 !important;
}

/* ═══ CTA banner — every page ═══ */
.karppiset-cta {
	padding-top: var(--k-space-5) !important;
	padding-bottom: var(--k-space-5) !important;
	background: var(--k-bg-alt) !important;
	border-top: 2px solid var(--k-accent) !important;
	border-bottom: 1px solid var(--k-border) !important;
	visibility: visible !important;
	opacity: 1 !important;
}

.karppiset-cta > .e-con-inner,
.karppiset-cta.e-flex > .e-con-inner {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: var(--k-space-4) !important;
	width: 100%;
	max-width: 1140px;
	margin: 0 auto;
}

.karppiset-cta-copy {
	flex: 1 1 auto;
	min-width: 0;
}

.karppiset-cta .elementor-widget-heading {
	margin: 0 !important;
}

.karppiset-cta .elementor-widget-button {
	flex: 0 0 auto;
	margin: 0 !important;
}

.karppiset-cta .elementor-widget-button .elementor-button-wrapper {
	text-align: right;
}

.karppiset-cta .elementor-heading-title {
	color: var(--k-ink) !important;
	font-size: var(--k-text-2xl) !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	margin: 0 !important;
}

.karppiset-cta .karppiset-cta-subtitle p {
	color: var(--k-ink-muted) !important;
	font-size: var(--k-text-base) !important;
	line-height: 1.5 !important;
	margin: 0 !important;
	max-width: 52ch;
}

.karppiset-cta .elementor-button {
	box-shadow: var(--k-shadow-btn) !important;
	transition: background-color var(--k-duration) var(--k-ease), transform var(--k-duration) var(--k-ease), box-shadow var(--k-duration) var(--k-ease) !important;
}

.karppiset-cta .elementor-button:hover {
	background-color: var(--k-accent-btn-hover) !important;
	transform: translateY(-2px);
	box-shadow: var(--k-shadow-btn-hover) !important;
}

/* ═══ Buttons & forms ═══ */
.elementor-button,
button[type="submit"] {
	background-color: var(--k-accent-btn) !important;
	border: none !important;
	font-weight: 600 !important;
	color: #fff !important;
	border-radius: var(--k-radius) !important;
	padding: 14px 28px !important;
	font-size: var(--k-text-base) !important;
	box-shadow: var(--k-shadow-btn);
	transition: background-color var(--k-duration) var(--k-ease), transform var(--k-duration) var(--k-ease), box-shadow var(--k-duration) var(--k-ease);
}

.elementor-button:hover,
button[type="submit"]:hover {
	background-color: var(--k-accent-btn-hover) !important;
	transform: translateY(-1px);
}

.elementor-field-group .elementor-field {
	border: 1px solid var(--k-border) !important;
	border-radius: var(--k-radius) !important;
	padding: 14px 16px !important;
	font-size: var(--k-text-base) !important;
	font-family: "DM Sans", sans-serif;
	color: var(--k-ink);
	background: var(--k-bg);
	box-shadow: var(--k-shadow-input);
	transition:
		border-color var(--k-duration) var(--k-ease),
		box-shadow var(--k-duration) var(--k-ease);
}

.elementor-field-group .elementor-field:focus,
.elementor-field-group .elementor-field:focus-visible {
	border-color: var(--k-accent-btn) !important;
	outline: 2px solid var(--k-accent-btn) !important;
	outline-offset: 1px !important;
	box-shadow: var(--k-shadow-focus) !important;
}

.elementor-form .elementor-button {
	width: 100%;
}

/* ═══ Footer ═══ */
.elementor-location-footer {
	margin-top: 0 !important;
}

.karppiset-footer {
	padding-top: var(--k-space-5) !important;
	padding-bottom: var(--k-space-3) !important;
	background: var(--k-bg) !important;
	border-top: 1px solid var(--k-border) !important;
}

.karppiset-footer.e-con-boxed > .e-con-inner,
.karppiset-footer-bottom.e-con-boxed > .e-con-inner {
	max-width: 1140px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	width: 100%;
}

.karppiset-footer > .e-con-inner {
	padding: 0 !important;
	gap: 0 !important;
	height: auto !important;
	min-height: 0 !important;
}

.karppiset-footer .e-grid.e-con {
	height: auto !important;
	min-height: 0 !important;
	flex: 0 0 auto !important;
}

.karppiset-footer .e-grid > .e-con-inner {
	display: grid !important;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr) minmax(0, 1fr) !important;
	grid-template-rows: auto !important;
	grid-auto-rows: min-content !important;
	gap: var(--k-space-2) var(--k-space-5) !important;
	align-items: start !important;
	align-content: start !important;
	width: 100%;
	height: auto !important;
	min-height: 0 !important;
	padding: 0 !important;
}

.karppiset-footer .e-grid > .e-con-inner > .e-con > .e-con-inner {
	padding: 0 !important;
	display: flex !important;
	flex-direction: column !important;
	gap: var(--k-space-2) !important;
	align-items: flex-start;
}

.karppiset-footer .e-grid > .e-con-inner > .e-con {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.karppiset-footer .e-grid > .e-con-inner > .e-con:last-child > .e-con-inner {
	align-items: flex-end;
	text-align: right;
}

.karppiset-footer .e-grid > .e-con-inner > .e-con:last-child .elementor-widget-text-editor p {
	text-align: right;
}

.karppiset-footer .elementor-widget-heading {
	margin: 0 0 var(--k-space-1) !important;
	width: 100%;
}

.karppiset-footer .elementor-heading-title {
	color: var(--k-ink) !important;
	font-size: var(--k-text-base) !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
	margin: 0 !important;
	letter-spacing: -0.01em;
}

.karppiset-footer .e-grid > .e-con-inner > .e-con:first-child .elementor-heading-title {
	font-size: var(--k-text-lg) !important;
}

.karppiset-footer .e-grid > .e-con-inner > .e-con:not(:first-child) .elementor-heading-title {
	font-size: var(--k-text-sm) !important;
	font-weight: 600 !important;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--k-ink-muted) !important;
}

.karppiset-footer .elementor-widget-text-editor p {
	color: var(--k-ink-muted) !important;
	font-size: var(--k-text-sm);
	line-height: 1.6;
	margin: 0 !important;
}

.karppiset-footer .elementor-icon-list-items {
	padding: 0 !important;
	margin: 0 !important;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.karppiset-footer .elementor-icon-list-item {
	align-items: center !important;
	margin: 0 !important;
	padding: 0 !important;
}

.karppiset-footer .elementor-icon-list-icon {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	line-height: 1 !important;
	margin-top: 0 !important;
}

.karppiset-footer .elementor-icon-list-icon svg,
.karppiset-footer .elementor-icon-list-icon i {
	margin: 0 !important;
}

.karppiset-footer .elementor-icon-list-text {
	color: var(--k-ink) !important;
	line-height: 1.4 !important;
	padding-top: 0 !important;
}

.karppiset-footer .elementor-icon-list-icon i {
	color: var(--k-accent) !important;
}

.karppiset-footer .elementor-nav-menu--main {
	display: block !important;
}

.karppiset-footer .elementor-nav-menu--dropdown,
.karppiset-footer .elementor-menu-toggle {
	display: none !important;
}

.karppiset-footer .elementor-nav-menu ul {
	padding: 0 !important;
	margin: 0 !important;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.karppiset-footer .elementor-nav-menu--main .elementor-item {
	color: var(--k-ink-muted) !important;
	padding: 0 !important;
	font-size: var(--k-text-sm);
	line-height: 1.6 !important;
	transition: color var(--k-duration) var(--k-ease);
	display: inline-block;
}

.karppiset-footer .elementor-nav-menu--main .elementor-item:hover {
	color: var(--k-accent) !important;
	background: transparent !important;
}

.karppiset-footer-bottom {
	padding-top: var(--k-space-2) !important;
	padding-bottom: var(--k-space-2) !important;
	border-top: 1px solid var(--k-border);
	background: var(--k-bg-alt) !important;
}

.karppiset-footer-bottom > .e-con-inner {
	padding: 0 !important;
	min-height: 0 !important;
	height: auto !important;
}

.karppiset-footer-bottom .elementor-widget-text-editor p {
	color: #64748b !important;
	font-size: var(--k-text-xs);
	line-height: 1.5;
	margin: 0;
	text-align: center;
}

.scroll-up-wrap .scroll-up-button {
	background: var(--k-accent-btn) !important;
	border-radius: var(--k-radius) !important;
	box-shadow: var(--k-shadow-btn) !important;
	transition: background-color var(--k-duration) var(--k-ease), transform var(--k-duration) var(--k-ease), box-shadow var(--k-duration) var(--k-ease);
}

.scroll-up-wrap .scroll-up-button:hover {
	background: var(--k-accent-btn-hover) !important;
	transform: translateY(-2px);
	box-shadow: var(--k-shadow-btn-hover) !important;
}

/* ═══ Global accent + radius enforcement ═══ */
.elementor-button:not(.elementor-button-link),
button[type="submit"] {
	background-color: var(--k-accent-btn) !important;
	border-radius: var(--k-radius) !important;
}

.elementor-widget-icon-box .elementor-icon-box-icon i,
.elementor-widget-icon-box .elementor-icon-box-icon svg {
	color: var(--k-accent-icon) !important;
	fill: var(--k-accent-icon) !important;
}

.karppiset-footer .elementor-icon-list-icon i,
.karppiset-footer .elementor-icon-list-icon svg {
	color: var(--k-accent) !important;
	fill: var(--k-accent) !important;
}

a.contact-value:hover {
	color: var(--k-accent) !important;
}

/* ═══ Responsive polish ═══ */
@media (min-width: 768px) {
	.karppiset-cta .elementor-heading-title {
		text-align: left;
	}
}

@media (max-width: 767px) {
	:root {
		--k-gutter: 28px;
	}

	body {
		overflow-x: hidden;
	}

	.karppiset-section,
	.karppiset-hero,
	.karppiset-page-head,
	.karppiset-cta,
	.karppiset-content > .e-con-inner {
		max-width: 100% !important;
		box-sizing: border-box;
	}

	.karppiset-contact-layout > .e-con-inner {
		grid-template-columns: 1fr !important;
		gap: var(--k-space-5) !important;
	}

	.karppiset-cta > .e-con-inner,
	.karppiset-cta.e-flex > .e-con-inner {
		flex-direction: column !important;
		align-items: stretch !important;
		justify-content: flex-start !important;
		gap: var(--k-space-3) !important;
		text-align: center;
	}

	.karppiset-cta-copy {
		text-align: center !important;
	}

	.karppiset-cta .elementor-widget-button {
		width: 100% !important;
		align-self: stretch !important;
	}

	.karppiset-cta .elementor-widget-button .elementor-button-wrapper {
		text-align: center !important;
	}

	.karppiset-cta .elementor-button {
		width: 100% !important;
		display: block !important;
	}

	.karppiset-cta .elementor-heading-title {
		text-align: center !important;
	}

	.karppiset-cta .karppiset-cta-subtitle p {
		text-align: center !important;
		margin-left: auto !important;
		margin-right: auto !important;
		max-width: none !important;
	}

	.karppiset-contact-layout .elementor-field-type-submit .elementor-button {
		width: 100% !important;
	}

	.karppiset-footer .e-grid > .e-con-inner {
		grid-template-columns: 1fr !important;
		gap: var(--k-space-4) !important;
	}

	.karppiset-footer .e-grid > .e-con-inner > .e-con > .e-con-inner {
		align-items: flex-start !important;
	}

	.karppiset-footer .e-grid > .e-con-inner > .e-con:last-child > .e-con-inner {
		align-items: flex-start;
		text-align: left;
	}

	.karppiset-footer .e-grid > .e-con-inner > .e-con:last-child .elementor-widget-text-editor p {
		text-align: left;
	}
}


/* Karppiset – Gravity Forms phone field */
.karppiset-contact-form-col .iti {
    position: relative;
    display: block;
    width: 100%;
}

/* Piilotetaan intl-tel-inputin accessibility-tekstit visuaalisesti */
.karppiset-contact-form-col .iti__a11y-text {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* Dropdown ei saa näkyä ennen avaamista */
.karppiset-contact-form-col .iti__hide {
    display: none !important;
}

/* Maa-valitsin inputin sisälle */
.karppiset-contact-form-col .iti__country-container {
    position: absolute !important;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: 5;
}

/* Poistetaan sivuston normaali sininen button-tyyli */
.karppiset-contact-form-col .iti__selected-country {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: auto !important;
    min-width: auto !important;
    height: 100% !important;

    margin: 0 !important;
    padding: 0 14px !important;

    background: transparent !important;
    background-color: transparent !important;

    border: 0 !important;
    border-right: 1px solid #dfe5ec !important;
    border-radius: 0 !important;

    box-shadow: none !important;
    color: #2f4059 !important;

    font-size: 16px !important;
    line-height: 1 !important;
}

/* Puhelinnumero */
.karppiset-contact-form-col .iti input[type="tel"],
.karppiset-contact-form-col .iti .iti__tel-input {
    width: 100% !important;
    padding-left: 105px !important;
}

/* Country dropdown */
.karppiset-contact-form-col .iti__dropdown-content {
    position: absolute !important;
    top: calc(100% + 8px) !important;
    left: 0 !important;

    width: 340px !important;
    max-width: min(340px, 90vw) !important;

    background: #fff !important;
    border: 1px solid #dfe5ec !important;
    border-radius: 12px !important;

    box-shadow: 0 12px 35px rgba(0, 0, 0, 0.12) !important;
    overflow: hidden !important;

    z-index: 99999 !important;
}

/* Country search */
.karppiset-contact-form-col .iti__search-input {
    width: 100% !important;
    height: 48px !important;

    margin: 0 !important;
    padding: 0 14px !important;

    border: 0 !important;
    border-bottom: 1px solid #e5e9ef !important;
    border-radius: 0 !important;

    box-shadow: none !important;
}

/* Maa-lista */
.karppiset-contact-form-col .iti__country-list {
    display: block;
    max-height: 260px !important;

    margin: 0 !important;
    padding: 6px 0 !important;

    overflow-y: auto !important;

    background: #fff !important;
    list-style: none !important;
}

/* Yksittäinen maa */
.karppiset-contact-form-col .iti__country {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;

    margin: 0 !important;
    padding: 9px 14px !important;

    background: transparent !important;
    cursor: pointer;
    white-space: nowrap;
}

.karppiset-contact-form-col .iti__country:hover,
.karppiset-contact-form-col .iti__highlight {
    background: #f4f6f8 !important;
}

/* Estetään dropdownin leikkautuminen */
.karppiset-contact-form-col,
.karppiset-contact-form-col .gform_wrapper,
.karppiset-contact-form-col .gform_fields,
.karppiset-contact-form-col .gfield {
    overflow: visible !important;
}