/*
 * Raikai Studio — design system and layout.
 *
 * Ported from the "Raikai" Claude Design prototype (Homepage v3, Servizi v2,
 * Lavori v2, About v2, Contattaci v2, Progetto BnB v2).
 *
 * Content classes are prefixed with body.rk so they beat Elementor's own
 * widget styles regardless of stylesheet order; layout-critical container
 * rules use !important because Elementor drives containers through inline
 * CSS variables. The same rules style the theme renderer (inc/render.php),
 * which mirrors Elementor's markup.
 *
 * Sections: 1 tokens · 2 base · 3 Elementor normalisation · 4 header ·
 * 5 phone menu · 6 home · 7 page heads & text · 8 servizi · 9 chi siamo ·
 * 10 lavori · 11 single project · 12 contact & forms · 13 CTA bands ·
 * 14 footer · 15 motion
 */

/* 1. Tokens ------------------------------------------------------------- */

:root {
	--rk-bg: #FBFBF9;
	--rk-bgrgb: 251, 251, 249;
	--rk-fg: #111111;
	--rk-fgrgb: 17, 17, 17;
	--rk-mute: #8A8A85;
	--rk-body: #3A3A38;
	--rk-faint: #C4C4BE;
	--rk-ph: #EDEDE8;
	--rk-bg2: #F2F2F0;
	--rk-bg2rgb: 242, 242, 240;
	--rk-tile: #FFFFFF;
	--rk-fg2: #333333;
	--rk-tap: #F0F0EC;
	--rk-footbg: #111111;
	--rk-gut: clamp(28px, 4vw, 64px);
	--rk-sans: 'Helvetica Neue', Helvetica, Arial, sans-serif;
	--rk-brand: 'Cocogoose', 'Helvetica Neue', Arial, sans-serif;
	--rk-top: var(--wp-admin--admin-bar--height, 0px);
	--rk-ease: cubic-bezier(0.4, 0, 0.1, 1);
	--rk-ease-out: cubic-bezier(0.22, 0.9, 0.24, 1);
}

html[data-theme="dark"] {
	--rk-bg: #101010; /* rgb(16, 16, 16) */
	--rk-bgrgb: 16, 16, 16;
	--rk-fg: #F2F2EE;
	--rk-fgrgb: 242, 242, 238;
	--rk-mute: #8F8F8A;
	--rk-body: #BDBDB8;
	--rk-faint: #5A5A55;
	--rk-ph: #232321;
	--rk-bg2: #101010;
	--rk-bg2rgb: 16, 16, 16;
	--rk-tile: #202020;
	--rk-fg2: #CFCFCB;
	--rk-tap: #222220;
	--rk-footbg: #101010;
	color-scheme: dark;
}

@media (max-width: 760px) {
	:root { --rk-gut: 20px; }
}

/* 2. Base --------------------------------------------------------------- */

html { scroll-behavior: smooth; }

body.rk {
	margin: 0;
	background: var(--rk-bg);
	color: var(--rk-fg);
	font-family: var(--rk-sans);
	font-weight: 400;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

body.rk.rk-home { background: var(--rk-bg2); }
body.rk.rk-menu-open { overflow: hidden; }

.rk *, .rk *::before, .rk *::after { box-sizing: border-box; }
.rk img { max-width: 100%; height: auto; }
.rk a { color: inherit; }
.rk :focus-visible { outline: 2px solid var(--rk-fg); outline-offset: 4px; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.rk-skip:focus {
	clip: auto; width: auto; height: auto; margin: 0;
	z-index: 100; top: 8px; left: 8px;
	padding: 10px 16px;
	background: var(--rk-fg); color: var(--rk-bg);
	text-decoration: none;
}

.rk-main {
	flex: 1;
	padding: clamp(56px, 11vh, 150px) var(--rk-gut) 0;
}
.rk-homemain { flex: 1; }

.rk-ulink {
	color: var(--rk-fg);
	text-decoration: none;
	border-bottom: 1px solid rgba(var(--rk-fgrgb), 0.4);
	padding-bottom: 2px;
	transition: border-color .25s ease, color .25s ease;
}
.rk-ulink:hover { border-bottom-color: var(--rk-fg); }

.rk-flink { color: var(--rk-mute); text-decoration: none; transition: color .25s ease; }
.rk-flink:hover { color: var(--rk-fg); }

/* 3. Elementor normalisation --------------------------------------------- */

/* Containers are unpadded full-width blocks; the theme owns the layout. */
:where(.rk) :where(.rk-main, .rk-homemain, .rk-native) .e-con {
	--padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
	--gap: 0px; --row-gap: 0px; --column-gap: 0px;
	--width: 100%;
	--min-height: 0;
	padding: 0;
}
:where(.rk-native) .e-con { display: flex; flex-direction: column; }
.rk .e-con > .e-con-inner { max-width: none; padding: 0; }
.rk .elementor-widget-container { margin: 0; padding: 0; }
:where(.rk) .elementor-widget:not(:last-child) { margin-bottom: 0; }
.rk .elementor-element { --widgets-spacing: 0px; }

/* Headings and text inherit the typography set on the widget wrapper. */
.rk .elementor-heading-title {
	font: inherit !important;
	color: inherit !important;
	letter-spacing: inherit !important;
	line-height: inherit !important;
	text-transform: inherit !important;
	margin: 0;
	padding: 0;
}
.rk .elementor-widget-text-editor,
.rk .elementor-widget-heading {
	color: inherit;
	font-family: inherit;
	font-weight: inherit;
}
.rk .elementor-widget-text-editor p,
.rk .elementor-widget-text-editor ul { margin: 0; }
.rk .elementor-widget-text-editor p + p { margin-top: clamp(18px, 2.4vh, 26px); }

/* Image slots: a container whose background (or nested image) is the picture. */
body.rk .rk-img {
	display: block !important;
	position: relative;
	overflow: hidden;
	background-color: var(--rk-ph);
	background-size: cover !important;
	background-position: center !important;
	border-radius: 2px;
}
body.rk .rk-img img {
	position: absolute; inset: 0;
	width: 100%; height: 100% !important;
	object-fit: cover;
}

/* 4. Header ---------------------------------------------------------------- */

.rk-header {
	position: sticky;
	top: var(--rk-top);
	z-index: 80;
	display: flex;
	align-items: stretch;
	justify-content: space-between;
	padding: 0 var(--rk-gut);
	background: var(--rk-bg);
	transition: box-shadow .3s ease, background .35s ease, backdrop-filter .35s ease;
}
.rk-header[data-shrink] { box-shadow: 0 1px 0 rgba(var(--rk-fgrgb), 0.12); }

/* Home: the navbar floats over the hero, and frosts once scrolled. */
.rk-home .rk-header {
	position: fixed;
	left: 0; right: 0;
	background: transparent;
}
.rk-home .rk-header[data-shrink] {
	box-shadow: none;
	background: rgba(var(--rk-bg2rgb), 0.86);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}

.rk-logo {
	display: flex;
	align-items: baseline;
	gap: 11px;
	text-decoration: none;
	color: var(--rk-fg);
	font-family: var(--rk-brand);
	padding-top: clamp(26px, 3.4vw, 44px);
	border-radius: 3px;
	transition: padding-top .3s ease;
}
.rk-logo:focus-visible { outline-offset: 6px; }
.rk-wm-a, .rk-wm-b { transition: font-size .3s ease; }
.rk-logo .rk-wm-a { font-weight: 400; font-size: clamp(26px, 2.4vw, 36px); letter-spacing: -0.01em; }
.rk-logo .rk-wm-b { font-weight: 250; font-size: clamp(20px, 1.8vw, 27px); letter-spacing: 0.01em; }
/* Image logos (Customizer or the bundled SVG). Single-colour artwork is
   forced to the text colour: black, white in dark mode and in the footer. */
.rk-logo--svg, .rk-logo--img { align-items: flex-start; padding-top: clamp(20px, 1.7vw, 24px); }
.rk-logo--svg svg,
.rk-logo--img img { display: block; height: clamp(24px, 2.2vw, 32px); width: auto; transition: height .3s ease; }
.rk-logo--img img { filter: brightness(0); }
html[data-theme="dark"] .rk-logo--img img,
.rk-flogo.rk-logo--img img { filter: brightness(0) invert(1); }
.rk-flogo.rk-logo--svg, .rk-flogo.rk-logo--img { padding-top: 0; }
.rk-flogo svg, .rk-flogo img { height: clamp(40px, 5vw, 78px); }

.rk-header[data-shrink] .rk-logo { padding-top: 9px; }
.rk-header[data-shrink] .rk-logo .rk-wm-a { font-size: 21px; }
.rk-header[data-shrink] .rk-logo .rk-wm-b { font-size: 16px; }
.rk-header[data-shrink] .rk-logo--svg,
.rk-header[data-shrink] .rk-logo--img { padding-top: 5px; }
.rk-header[data-shrink] .rk-logo--svg svg,
.rk-header[data-shrink] .rk-logo--img img { height: 20px; }

.rk-desktopnav {
	display: flex;
	align-items: stretch;
	gap: clamp(10px, 2.4vw, 40px);
	font-size: clamp(15px, 1.15vw, 18px);
	transition: font-size .3s ease;
}
.rk-desktopnav .rk-menu {
	display: flex;
	align-items: stretch;
	gap: inherit;
	margin: 0; padding: 0;
	list-style: none;
}
.rk-desktopnav .rk-menu li { display: flex; }

.rk-desktopnav .rk-menu a,
.rk-cta {
	position: relative;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	width: 7.6em;
	text-decoration: none;
	color: var(--rk-fg);
	letter-spacing: 0.01em;
	padding: clamp(30px, 3.6vw, 42px) clamp(14px, 1.2vw, 20px) clamp(16px, 1.6vw, 22px);
	transition: background-size 340ms var(--rk-ease), color 160ms ease 200ms, padding .3s ease;
}
.rk-desktopnav .rk-menu a {
	background-image: linear-gradient(var(--rk-fg), var(--rk-fg));
	background-repeat: no-repeat;
	background-position: top;
	background-size: 100% 0%;
}
.rk-desktopnav .rk-menu a:focus-visible,
.rk-cta:focus-visible { outline-offset: -3px; }
.rk-desktopnav .rk-menu a:hover,
.rk-desktopnav .rk-menu .current-menu-item > a,
.rk-desktopnav .rk-menu .current-menu-ancestor > a,
.rk-desktopnav .rk-menu a[aria-current="page"] {
	background-size: 100% 100%;
	color: var(--rk-bg);
}

.rk-navtxt { display: inline-block; transition: transform .34s var(--rk-ease-out); }
.rk-desktopnav .rk-menu a:hover .rk-navtxt { transform: translateY(9px); }

.rk-tools {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: clamp(30px, 3.6vw, 42px) 6px 0;
	transition: padding-top .3s ease;
}

.rk-tbtn {
	appearance: none;
	background: none;
	border: 0;
	padding: 0; margin: 0;
	cursor: pointer;
	color: var(--rk-fg);
	display: flex;
	align-items: center;
	height: 1.2em;
	font: inherit;
}
.rk-tbtn svg { width: 17px; height: 17px; display: block; }
.rk-ic-sun { display: none !important; }
html[data-theme="dark"] .rk-ic-sun { display: block !important; }
html[data-theme="dark"] .rk-ic-moon { display: none !important; }

.rk-langs { display: flex; align-items: center; gap: 6px; line-height: 1.2; }
.rk-lbtn {
	color: var(--rk-mute);
	text-decoration: none;
	letter-spacing: 0.02em;
	transition: color .25s ease;
}
.rk-lbtn:hover, .rk-lbtn.is-current { color: var(--rk-fg); }
.rk-lsep { color: var(--rk-faint); }

.rk-cta { padding-left: 0; padding-right: 0; }
.rk-ctatxt {
	display: inline-block;
	margin-top: -10px;
	white-space: nowrap;
	border: 1px solid var(--rk-fg);
	padding: 9px 16px;
	background: var(--rk-fg);
	color: var(--rk-bg);
	transition: background .28s ease, color .28s ease, padding .3s ease, margin .3s ease;
}
.rk-cta:hover .rk-ctatxt { background: transparent; color: var(--rk-fg); }
.rk-cta[aria-current="page"]:hover .rk-ctatxt { background: var(--rk-fg); color: var(--rk-bg); }

/* Shrunk navbar. */
.rk-header[data-shrink] .rk-desktopnav { font-size: 14px; }
.rk-header[data-shrink] .rk-desktopnav .rk-menu a,
.rk-header[data-shrink] .rk-cta { padding-top: 13px; padding-bottom: 9px; }
.rk-header[data-shrink] .rk-tools { padding-top: 13px; }
.rk-header[data-shrink] .rk-ctatxt { padding: 6px 12px; margin-top: -7px; }
.rk-header[data-shrink] .rk-desktopnav .rk-menu a:hover .rk-navtxt { transform: none; }

@media (min-width: 761px) and (max-width: 1100px) {
	.rk-desktopnav { gap: 4px; font-size: 14px; }
}

.rk-mobactions { display: none; align-items: center; gap: 12px; margin: auto 0; }
.rk-cta-mob {
	text-decoration: none;
	background: var(--rk-fg);
	color: var(--rk-bg) !important;
	font-size: 15px;
	letter-spacing: 0.01em;
	padding: 11px 16px;
	white-space: nowrap;
	transition: background .25s ease;
}
.rk-cta-mob:hover { background: var(--rk-fg2); }

.rk-burger {
	appearance: none;
	background: none;
	border: 0;
	padding: 0;
	display: flex;
	position: relative;
	width: 44px; height: 44px;
	margin-right: -7px;
	cursor: pointer;
	flex: none;
	color: var(--rk-fg);
}
.rk-bl {
	position: absolute;
	left: 7px;
	width: 30px; height: 2px;
	background: currentColor;
	transition: transform .3s ease, top .3s ease;
}
.rk-bl:first-child { top: 16px; }
.rk-bl:last-child { top: 26px; }
.rk-burger[aria-expanded="true"] .rk-bl:first-child { top: 21px; transform: rotate(45deg); }
.rk-burger[aria-expanded="true"] .rk-bl:last-child { top: 21px; transform: rotate(-45deg); }

@media (max-width: 760px) {
	.rk-header {
		align-items: center;
		min-height: 64px;
	}
	.rk-desktopnav { display: none; }
	.rk-mobactions { display: flex; }
	.rk-logo, .rk-header[data-shrink] .rk-logo { padding-top: 0; }
	.rk-logo .rk-wm-a { font-size: 24px; }
	.rk-logo .rk-wm-b { font-size: 18px; }
	.rk-logo--svg svg, .rk-logo--img img, .rk-header[data-shrink] .rk-logo--svg svg, .rk-header[data-shrink] .rk-logo--img img { height: 22px; }
	.rk-logo--svg, .rk-logo--img, .rk-header[data-shrink] .rk-logo--svg, .rk-header[data-shrink] .rk-logo--img { padding-top: 0; }
	.rk-menu-open .rk-header { background: var(--rk-bg) !important; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
}

/* 5. Phone menu ------------------------------------------------------------ */

.rk-mobnav {
	position: fixed;
	inset: 0;
	z-index: 70;
	background: var(--rk-bg);
	display: flex;
	flex-direction: column;
	padding: calc(64px + var(--rk-top)) clamp(22px, 6vw, 40px) clamp(22px, 6vw, 40px);
	overflow-y: auto;
}
.rk-mobnav[hidden] { display: none; }
.rk-mobnav__links { margin: auto 0; display: flex; flex-direction: column; gap: clamp(6px, 2vh, 14px); }
.rk-mobnav .rk-menu { display: contents; list-style: none; margin: 0; padding: 0; }
.rk-mobnav .rk-menu li { display: block; }
.rk-mobnav .rk-menu a,
.rk-mobnav__contact {
	display: block;
	text-decoration: none;
	color: var(--rk-fg);
	font-size: clamp(38px, 11vw, 64px);
	line-height: 1.06;
	letter-spacing: -0.02em;
}
.rk-mobnav__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
}
.rk-mobnav__mail {
	text-decoration: none;
	color: var(--rk-mute);
	font-size: clamp(15px, 4vw, 18px);
	letter-spacing: 0.01em;
}
.rk-tools--overlay { padding: 0; align-items: center; gap: 22px; font-size: 18px; }
.rk-tools--overlay .rk-tbtn { min-width: 44px; min-height: 44px; justify-content: center; }
.rk-tools--overlay .rk-tbtn svg { width: 22px; height: 22px; }
.rk-tools--overlay .rk-lbtn { padding: 10px 4px; }

@media (min-width: 761px) {
	.rk-mobnav { display: none !important; }
}

/* 6. Home ------------------------------------------------------------------ */

.rk-hero {
	position: relative;
	background: var(--rk-bg2);
	overflow: hidden;
}
.rk-rows {
	height: 100vh;
	height: 100svh;
	display: flex;
	flex-direction: column;
	gap: clamp(8px, 1vw, 14px);
}
.rk-row {
	flex: 1 1 0;
	min-height: 0;
	overflow: hidden;
	position: relative;
}
.rk-track {
	position: absolute;
	top: 0; bottom: 0; left: 0;
	display: flex;
	align-items: stretch;
	gap: clamp(8px, 1vw, 14px);
	width: max-content;
	animation: rkMarqL 50s linear infinite;
}
.rk-track--r { animation-name: rkMarqR; }
.rk-row:hover .rk-track { animation-play-state: paused; }
@keyframes rkMarqL { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes rkMarqR { from { transform: translateX(-50%); } to { transform: translateX(0); } }

.rk-tile {
	display: block;
	flex: none;
	width: var(--w);
	background: var(--rk-tile);
	border-radius: clamp(8px, 0.9vw, 14px);
	overflow: hidden;
}
.rk-tile:focus-visible { outline-offset: -4px; }
.rk-row:last-child .rk-tile { border-radius: clamp(8px, 0.9vw, 14px) clamp(8px, 0.9vw, 14px) 0 0; }
.rk-tile img { display: block; width: 100%; height: 100% !important; object-fit: cover; }

.rk-herotxt {
	position: absolute;
	inset: 0;
	z-index: 2;
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 clamp(20px, 4vw, 64px);
	pointer-events: none;
	text-align: center;
	font-family: 'Inter Tight', var(--rk-sans);
	font-weight: 400;
	font-size: clamp(30px, 5vw, 88px);
	line-height: 1;
	letter-spacing: -0.04em;
	color: var(--rk-fg);
	text-wrap: balance;
}
.rk-herotxt strong { font-weight: 700; }

body.rk .rk-intro {
	background: var(--rk-bg2);
	padding: clamp(96px, 18vh, 220px) var(--rk-gut) clamp(120px, 24vh, 300px);
	display: flex !important;
	flex-direction: column;
	align-items: center;
	gap: clamp(18px, 2.6vh, 30px);
}
body.rk .rk-kicker {
	font-family: 'Antonio', var(--rk-sans);
	font-weight: 600;
	font-size: clamp(13px, 1vw, 16px);
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--rk-fg);
}
body.rk .rk-intro__txt { max-width: min(860px, 100%); }
body.rk .rk-intro__txt p {
	font-family: 'Archivo', var(--rk-sans);
	font-size: clamp(19px, 2.3vw, 34px);
	line-height: 1.3;
	letter-spacing: -0.01em;
	color: var(--rk-fg);
	text-align: justify;
	text-align-last: center;
	hyphens: auto;
}
body.rk .rk-intro__txt strong { font-weight: 700; }

@media (max-width: 760px) {
	.rk-tile { height: 100%; width: auto; }
	.ar-wide { aspect-ratio: 3 / 2; }
	.ar-land { aspect-ratio: 4 / 3; }
	.ar-sq { aspect-ratio: 1 / 1; }
	.ar-port { aspect-ratio: 4 / 5; }
	body.rk .rk-intro__txt p { text-align: left; text-align-last: left; hyphens: manual; }
}

/* 7. Page heads & shared text ---------------------------------------------- */

body.rk :is(.rk-main, .rk-native) .rk-label {
	display: block;
	font-size: 13px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--rk-mute);
	margin: 0 0 clamp(24px, 4vh, 44px);
}
body.rk :is(.rk-main, .rk-native) .rk-h1 {
	margin: 0 0 clamp(32px, 5vh, 56px);
	font-size: clamp(38px, 6vw, 104px);
	line-height: 0.98;
	letter-spacing: -0.03em;
	font-weight: 400;
}
body.rk :is(.rk-main, .rk-native) .rk-lead { margin: 0 0 clamp(24px, 4vh, 44px); }
body.rk .rk-lead p {
	font-size: clamp(19px, 1.9vw, 30px);
	line-height: 1.34;
	letter-spacing: -0.015em;
	max-width: 22ch;
	text-wrap: pretty;
}

body.rk .rk-split {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
	gap: clamp(32px, 5vw, 88px);
}
body.rk .rk-split__side {
	display: flex !important;
	flex-direction: column;
	gap: clamp(18px, 2.4vh, 26px);
	align-self: end;
	max-width: 46ch;
}
body.rk .rk-lead2 p {
	font-size: clamp(20px, 2vw, 32px);
	line-height: 1.3;
	letter-spacing: -0.015em;
	text-wrap: pretty;
}
body.rk .rk-lead3 p {
	font-size: clamp(22px, 2.2vw, 36px);
	line-height: 1.26;
	letter-spacing: -0.015em;
	text-wrap: pretty;
}
body.rk .rk-body p {
	font-size: clamp(16px, 1.25vw, 19px);
	line-height: 1.55;
	color: var(--rk-body);
	text-wrap: pretty;
}
body.rk .rk-body2 p {
	font-size: clamp(16px, 1.3vw, 20px);
	line-height: 1.5;
	letter-spacing: -0.01em;
	text-wrap: pretty;
}

/* Generic pages (privacy policy, posts). */
.rk-generic { padding-bottom: clamp(64px, 10vh, 120px); }
.rk-prose { max-width: 68ch; font-size: clamp(16px, 1.25vw, 19px); line-height: 1.6; color: var(--rk-body); }
.rk-prose h2, .rk-prose h3 { color: var(--rk-fg); font-weight: 400; letter-spacing: -0.02em; line-height: 1.1; }
.rk-prose a { color: var(--rk-fg); }
.rk-entry + .rk-entry { margin-top: clamp(40px, 6vh, 64px); }
.rk-entry__title { font-weight: 400; font-size: clamp(26px, 3vw, 44px); letter-spacing: -0.02em; margin: 0 0 12px; }
.rk-entry__title a { text-decoration: none; }

/* 8. Servizi ----------------------------------------------------------------- */

.rk-svidx {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 12px;
	padding-bottom: clamp(16px, 3vh, 28px);
}
.rk-svidx a {
	text-decoration: none;
	color: var(--rk-fg);
	font-size: clamp(13px, 1.05vw, 15px);
	letter-spacing: 0.01em;
	border: 1px solid var(--rk-fg);
	padding: 9px 15px;
	transition: background 220ms ease, color 220ms ease;
}
.rk-svidx a:hover { background: var(--rk-fg); color: var(--rk-bg); }

body.rk .rk-svcs { counter-reset: rksvc; }
body.rk .rk-svc {
	counter-increment: rksvc;
	scroll-margin-top: calc(110px + var(--rk-top));
	border-top: 1px solid var(--rk-fg);
	padding: clamp(40px, 7vh, 96px) 0 !important;
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
	gap: clamp(28px, 5vw, 80px);
}
body.rk .rk-svhead {
	position: relative;
	display: flex !important;
	flex-direction: column;
	gap: clamp(14px, 2vh, 20px);
}
/* "S/01": on the title, not the container. Elementor uses every
   container's ::before as its absolutely positioned background overlay. */
body.rk .rk-svname::before {
	content: "S/" counter(rksvc, decimal-leading-zero);
	display: block;
	position: static !important;
	margin-bottom: clamp(14px, 2vh, 20px);
	font-family: var(--rk-sans);
	font-size: clamp(13px, 1vw, 15px);
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: 0.06em;
	color: var(--rk-mute);
}
body.rk .rk-svname {
	font-size: clamp(32px, 4.4vw, 68px);
	line-height: 0.98;
	letter-spacing: -0.025em;
	font-weight: 400;
}
body.rk .rk-svtag p {
	margin-top: 6px;
	font-size: clamp(17px, 1.5vw, 23px);
	line-height: 1.34;
	letter-spacing: -0.01em;
	max-width: 24ch;
	text-wrap: pretty;
}
body.rk .rk-svbody {
	display: flex !important;
	flex-direction: column;
	gap: clamp(22px, 3vh, 32px);
	max-width: 52ch;
}
body.rk .rk-svtext p { line-height: 1.6; }
body.rk .rk-svtext p + p { margin-top: clamp(22px, 3vh, 32px); }
body.rk .rk-deliv ul {
	list-style: none;
	margin: clamp(8px, 1.5vh, 14px) 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	border-top: 1px solid rgba(var(--rk-fgrgb), 0.18);
}
body.rk .rk-deliv li {
	padding: clamp(11px, 1.6vh, 15px) 0;
	font-size: clamp(15px, 1.15vw, 18px);
	letter-spacing: -0.005em;
	border-bottom: 1px solid rgba(var(--rk-fgrgb), 0.18);
}
.rk-svplus { display: none; }

@media (max-width: 760px) {
	.rk-svidx { display: none; }
	body.rk .rk-svc {
		display: block !important;
		padding: 0 !important;
		scroll-margin-top: calc(124px + var(--rk-top));
		border-top-color: rgba(var(--rk-fgrgb), 0.9);
	}
	body.rk .rk-svc:last-child { border-bottom: 1px solid var(--rk-fg); }
	body.rk .rk-svhead {
		cursor: pointer;
		padding: 22px 52px 22px 0;
		gap: 6px;
		-webkit-tap-highlight-color: transparent;
	}
	body.rk .rk-svname { font-size: 30px; line-height: 1.04; }
	body.rk .rk-svname::before { margin-bottom: 6px; }
	body.rk .rk-svtag { display: none; }
	body.rk .rk-svc[data-open="1"] .rk-svtag { display: block; }
	body.rk .rk-svc[data-open="1"] .rk-svtag p { font-size: 17px; margin-top: 4px; }
	.rk-svplus {
		display: block;
		position: absolute;
		right: -10px; top: 50%;
		transform: translateY(-50%);
		width: 44px; height: 44px;
		border: 0; background: none; padding: 0;
		cursor: pointer;
		color: var(--rk-fg);
	}
	.rk-svplus:focus-visible { outline-offset: -4px; }
	.rk-svpl1, .rk-svpl2 {
		position: absolute;
		left: 12px; top: 21px;
		width: 20px; height: 1.5px;
		background: currentColor;
		transition: transform .3s ease;
	}
	.rk-svpl2 { transform: rotate(90deg); }
	body.rk .rk-svc[data-open="1"] .rk-svpl2 { transform: rotate(0deg); }
	body.rk .rk-svc.rk-js .rk-svbody { display: none !important; padding: 0 0 30px; gap: 16px; }
	body.rk .rk-svc.rk-js[data-open="1"] .rk-svbody { display: flex !important; }
	body.rk .rk-svbody p { font-size: 16px; line-height: 1.55; }
	body.rk .rk-deliv ul { flex-direction: row; flex-wrap: wrap; gap: 6px; border-top: 0; margin-top: 6px; }
	body.rk .rk-deliv li { border: 1px solid rgba(var(--rk-fgrgb), 0.2); padding: 6px 11px; font-size: 13px; }
}

/* 9. Chi siamo ---------------------------------------------------------------- */

body.rk :is(.rk-main, .rk-native) .rk-abh1 {
	margin: 0;
	font-size: clamp(34px, 5.4vw, 88px);
	line-height: 1.02;
	max-width: 17ch;
	text-wrap: balance;
}
body.rk .rk-abintro { margin-top: clamp(48px, 8vh, 96px); }
body.rk .rk-absec { margin-top: clamp(80px, 14vh, 180px); }
body.rk .rk-absec > .rk-label { margin-bottom: clamp(32px, 5vh, 52px); }

body.rk .rk-steps {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(min(230px, 100%), 1fr));
	gap: clamp(32px, 4vw, 64px);
}
body.rk .rk-step { display: flex !important; flex-direction: column; gap: clamp(12px, 1.6vh, 18px); }
body.rk .rk-stepn {
	font-size: clamp(28px, 3vw, 44px);
	line-height: 1;
	letter-spacing: -0.02em;
	font-weight: 250;
	color: var(--rk-faint);
}
body.rk .rk-steph {
	font-size: clamp(21px, 1.9vw, 28px);
	line-height: 1.05;
	letter-spacing: -0.02em;
	font-weight: 400;
}
body.rk .rk-stept p { font-size: clamp(15px, 1.2vw, 17px); }

body.rk :is(.rk-main, .rk-native) .rk-quote { margin-bottom: clamp(28px, 4vh, 44px); }
body.rk .rk-quote p {
	font-size: clamp(28px, 4.2vw, 64px);
	line-height: 1.06;
	letter-spacing: -0.03em;
	max-width: 19ch;
	text-wrap: balance;
}
body.rk .rk-cols2 {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
	gap: clamp(28px, 5vw, 72px);
	max-width: 1100px;
}

body.rk .rk-svcta {
	display: flex !important;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: clamp(24px, 4vw, 56px);
	padding-top: clamp(28px, 4vh, 40px) !important;
	border-top: 1px solid var(--rk-fg);
}
body.rk .rk-svcta__txt {
	display: flex !important;
	flex-direction: column;
	gap: clamp(16px, 2.4vh, 24px);
	max-width: 22ch;
	width: auto !important;
}
body.rk .rk-svcta__txt .rk-label { margin: 0; }
body.rk .rk-svcta__h {
	font-size: clamp(22px, 2.4vw, 38px);
	line-height: 1.15;
	letter-spacing: -0.02em;
	text-wrap: balance;
}
.rk-btn {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	text-decoration: none;
	color: var(--rk-fg);
	border: 1px solid var(--rk-fg);
	padding: clamp(15px, 1.8vh, 20px) clamp(28px, 3vw, 40px);
	font-size: clamp(15px, 1.3vw, 19px);
	letter-spacing: 0.01em;
	transition: background .28s ease, color .28s ease;
}
.rk-btn svg { display: block; flex: none; }
.rk-btn:hover { background: var(--rk-fg); color: var(--rk-bg); }

body.rk .rk-team {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
	gap: clamp(28px, 3vw, 56px);
}
body.rk .rk-member { display: flex !important; flex-direction: column; gap: 6px; }
body.rk .rk-member__n { font-size: clamp(24px, 2.6vw, 40px); letter-spacing: -0.02em; line-height: 1; }
body.rk .rk-member__r { font-size: clamp(14px, 1.15vw, 17px); color: var(--rk-mute); letter-spacing: 0.01em; }

@media (max-width: 760px) {
	body.rk .rk-pagehead .rk-label { margin-bottom: 18px; }
	body.rk :is(.rk-main, .rk-native) .rk-abh1 { font-size: 31px; line-height: 1.06; }
	body.rk .rk-abintro { gap: 18px; margin-top: 28px; }
	body.rk .rk-abintro .rk-lead2 p { font-size: 19px; line-height: 1.35; }
	body.rk .rk-abmore { display: none; }
	body.rk .rk-absec { margin-top: 64px; }
	body.rk .rk-absec > .rk-label { margin-bottom: 22px; }
	body.rk .rk-quote p { font-size: 26px; }
	body.rk :is(.rk-main, .rk-native) .rk-quote { margin-bottom: 16px; }
	body.rk .rk-steps { gap: 26px; }
	body.rk .rk-step {
		display: grid !important;
		grid-template-columns: 36px minmax(0, 1fr);
		column-gap: 12px;
		row-gap: 6px;
	}
	body.rk .rk-stepn {
		font-size: 15px;
		font-weight: 400;
		color: var(--rk-mute);
		padding-top: 5px;
		grid-row: span 2;
	}
	body.rk .rk-steph { font-size: 21px; }
	body.rk .rk-stept p { font-size: 15px; }
	body.rk .rk-btnwrap { width: 100%; }
	.rk-btn { width: 100%; justify-content: space-between; padding: 18px 20px; font-size: 16px; }
	body.rk .rk-team { gap: 18px; }
	body.rk .rk-member__n { font-size: 24px; }
}

/* 10. Lavori ---------------------------------------------------------------- */

.rk-work { padding-top: clamp(48px, 9vh, 110px); padding-bottom: clamp(64px, 10vh, 120px); }

.rk-filters {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: clamp(14px, 2vw, 28px);
	margin-bottom: clamp(32px, 5vh, 56px);
	font-size: clamp(14px, 1.05vw, 16px);
}
.rk-filtlabel { color: var(--rk-mute); letter-spacing: 0.02em; margin-right: 6px; }
.rk-chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 6px 12px;
	text-decoration: none;
	color: var(--rk-mute);
	letter-spacing: 0.01em;
	text-transform: lowercase;
	transition: background 220ms ease, color 220ms ease;
}
.rk-chip:hover { color: var(--rk-fg); }
.rk-chip[aria-pressed="true"] { background: var(--rk-fg); color: var(--rk-bg); }
.rk-chip__x { display: none; font-family: var(--rk-sans); }
.rk-chip[aria-pressed="true"] .rk-chip__x { display: inline; }
.rk-chip[data-service=""] .rk-chip__x { display: none; }

.rk-filtsel-wrap { display: none; }

.rk-projlist { border-top: 1px solid var(--rk-fg); }
.rk-proj {
	display: grid;
	grid-template-columns: 0px minmax(0, 1fr) auto;
	align-items: center;
	column-gap: clamp(14px, 2vw, 32px);
	padding: clamp(22px, 3.4vh, 40px) clamp(20px, 2.5vw, 44px);
	text-decoration: none;
	color: var(--rk-fg);
	border-bottom: 1px solid var(--rk-fg);
	transition: background 260ms ease, color 260ms ease, grid-template-columns 300ms ease;
}
.rk-proj[hidden] { display: none; }
.rk-proj:focus-visible { outline-offset: -3px; }
.rk-projarrow {
	overflow: hidden;
	display: flex;
	align-items: center;
	opacity: 0;
	transform: translateX(-12px);
	transition: opacity 260ms ease, transform 300ms var(--rk-ease-out);
}
.rk-projarrow svg { display: block; flex: none; }
.rk-projmain { min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.rk-projname {
	font-size: clamp(26px, 3.6vw, 52px);
	line-height: 1.02;
	letter-spacing: -0.02em;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.rk-projsub {
	font-size: clamp(13px, 1.05vw, 16px);
	letter-spacing: 0.01em;
	color: var(--rk-mute);
	transition: color 260ms ease;
}
.rk-projtags {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 6px 16px;
	max-width: 32vw;
	opacity: 0;
	transition: opacity 260ms ease;
}
.rk-ptag {
	font-size: clamp(12px, 0.95vw, 14px);
	letter-spacing: 0.02em;
	white-space: nowrap;
	text-transform: lowercase;
}
.rk-projchev { display: none; }

@media (hover: hover) {
	.rk-proj:hover { grid-template-columns: 46px minmax(0, 1fr) auto; background: var(--rk-fg); color: var(--rk-bg); }
	.rk-proj:hover .rk-projarrow { opacity: 1; transform: none; }
	.rk-proj:hover .rk-projsub { color: rgba(var(--rk-bgrgb), 0.72); }
	.rk-proj:hover .rk-projtags { opacity: 1; }
}
.rk-proj:focus-visible { grid-template-columns: 46px minmax(0, 1fr) auto; background: var(--rk-fg); color: var(--rk-bg); }
.rk-proj:focus-visible .rk-projarrow, .rk-proj:focus-visible .rk-projtags { opacity: 1; transform: none; }
.rk-proj:focus-visible .rk-projsub { color: rgba(var(--rk-bgrgb), 0.72); }

.rk-noresults {
	margin: clamp(28px, 5vh, 44px) 0 0;
	font-size: clamp(16px, 1.4vw, 20px);
	color: var(--rk-mute);
}
.rk-noresults[hidden] { display: none; }

@media (max-width: 760px) {
	.rk-work { padding-top: 28px; padding-bottom: 64px; }
	.rk-filters, .rk-filtlabel { display: none; }
	.rk-filtsel-wrap {
		display: flex;
		flex-direction: column;
		gap: 6px;
		position: relative;
		margin-bottom: 28px;
	}
	.rk-filtsel-wrap label {
		font-size: 13px;
		letter-spacing: 0.06em;
		text-transform: uppercase;
		color: var(--rk-mute);
	}
	.rk-filtsel {
		appearance: none;
		-webkit-appearance: none;
		width: 100%;
		border: 0;
		border-bottom: 1px solid var(--rk-fg);
		border-radius: 0;
		background: transparent;
		font: inherit;
		font-size: 22px;
		letter-spacing: -0.01em;
		color: var(--rk-fg);
		padding: 8px 32px 12px 0;
		cursor: pointer;
	}
	.rk-filtsel option { color: initial; }
	.rk-filtsel-wrap svg { position: absolute; right: 4px; bottom: 20px; pointer-events: none; color: var(--rk-fg); }
	.rk-projlist { border-top: 0; }
	.rk-proj {
		grid-template-columns: minmax(0, 1fr) auto !important;
		grid-template-areas: "m c";
		column-gap: 16px;
		padding: 34px 0;
		background: transparent !important;
		color: var(--rk-fg) !important;
		-webkit-tap-highlight-color: transparent;
	}
	.rk-proj:active { background: var(--rk-tap) !important; }
	.rk-projarrow, .rk-projtags { display: none; }
	.rk-projmain { grid-area: m; gap: 8px; }
	.rk-projname { white-space: normal; font-size: 34px; line-height: 1.02; letter-spacing: -0.03em; }
	.rk-projsub { font-size: 15px; color: var(--rk-mute) !important; }
	.rk-projchev { display: flex; grid-area: c; align-self: center; }
}

/* 11. Single project ----------------------------------------------------------- */

.rk-single { padding-top: clamp(40px, 7vh, 90px); }
.rk-back {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	text-decoration: none;
	color: var(--rk-mute) !important;
	font-size: clamp(14px, 1.05vw, 16px);
	letter-spacing: 0.01em;
	margin-bottom: clamp(40px, 7vh, 80px);
	border-bottom: 1px solid transparent;
	padding-bottom: 2px;
	transition: color 220ms ease, border-color 220ms ease;
}
.rk-back svg { display: block; }
.rk-back:hover { color: var(--rk-fg) !important; border-bottom-color: var(--rk-fg); }
.rk-single__title {
	margin: 0 0 clamp(28px, 5vh, 52px);
	font-size: clamp(40px, 6.6vw, 104px);
	line-height: 0.96;
	letter-spacing: -0.03em;
	font-weight: 400;
	overflow-wrap: break-word;
	text-wrap: balance;
}
.rk-meta {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: clamp(24px, 3vw, 48px);
	padding: clamp(24px, 3.4vh, 38px) 0;
	border-top: 1px solid var(--rk-fg);
	border-bottom: 1px solid var(--rk-fg);
	margin: 0 0 clamp(40px, 6vh, 72px);
}
.rk-meta > div { display: flex; flex-direction: column; gap: 10px; }
.rk-meta dt { font-size: 13px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--rk-mute); }
.rk-meta dd { margin: 0; font-size: clamp(16px, 1.35vw, 20px); letter-spacing: -0.01em; }
.rk-sitelink { text-decoration: none; border-bottom: 1px solid var(--rk-fg); padding-bottom: 1px; }

body.rk .rk-single__body .rk-img--hero {
	height: clamp(300px, 58vh, 720px);
	margin-bottom: clamp(48px, 8vh, 110px);
}
body.rk .rk-single__body .rk-split {
	grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
	margin-bottom: clamp(48px, 8vh, 110px);
}
body.rk .rk-single__body .rk-split__side { max-width: 44ch; gap: clamp(20px, 2.6vh, 28px); }
body.rk .rk-single__body .rk-lead2 p { font-size: clamp(24px, 2.4vw, 40px); line-height: 1.24; }
body.rk .rk-single__body .rk-body p { line-height: 1.5; }
body.rk .rk-single__body .rk-body p + p { margin-top: clamp(20px, 2.6vh, 28px); }
body.rk .rk-cols3 {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
	gap: clamp(28px, 3vw, 56px);
	margin-bottom: clamp(48px, 8vh, 110px);
}
body.rk .rk-col {
	display: flex !important;
	flex-direction: column;
	gap: clamp(12px, 1.6vh, 18px);
	padding-top: clamp(18px, 2.4vh, 26px) !important;
	border-top: 1px solid var(--rk-fg);
}
body.rk .rk-col .rk-label { margin: 0; letter-spacing: 0.06em; }
body.rk .rk-imgs2 {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
	gap: clamp(16px, 2vw, 32px);
	margin-bottom: clamp(48px, 8vh, 110px);
}
body.rk .rk-imgs2 .rk-img { height: clamp(260px, 42vh, 520px); }

/* 12. Contact & forms ------------------------------------------------------------ */

body.rk .rk-contact {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr));
	gap: clamp(48px, 7vw, 120px);
	align-items: start;
	max-width: 1500px;
	padding-bottom: clamp(64px, 10vh, 120px) !important;
}
body.rk .rk-main:has(.rk-contact) { padding-top: clamp(48px, 9vh, 120px); }
body.rk .rk-contact__side { display: flex !important; flex-direction: column; gap: clamp(40px, 7vh, 80px); }
body.rk :is(.rk-main, .rk-native) .rk-contact__h {
	margin: 0;
	font-size: clamp(56px, 9vw, 170px);
	line-height: 0.92;
	letter-spacing: -0.04em;
}
.rk-cinfo { display: flex; flex-direction: column; gap: clamp(20px, 3vh, 30px); }
.rk-bigmail { width: max-content; max-width: 100%; text-decoration: none; color: var(--rk-fg); }
.rk-bigmail span {
	font-size: clamp(22px, 2.5vw, 40px);
	letter-spacing: -0.02em;
	line-height: 1.3;
	overflow-wrap: anywhere;
	background-image: linear-gradient(var(--rk-fg), var(--rk-fg));
	background-repeat: no-repeat;
	background-position: bottom left;
	background-size: 100% 1px;
	padding-bottom: 4px;
	transition: background-size .32s var(--rk-ease), color .2s ease .1s;
}
.rk-bigmail:hover span { background-size: 100% 100%; color: var(--rk-bg); }
.rk-phone {
	width: max-content;
	color: var(--rk-body);
	font-size: clamp(17px, 1.5vw, 22px);
	letter-spacing: -0.01em;
}
.rk-socials {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(18px, 2vw, 30px);
	font-size: clamp(14px, 1.15vw, 17px);
	letter-spacing: 0.01em;
}
.rk-cinfo + .rk-socials { margin-top: clamp(40px, 7vh, 80px); }

.rk-form, .rk-form-done {
	display: flex;
	flex-direction: column;
	gap: clamp(20px, 3.4vh, 36px);
	padding-top: clamp(8px, 2vh, 20px);
}
.rk-form-done { gap: clamp(18px, 3vh, 28px); }
.rk-form-thanks {
	margin: 0;
	font-size: clamp(26px, 3vw, 46px);
	line-height: 1.06;
	letter-spacing: -0.025em;
}
.rk-form-done .rk-ulink { width: max-content; color: var(--rk-mute); font-size: clamp(15px, 1.2vw, 18px); }
.rk-form-error {
	margin: 0 0 8px;
	padding-left: 14px;
	border-left: 2px solid var(--rk-fg);
	font-size: clamp(15px, 1.2vw, 18px);
}
.rk-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.rk-fw { position: relative; }
.rk-uf {
	appearance: none;
	width: 100%;
	border: 0;
	border-bottom: 1px solid rgba(var(--rk-fgrgb), 0.35);
	border-radius: 0;
	background: transparent;
	color: var(--rk-fg);
	font-family: inherit;
	font-size: clamp(18px, 1.6vw, 24px);
	letter-spacing: -0.01em;
	padding: 26px 0 12px;
	outline: none;
	transition: border-color .3s ease;
}
.rk-uf:focus { border-bottom-color: var(--rk-fg); }
.rk-uf:focus-visible { outline: none; }
.rk-uf + label {
	position: absolute;
	left: 0; top: 26px;
	font-size: clamp(18px, 1.6vw, 24px);
	letter-spacing: -0.01em;
	color: var(--rk-mute);
	pointer-events: none;
	transform-origin: left top;
	transition: transform .28s var(--rk-ease-out), color .28s ease;
}
.rk-uf:focus + label,
.rk-uf:not(:placeholder-shown) + label { transform: translateY(-24px) scale(0.58); }
.rk-uf:focus + label { color: var(--rk-fg); }
textarea.rk-uf { resize: vertical; min-height: 120px; line-height: 1.5; }

.rk-consent {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font-size: 14px;
	line-height: 1.45;
	color: var(--rk-mute);
}
.rk-consent input { margin: 2px 0 0; accent-color: var(--rk-fg); width: 16px; height: 16px; flex: none; }
.rk-consent a { color: var(--rk-fg); }

.rk-submit,
.rk-wpforms .wpforms-submit {
	margin-top: clamp(10px, 2vh, 24px);
	width: max-content;
	appearance: none;
	cursor: pointer;
	background: transparent;
	color: var(--rk-fg);
	border: 1px solid var(--rk-fg);
	border-radius: 0;
	font-family: inherit;
	font-size: clamp(16px, 1.3vw, 19px);
	letter-spacing: 0.01em;
	padding: clamp(15px, 1.9vh, 20px) clamp(38px, 4.6vw, 60px);
	background-image: linear-gradient(var(--rk-fg), var(--rk-fg));
	background-repeat: no-repeat;
	background-position: bottom;
	background-size: 100% 0%;
	transition: background-size 340ms var(--rk-ease), color 160ms ease 120ms;
}
.rk-submit:hover,
.rk-wpforms .wpforms-submit:hover { background-size: 100% 100%; color: var(--rk-bg); }

/* WPForms, restyled to the design (labels above, underline fields). */
.rk-wpforms .wpforms-container { margin: 0 !important; }
.rk-wpforms .wpforms-field { padding: 0 0 clamp(20px, 3.4vh, 36px) !important; }
.rk-wpforms .wpforms-field-label {
	font-weight: 400 !important;
	font-size: 14px !important;
	letter-spacing: 0.02em;
	color: var(--rk-mute) !important;
	margin-bottom: 4px !important;
}
.rk-wpforms .wpforms-required-label { color: var(--rk-mute) !important; }
.rk-wpforms input[type="text"],
.rk-wpforms input[type="email"],
.rk-wpforms input[type="tel"],
.rk-wpforms input[type="url"],
.rk-wpforms textarea,
.rk-wpforms select {
	width: 100% !important;
	max-width: none !important;
	border: 0 !important;
	border-bottom: 1px solid rgba(var(--rk-fgrgb), 0.35) !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--rk-fg) !important;
	font-family: inherit !important;
	font-size: clamp(18px, 1.6vw, 24px) !important;
	padding: 8px 0 12px !important;
	height: auto !important;
}
.rk-wpforms input:focus,
.rk-wpforms textarea:focus { border-bottom-color: var(--rk-fg) !important; outline: none !important; }
.rk-wpforms .wpforms-field-checkbox li,
.rk-wpforms .wpforms-field-gdpr-checkbox li { font-size: 14px; color: var(--rk-mute); }
.rk-wpforms input[type="checkbox"] { accent-color: var(--rk-fg); }
.rk-wpforms .wpforms-error { color: var(--rk-fg) !important; font-size: 13px !important; }
.rk-wpforms .wpforms-confirmation-container-full {
	background: none !important;
	border: 0 !important;
	padding: clamp(8px, 2vh, 20px) 0 0 !important;
	color: var(--rk-fg) !important;
	font-size: clamp(26px, 3vw, 46px);
	line-height: 1.06;
	letter-spacing: -0.025em;
}
.rk-wpforms .wpforms-confirmation-container-full p { margin: 0; }

/* 13. CTA bands ("Hai un progetto in mente?", "Prossimo lavoro") --------------- */

.rk-next {
	display: block;
	text-decoration: none;
	color: var(--rk-fg) !important;
	border-top: 1px solid var(--rk-fg);
	background-image: linear-gradient(90deg, var(--rk-fg), var(--rk-fg));
	background-repeat: no-repeat;
	background-position: left;
	background-size: 0% 100%;
	transition: background-size 460ms var(--rk-ease), color 200ms ease 120ms;
}
.rk-next:hover { background-size: 100% 100%; color: var(--rk-bg) !important; }
.rk-next:focus-visible { outline-offset: -3px; }
.rk-next__in {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 20px 32px;
	padding: clamp(40px, 8vh, 90px) var(--rk-gut);
}
.rk-next__in svg { display: block; flex: none; }
.rk-next__txt { display: flex; flex-direction: column; gap: clamp(10px, 1.5vh, 16px); min-width: 0; }
.rk-next__k { font-size: 13px; letter-spacing: 0.06em; text-transform: uppercase; opacity: 0.65; }
.rk-next__big {
	font-size: clamp(32px, 5.4vw, 88px);
	line-height: 0.98;
	letter-spacing: -0.03em;
	overflow-wrap: anywhere;
}

/* The contact band sits inside the page content: break out of the gutter. */
body.rk .rk-ctawrap { margin: clamp(56px, 10vh, 130px) calc(-1 * var(--rk-gut)) 0; width: auto !important; max-width: none; }
body.rk .rk-absec + .rk-ctawrap { margin-top: clamp(80px, 14vh, 180px); }

.rk-next--project { transition-duration: 420ms, 200ms; }
.rk-next--project .rk-next__in { align-items: baseline; flex-wrap: nowrap; gap: 24px; padding: clamp(26px, 4vh, 48px) var(--rk-gut); }
.rk-next--project .rk-next__in svg { align-self: center; }
.rk-next--project .rk-next__txt { gap: 8px; }
.rk-next--project .rk-next__k { opacity: 0.7; }
.rk-next--project .rk-next__big { font-size: clamp(28px, 3.6vw, 52px); line-height: 1; letter-spacing: -0.02em; }

@media (max-width: 760px) {
	.rk-next__in { padding: 44px 20px; }
	.rk-next--project .rk-next__in { padding: 32px 20px; }
	body.rk .rk-ctawrap { margin-top: 72px; }
	.rk-next--cta .rk-next__big { font-size: 28px; }
	.rk-next--cta svg { width: 40px; height: 18px; }
}

/* 14. Footer ---------------------------------------------------------------- */

.rk-footer {
	background: var(--rk-footbg);
	color: #FBFBF9;
	padding: clamp(56px, 9vh, 110px) var(--rk-gut) clamp(28px, 4vh, 40px);
	display: flex;
	flex-direction: column;
	gap: clamp(48px, 8vh, 88px);
}
html[data-theme="dark"] .rk-footer { box-shadow: inset 0 1px 0 rgba(242, 242, 238, 0.1); }
.rk-footer__top {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: clamp(36px, 6vw, 80px);
	align-items: flex-start;
}
.rk-flogo {
	display: flex;
	align-items: baseline;
	gap: 12px;
	text-decoration: none;
	color: #FBFBF9 !important;
	font-family: var(--rk-brand);
}
.rk-flogo .rk-wm-a { font-weight: 400; font-size: clamp(34px, 4.4vw, 68px); letter-spacing: -0.02em; }
.rk-flogo .rk-wm-b { font-weight: 250; font-size: clamp(24px, 3vw, 46px); color: rgba(251, 251, 249, 0.8); }
.rk-footer__cols { display: flex; flex-wrap: wrap; gap: clamp(40px, 6vw, 96px); font-size: clamp(14px, 1.1vw, 16px); }
.rk-footer__col { display: flex; flex-direction: column; gap: 12px; color: rgba(251, 251, 249, 0.75); }
.rk-footer__title {
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(251, 251, 249, 0.45);
	margin-bottom: 4px;
}
.rk-flinkd { text-decoration: none; color: rgba(251, 251, 249, 0.75) !important; transition: color .25s ease; }
.rk-flinkd:hover { color: #FBFBF9 !important; }
.rk-footer :focus-visible { outline-color: #FBFBF9; }
.rk-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 12px 30px;
	font-size: clamp(12px, 0.95vw, 14px);
	color: rgba(251, 251, 249, 0.45);
}
.rk-footer__links { display: flex; flex-wrap: wrap; gap: 22px; }
.rk-footer__links .rk-flinkd { color: rgba(251, 251, 249, 0.6) !important; }

/* 15. Motion ------------------------------------------------------------------ */

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.rk *, .rk *::before, .rk *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}
