/*!
Theme Name: Roberto Landello - DC
Theme URI: http://underscores.me/
Author: Damiano Colotto
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: robertolandello
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Roberto Landello - DC is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/

/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Generic
	- Normalize
	- Box sizing
# Base
	- Typography
	- Elements
	- Links
	- Forms
## Layouts
# Components
	- Navigation
	- Posts and pages
	- Comments
	- Widgets
	- Media
	- Captions
	- Galleries
# plugins
	- Jetpack infinite scroll
# Utilities
	- Accessibility
	- Alignments

--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Generic
--------------------------------------------------------------*/

/* Normalize
--------------------------------------------- */

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
	 ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
	line-height: 1.15;
	-webkit-text-size-adjust: 100%;
}

/* Sections
	 ========================================================================== */

/**
 * Remove the margin in all browsers.
 */
body {
	margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
	display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
	font-size: 2em;
	margin: 0.67em 0;
}

/* Grouping content
	 ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
	box-sizing: content-box;
	height: 0;
	overflow: visible;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
	font-family: monospace, monospace;
	font-size: 1em;
}

/* Text-level semantics
	 ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */
a {
	background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
	border-bottom: none;
	text-decoration: underline;
	text-decoration: underline dotted;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
	font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
	font-family: monospace, monospace;
	font-size: 1em;
}

/**
 * Add the correct font size in all browsers.
 */
small {
	font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sub {
	bottom: -0.25em;
}

sup {
	top: -0.5em;
}

/* Embedded content
	 ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */
img {
	border-style: none;
}

/* Forms
	 ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
	font-family: inherit;
	font-size: 100%;
	line-height: 1.15;
	margin: 0;
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
	overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
	text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type="button"],
[type="reset"],
[type="submit"] {
	-webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
	border-style: none;
	padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
	outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
	padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *		`fieldset` elements in all browsers.
 */
legend {
	box-sizing: border-box;
	color: inherit;
	display: table;
	max-width: 100%;
	padding: 0;
	white-space: normal;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
	vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
	overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type="checkbox"],
[type="radio"] {
	box-sizing: border-box;
	padding: 0;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
	height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
	-webkit-appearance: textfield;
	outline-offset: -2px;
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit;
}

/* Interactive
	 ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
	display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
	display: list-item;
}

/* Misc
	 ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */
template {
	display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
	display: none;
}

/* Box sizing
--------------------------------------------- */

/* Inherit box-sizing to more easily change it's value on a component level.
@link http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
*,
*::before,
*::after {
	box-sizing: inherit;
}

html {
	box-sizing: border-box;
}

/*--------------------------------------------------------------
# Base
--------------------------------------------------------------*/

/* Typography
--------------------------------------------- */
body,
button,
input,
select,
optgroup,
textarea {
	color: #404040;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
	font-size: 1rem;
	line-height: 1.5;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	clear: both;
}

p {
	margin-bottom: 1.5em;
}

dfn,
cite,
em,
i {
	font-style: italic;
}

blockquote {
	margin: 0 1.5em;
}

address {
	margin: 0 0 1.5em;
}

pre {
	background: #eee;
	font-family: "Courier 10 Pitch", courier, monospace;
	line-height: 1.6;
	margin-bottom: 1.6em;
	max-width: 100%;
	overflow: auto;
	padding: 1.6em;
}

code,
kbd,
tt,
var {
	font-family: monaco, consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
}

abbr,
acronym {
	border-bottom: 1px dotted #666;
	cursor: help;
}

mark,
ins {
	background: var(--rl-paper)9c0;
	text-decoration: none;
}

big {
	font-size: 125%;
}

/* Elements
--------------------------------------------- */
body {
	background: var(--rl-paper);
}

hr {
	background-color: #ccc;
	border: 0;
	height: 1px;
	margin-bottom: 1.5em;
}

ul,
ol {
	margin: 0 0 1.5em 3em;
}

ul {
	list-style: disc;
}

ol {
	list-style: decimal;
}

li > ul,
li > ol {
	margin-bottom: 0;
	margin-left: 1.5em;
}

dt {
	font-weight: 700;
}

dd {
	margin: 0 1.5em 1.5em;
}

/* Make sure embeds and iframes fit their containers. */
embed,
iframe,
object {
	max-width: 100%;
}

img {
	height: auto;
	max-width: 100%;
}

figure {
	margin: 1em 0;
}

table {
	margin: 0 0 1.5em;
	width: 100%;
}

/* Forms
--------------------------------------------- */
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
	border: 1px solid;
	border-color: #ccc #ccc #bbb;
	border-radius: 3px;
	background: #e6e6e6;
	color: rgba(0, 0, 0, 0.8);
	line-height: 1;
	padding: 0.6em 1em 0.4em;
}

button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover {
	border-color: #ccc #bbb #aaa;
}

button:active,
button:focus,
input[type="button"]:active,
input[type="button"]:focus,
input[type="reset"]:active,
input[type="reset"]:focus,
input[type="submit"]:active,
input[type="submit"]:focus {
	border-color: #aaa #bbb #bbb;
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="range"],
input[type="date"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="datetime"],
input[type="datetime-local"],
input[type="color"],
textarea {
	color: #666;
	border: 1px solid #ccc;
	border-radius: 3px;
	padding: 3px;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="range"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="week"]:focus,
input[type="time"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="color"]:focus,
textarea:focus {
	color: #111;
}

select {
	border: 1px solid #ccc;
}

textarea {
	width: 100%;
}

/*--------------------------------------------------------------
# Layouts
--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Components
--------------------------------------------------------------*/

/* Navigation
--------------------------------------------- */
.main-navigation {
	display: block;
	width: 100%;
}

.main-navigation ul {
	display: none;
	list-style: none;
	margin: 0;
	padding-left: 0;
}

.main-navigation ul ul {
	box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
	float: left;
	position: absolute;
	top: 100%;
	left: -999em;
	z-index: 99999;
}

.main-navigation ul ul ul {
	left: -999em;
	top: 0;
}

.main-navigation ul ul li:hover > ul,
.main-navigation ul ul li.focus > ul {
	display: block;
	left: auto;
}

.main-navigation ul ul a {
	width: 200px;
}

.main-navigation ul li:hover > ul,
.main-navigation ul li.focus > ul {
	left: auto;
}

.main-navigation li {
	position: relative;
}

.main-navigation a {
	display: block;
	text-decoration: none;
}

/* Small menu. */
.menu-toggle,
.main-navigation.toggled ul {
	display: block;
}

@media screen and (min-width: 37.5em) {

	.menu-toggle {
		display: none;
	}

	.main-navigation ul {
		display: flex;
	}
}

.site-main .comment-navigation,
.site-main
.posts-navigation,
.site-main
.post-navigation {
	margin: 0 0 1.5em;
}

.comment-navigation .nav-links,
.posts-navigation .nav-links,
.post-navigation .nav-links {
	display: flex;
}

.comment-navigation .nav-previous,
.posts-navigation .nav-previous,
.post-navigation .nav-previous {
	flex: 1 0 50%;
}

.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next {
	text-align: end;
	flex: 1 0 50%;
}

/* Posts and pages
--------------------------------------------- */
.sticky {
	display: block;
}

.updated:not(.published) {
	display: none;
}

.page-content,
.entry-content,
.entry-summary {
	margin: 1.5em 0 0;
}

.page-links {
	clear: both;
	margin: 0 0 1.5em;
}

/* Comments
--------------------------------------------- */
.comment-content a {
	word-wrap: break-word;
}

.bypostauthor {
	display: block;
}

/* Widgets
--------------------------------------------- */
.widget {
	margin: 0 0 1.5em;
}

.widget select {
	max-width: 100%;
}

/* Media
--------------------------------------------- */
.page-content .wp-smiley,
.entry-content .wp-smiley,
.comment-content .wp-smiley {
	border: none;
	margin-bottom: 0;
	margin-top: 0;
	padding: 0;
}

/* Make sure logo link wraps around logo image. */
.custom-logo-link {
	display: inline-block;
}

/* Captions
--------------------------------------------- */
.wp-caption {
	margin-bottom: 1.5em;
	max-width: 100%;
}

.wp-caption img[class*="wp-image-"] {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.wp-caption .wp-caption-text {
	margin: 0.8075em 0;
}

.wp-caption-text {
	text-align: center;
}

/* Galleries
--------------------------------------------- */
.gallery {
	margin-bottom: 1.5em;
	display: grid;
	grid-gap: 1.5em;
}

.gallery-item {
	display: inline-block;
	text-align: center;
	width: 100%;
}

.gallery-columns-2 {
	grid-template-columns: repeat(2, 1fr);
}

.gallery-columns-3 {
	grid-template-columns: repeat(3, 1fr);
}

.gallery-columns-4 {
	grid-template-columns: repeat(4, 1fr);
}

.gallery-columns-5 {
	grid-template-columns: repeat(5, 1fr);
}

.gallery-columns-6 {
	grid-template-columns: repeat(6, 1fr);
}

.gallery-columns-7 {
	grid-template-columns: repeat(7, 1fr);
}

.gallery-columns-8 {
	grid-template-columns: repeat(8, 1fr);
}

.gallery-columns-9 {
	grid-template-columns: repeat(9, 1fr);
}

.gallery-caption {
	display: block;
}

/*--------------------------------------------------------------
# Plugins
--------------------------------------------------------------*/

/* Jetpack infinite scroll
--------------------------------------------- */

/* Hide the Posts Navigation and the Footer when Infinite Scroll is in use. */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
	display: none;
}

/* Re-display the Theme Footer when Infinite Scroll has reached its end. */
.infinity-end.neverending .site-footer {
	display: block;
}

/*--------------------------------------------------------------
# Utilities
--------------------------------------------------------------*/

/* Accessibility
--------------------------------------------- */

/* Text meant only for screen readers. */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background-color: #f1f1f1;
	border-radius: 3px;
	box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
	clip: auto !important;
	clip-path: none;
	color: #21759b;
	display: block;
	font-size: 0.875rem;
	font-weight: 700;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}

/* Do not show the outline on the skip link target. */
#primary[tabindex="-1"]:focus {
	outline: 0;
}

/* Alignments
--------------------------------------------- */
.alignleft {

	/*rtl:ignore*/
	float: left;

	/*rtl:ignore*/
	margin-right: 1.5em;
	margin-bottom: 1.5em;
}

.alignright {

	/*rtl:ignore*/
	float: right;

	/*rtl:ignore*/
	margin-left: 1.5em;
	margin-bottom: 1.5em;
}

.aligncenter {
	clear: both;
	display: block;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 1.5em;
}

/*--------------------------------------------------------------
# Roberto Landello design system
--------------------------------------------------------------*/
@font-face {
	font-family: "Montreal";
	src: url("./fonts/MontrealLight.woff") format("woff");
	font-weight: 300;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Montreal";
	src: url("./fonts/MontrealRegular.woff") format("woff");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Montreal";
	src: url("./fonts/MontrealMedium.woff") format("woff");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

:root {
	--rl-paper: #f0ede5;
	--rl-ink: #3d3b30;
	--rl-forest: #243a24;
	--rl-lime: #ecedcc;
	--rl-muted: #5d605a;
	--rl-grey: #544f45;
	--rl-rule: rgba(34, 35, 31, 0.28);
	--rl-font-sans: "Montreal", "Helvetica Neue", Helvetica, Arial, sans-serif;
	--rl-font-serif: "Editorial New", Helvetica, Arial, serif;
	--rl-space-section: clamp(5rem, 10vw, 10rem);
	--rl-space-heading: clamp(4rem, 7vw, 8rem);
	--rl-radius-pill: 999px;
}

html {
	scroll-behavior: smooth;
	scrollbar-gutter: stable;
}

body,
button,
input,
select,
optgroup,
textarea {
	color: var(--rl-ink);
	font-family: var(--rl-font-sans);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.3;
}

body {
	background: var(--rl-paper);
}

footer {
	background: var(--rl-paper);
	position: relative;
}

.page-template-rl-servizi footer {
	color: var(--rl-paper);
	background: var(--rl-grey);
	position: relative;
}

.page-template-rl-servizi .site-footer__content {
	border-top: 1px solid rgba(240,237,229,.35);
}

.page-template-rl-servizi .site-footer__label {
	color: var(--rl-lime);
}

.page-template-rl-media footer {
	color: var(--rl-paper);
	background: var(--rl-forest);
	position: relative;
}

.page-template-rl-media .site-footer__content {
	border-top: 1px solid rgba(240,237,229,.35);
}

.page-template-rl-servizi .site-footer__label {
	color: rgba(240, 237, 229, 1);
}

a {
	color: inherit;
}

a:hover,
a:focus {
	color: inherit;
}

p:last-child {
	margin-bottom: 0;
}

@media (hover: hover) and (pointer: fine) {
	a,
	button {
		cursor: none;
	}

	.link-cursor {
		position: fixed;
		top: 0;
		left: 0;
		z-index: 99999;
		pointer-events: none;
		opacity: 0;
		font-family: var(--rl-font-sans);
		font-size: 1rem;
		font-weight: 400;
		line-height: 1;
		transform: translate(-50%, -50%);
		transition: opacity .15s ease;
		background-color: var(--rl-paper);
		color: var(--rl-ink);
		padding: 0.5rem 0.75rem;
		border-radius: 999px;
	}

	.link-cursor.is-visible {
		opacity: 1;
	}
}

.bg-paper {
	background-color: var(--rl-paper) !important;
}

.bg-forest {
	background-color: var(--rl-forest) !important;
}

.text-lime {
	color: var(--rl-lime) !important;
}

.text-paper {
	color: var(--rl-paper) !important;
}

.py-section {
	padding-bottom: var(--rl-space-section);
	padding-top: var(--rl-space-section);
}

.mb-section {
	margin-bottom: var(--rl-space-heading) !important;
}

.type-display,
.type-title,
.type-lead,
.type-body-lg,
.type-label,
.type-meta {
	font-family: var(--rl-font-sans);
	font-style: normal;
}

.type-display {
	font-size: clamp(2.25rem, 1.65rem + 4.5vw, 8.25rem);
	font-weight: 300;
	letter-spacing: -1px;
	line-height: 0.9;
	text-transform: uppercase;
}

.type-title {
	font-size: clamp(2rem, 4vw, 4.75rem);
	font-weight: 400;
	letter-spacing: -0.5px;
	line-height: 0.98;
}

.type-lead {
	font-size: clamp(1.75rem, 3vw, 3rem);
	font-weight: 300;
	line-height: 1;
}

.type-logo {
	font-size: clamp(1.25rem, 3vw, 2.25rem);
	line-height: 1.18;
	font-weight: 400;
}
.type-main-lg {
	font-size: clamp(1.25rem, 1.06rem + 0.26vw, 1.5rem);
	line-height: 1.18;
	font-weight: 400;
}

.type-main {
	font-size: clamp(1rem, 0.986rem + 0.07vw, 1.071rem);
	font-weight: 400;
	line-height: 1.2;
}

.type-main-sm {
	font-size: clamp(0.875rem, 0.800rem + 0vw, 0.875rem);
	font-weight: 400;
	line-height: 1.1;
}

.type-label,
.type-meta {
	font-size: clamp(0.875rem, 0.800rem + 0vw, 0.875rem);
	font-weight: 400;
	letter-spacing: 0.025em;
	line-height: 1.2;
	text-transform: uppercase;
}

.muted {
	color: var(--rl-muted);
}

/* Text reveal
 * Automatically applied by reveal.js to the main typography classes.
 * Add .reveal-clip or data-reveal to animate any other element.
 */
.has-reveal .reveal-clip {
	clip-path: inset(100% 0 0 0);
	transform: translate3d(0, 0.8em, 0);
	transition:
		clip-path 800ms cubic-bezier(0.16, 1, 0.3, 1),
		transform 800ms cubic-bezier(0.16, 1, 0.3, 1);
	transition-delay: var(--reveal-delay, 120ms);
	will-change: clip-path, opacity, transform;
}

.has-reveal .reveal-clip.is-visible {
	clip-path: inset(0 0 0 0);
	transform: translate3d(0, 0, 0);
}

.has-reveal .reveal-clip.reveal-lines {
	clip-path: none;
	transform: none;
	transition: none;
	will-change: auto;
}

.reveal-line {
	display: block;
	margin-bottom: -.15em;
	padding-bottom: .15em;
	overflow: hidden;
}

.reveal-line-inner {
	display: block;
}

.has-reveal .reveal-line-inner {
	transform: translate3d(0, 115%, 0);
	transition: transform 750ms cubic-bezier(0.16,1,0.3,1);
	transition-delay: var(--reveal-line-delay, 50ms);
	will-change: transform;
}

.has-reveal .reveal-lines.is-visible .reveal-line-inner {
	transform: translate3d(0, 0, 0);
}

.has-rule {
	position: relative;
}

.has-rule::before {
	background: currentColor;
	content: "";
	height: 1px;
	left: 0;
	opacity: 0.25;
	position: absolute;
	top: 0;
	width: 100%;
}

.link-arrow::after {
	content: "↗";
	display: inline-block;
	font-size: 1.1em;
	margin-left: 0.3em;
	transition: transform 180ms ease;
}

.link-arrow:hover::after,
.link-arrow:focus::after {
	transform: translate(0.18em, -0.18em);
}

.btn-rl,
.btn-contact {
	align-items: center;
	background: var(--rl-ink);
	border: 1px solid var(--rl-ink);
	border-radius: var(--rl-radius-pill);
	color: var(--rl-paper);
	display: inline-flex;
	font-size: clamp(0.875rem, 0.800rem + 0vw, 0.875rem);
	font-weight: 500;
	letter-spacing: 0.025em;
	line-height: 1;
	padding: 0.65rem 0.9rem;
	text-decoration: none;
	text-transform: uppercase;
	transition:
		background-color .45s cubic-bezier(.16,1,.3,1),
		color .45s cubic-bezier(.16,1,.3,1),
		border-color .45s cubic-bezier(.16,1,.3,1);
}

.btn-rl:hover,
.btn-rl:focus,
.btn-contact:hover,
.btn-contact:focus {
	background: transparent;
	color: var(--rl-ink);
}

.btn-rl__text {
	position: relative;
	display: inline-block;
	padding-bottom: .12em;
}

.btn-rl__text::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 1px;
	background: currentColor;
	clip-path: inset(0 100% 0 0);
	transition: clip-path .4s cubic-bezier(.16,1,.3,1);
	pointer-events: none;
}

.btn-rl:hover .btn-rl__text::after,
.btn-rl:focus-visible .btn-rl__text::after {
	clip-path: inset(0 0 0 0);
}

.btn-rl-light {
	background: var(--rl-paper);
	border-color: var(--rl-paper);
	color: var(--rl-ink);
}

.btn-rl-light:hover,
.btn-rl-light:focus {
	background: transparent;
	color: var(--rl-paper);
	border-color: var(--rl-paper);
}

.btn-rl.link-arrow::after {
	content: "↗";
	display: inline-block;
	font-size: clamp(0.875rem, 0.800rem + 0vw, 0.875rem);
	font-weight: 400;
	margin-left: .55em;
	transition: transform .4s cubic-bezier(.16,1,.3,1);
}

.btn-rl.link-arrow:hover::after,
.btn-rl.link-arrow:focus-visible::after {
	transform: translate(.18em,-.18em);
}

/* Global header */
.site-header {
	background: var(--rl-paper);
	color: var(--rl-ink);
	left: 0;
	position: relative;
	top: 0;
	width: 100%;
	z-index: 100;
}

.home .site-header {
	background: transparent;
	color: var(--rl-paper);
	position: absolute;
}

.home .site-header a,
.home .site-header a:link,
.home .site-header a:visited,
.home .site-header a:hover,
.home .site-header a:focus,
.home .site-header a:active {
	color: var(--rl-paper);
}

.single-progetto .site-header {
	background: transparent;
	color: var(--rl-paper);
	position: absolute;
}

.single-progetto .site-header a,
.single-progetto .site-header a:link,
.single-progetto .site-header a:visited,
.single-progetto .site-header a:hover,
.single-progetto .site-header a:focus,
.single-progetto .site-header a:active {
	color: var(--rl-paper);
}

.page-template-rl-metodo .site-header {
	background: transparent;
	color: var(--rl-paper);
	position: absolute;
}

.page-template-rl-metodo .site-header a,
.page-template-rl-metodo .site-header a:link,
.page-template-rl-metodo .site-header a:visited,
.page-template-rl-metodo .site-header a:hover,
.page-template-rl-metodo .site-header a:focus,
.page-template-rl-metodo .site-header a:active {
	color: var(--rl-paper);
}

.page-template-rl-metodo .site-header .btn-contact,
.page-template-rl-metodo .site-header .btn-contact:link,
.page-template-rl-metodo .site-header .btn-contact:visited {
	background: var(--rl-paper);
	border-color: var(--rl-paper);
	color: var(--rl-grey);
}
.page-template-rl-metodo .site-header .btn-contact:hover,
.page-template-rl-metodo .site-header .btn-contact:focus-visible {
	background: transparent;
	border-color: var(--rl-paper);
	color: var(--rl-paper);
}


.site-title,
.site-title:hover,
.site-title:focus {
	color: inherit;
	text-decoration: none;
}

.custom-logo {
	height: auto;
	max-height: 2rem;
	max-width: 12rem;
	width: auto;
}

.logo-land {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.12em;
}
.main-navigation {
	width: auto;
}

.main-navigation a:not(.btn-contact) {
	position: relative;
	display: inline-block;
	color: inherit;
	text-transform: uppercase;
	text-decoration: none;
}

.main-navigation a:not(.btn-contact)::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -0.1px;
	width: 100%;
	height: 1px;
	background: currentColor;
	clip-path: inset(0 100% 0 0);
	transition: clip-path .4s cubic-bezier(.16,1,.3,1);
	pointer-events: none;
}

.main-navigation a:not(.btn-contact):hover::after,
.main-navigation a:not(.btn-contact):focus-visible::after {
	clip-path: inset(0 0 0 0);
}

.home .site-header .btn-contact,
.home .site-header .btn-contact:link,
.home .site-header .btn-contact:visited {
	background: var(--rl-paper);
	border-color: var(--rl-paper);
	color: var(--rl-ink);
}

.home .site-header .btn-contact:hover,
.home .site-header .btn-contact:focus {
	background: transparent;
	border-color: var(--rl-paper);
	color: var(--rl-paper);
}

.image-reveal {
	position: relative;
	overflow: hidden;
	background: #000;
}

.image-reveal img {
	display: block;
	width: 100%;
	height: 100%;
	opacity: 0;
	transform: scale(1.15);
	transition:
		opacity 0.3s ease-out,
		transform 0.5s cubic-bezier(.16,1,.3,1);
	will-change: opacity, transform;
}

.image-reveal.is-visible img {
	opacity: 1;
	transform: scale(1);
}

@media (hover: hover) and (pointer: fine) {
	.image-reveal.is-visible img {
		clip-path: inset(0);
		transition:
			opacity 0.3s ease-out,
			transform 0.5s cubic-bezier(.16,1,.3,1),
			clip-path 0.45s cubic-bezier(.16,1,.3,1);
	}
	a:hover .image-reveal.is-visible img,
	a:focus-visible .image-reveal.is-visible img {
		transform: scale(1.04);
		clip-path: inset(1.5%);
	}
}

@media (prefers-reduced-motion: reduce) {
	.image-reveal img {
		opacity: 1;
		transform: none;
		transition: none;
	}
}

/* ==================================================
   HEADER INIZIALE
================================================== */

.site-header--initial {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 20;
}

.site-header--initial .site-branding {
	position: relative;
	z-index: 2;
}

.site-header--initial .header-actions {
	position: relative;
	z-index: 2;
}

.main-navigation {
	width: 100%;
}

.main-navigation__menu {
	display: flex;
	align-items: center;
}

.main-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.main-navigation a:not(.btn-contact) {
	position: relative;
	display: inline-block;
	color: inherit;
	text-decoration: none;
	text-transform: uppercase;
}

.main-navigation a:not(.btn-contact)::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -.12em;
	width: 100%;
	height: 1px;
	background: currentColor;
	clip-path: inset(0 100% 0 0);
	transition: clip-path .4s cubic-bezier(.16,1,.3,1);
	pointer-events: none;
}

.main-navigation a:not(.btn-contact):hover::after,
.main-navigation a:not(.btn-contact):focus-visible::after {
	clip-path: inset(0 0 0 0);
}


/* ==================================================
   MENU MOBILE INIZIALE
================================================== */

.initial-mobile-menu {
	appearance: none;
	border: 1px solid var(--rl-paper);
	border-radius: var(--rl-radius-pill);
	background: var(--rl-paper);
	color: var(--rl-ink) !important;
	font-weight: 500;
	letter-spacing: .025em;
	line-height: 1;
	padding: .65rem .9rem;
	text-transform: uppercase;
	cursor: pointer;
}

.initial-mobile-menu:hover::after,
.initial-mobile-menu:focus-visible::after {
	background: var(--rl-paper);
	border-color: var(--rl-paper);
	color: var(--rl-ink);
}

.home .initial-mobile-menu {
	appearance: none;
	border: 1px solid var(--rl-paper);
	border-radius: var(--rl-radius-pill);
	background: var(--rl-paper);
	color: var(--rl-ink) !important;
	font-weight: 500;
	letter-spacing: .025em;
	line-height: 1;
	padding: .65rem .9rem;
	text-transform: uppercase;
	cursor: pointer;
}

.home .initial-mobile-menu:hover::after,
.home .initial-mobile-menu:focus-visible::after {
	background: var(--rl-ink);
	border-color: var(--rl-ink);
	color: var(--rl-paper);
}


/* ==================================================
   HOME HEADER
================================================== */

.home .site-header--initial {
	background: transparent;
	color: var(--rl-paper);
}

.home .site-header--initial a,
.home .site-header--initial a:link,
.home .site-header--initial a:visited,
.home .site-header--initial a:hover,
.home .site-header--initial a:focus,
.home .site-header--initial a:active,
.home .site-header--initial .initial-mobile-menu {
	color: var(--rl-paper);
}

.home .site-header--initial .btn-contact,
.home .site-header--initial .btn-contact:link,
.home .site-header--initial .btn-contact:visited {
	background: var(--rl-paper);
	border-color: var(--rl-paper);
	color: var(--rl-ink);
}

.home .site-header--initial .btn-contact:hover,
.home .site-header--initial .btn-contact:focus-visible {
	background: var(--rl-ink);
	border-color: var(--rl-ink);
	color: var(--rl-paper);
}


/* ==================================================
   SCROLL HEADER
================================================== */

.scroll-header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 1100;
	pointer-events: none;
}

.scroll-header.is-visible {
	pointer-events: auto;
}

.scroll-header__inner {
	display: flex;
	justify-content: flex-end;
	align-items: center;
}

.scroll-header__menu,
.scroll-header__contact {
	clip-path: inset(100% 0 0 0);
	transform: translateY(12px);
	will-change: clip-path, transform;
	transition:
		clip-path .9s cubic-bezier(.16,1,.3,1),
		transform .9s cubic-bezier(.16,1,.3,1),
		background-color .45s cubic-bezier(.16,1,.3,1),
		color .45s cubic-bezier(.16,1,.3,1),
		border-color .45s cubic-bezier(.16,1,.3,1);
}

.scroll-header__menu {
	transition-delay: 0s;
}

.scroll-header__contact {
	transition-delay: .12s;
}

.scroll-header.is-visible .scroll-header__menu,
.scroll-header.is-visible .scroll-header__contact {
	clip-path: inset(0);
	transform: translateY(0);
}

.scroll-header:not(.is-visible) .scroll-header__menu {
	transition-delay: .12s;
}

.scroll-header:not(.is-visible) .scroll-header__contact {
	transition-delay: 0s;
}

/* ==================================================
   MENU OVERLAY
================================================== */

.mobile-menu-overlay {
	position: fixed;
	inset: 0;
	width: 100%;
	height: 100dvh;
	z-index: 2000;
	background: var(--rl-forest);
	color: var(--rl-lime);
	clip-path: inset(0 0 100% 0);
	visibility: hidden;
	pointer-events: none;
	transition:
		clip-path .9s cubic-bezier(.76,0,.24,1),
		visibility 0s linear .9s;
	will-change: clip-path;
}

.mobile-menu-overlay.is-open {
	clip-path: inset(0 0 0 0);
	visibility: visible;
	pointer-events: auto;
	transition:
		clip-path .9s cubic-bezier(.76,0,.24,1),
		visibility 0s linear 0s;
}

.mobile-menu-overlay__inner {
	position: relative;
	width: 100%;
	height: 100%;
	min-height: 100dvh;
}

.mobile-menu-overlay__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
}

.mobile-menu-overlay__branding {
	display: flex;
	align-items: center;
	flex: 0 0 auto;
}

.mobile-menu-overlay__branding .site-title,
.mobile-menu-overlay__branding .custom-logo-link {
	color: inherit;
	text-decoration: none;
}

.mobile-menu-overlay__branding .custom-logo {
	display: block;
	width: auto;
	height: auto;
	max-height: 2rem;
	max-width: 12rem;
}

.mobile-menu-close {
	appearance: none;
	border: 1px solid currentColor;
	border-radius: var(--rl-radius-pill);
	background: transparent;
	color: inherit;
	padding: .65rem .9rem;
	font-size: .875rem;
	font-weight: 500;
	letter-spacing: .025em;
	line-height: 1;
	text-transform: uppercase;
	cursor: pointer;
	transition:
		background-color .4s cubic-bezier(.16,1,.3,1),
		color .4s cubic-bezier(.16,1,.3,1);
}

.mobile-menu-close:hover,
.mobile-menu-close:focus-visible {
	background: var(--rl-lime);
	color: var(--rl-forest);
}

.mobile-menu-overlay__inner {
	position: relative;
	width: 100%;
	height: 100%;
	min-height: 100dvh;
}

.mobile-menu-overlay__inner > .container-fluid {
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: 100dvh;
}

.mobile-menu-overlay__content {
	display: flex;
	flex: 1;
	flex-direction: column;
}

.mobile-navigation {
	display: block;
	min-height: 0;
}

.mobile-menu-overlay__contacts {
	margin-top: auto;
	padding-top: 2rem;
	line-height: 1.3;
}

.mobile-nav-menu {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: .15em;
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (orientation: landscape) and (max-height: 600px) {

	.mobile-nav-menu {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 2rem;
		row-gap: 0;
	}
	.mobile-nav-menu > li {
		width: 100%;
	}

}

.mobile-nav-menu li {
	margin: 0;
	padding: 0;
}

.mobile-nav-menu a {
	position: relative;
	display: inline-block;
	color: inherit;
	font-size: clamp(2.5rem, 6vw, 6rem);
	font-weight: 300;
	line-height: .92;
	letter-spacing: -.035em;
	text-decoration: none;
	text-transform: uppercase;
}

.mobile-nav-menu a::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -.06em;
	width: 100%;
	height: 1px;
	background: currentColor;

	clip-path: inset(0 100% 0 0);

	transition:
		clip-path .45s cubic-bezier(.16,1,.3,1);
}

.mobile-nav-menu a:hover::after,
.mobile-nav-menu a:focus-visible::after {
	clip-path: inset(0 0 0 0);
}

body.mobile-menu-open {
	overflow: hidden;
}


/* ==================================================
   SCROLL MENU BUTTON
================================================== */

.scroll-header__menu {
	appearance: none;
	border: 1px solid var(--rl-ink);
	border-radius: var(--rl-radius-pill);
	background: var(--rl-paper);
	color: var(--rl-ink);
	font-weight: 500;
	letter-spacing: .025em;
	line-height: 1;
	padding: .65rem .9rem;
	text-transform: uppercase;
	cursor: pointer;
}

.scroll-header__menu:hover,
.scroll-header__menu:focus-visible {
	background: var(--rl-ink);
	border-color: var(--rl-ink);
	color: var(--rl-paper);
}


/* ==================================================
   SCROLL CONTACT BUTTON
================================================== */

.language-switcher {
	align-items: center;
	background: var(--rl-ink);
	border: 1px solid var(--rl-ink);
	border-radius: var(--rl-radius-pill);
	display: inline-flex;
	font-size: clamp(0.875rem, 0.800rem + 0vw, 0.875rem);
	font-weight: 500;
	letter-spacing: 0.025em;
	line-height: 1;
	padding: 0.65rem 0.9rem;
	text-decoration: none;
}

.language-switcher a{
	text-decoration: none;
}

.language-switcher,
.scroll-header__contact,
.scroll-header__contact:link,
.scroll-header__contact:visited {
	background: var(--rl-ink);
	border-color: var(--rl-ink);
	color: var(--rl-paper);
}

.scroll-header__contact:hover,
.scroll-header__contact:focus-visible,
.scroll-header__contact:active {
	background: var(--rl-paper);
	border-color: var(--rl-ink);
	color: var(--rl-ink);
}


/* ==================================================
   MOBILE
================================================== */

@media (max-width: 991.98px) {
	.site-header--initial .main-navigation {
		display: none !important;
	}

	.site-header--initial .header-actions {
		justify-content: flex-end;
	}

	.scroll-header .container-fluid {
		padding-left: 1rem;
		padding-right: 1rem;
	}
}


/* ==================================================
   REDUCED MOTION
================================================== */

@media (prefers-reduced-motion: reduce) {
	.main-navigation a::after,
	.initial-mobile-menu::after,
	.scroll-header__menu,
	.scroll-header__contact {
		transition: none;
	}
}

/* ==================================================
   HOME
================================================== */

.home-page {
	position: relative;
}

.home-hero {
	position: fixed !important;
	top: 0;
	left: 0;
	width: 100%;
	height: 100svh;
	z-index: 0;
	overflow: hidden;
}

#studio {
	position: relative;
	z-index: 2;
	margin-top: 100svh;
}

#progetti,
#processo,
#servizi {
	position: relative;
	z-index: 2;
}

/* ==================================================
   HERO
================================================== */

.home-hero {
	position: relative;
	width: 100%;
	height: 100svh;
	overflow: hidden;
	background: #101a12;
}


.home-hero-swiper {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
	z-index: 0;
}

.home-hero-swiper .swiper-wrapper {
	width: 100%;
	height: 100%;
}

.home-hero-swiper .swiper-slide {
	width: 100%;
	height: 100%;
	overflow: hidden;
}

.home-hero-slide-link {
	display: block;
	width: 100%;
	height: 100%;
	color: inherit;
	text-decoration: none;
}

.home-hero-slide-link:visited,
.home-hero-slide-link:hover,
.home-hero-slide-link:focus,
.home-hero-slide-link:active {
	color: inherit;
	text-decoration: none;
}

.home-hero-media {
	position: relative;
	width: 100%;
	height: 100%;
	overflow: hidden;

	/* slide non attive chiuse dall'alto */
	clip-path: inset(0 0 100% 0);
	will-change: clip-path;
}

.home-hero-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;

	transform: scale(1.025);
	transition: transform 6s cubic-bezier(.16, 1, .3, 1);
}


/* slide precedente resta visibile sotto */

.home-hero-swiper .swiper-slide-prev .home-hero-media {
	clip-path: inset(0 0 0 0);
}


/* nuova slide si apre dall'alto verso il basso */

.home-hero-swiper.is-ready .swiper-slide-active .home-hero-media {
	clip-path: inset(0 0 0 0);

	transition:
		clip-path 1.5s cubic-bezier(.76, 0, .24, 1);
}


/* leggero movimento immagine */

.home-hero-swiper .swiper-slide-active .home-hero-media img {
	transform: scale(1);
}

.home-hero-overlay {
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;
	background: rgba(8,8,7,var(--hero-overlay,.35));
	will-change: background-color;
}
.home .hero-content {
	position: relative;
	z-index: 3;
	height: 100%;
	min-height: inherit;
	padding-top: var(--header-height,80px) !important;
	color: var(--rl-paper);
	pointer-events: none;
}
.hero-bottom {
	width: 100%;
	margin-top: auto;
	color: var(--rl-paper);
}
.hero-scroll-label {
	display: block;
	text-transform: uppercase;
}

/* ==================================================
   REDUCED MOTION
================================================== */

@media (prefers-reduced-motion: reduce) {

	.home-hero-media {
		clip-path: inset(0) !important;
		transition: none !important;
	}

	.home-hero-media img {
		transform: none !important;
		transition: none !important;
	}

}


/* ==================================================
   OVERLAY
================================================== */

.home-hero-overlay {
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;
	background: rgba(8,8,7,var(--hero-overlay, .35));
	will-change: background-color;
}


/* ==================================================
   CONTENUTO HERO
================================================== */

.hero-content {
	position: relative;
	z-index: 3;
	height: 100%;
	min-height: inherit;
	padding-top: var(--header-height, 80px) !important;
	transition: padding-top .6s cubic-bezier(.16,1,.3,1);
}

.home .hero-content {
	color: var(--rl-paper);
}


.hero-title {
	position: relative;
	z-index: 3;
	max-width: 12em;
}


/* ==================================================
   INFO
================================================== */

.hero-project-counter {
	display: flex;
	align-items: center;
	gap: .35rem;
}

.hero-project-info {
	width: 100%;
	overflow: hidden;
	color: var(--rl-paper);
}

.hero-project-info__row {
	width: 100%;
}

.hero-project-info__item {
	padding-top: .75rem;
	color: var(--rl-paper);
}

.hero-project-info__link {
	display: flex;
	justify-content: flex-end;
}

.hero-project-counter {
	display: flex;
	align-items: center;
	gap: .35rem;
	color: var(--rl-paper);
}

.hero-project-link,
.hero-project-link:visited,
.hero-project-link:hover,
.hero-project-link:focus,
.hero-project-link:active {
	display: inline-flex;
	align-items: center;
	gap: .45em;
	color: var(--rl-paper);
	text-decoration: none;
}

.hero-project-link__text {
	position: relative;
	display: inline-block;
	padding-bottom: .18em;
}

.hero-project-link__text::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 1px;
	background: currentColor;
	clip-path: inset(0 100% 0 0);
	transition: clip-path .4s cubic-bezier(.16,1,.3,1);
	pointer-events: none;
}

.hero-project-link:hover .hero-project-link__text::after,
.hero-project-link:focus-visible .hero-project-link__text::after {
	clip-path: inset(0 0 0 0);
}

.hero-project-link__arrow {
	display: inline-block;
	transition: transform .45s cubic-bezier(.16,1,.3,1);
}

.hero-project-link:hover .hero-project-link__arrow,
.hero-project-link:focus-visible .hero-project-link__arrow {
	transform: translate(.22em,-.22em);
}

@media (max-width: 991.98px) {
	.hero-project-info__item {
		padding-bottom: .75rem;
	}

	.hero-project-info__item:nth-child(-n+2) {
		border-bottom: 1px solid rgba(255,255,255,.35);
	}

	.hero-project-info__item:nth-child(even) {
		text-align: right;
	}

	.hero-project-info__link {
		justify-content: flex-end;
	}
}

.hero-project-animate {
	will-change: clip-path, transform;
}

.hero-project-animate.is-leaving {
	animation: heroTextOut .65s cubic-bezier(.76,0,.24,1) both;
}

.hero-project-animate.is-entering {
	animation: heroTextIn .9s cubic-bezier(.16,1,.3,1) both;
}

@keyframes heroTextOut {
	0% {
		clip-path: inset(0 0 0 0);
		transform: translateY(0);
	}
	100% {
		clip-path: inset(100% 0 0 0);
		transform: translateY(-6px);
	}
}

@keyframes heroTextIn {
	0% {
		clip-path: inset(0 0 100% 0);
		transform: translateY(6px);
	}
	100% {
		clip-path: inset(0 0 0 0);
		transform: translateY(0);
	}
}

.hero-project-info__item {
	overflow: hidden;
}

/* ==================================================
   PROGETTI
================================================== */

.selected-projects {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .75rem;
	align-items: start;
}

.selected-projects__column {
	display: flex;
	flex-direction: column;
	gap: clamp(40px, 5vw, 80px);
	min-width: 0;
}

.selected-projects__column--right {
	padding-top: clamp(25px, 4vw, 60px);
}

.selected-project {
	width: 100%;
}

.selected-project__link {
	display: block;
	width: 100%;
	color: inherit;
	text-decoration: none;
}

.selected-project__media {
	width: 100%;
	overflow: hidden;
}
.selected-project__media--landscape {
	aspect-ratio: 16 / 10;
}
.selected-project__media--portrait {
	aspect-ratio: 4 / 5;
}
.selected-project__media--square {
	aspect-ratio: 1 / 1;
}
.selected-project__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.selected-projects__column--left .selected-project:nth-child(3n + 1) {
	width: 100%;
}
.selected-projects__column--left .selected-project:nth-child(3n + 2) {
	width: 82%;
}
.selected-projects__column--left .selected-project:nth-child(3n) {
	width: 90%;
}
.selected-projects__column--right .selected-project:nth-child(3n + 1) {
	width: 88%;
}
.selected-projects__column--right .selected-project:nth-child(3n + 2) {
	width: 100%;
}
.selected-projects__column--right .selected-project:nth-child(3n) {
	width: 80%;
}

/* alternanza allineamenti */

.selected-projects__column--left .selected-project {
	align-self: flex-end;
}

.selected-projects__column--right .selected-project {
	align-self: flex-start;
}

.selected-projects__column--right .selected-project:nth-child(odd) {
	align-self: flex-end;
}

.selected-projects__column--right .selected-project:nth-child(even) {
	align-self: flex-start;
}

/* lead */

.selected-projects__lead {
	width: 100%;
	max-width: 40rem;
	padding: clamp(20px, 3vw, 50px) 0;
}

.selected-projects__lead p {
	margin: 0;
}

/* tablet */

@media (max-width: 991.98px) {
	.selected-projects {
		gap: 30px;
	}

	.selected-projects__column {
		gap: 70px;
	}

	.selected-projects__column--right {
		padding-top: 30px;
	}

	.selected-project {
		width: 100% !important;
	}

	.selected-projects__lead {
		width: 100%;
	}
}

/* mobile */

@media (max-width: 767.98px) {
	.selected-projects {
		display: block;
		gap: 1rem;
	}

	.selected-projects__column {
		display: contents;
	}

	.selected-projects__column--right {
		padding-top: 0;
	}

	.selected-project,
	.selected-projects__lead {
		width: 100% !important;
		margin-bottom: 56px;
	}

	.selected-projects__column--left .selected-project,
	.selected-projects__column--right .selected-project {
		align-self: auto;
	}
}

/* ==================================================
   PROCESS ACCORDION
================================================== */

.process-accordion {
	--bs-accordion-bg: transparent;
	--bs-accordion-border-width: 0;
	--bs-accordion-border-radius: 0;
	--bs-accordion-inner-border-radius: 0;
	--bs-accordion-btn-bg: transparent;
	--bs-accordion-active-bg: transparent;
	--bs-accordion-active-color: inherit;
	--bs-accordion-btn-focus-box-shadow: none;

	border-top: 1px solid currentColor;
}

.process-accordion__item {
	background: transparent;
	border: 0;
	border-bottom: 1px solid currentColor;
	border-radius: 0 !important;
	color: inherit;
}

.process-accordion__heading {
	margin: 0;
}

.process-accordion__button,
.process-accordion__button:not(.collapsed) {
	display: grid;
	grid-template-columns: 5.35rem minmax(0, 1fr);
	align-items: baseline;
	width: 100%;
	padding: .65rem 0;
	background: transparent;
	border: 0;
	border-radius: 0 !important;
	box-shadow: none;
	color: inherit;
	font: inherit;
	text-align: left;
}

/* + / − accordion */

.process-accordion__button::after {

	content: "+";
	display: block;
	grid-column: 3;
	justify-self: end;
	align-self: center;
	margin-left: 1rem;
	background: none;
	background-image: none;
	width: auto;
	height: auto;
	font: inherit;
	font-size: 1.5rem;
	font-weight: 300;
	line-height: 1;
	transform: none;

}

.process-accordion__button:not(.collapsed)::after {

	content: "−";
	background: none;
	background-image: none;
	transform: none;

}

/* Numero */

.process-accordion__number {
	font-weight: 400;
	line-height: 1;
	color: var(--rl-paper);
}

/* Titolo */

.process-accordion__title {
	font-weight: 400;
	line-height: 1.1;
	text-transform: uppercase;
}

/* Testo aperto */

.process-accordion__body {
	padding: .4rem 0 1.25rem 5.35rem;
	font-size: 1.1rem;
	line-height: 1.4;
}

.process-accordion__body p:last-child {
	margin-bottom: 0;
}

/* Hover molto leggero */

@media (hover: hover) and (pointer: fine) {
	.process-accordion__button {
		transition: padding-left .3s cubic-bezier(.16,1,.3,1);
	}

	.process-accordion__button:hover {
		padding-left: .35rem;
	}
}

/* Mobile */

@media (max-width: 767.98px) {
	.process-accordion__button,
	.process-accordion__button:not(.collapsed) {
		grid-template-columns: 2.75rem minmax(0, 1fr);
		padding: .75rem 0;
	}

	.process-accordion__body {
		padding: .4rem 0 1.25rem 2.75rem;
	}
}

/* ==================================================
   SERVIZI
================================================== */

.services-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	grid-template-rows: repeat(3, auto);
	column-gap: 1.5rem;
	row-gap: 4.5rem;
	align-items: start;
}

.service-item {
	min-width: 0;
}

/* Riga 1: 0 0 X */
.service-item:nth-child(1) {
	grid-column: 1;
	grid-row: 1;
}

.service-item:nth-child(2) {
	grid-column: 2;
	grid-row: 1;
}

/* Riga 2: X 0 0 */
.service-item:nth-child(3) {
	grid-column: 2;
	grid-row: 2;
}

.service-item:nth-child(4) {
	grid-column: 3;
	grid-row: 2;
}

/* Riga 3: 0 0 X */
.service-item:nth-child(5) {
	grid-column: 1;
	grid-row: 3;
}

.service-item:nth-child(6) {
	grid-column: 2;
	grid-row: 3;
}

.service-item__heading {
	display: flex;
	align-items: baseline;
	gap: .45rem;
	padding-bottom: .45rem;
	border-bottom: 1px solid rgba(44,44,39,.18);
}

.service-item__number {
	flex: 0 0 auto;
	color: rgba(44,44,39,.55);
}

.service-item__title {
	font-weight: 400;
	line-height: 1.05;
}

.service-item__text {
	padding-top: .7rem;
	max-width: 95%;
}

.service-item__text p {
	margin: 0;
}

/* Tablet */

@media (max-width: 991.98px) {
	.services-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: none;
		column-gap: 28px;
		row-gap: 55px;
	}

	.service-item {
		grid-column: auto !important;
		grid-row: auto !important;
	}
}

/* Mobile */

@media (max-width: 767.98px) {
	.services-grid {
		grid-template-columns: 1fr;
		row-gap: 40px;
	}

	.service-item__text {
		max-width: 100%;
	}
}

/* ==================================================
   ACCESSIBILITÀ
================================================== */

@media (prefers-reduced-motion: reduce) {

	.home-hero-media,
	.home-hero-media img {
		animation: none !important;
		transition: none !important;
	}

	.home-hero-media {
		clip-path: inset(0) !important;
	}

}

/* ==================================================
   FOOTER
================================================== */

.site-footer a,
.site-footer a:visited,
.site-footer a:hover,
.site-footer a:focus,
.site-footer a:active {
	color: inherit;
	text-decoration: none;
}

.site-footer__content {
	border-top: 1px solid rgba(57,56,47,.18);
}

.site-footer__label {
	margin-bottom: 1.2rem;
	text-transform: uppercase;
}

.site-footer__menu {
	margin: 0;
	padding: 0;
}

.site-footer__menu li {
	margin: 0;
	padding: 0;
}

.site-footer__menu a {
	display: inline-block;
	text-transform: uppercase;
	line-height: 1.05;
}

.site-footer__info {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.5rem;
	line-height: 1.25;
}

.site-footer__info-item {
	min-width: 0;
}

.site-footer__bottom a {
	text-transform: uppercase;
}

.site-footer__instagram {
	display: inline-block;
	text-transform: uppercase;
}

/* Hover */

@media (hover: hover) and (pointer: fine) {
	.site-footer a {
		position: relative;
		display: inline-block;
	}

	.site-footer a::after {
		content: "";
		position: absolute;
		left: 0;
		bottom: -0.1px;
		width: 100%;
		height: 1px;
		background: currentColor;
		clip-path: inset(0 100% 0 0);
		transition: clip-path .4s cubic-bezier(.16,1,.3,1);
		pointer-events: none;
	}

	.site-footer a:hover::after,
	.site-footer a:focus-visible::after {
		clip-path: inset(0 0 0 0);
	}
}

/* Tablet */

@media (max-width: 991.98px) {
	.site-footer__claim span {
		text-align: left;
	}

	.site-footer__bottom {
		margin-top: 70px;
	}
}

/* Mobile */

@media (max-width: 767.98px) {
	.site-footer__claim .type-display {
		font-size: clamp(2.5rem, 12vw, 5rem);
	}

	.site-footer__content {
		padding-top: 24px;
	}

	.site-footer__bottom {
		margin-top: 55px;
		row-gap: 30px;
	}
	.site-footer__info {
		grid-template-columns: 1fr;
		gap: 2rem;
	}
}

@media (max-width: 767.98px) and (orientation: landscape) {
	.site-footer__info {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.5rem;
	}
}

/* ==================================================
   ARCHIVIO PROGETTI
================================================== */

.projects-archive {
	position: relative;
	background: var(--rl-paper);
	color: var(--rl-ink);
}


/* ==================================================
   LAYOUT DESKTOP — COL 4 / COL 8
================================================== */

.projects-archive__layout {
	position: relative;

	display: grid;
	grid-template-columns:
		33.333333%
		66.666667%;

	align-items: stretch;

	width: 100%;
}


/* ==================================================
   SIDEBAR — COL 4
================================================== */

.projects-archive__sidebar {
	position: relative;
	z-index: 1;
	min-width: 0;
	overflow: visible;
}

.projects-archive__sticky {
	 position: sticky;
	 top: 0;
	 display: flex;
	 flex-direction: column;
	 width: 100%;
	 height: 100vh;
	 height: 100dvh;
	 padding-left: 1.5rem;
	 padding-right: 1.5rem;
	 padding-bottom: 2rem;
	 overflow: visible;
 }


/* ==================================================
   TITOLO PROGETTI
================================================== */

.projects-archive__hero {
	position: relative;
	z-index: 0;
	width: 100%;
	pointer-events: none;
	overflow: visible;
}

.projects-archive__hero .hero-content {
	height: auto;
	min-height: 0;
	width: max-content;
	max-width: none;
	overflow: visible;

	padding-top: var(--header-height, 80px) !important;
	padding-bottom: 0;

	transition:
		padding-top .6s cubic-bezier(.16,1,.3,1);
}

.projects-archive__hero .type-display {
	white-space: nowrap;
}


/* ==================================================
   INDICE PROGETTI
================================================== */

.projects-index {
	position: relative;

	width: 100%;

	margin-top: auto;
}

.projects-index__list {
	display: flex;
	flex-direction: column;

	width: 100%;
}


/* ==================================================
   SINGOLA VOCE INDICE
================================================== */

.projects-index__item,
.projects-index__item:link,
.projects-index__item:visited {
	position: relative;
	display: grid;
	grid-template-columns:
		minmax(0, 1.5fr)
		minmax(0, 1fr)
		auto;
	// gap: .6rem;
	width: 100%;
	padding: 0.35rem 0;
	color: var(--rl-muted);
	text-decoration: none;
	line-height: 1.05;
	border-bottom: 1px solid rgba(44,44,39,.18);
	transition:
		color .4s cubic-bezier(.16,1,.3,1);
}


/* Hover + progetto corrispondente allo scroll */

.projects-index__item:hover,
.projects-index__item:focus-visible,
.projects-index__item.is-active,
.projects-index__item.is-active:link,
.projects-index__item.is-active:visited {
	color: var(--rl-ink);
}


/* ==================================================
   UNDERLINE INDICE
================================================== */

.projects-index__item::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 100%;
	height: 1px;
	background: currentColor;
	clip-path: inset(0 100% 0 0);
	transition:
		clip-path .4s cubic-bezier(.16,1,.3,1);
	pointer-events: none;
}

.projects-index__item:hover::after,
.projects-index__item:focus-visible::after,
.projects-index__item.is-active::after {
	clip-path: inset(0);
}


/* ==================================================
   TESTI INDICE
================================================== */

.projects-index__title,
.projects-index__type,
.projects-index__year {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.projects-index__type,
.projects-index__year {
	text-align: right;
}

.projects-index__scroll {
	margin-top: 1rem;
	color: var(--rl-ink);
	text-transform: uppercase;
}


/* ==================================================
   AREA PROGETTI — COL 8
================================================== */

.projects-archive__projects {
	position: relative;
	z-index: 3;
	min-width: 0;
	width: 100%;
	padding-top: var(--header-height, 80px);
	transition:
		padding-top .6s cubic-bezier(.16,1,.3,1);
}

.projects-archive__grid {
	position: relative;

	width: 100%;
}


/* ==================================================
   SINGOLO PROGETTO
================================================== */

.projects-archive__project {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns:
		minmax(0, 1fr)
		minmax(120px, 22%);

	column-gap: clamp(20px, 2vw, 40px);
	align-items: start;
	margin-bottom: 2rem;
	scroll-margin-top: 35vh;
}

.projects-archive__link {
	display: contents;
	color: inherit;
	text-decoration: none;
}


/* ==================================================
   IMMAGINE
================================================== */

.projects-archive__media {
	grid-column: 1;
	position: relative;
	z-index: 2;
	width: 100%;
	overflow: hidden;
	background: #000;
}

.projects-archive__image {
	display: block;
	width: 100%;
	height: auto;
}


/* ==================================================
   META PROGETTO
================================================== */

.projects-archive__meta {
	grid-column: 2;
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.25rem;
	color: var(--rl-ink);
	text-transform: uppercase;
}

.projects-archive__title {
	margin: 0;
	font: inherit;
	font-weight: 500;
	text-transform: uppercase;
}

.projects-archive__type,
.projects-archive__year {
	margin: 0;
}


/* ==================================================
   VARIAZIONI DIMENSIONE IMMAGINI
================================================== */

/* Grande */

.projects-archive__project:nth-child(3n + 1)
.projects-archive__media {
	width: 100%;
	justify-self: start;
}


/* Media */

.projects-archive__project:nth-child(3n + 2)
.projects-archive__media {
	width: 78%;
	justify-self: start;
}


/* Medio/grande, allineata a destra */

.projects-archive__project:nth-child(3n)
.projects-archive__media {
	width: 88%;
	justify-self: end;
}

/* ==================================================
   LINK FINALI
================================================== */

.projects-closing__links {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.5rem;
	margin-top: var(--rl-space-heading);
	padding-bottom: 1.5rem;
	border-bottom: 1px solid rgba(57, 56, 47, .18);
}

.projects-closing__link,
.projects-closing__link:link,
.projects-closing__link:visited {
	position: relative;
	display: inline-flex;
	align-items: baseline;
	width: fit-content;
	white-space: nowrap;
	padding-bottom: .08em;
	color: inherit;
	text-decoration: none;
}

.projects-closing__link:last-child {
	justify-self: end;
	text-align: right;
}

.projects-closing__link::before {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 2px;
	background: currentColor;
	clip-path: inset(0 100% 0 0);
	transition: clip-path .45s cubic-bezier(.16, 1, .3, 1);
	pointer-events: none;
}

.projects-closing__link:hover::before,
.projects-closing__link:focus-visible::before {
	clip-path: inset(0 0 0 0);
}

/* ==================================================
   HOVER IMMAGINI
================================================== */

@media (hover: hover) and (pointer: fine) {

	.projects-archive__link:hover
	.projects-archive__media.image-reveal.is-visible img {
		transform: scale(1.04);
		clip-path: inset(1.5%);
	}

}


/* ==================================================
   DESKTOP MEDIO
================================================== */

@media (min-width: 992px) and (max-width: 1199.98px) {

	.projects-archive__sticky {
		padding-left: 1rem;
		padding-right: 1rem;
	}

	.projects-archive__project {
		grid-template-columns:
			minmax(0, 1fr)
			minmax(110px, 24%);
	}

}


/* ==================================================
   TABLET
================================================== */

@media (max-width: 991.98px) {

	.projects-archive__layout {
		display: block;
	}

	.projects-archive__sidebar {
		display: block;
		width: 100%;
	}

	.projects-archive__sticky {
		position: relative;
		top: auto;

		display: block;

		width: 100%;
		height: auto;
		min-height: 0;

		padding-left: 1rem;
		padding-right: 1rem;
		padding-bottom: 0;
	}

	.projects-archive__hero {
		position: relative;

		width: 100%;

		pointer-events: auto;
		overflow: hidden;
	}

	.projects-archive__hero .hero-content {
		width: 100%;
		max-width: 100%;

		padding-top: var(--header-height, 80px) !important;
		padding-bottom: 60px;

		overflow: hidden;
	}

	.projects-archive__hero .type-display {
		white-space: normal;
	}

	.projects-index {
		position: relative;

		width: 100%;

		margin-top: 0;
		margin-bottom: 60px;
	}

	.projects-archive__projects {
		width: 100%;

		padding-top: 0;
	}
}


/* ==================================================
   MOBILE
================================================== */

@media (max-width: 767.98px) {

	.projects-archive__hero .hero-content {
		padding-bottom: 45px;
	}


	.projects-archive__project {
		display: block;

		margin-bottom: 65px;
	}


	.projects-archive__media {
		width: 100% !important;
	}


	.projects-archive__meta {
		display: grid;

		grid-template-columns:
			minmax(0, 1fr)
			auto;

		gap: .2rem 1rem;

		margin-top: .55rem;
	}


	.projects-archive__title {
		grid-column: 1;
	}


	.projects-archive__type {
		grid-column: 1;
	}


	.projects-archive__year {
		grid-column: 2;
		grid-row: 1;

		text-align: right;
	}

}


/* ==================================================
   SINGLE PROJECT
================================================== */

.single-project {
	position: relative;
	background: var(--rl-paper);
}

.single-progetto .site-header .btn-contact,
.single-progetto .site-header .btn-contact:link,
.single-progetto .site-header .btn-contact:visited {
	background: var(--rl-paper);
	border-color: var(--rl-paper);
	color: var(--rl-grey);
}
.single-progetto .site-header .btn-contact:hover,
.single-progetto .site-header .btn-contact:focus-visible {
	background: transparent;
	border-color: var(--rl-paper);
	color: var(--rl-paper);
}

/* ==================================================
   HERO — 200SVH
================================================== */

.single-project-hero {
	position: relative;
	height: 200svh;
	z-index: 0;
}

/* ==================================================
   BACKGROUND FIXED
================================================== */

.single-project-hero__sticky {
	top: 0;
	left: 0;
	width: 100%;
	height: 100svh;
	min-height: 700px;
	z-index: 0;
	overflow: hidden;
	background: #101a12;
}

/* ==================================================
   HERO IMAGE
================================================== */

.single-project-hero__media {
	position: fixed;
	inset: 0;
	z-index: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
}

.single-project-hero__image {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	transform: scale(1.025);
	will-change: transform;
}

/* ==================================================
   OVERLAY — STESSO COLORE DELLA HOME
================================================== */

.single-project-hero__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: rgba(8,8,7,var(--project-overlay,.35));
	will-change: background-color;
}

/* ==================================================
   HERO CONTENT — SCORRE NORMALMENTE
================================================== */

.single-project-hero__content {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
	width: 100%;
	height: 100svh;
	min-height: 700px;
	color: var(--rl-paper);
	pointer-events: none;
}

.single-project-hero__content-inner {
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
}

.single-project-hero__title {
	position: relative;
	max-width: 15em;
	margin: 0;
	padding-top: .08em;
	padding-bottom: .08em;
	line-height: .95;
	overflow: visible;
}

.single-project-hero__body {
	margin-top: auto;
	margin-bottom: 1.5rem;
}

.single-project-hero__description {
	max-width: 42rem;
}

.single-project-hero__description p {
	margin-top: 0;
	margin-bottom: 1em;
}

.single-project-hero__type {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	text-transform: uppercase;
}

.single-project-hero__label {
	opacity: .6;
}

.single-project-hero__footer {
	width: 100%;
	margin-top: 0;
	overflow: hidden;
	color: var(--rl-paper);
}

.single-project-hero__footer .row {
	width: 100%;
	margin: 0;
}

.single-project-hero__footer-item {
	width: 100%;
	padding-top: .75rem;
	padding-bottom: .25rem;
	color: var(--rl-paper);
	text-align: left;
	text-transform: uppercase;
}

.single-project-hero__footer-item:last-child {
	display: block;
	justify-content: initial;
	text-align: left;
}

/* ==================================================
   PAPER SOPRA IL BACKGROUND FIXED
================================================== */

.single-project-content {
	position: relative;
	z-index: 3;
	background-color: var(--rl-paper);
	color: var(--rl-ink);
}

/* ==================================================
   GALLERIA
================================================== */

.single-project-content__layout {
	display:grid;
	grid-template-columns:minmax(220px,3fr) minmax(0,9fr);
	gap:1rem;
	align-items:stretch;
}

.single-project-content__sidebar {
	position:relative;
	min-width:0;
	align-self:stretch;
}

.single-project-content__sidebar-inner {
	position:sticky;
	top:calc(var(--header-height) + 1rem);
	display:flex;
	flex-direction:column;
	gap:clamp(4rem,8vw,8rem);
}
.single-project-info {
	display:flex;
	flex-direction:column;
	gap:.4rem;
}
.single-project-info__row {
	display:grid;
	grid-template-columns:90px minmax(0,1fr);
	gap:1rem;
}
.single-project-nav {
	display:flex;
	flex-direction:column;
	gap:1.5rem;
}
.single-project-nav__items {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.single-project-nav__item {
	display: flex;
	flex-direction: column;
	gap: .25rem;
	min-width: 0;
	color: inherit;
	text-decoration: none;
}

.single-project-nav__item--next {
	grid-column: 2;
	align-items: flex-end;
	text-align: right;
}
.single-project-nav__title {
	line-height:1.05;
}
.single-project-nav__year {
	opacity:.6;
}
.single-project-gallery__grid {
	display:flex;
	flex-direction:column;
	gap:1rem;
}
.single-project-gallery__portrait-group {
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:1rem;
}
.single-project-gallery__item {
	margin:0;
	min-width:0;
	overflow:hidden;
}
/* LAYOUT REGULAR */
.single-project-gallery__item--landscape {
	width: 100%;
}

.single-project-gallery__item--centered {
	grid-column: 1 / -1;
	width: calc(50% - .5rem);
	justify-self: center;
}

@media (min-width: 768px) {

	.single-project-gallery__grid--editorial > .single-project-gallery__item--landscape:nth-child(4n + 1) {
		width: 100%;
	}

	.single-project-gallery__grid--editorial > .single-project-gallery__item--landscape:nth-child(4n + 2) {
		width: 88%;
		align-self: flex-start;
	}

	.single-project-gallery__grid--editorial > .single-project-gallery__item--landscape:nth-child(4n + 3) {
		width: 94%;
		align-self: flex-end;
	}

	.single-project-gallery__grid--editorial > .single-project-gallery__item--landscape:nth-child(4n) {
		width: 82%;
		align-self: center;
	}

	.single-project-gallery__grid--editorial
	.single-project-gallery__portrait-group:nth-child(3n + 1)
	.single-project-gallery__item--centered {
		justify-self: start;
		margin-left: 8%;
	}

	.single-project-gallery__grid--editorial
	.single-project-gallery__portrait-group:nth-child(3n + 2)
	.single-project-gallery__item--centered {
		justify-self: end;
		margin-right: 0;
	}

	.single-project-gallery__grid--editorial
	.single-project-gallery__portrait-group:nth-child(3n)
	.single-project-gallery__item--centered {
		justify-self: center;
	}

}

.single-project-gallery__image {
	display:block;
	width:100%;
	height:auto;
}
@media (max-width:991.98px) {
	.single-project-content__layout {
		grid-template-columns:1fr;
	}
	.single-project-content__sidebar-inner {
		position:static;
		gap:3rem;
	}
}
@media (max-width:767.98px) {
	.single-project-gallery__portrait-group {
		grid-template-columns:1fr;
	}
	.single-project-gallery__item--centered {
		grid-column:auto;
		width:100%;
		justify-self:stretch;
	}
}

.single-project-gallery__grid {
	display:flex;
	flex-direction:column;
	gap:1rem;
}
.single-project-gallery__item {
	margin:0;
	min-width:0;
	overflow:hidden;
}
.single-project-gallery__item--landscape {
	width:100%;
}
.single-project-gallery__portrait-group {
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:1rem;
}
.single-project-gallery__item--centered {
	grid-column:1 / -1;
	width:calc(50% - .5rem);
	justify-self:center;
}
.single-project-gallery__image {
	display:block;
	width:100%;
	height:auto;
}
@media (max-width:767.98px) {
	.single-project-gallery__portrait-group {
		grid-template-columns:1fr;
	}
	.single-project-gallery__item--centered {
		grid-column:auto;
		width:100%;
		justify-self:stretch;
	}
}

/* ==================================================
   ALTRI PROGETTI
================================================== */
.single-project-related {
	position: relative;
	z-index: 3;
	background: var(--rl-paper);
	color: var(--rl-ink);
}
.single-project-related__heading {
	margin: 0 0 clamp(60px,7vw,120px);
}
.single-project-related__heading-offset {
	display: inline-block;
	margin-left: clamp(70px,10vw,180px);
}
.single-project-related__grid {
	display: grid;
	grid-template-columns: repeat(2,minmax(0,1fr));
	gap: clamp(60px,18vw,310px);
	align-items: start;
}
.single-project-related__item {
	min-width: 0;
}
.single-project-related__direction {
	margin-bottom: .55rem;
}
.single-project-related__item--next .single-project-related__direction {
	text-align: right;
}
.single-project-related__link,
.single-project-related__link:link,
.single-project-related__link:visited {
	display: block;
	color: inherit;
	text-decoration: none;
	
}
.single-project-related__media {
	width: 100%;
	aspect-ratio: 1 / 1;
	overflow: hidden;
}
.single-project-related__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.single-project-related__meta {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
	margin-top: .5rem;
}

.single-project-related__direction,
.single-project-related__meta span:first-child {
	position: relative;
	display: inline-block;
	width: fit-content;
}
.single-project-related__direction::after,
.single-project-related__meta span:first-child::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -.1em;
	width: 100%;
	height: 1px;
	background: currentColor;
	clip-path: inset(0 100% 0 0);
	transition: clip-path .4s cubic-bezier(.16,1,.3,1);
	pointer-events: none;
}
.single-project-related__item:hover .single-project-related__direction::after,
.single-project-related__link:hover .single-project-related__meta span:first-child::after,
.single-project-related__link:focus-visible .single-project-related__meta span:first-child::after {
	clip-path: inset(0);
}
@media (max-width: 991.98px) {
	.single-project-related__grid {
		gap: 2rem;
	}
}
@media (max-width: 767.98px) {
	.single-project-related__heading {
		margin-bottom: 45px;
	}
	.single-project-related__heading-offset {
		margin-left: 2.5rem;
	}
	.single-project-related__grid {
		grid-template-columns: 1fr;
		gap: 60px;
	}
	.single-project-related__item--next .single-project-related__direction {
		text-align: left;
	}
}

.single-project-nav--mobile {
	display:none;
}

@media (max-width:991.98px) {
	.single-project-nav--desktop {
		display:none;
	}

	.single-project-nav--mobile {
		display:flex;
		grid-column:1 / -1;
		margin-top:3rem;
	}

	.single-project-nav--mobile .single-project-nav__items {
		display:grid;
		grid-template-columns:repeat(2,minmax(0,1fr));
		gap:1rem;
	}

	.single-project-nav--mobile .single-project-nav__item--next {
		text-align:right;
		align-items:flex-end;
	}
}

/* ==================================================
   TABLET
================================================== */

@media (max-width: 991.98px) {
	.single-project-hero {
		height: 175svh;
	}
	.single-project-hero__sticky,
	.single-project-hero__content {
		min-height: 650px;
	}
	.single-project-hero__title {
		max-width: 10em;
	}
	.single-project-hero__body {
		margin-top: auto;
		margin-bottom: 2rem;
	}
	.single-project-hero__description {
		max-width: 100%;
	}
	.single-project-gallery__grid {
		gap: 1rem;
	}
	.single-project-hero__footer .row {
	
		--bs-gutter-y: 0;
		position: relative;
	}
	.single-project-hero__footer .row::after {
		content: "";
		position: absolute;
		left: 0;
		top: 50%;
		width: 100%;
		height: 1px;
		background: rgba(255,255,255,.35);
		pointer-events: none;
	}
	.single-project-hero__footer-item {
		padding-top: .65rem;
		padding-bottom: .65rem;
	}
	.single-project-hero__footer .col-6:nth-child(even) .single-project-hero__footer-item {
		text-align: right;
	}
	.single-project-hero__footer .col-6:nth-child(odd) .single-project-hero__footer-item {
		text-align: left;
	}
}

/* ==================================================
   MOBILE
================================================== */

@media (max-width: 767.98px) {
	.single-project-hero {
		height: 160svh;
	}
	.single-project-hero__sticky,
	.single-project-hero__content {
		height: 100svh;
		min-height: 620px;
	}
	.single-project-hero__title {
		max-width: 100%;
	}
	.single-project-hero__description {
		font-size: 1rem;
	}
	.single-project-hero__body {
		margin-top: auto;
		margin-bottom: 1.5rem;
	}
	.single-project-hero__type {
		gap: .35rem;
	}
	.single-project-hero__footer {
		padding-bottom: .25rem;
	}
	.single-project-gallery {
		padding-top: 1rem;
	}
	.single-project-gallery__grid {
		display: block;
	}
	.single-project-gallery__item {
		width: 100%;
		margin-bottom: 1rem;
	}
	.single-project-related__heading {
		margin-bottom: 50px;
	}
}

/* ==================================================
   FOOTER SOPRA IL BACKGROUND FIXED
================================================== */

.single-progetto .site-footer,
.single-project + .site-footer {
	position: relative;
	z-index: 4;
	background: var(--rl-paper);
}

/* ==================================================
   STUDIO
================================================== */
.studio-page {
	position: relative;
	background: var(--rl-paper);
	color: var(--rl-ink);
}
/* ==================================================
   HERO
================================================== */
.studio-hero {
	position: relative;
	width: 100%;
}
.studio-hero__content {
	height: auto;
	min-height: 0;
	padding-bottom: clamp(80px,10vw,160px);
}
.studio-hero__row {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1.5rem;
	width: 100%;
}
.studio-hero__title {
	margin: 0;
	max-width: none;
	overflow: visible;
}
.studio-section-label {
	margin: 0;
}
.studio-section-label--intro {
	flex: 0 0 auto;
	padding-top: .2rem;
	text-align: right;
}
/* ==================================================
   INTRO — PRIMA RIGA
================================================== */
.studio-intro {
	position: relative;
	padding-bottom: var(--rl-space-section);
}
.studio-intro__top {
	display: grid;
	grid-template-columns: repeat(12,minmax(0,1fr));
	gap: 1.5rem;
	align-items: start;
}
.studio-intro__image {
	margin: 0;
	overflow: hidden;
}
.studio-intro__image--one {
	grid-column: 1 / span 6;
}
.studio-intro__lead {
	grid-column: 8 / -1;
	text-align: right;
}
.studio-intro__lead p {
	margin-top: 0;
}
.studio-intro__lead p:last-child {
	margin-bottom: 0;
}
.studio-intro__img {
	display: block;
	width: 100%;
	height: auto;
}
/* ==================================================
   INTRO — SECONDA RIGA
================================================== */
.studio-intro__bottom {
	display: grid;
	grid-template-columns: repeat(12,minmax(0,1fr));
	gap: 1.5rem;
	align-items: stretch;
	margin-top: 1.5rem;
}
.studio-intro__side-column {
	grid-column: 1 / span 3;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-width: 0;
}
.studio-intro__small,
.studio-intro__side {
	min-width: 0;
}
.studio-intro__small p,
.studio-intro__side p {
	margin-top: 0;
}
.studio-intro__small p:last-child,
.studio-intro__side p:last-child {
	margin-bottom: 0;
}
.studio-intro__image--two {
	grid-column: 4 / -1;
}
/* ==================================================
   TEAM
================================================== */
.studio-team {
	position: relative;
	background: var(--rl-forest);
	color: var(--rl-lime);
}
.studio-section-label--team {
	margin-bottom: .75rem;
}
.studio-team__heading {
	max-width: 15em;
	margin: 0 0 clamp(60px,8vw,130px);
}
/* ==================================================
   GRUPPI TEAM
================================================== */
.studio-team__group {
	display: grid;
	grid-template-columns: repeat(12,minmax(0,1fr));
	gap: 1.5rem;
	align-items: start;
}
.studio-team__group + .studio-team__group {
	margin-top: clamp(70px,9vw,140px);
}
.studio-team__group--odd .studio-team__region {
	grid-column: 1 / span 3;
}
.studio-team__group--odd .studio-team__members {
	grid-column: 4 / -1;
}
.studio-team__group--even .studio-team__members {
	grid-column: 1 / span 9;
}
.studio-team__group--even .studio-team__region {
	grid-column: 10 / -1;
	text-align: right;
}
.studio-team__region {
	margin: 0;
}
/* ==================================================
   MEMBRI TEAM
================================================== */
.studio-team__members {
	display: flex;
	flex-direction: column;
	width: 100%;
}
.studio-team__member {
	display: grid;
	grid-template-columns: minmax(90px,1fr) minmax(0,5.5fr) minmax(160px,2fr);
	gap: 1.5rem;
	align-items: start;
	padding: 2rem 0;
	border-bottom: 1px solid rgba(236,237,204,.25);
}

.studio-team__member:first-child {
	padding-top: 0;
}
.studio-team__role {
	grid-column: 1;
}

.studio-team__copy {
	grid-column: 2;
	min-width: 0;
}

.studio-team__photo {
	grid-column: 3;
	width: 100%;
	margin: 0;
	aspect-ratio: 1 / 1;
	justify-self: end;
	overflow: hidden;
}
.studio-team__name {
	margin: 0 0 .5rem;
}

.studio-team__text p {
	margin-top: 0;
}
.studio-team__text p:last-child {
	margin-bottom: 0;
}
.studio-team__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
/* ==================================================
   CHIUSURA
================================================== */
.studio-closing {
	position: relative;
	background: var(--rl-paper);
	color: var(--rl-ink);
}
.studio-closing__top {
	display: grid;
	grid-template-columns: repeat(12,minmax(0,1fr));
	gap: 1.5rem;
	align-items: stretch;
}
.studio-closing__image {
	grid-column: 1 / span 7;
	margin: 0;
}
.studio-closing__img {
	display: block;
	width: 100%;
	height: auto;
}
.studio-closing__side-column {
	grid-column: 8 / -1;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-width: 0;
}
.studio-closing__small,
.studio-closing__lead {
	min-width: 0;
}
.studio-closing__small p,
.studio-closing__lead p {
	margin-top: 0;
}
.studio-closing__small p:last-child,
.studio-closing__lead p:last-child {
	margin-bottom: 0;
}
.studio-closing__lead {
	text-align: right;
}
/* ==================================================
   TESTO FINALE
================================================== */
.studio-closing__text-2 {
	width: 33.333333%;
	margin-top: clamp(50px,6vw,90px);
}
.studio-closing__text-2 p {
	margin-top: 0;
}
.studio-closing__text-2 p:last-child {
	margin-bottom: 0;
}
/* ==================================================
   LINK FINALI
================================================== */
.studio-closing__links {
	display: grid;
	grid-template-columns: repeat(2,minmax(0,1fr));
	gap: 1.5rem;
	margin-top: var(--rl-space-heading);
	padding-bottom: 1.5rem;
	border-bottom: 1px solid rgba(57,56,47,.18);
}
.studio-closing__link,
.studio-closing__link:link,
.studio-closing__link:visited {
	position: relative;
	display: inline-flex;
	align-items: baseline;
	width: fit-content;
	white-space: nowrap;
	padding-bottom: .08em;
	color: inherit;
	text-decoration: none;
}
.studio-closing__link:last-child {
	justify-self: end;
	text-align: right;
}
.studio-closing__link::before {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 2px;
	background: currentColor;
	clip-path: inset(0 100% 0 0);
	transition: clip-path .45s cubic-bezier(.16,1,.3,1);
	pointer-events: none;
}
.studio-closing__link:hover::before,
.studio-closing__link:focus-visible::before {
	clip-path: inset(0 0 0 0);
}

/* ==================================================
   TABLET
================================================== */
@media (max-width: 991.98px) {
	.studio-hero__content {
		padding-bottom: 70px;
	}
	.studio-intro__image--one {
		grid-column: 1 / span 7;
	}
	.studio-intro__lead {
		grid-column: 8 / -1;
	}
	.studio-intro__side-column {
		grid-column: 1 / span 4;
	}
	.studio-intro__image--two {
		grid-column: 5 / -1;
	}
	.studio-team__group--odd .studio-team__region,
	.studio-team__group--even .studio-team__region {
		grid-column: 1 / -1;
		margin-bottom: 1.5rem;
		text-align: left;
	}
	.studio-team__group--odd .studio-team__members,
	.studio-team__group--even .studio-team__members {
		grid-column: 1 / -1;
	}
	.studio-team__member {
		grid-template-columns: repeat(12,minmax(0,1fr));
	}
	.studio-team__role {
		grid-column: 1 / span 2;
	}
	.studio-team__copy {
		grid-column: 3 / span 6;
	}
	.studio-team__photo {
		grid-column: 9 / -1;
	}
	.studio-closing__image {
		grid-column: 1 / span 7;
	}
	.studio-closing__side-column {
		grid-column: 8 / -1;
	}
	.studio-closing__text-2 {
		width: 41.666667%;
	}
}
/* ==================================================
   MOBILE
================================================== */
@media (max-width: 767.98px) {
	.studio-hero__content {
		padding-bottom: 45px;
	}
	.studio-hero__row {
		display: grid;
		grid-template-columns: 1fr auto;
		gap: 1rem;
	}
	.studio-section-label--intro {
		padding-top: .1rem;
	}
	.studio-intro__top,
	.studio-intro__bottom,
	.studio-closing__top {
		grid-template-columns: 1fr;
		gap: 1rem;
	}
	.studio-intro__image--one,
	.studio-intro__lead,
	.studio-intro__side-column,
	.studio-intro__image--two,
	.studio-closing__image,
	.studio-closing__side-column {
		grid-column: 1;
	}
	.studio-intro__lead {
		margin-top: 35px;
		text-align: left;
	}
	.studio-intro__bottom {
		margin-top: 55px;
	}
	.studio-intro__side-column,
	.studio-closing__side-column {
		gap: 3rem;
	}
	.studio-intro__image--two {
		margin-top: 20px;
	}
	.studio-team__heading {
		max-width: 100%;
		margin-bottom: 60px;
	}
	.studio-team__group + .studio-team__group {
		margin-top: 80px;
	}
	.studio-team__member {
		grid-template-columns: 1fr;
		gap: .75rem;
		padding: 1rem 0;
	}
	.studio-team__role,
	.studio-team__copy,
	.studio-team__photo {
		grid-column: 1;
	}
	.studio-team__photo {
		margin-top: .5rem;
	}
	.studio-closing__lead {
		text-align: left;
	}
	.studio-closing__text-2 {
		width: 100%;
		margin-top: 50px;
	}
	.studio-closing__links {
		gap: .5rem;
		margin-top: 70px;
	}
	.studio-closing__link {
		width: fit-content;
	}
	.studio-closing__link:last-child {
		justify-self: end;
	}
}
/* ==================================================
   REDUCED MOTION
================================================== */
@media (prefers-reduced-motion: reduce) {
	.studio-closing__link > span:first-child::after,
	.studio-closing__link > span:last-child {
		transition: none;
	}
}


/* ==================================================
   METODO
================================================== */
.metodo-page {
	position: relative;
	background: var(--rl-paper);
	color: var(--rl-ink);
}
/* ==================================================
   HERO
================================================== */
.metodo-hero {
	position: relative;
	padding-bottom: clamp(60px,8vw,120px);
	background: var(--rl-forest);
	color: var(--rl-lime);
}
.metodo-hero__content {
	height: auto;
	min-height: 0;
}
.metodo-hero__top {
	display: grid;
	grid-template-columns: repeat(12,minmax(0,1fr));
	gap: 1.5rem;
	align-items: start;
}
.metodo-hero__title {
	grid-column: 1 / span 5;
	margin: 0;
	max-width: none;
	min-width: 0;
	overflow: visible;
}
.metodo-hero__image {
	grid-column: 6 / -1;
	width: 100%;
	margin: 0;
	overflow: hidden;
}
.metodo-hero__img {
	display: block;
	width: 100%;
	height: auto;
}
.metodo-hero__bottom {
	display: grid;
	grid-template-columns: repeat(12,minmax(0,1fr));
	gap: 1.5rem;
	align-items: start;
	margin-top: 1.5rem;
}
.metodo-hero__intro {
	grid-column: 1 / span 9;
	width: auto;
	min-width: 0;
	margin: 0;
}
.metodo-hero__intro p {
	margin-top: 0;
}
.metodo-hero__intro p:last-child {
	margin-bottom: 0;
}
.metodo-section-label--intro {
	grid-column: 10 / -1;
	padding-top: .2rem;
	text-align: right;
}
/* ==================================================
   PROCESS INTRO
================================================== */
.metodo-process-intro {
	position: relative;
	min-height: 72svh;
	overflow: hidden;
	background: var(--rl-forest);
	color: var(--rl-lime);
}
.metodo-process-intro__media {
	position: absolute;
	inset: 0;
}
.metodo-process-intro__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.metodo-process-intro__overlay {
	position: absolute;
	inset: 0;
	background: rgba(8,8,7,.3);
}
.metodo-process-intro__content {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	min-height: 72svh;
	padding-top: 1.5rem;
	padding-bottom: 1.5rem;
}
.metodo-section-label--process {
	margin-bottom: 1rem;
}
.metodo-process-intro__title {
	max-width: 8em;
	margin: 0;
}
.metodo-process-intro__arrow {
	margin-top: auto;
}
/* ==================================================
   STEP STACK
================================================== */
.metodo-steps {
	position: relative;
	background: var(--rl-paper);
}
.metodo-steps__stack {
	position: relative;
}
/* ==================================================
   SINGOLA SCHEDA
================================================== */
.method-step {
	--method-opacity: 1;
	position: sticky;
	top: 0;
	z-index: calc(20 + var(--step-index));
	min-height: 50svh;
	padding: 1.5rem 0 2rem;
	background: var(--rl-paper);
	color: var(--rl-ink);
	border-top: 1px solid rgba(57,56,47,.18);
	opacity: 1;
}
.method-step > .container-fluid {
	opacity: var(--method-opacity);
	will-change: opacity;
}
.method-step__header {
	display: grid;
	grid-template-columns: repeat(12,minmax(0,1fr));
	gap: 1.5rem;
	align-items: start;
	margin-bottom: 1rem;
	overflow: visible;
}
.method-step__number {
	grid-column: 1 / span 2;
	margin: 0;
}
.method-step__title {
	grid-column: 3 / -1;
	margin: 0;
	padding-bottom: .08em;
	overflow: visible;
	text-transform: uppercase;
}

.method-step--even {
	background: var(--rl-grey);
	color: var(--rl-paper);
}
.method-step--even .method-step__number {
	grid-column: 11 / -1;
	text-align: right;
}
.method-step--even .method-step__title {
	grid-column: 1 / span 10;
	grid-row: 1;
}
/* ==================================================
   CORPO SCHEDA — DESKTOP
================================================== */
.method-step__body {
	display: grid;
	grid-template-columns: repeat(12,minmax(0,1fr));
	gap: 1.5rem;
	align-items: start;
}
/* DISPARI: contenuto verso destra — immagine + testo */
.method-step__media {
	grid-column: 3 / span 6;
	margin: 0;
	overflow: hidden;
}
.method-step__copy {
	grid-column: 9 / -1;
	display: block;
	min-width: 0;
}
/* PARI: testo + immagine */
.method-step--even .method-step__copy {
	grid-column: 1 / span 4;
	grid-row: 1;
}
.method-step--even .method-step__media {
	grid-column: 5 / span 6;
	grid-row: 1;
}
.method-step__img {
	display: block;
	width: 100%;
	height: auto;
}
.method-step__text {
	display: block;
	width: 100%;
	min-width: 0;
}
.method-step__text + .method-step__text {
	margin-top: 1rem;
}
.method-step__text p {
	margin-top: 0;
}
.method-step__text p:last-child {
	margin-bottom: 0;
}
/* ==================================================
   CLOSING
================================================== */
.metodo-closing {
	position: relative;
	z-index: 100;
	background: var(--rl-paper);
	color: var(--rl-ink);
}
.metodo-closing__row {
	display: grid;
	grid-template-columns: repeat(12,minmax(0,1fr));
	gap: 1.5rem;
	align-items: end;
}
.metodo-closing__text {
	grid-column: 1 / span 7;
}
.metodo-closing__cta {
	grid-column: 10 / -1;
	justify-self: end;
	margin-bottom: auto;
}
.metodo-closing__links {
	display: grid;
	grid-template-columns: repeat(2,minmax(0,1fr));
	gap: 1.5rem;
	margin-top: var(--rl-space-heading);
	padding-bottom: 1.5rem;
	border-bottom: 1px solid rgba(57,56,47,.18);
}
.metodo-closing__link,
.metodo-closing__link:link,
.metodo-closing__link:visited {
	position: relative;
	display: inline-flex;
	align-items: baseline;
	width: fit-content;
	white-space: nowrap;
	padding-bottom: .08em;
	color: inherit;
	text-decoration: none;
}
.metodo-closing__link:last-child {
	justify-self: end;
	text-align: right;
}
.metodo-closing__link::before {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: calc(100% - .7em);
	height: 2px;
	background: currentColor;
	clip-path: inset(0 100% 0 0);
	transition: clip-path .45s cubic-bezier(.16,1,.3,1);
	pointer-events: none;
}
.metodo-closing__link:hover::before,
.metodo-closing__link:focus-visible::before {
	clip-path: inset(0);
}
/* ==================================================
   TABLET
================================================== */
@media (max-width: 991.98px) {
	.metodo-hero__title {
		grid-column: 1 / span 5;
	}
	.metodo-hero__image {
		grid-column: 6 / -1;
	}
	.metodo-hero__intro {
		grid-column: 1 / span 9;
		width: auto;
	}
	.method-step {
		top: 0;
		min-height: auto;
	}
	.method-step__number {
		grid-column: 1 / span 2;
	}
	.method-step__title {
		grid-column: 3 / -1;
	}
	.method-step--even .method-step__number {
		grid-column: 11 / -1;
	}
	.method-step--even .method-step__title {
		grid-column: 1 / span 10;
		grid-row: 1;
	}
	.method-step__media {
		grid-column: 1 / span 6;
	}
	.method-step__copy {
		grid-column: 7 / span 6;
	}
	.method-step--even .method-step__copy {
		grid-column: 1 / span 6;
		grid-row: 1;
	}
	.method-step--even .method-step__media {
		grid-column: 7 / span 6;
		grid-row: 1;
	}
}
/* ==================================================
   MOBILE
================================================== */
@media (max-width: 767.98px) {
	.metodo-hero {
		padding-bottom: 60px;
	}
	.metodo-hero__top {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}
	.metodo-hero__title,
	.metodo-hero__image {
		grid-column: 1;
	}
	.metodo-hero__image {
		width: 100%;
		margin: 0;
	}
	.metodo-hero__bottom {
		grid-template-columns: 1fr;
		gap: 1rem;
		margin-top: 2rem;
	}
	.metodo-hero__intro {
		width: auto;
		order: 2;
	}
	.metodo-section-label--intro {
		padding-top: .2rem;
		text-align: right;
	}
	.metodo-process-intro,
	.metodo-process-intro__content {
		min-height: 60svh;
	}
	.method-step {
		position: relative;
		top: auto;
		min-height: 0;
		padding: 1rem 0 3rem;
		opacity: 1 !important;
	}
	.method-step__header {
		display: grid;
		grid-template-columns: auto minmax(0,1fr);
		gap: 1rem;
		align-items: start;
		margin-bottom: 1.25rem;
		overflow: visible;
	}
	.method-step__number,
	.method-step--even .method-step__number {
		grid-column: 1;
		grid-row: 1;
		margin: 0;
		text-align: left;
	}
	.method-step__title,
	.method-step--even .method-step__title {
		grid-column: 2;
		grid-row: 1;
		min-width: 0;
		margin: 0;
		padding-top: .06em;
		padding-bottom: .14em;
		line-height: 1.05;
		overflow: visible;
	}
	.method-step__body {
		display: grid;
		grid-template-columns: 1fr;
		gap: 1rem;
		align-items: start;
	}
	.method-step__media,
	.method-step__copy,
	.method-step--even .method-step__media,
	.method-step--even .method-step__copy {
		grid-column: 1;
		grid-row: auto;
		width: 100%;
		min-width: 0;
	}
	.method-step__media {
		order: 1;
	}
	.method-step__copy {
		order: 2;
		display: block;
	}
	.method-step--even .method-step__copy {
		order: 1;
	}
	.method-step--even .method-step__media {
		order: 2;
	}
	.method-step__text {
		display: block;
		width: 100%;
		min-width: 0;
	}
	.method-step__text + .method-step__text {
		margin-top: 1rem;
	}
	.metodo-closing__row {
		grid-template-columns: 1fr;
	}
	.metodo-closing__text,
	.metodo-closing__cta {
		grid-column: 1;
	}
	.metodo-closing__cta {
		justify-self: start;
		margin-top: 2rem;
	}
	.metodo-closing__links {
		gap: .5rem;
		margin-top: 70px;
	}
	.metodo-closing__link:last-child {
		justify-self: end;
	}
}
/* ==================================================
   REDUCED MOTION
================================================== */
@media (prefers-reduced-motion: reduce) {
	.method-step {
		opacity: 1 !important;
	}
}


/* ==================================================
   SERVIZI
================================================== */
.servizi-page {
	position: relative;
	background: var(--rl-grey);
	color: var(--rl-paper);
}
.servizi-page__layout {
	position: relative;
	display: grid;
	grid-template-columns: 33.333333% 66.666667%;
	align-items: stretch;
	width: 100%;
}
/* ==================================================
   SIDEBAR
================================================== */
.servizi-page__sidebar {
	position: relative;
	z-index: 1;
	min-width: 0;
	overflow: visible;
}
.servizi-page__sticky {
	position: sticky;
	top: 0;
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100vh;
	height: 100dvh;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
	padding-bottom: 2rem;
	overflow: visible;
}
/* ==================================================
   HERO
================================================== */
.servizi-page__hero {
	position: relative;
	width: 100%;
	pointer-events: none;
	overflow: visible;
}
.servizi-page__hero .hero-content {
	height: auto;
	min-height: 0;
	width: max-content;
	max-width: none;
	padding-top: var(--header-height,80px) !important;
	padding-bottom: 0;
	overflow: visible;
	transition: padding-top .6s cubic-bezier(.16,1,.3,1);
}
.servizi-page__title {
	margin: 0;
	white-space: nowrap;
	color: var(--rl-paper);
}
.servizi-page__intro {
	width: 100%;
	max-width: 24rem;
	margin-top: auto;
	color: var(--rl-paper);
}
.servizi-page__intro p {
	margin-top: 0;
}
.servizi-page__intro p:last-child {
	margin-bottom: 0;
}
/* ==================================================
   CONTENT
================================================== */
.servizi-page__content {
	position: relative;
	z-index: 2;
	min-width: 0;
	width: 100%;
	padding-top: var(--header-height,80px);
	padding-bottom: var(--rl-space-section);
	color: var(--rl-paper);
	transition: padding-top .6s cubic-bezier(.16,1,.3,1);
}
/* ==================================================
   ACCORDION
================================================== */
.servizi-accordion {
	--bs-accordion-bg: transparent;
	--bs-accordion-border-width: 0;
	--bs-accordion-border-radius: 0;
	--bs-accordion-inner-border-radius: 0;
	--bs-accordion-btn-bg: transparent;
	--bs-accordion-active-bg: transparent;
	--bs-accordion-active-color: var(--rl-paper);
	--bs-accordion-btn-focus-box-shadow: none;
	border-top: 1px solid rgba(240,237,229,.35);
}
.servizi-accordion__item {
	background: transparent;
	border: 0;
	border-bottom: 1px solid rgba(240,237,229,.35);
	border-radius: 0 !important;
	color: var(--rl-paper);
}
.servizi-accordion__heading {
	margin: 0;
}
.servizi-accordion__button,

.servizi-accordion__button:not(.collapsed) {
	display: grid;
	grid-template-columns: minmax(0,1fr) auto;
	align-items: center;
	gap: 1rem;
	width: 100%;
	padding: .9rem 0;
	background: transparent;
	border: 0;
	border-radius: 0 !important;
	box-shadow: none;
	color: var(--rl-paper);
	font: inherit;
	text-align: left;
	cursor: pointer;
}
.servizi-accordion__button::after,
.servizi-accordion__button:not(.collapsed)::after {
	display: none;
	background-image: none;
}
.servizi-accordion__title {
	font-size: clamp(1.75rem,2.6vw,3rem);
	font-weight: 400;
	letter-spacing: -.03em;
	line-height: 1;
}
.servizi-accordion__symbol {
	position: relative;
	display: block;
	width: 1rem;
	height: 1rem;
	align-self: center;
}
.servizi-accordion__symbol::before,
.servizi-accordion__symbol::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: .8rem;
	height: 1px;
	background: currentColor;
	transform: translate(-50%,-50%);
	transition:
		transform .35s cubic-bezier(.16,1,.3,1),
		opacity .35s cubic-bezier(.16,1,.3,1);
}
.servizi-accordion__symbol::after {
	transform: translate(-50%,-50%) rotate(90deg);
}
.servizi-accordion__button:not(.collapsed) .servizi-accordion__symbol::after {
	opacity: 0;
	transform: translate(-50%,-50%) rotate(0);
}
.servizi-accordion__body {
	padding: .35rem 0 1.25rem;
}
.servizi-accordion__copy {
	display: grid;
	grid-template-columns: repeat(12,minmax(0,1fr));
	gap: 3rem;
	align-items: start;
	margin-bottom: 1.25rem;
}
.servizi-accordion__lead {
	grid-column: 1 / span 5;
}
.servizi-accordion__text {
	grid-column: 6 / -1;
}
.servizi-accordion__lead p,
.servizi-accordion__text p {
	margin-top: 0;
}
.servizi-accordion__lead p:last-child,
.servizi-accordion__text p:last-child {
	margin-bottom: 0;
}
.servizi-accordion__media {
	width: 100%;
	margin: 0;
	overflow: hidden;
	background: #000;
}
.servizi-accordion__image {
	display: block;
	width: 100%;
	height: auto;
}
/* ==================================================
   ACCORDION HOVER
================================================== */
@media (hover: hover) and (pointer: fine) {
	.servizi-accordion__button {
		transition: padding-left .35s cubic-bezier(.16,1,.3,1);
	}
	.servizi-accordion__button:hover {
		padding-left: .35rem;
	}
}
/* ==================================================
   CLOSING
================================================== */
.servizi-page__closing {
	display: grid;
	grid-template-columns: repeat(12,minmax(0,1fr));
	gap: 1.5rem;
	align-items: start;
	margin-top: clamp(90px,12vw,180px);
}
.servizi-page__closing-text {
	grid-column: 1 / span 8;
	max-width: 55rem;
}
.servizi-page__closing-text p {
	margin-top: 0;
}
.servizi-page__closing-text p:last-child {
	margin-bottom: 0;
}
.servizi-page__cta {
	grid-column: 10 / -1;
	justify-self: end;
}
/* ==================================================
   LINK FINALI
================================================== */
.servizi-page__links {
	display: grid;
	grid-template-columns: repeat(2,minmax(0,1fr));
	gap: 1.5rem;
	margin-top: var(--rl-space-heading);
	padding-bottom: 1.5rem;
	border-bottom: 1px solid rgba(240,237,229,.35);
}
.servizi-page__link,
.servizi-page__link:link,
.servizi-page__link:visited {
	position: relative;
	display: inline-flex;
	align-items: baseline;
	width: fit-content;
	white-space: nowrap;
	padding-bottom: .08em;
	color: var(--rl-paper);
	text-decoration: none;
}
.servizi-page__link:last-child {
	justify-self: end;
	text-align: right;
}
.servizi-page__link::before {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: calc(100% - .7em);
	height: 2px;
	background: currentColor;
	clip-path: inset(0 100% 0 0);
	transition: clip-path .45s cubic-bezier(.16,1,.3,1);
	pointer-events: none;
}
.servizi-page__link:hover::before,
.servizi-page__link:focus-visible::before {
	clip-path: inset(0);
}
/* ==================================================
   HEADER SU SERVIZI
================================================== */
.page-template-rl-servizi .site-header {
	position: absolute;
	background: transparent;
	color: var(--rl-paper);
}
.page-template-rl-servizi .site-header a,
.page-template-rl-servizi .site-header a:link,
.page-template-rl-servizi .site-header a:visited,
.page-template-rl-servizi .site-header a:hover,
.page-template-rl-servizi .site-header a:focus,
.page-template-rl-servizi .site-header a:active {
	color: var(--rl-paper);
}
.page-template-rl-servizi .site-header .btn-contact,
.page-template-rl-servizi .site-header .btn-contact:link,
.page-template-rl-servizi .site-header .btn-contact:visited {
	background: var(--rl-paper);
	border-color: var(--rl-paper);
	color: var(--rl-grey);
}
.page-template-rl-servizi .site-header .btn-contact:hover,
.page-template-rl-servizi .site-header .btn-contact:focus-visible {
	background: transparent;
	border-color: var(--rl-paper);
	color: var(--rl-paper);
}


/* ==================================================
   TABLET
================================================== */
@media (max-width: 991.98px) {
	.servizi-page__layout {
		display: block;
	}
	.servizi-page__sidebar {
		width: 100%;
	}
	.servizi-page__sticky {
		position: relative;
		top: auto;
		display: block;
		width: 100%;
		height: auto;
		min-height: 0;
		padding-left: 1rem;
		padding-right: 1rem;
		padding-bottom: 0;
	}
	.servizi-page__hero .hero-content {
		width: 100%;
		max-width: 100%;
		padding-top: var(--header-height,80px) !important;
		padding-bottom: 50px;
		overflow: visible;
	}
	.servizi-page__title {
		white-space: normal;
	}
	.servizi-page__intro {
		max-width: 36rem;
		margin-top: 0;
		margin-bottom: 60px;
	}
	.servizi-page__content {
		padding-top: 0;
	}
	.servizi-accordion__lead {
		grid-column: 1 / span 6;
	}
	.servizi-accordion__text {
		grid-column: 7 / -1;
	}
	.servizi-page__closing-text {
		grid-column: 1 / span 9;
	}
}
/* ==================================================
   MOBILE
================================================== */
@media (max-width: 767.98px) {
	.servizi-page__hero .hero-content {
		padding-bottom: 35px;
	}
	.servizi-page__intro {
		margin-bottom: 45px;
	}
	.servizi-accordion__button,
	.servizi-accordion__button:not(.collapsed) {
		padding: .8rem 0;
	}
	.servizi-accordion__title {
		font-size: clamp(1.6rem,7vw,2.2rem);
	}
	.servizi-accordion__copy {
		grid-template-columns: 1fr;
		gap: 1rem;
	}
	.servizi-accordion__lead,
	.servizi-accordion__text {
		grid-column: 1;
	}
	.servizi-page__closing {
		grid-template-columns: 1fr;
		margin-top: 80px;
	}
	.servizi-page__closing-text,
	.servizi-page__cta {
		grid-column: 1;
	}
	.servizi-page__cta {
		justify-self: start;
		margin-top: 1.5rem;
	}
	.servizi-page__links {
		gap: .5rem;
		margin-top: 70px;
	}
	.servizi-page__link:last-child {
		justify-self: end;
	}
}
/* ==================================================
   REDUCED MOTION
================================================== */
@media (prefers-reduced-motion: reduce) {
	.servizi-accordion__button,
	.servizi-accordion__symbol::before,
	.servizi-accordion__symbol::after,
	.servizi-page__link::before {
		transition: none;
	}
}




/* ==================================================
   MEDIA
================================================== */
.media-page {
	position: relative;
	background: var(--rl-forest);
	color: var(--rl-lime);
}
.media-page__layout {
	position: relative;
	display: grid;
	grid-template-columns: 25% 75%;
	align-items: stretch;
	width: 100%;
}
/* ==================================================
   SIDEBAR
================================================== */
.media-page__sidebar {
	position: relative;
	z-index: 1;
	min-width: 0;
	overflow: visible;
}
.media-page__sticky {
	position: sticky;
	top: 0;
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100vh;
	height: 100dvh;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
	padding-bottom: 2rem;
	overflow: visible;
}
/* ==================================================
   HERO
================================================== */
.media-page__hero {
	position: relative;
	width: 100%;
	pointer-events: none;
	overflow: visible;
}
.media-page__hero .hero-content {
	height: auto;
	min-height: 0;
	width: max-content;
	max-width: none;
	padding-top: var(--header-height,80px) !important;
	padding-bottom: 0;
	overflow: visible;
	transition: padding-top .6s cubic-bezier(.16,1,.3,1);
}
.media-page__title {
	margin: 0;
	white-space: nowrap;
	color: var(--rl-lime);
}
.media-page__intro {
	width: 100%;
	max-width: 22rem;
	margin-top: auto;
	color: var(--rl-lime);
}
.media-page__intro p {
	margin-top: 0;
}
.media-page__intro p:last-child {
	margin-bottom: 0;
}
/* ==================================================
   CONTENT
================================================== */
.media-page__content {
	position: relative;
	z-index: 2;
	min-width: 0;
	width: 100%;
	padding-top: var(--header-height,80px);
	color: var(--rl-lime);
	transition: padding-top .6s cubic-bezier(.16,1,.3,1);
}
/* ==================================================
   GRID
================================================== */
.media-grid {
	display: grid;
	grid-template-columns: repeat(3,minmax(0,1fr));
	gap: clamp(50px,6vw,90px) 1.5rem;
	align-items: start;
}
.media-card {
	min-width: 0;
}
.media-card__link,
.media-card__link:link,
.media-card__link:visited {
	display: block;
	width: 100%;
	color: inherit;
	text-decoration: none;
}
.media-card__link--static {
	cursor: default;
}
.media-card__media {
	position: relative;
	width: 100%;
	margin: 0;
	overflow: hidden;
	background: #000;
}
.media-card__image {
	display: block;
	width: 100%;
	height: auto;
}
.media-card__meta {
	margin-top: .65rem;
}
.media-card__title {
	margin: 0;
	color: var(--rl-lime);
	text-transform: uppercase;
}
.media-card__date {
	margin-top: .2rem;
	color: var(--rl-lime);
}
/* ==================================================
   HOVER LINKED CARDS
================================================== */
@media (hover: hover) and (pointer: fine) {
	.media-card--linked .media-card__title {
		position: relative;
		display: inline-block;
		width: fit-content;
	}
	.media-card--linked .media-card__title::after {
		content: "";
		position: absolute;
		left: 0;
		bottom: -.08em;
		width: 100%;
		height: 1px;
		background: currentColor;
		clip-path: inset(0 100% 0 0);
		transition: clip-path .4s cubic-bezier(.16,1,.3,1);
		pointer-events: none;
	}
	.media-card--linked .media-card__link:hover .media-card__title::after,
	.media-card--linked .media-card__link:focus-visible .media-card__title::after {
		clip-path: inset(0);
	}
	.media-card--linked .media-card__link:hover .media-card__media.image-reveal.is-visible img,
	.media-card--linked .media-card__link:focus-visible .media-card__media.image-reveal.is-visible img {
		transform: scale(1.04);
		clip-path: inset(1.5%);
	}
}
/* ==================================================
   HEADER SU MEDIA
================================================== */
.page-template-rl-media .site-header {
	position: absolute;
	background: transparent;
	color: var(--rl-lime);
}
.page-template-rl-media .site-header a,
.page-template-rl-media .site-header a:link,
.page-template-rl-media .site-header a:visited,
.page-template-rl-media .site-header a:hover,
.page-template-rl-media .site-header a:focus,
.page-template-rl-media .site-header a:active {
	color: var(--rl-lime);
}
.page-template-rl-media .site-header .btn-contact,
.page-template-rl-media .site-header .btn-contact:link,
.page-template-rl-media .site-header .btn-contact:visited {
	background: var(--rl-lime);
	border-color: var(--rl-lime);
	color: var(--rl-forest);
}
.page-template-rl-media .site-header .btn-contact:hover,
.page-template-rl-media .site-header .btn-contact:focus-visible {
	background: transparent;
	border-color: var(--rl-lime);
	color: var(--rl-lime);
}
/* ==================================================
   TABLET
================================================== */
@media (max-width: 991.98px) {
	.media-page__layout {
		display: block;
	}
	.media-page__sidebar {
		width: 100%;
	}
	.media-page__sticky {
		position: relative;
		top: auto;
		display: block;
		width: 100%;
		height: auto;
		min-height: 0;
		padding-left: 1rem;
		padding-right: 1rem;
		padding-bottom: 0;
	}
	.media-page__hero .hero-content {
		width: 100%;
		max-width: 100%;
		padding-top: var(--header-height,80px) !important;
		padding-bottom: 50px;
		overflow: visible;
	}
	.media-page__title {
		white-space: normal;
	}
	.media-page__intro {
		max-width: 36rem;
		margin-top: 0;
		margin-bottom: 60px;
	}
	.media-page__content {
		padding-top: 0;
	}
	.media-grid {
		grid-template-columns: repeat(2,minmax(0,1fr));
		gap: 60px 1rem;
	}
}
/* ==================================================
   MOBILE
================================================== */
@media (max-width: 767.98px) {
	.media-page__hero .hero-content {
		padding-bottom: 35px;
	}
	.media-page__intro {
		margin-bottom: 45px;
	}
	.media-grid {
		grid-template-columns: 1fr;
		gap: 50px;
	}
}
/* ==================================================
   REDUCED MOTION
================================================== */
@media (prefers-reduced-motion: reduce) {
	.media-card--linked .media-card__title::after {
		transition: none;
	}
}

.media-page__footer {
	position: relative;
	z-index: 3;
	width: 100%;
	padding-top: var(--rl-space-section);
	background: var(--rl-forest);
	color: var(--rl-lime);
}
.media-page__links {
	display: grid;
	grid-template-columns: repeat(2,minmax(0,1fr));
	gap: 1.5rem;
	padding-bottom: 1.5rem;
	border-bottom: 1px solid rgba(236,237,204,.35);
}
.media-page__link,
.media-page__link:link,
.media-page__link:visited {
	position: relative;
	display: inline-flex;
	align-items: baseline;
	width: fit-content;
	white-space: nowrap;
	padding-bottom: .08em;
	color: var(--rl-lime);
	text-decoration: none;
}
.media-page__link:last-child {
	justify-self: end;
	text-align: right;
}
.media-page__link::before {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: calc(100% - .7em);
	height: 2px;
	background: currentColor;
	clip-path: inset(0 100% 0 0);
	transition: clip-path .45s cubic-bezier(.16,1,.3,1);
	pointer-events: none;
}
.media-page__link:hover::before,
.media-page__link:focus-visible::before {
	clip-path: inset(0);
}
@media (max-width: 767.98px) {
	.media-page__links {
		gap: .5rem;
	}
	.media-page__link:last-child {
		justify-self: end;
		text-align: right;
	}
}

/* ==================================================
   CONTATTI
================================================== */

.contacts-page {
	position: relative;
	background: var(--rl-paper);
	color: var(--rl-ink);
}


/* ==================================================
   LAYOUT
================================================== */

.contacts-page__layout {
	position: relative;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: stretch;
	width: 100%;
}


/* ==================================================
   SIDEBAR SINISTRA
================================================== */

.contacts-page__sidebar {
	position: relative;
	z-index: 1;
	min-width: 0;
}


/* ==================================================
   SIDEBAR STICKY
================================================== */

.contacts-page__sticky {
	position: sticky;
	top: 0;

	display: flex;
	flex-direction: column;

	width: 100%;
	height: 100vh;
	height: 100dvh;

	padding-right: 1.5rem;
	padding-bottom: 2rem;
	padding-left: 1.5rem;

	overflow: hidden;
}


/* ==================================================
   TITOLO
================================================== */

.contacts-page__hero {
	position: relative;
	z-index: 2;

	flex: 0 0 auto;

	width: 100%;

	pointer-events: none;
	overflow: visible;
}

.contacts-page__hero .type-display {
	margin: 0;
	padding-top: var(--header-height, 80px);
	white-space: nowrap;
}


/* ==================================================
   MAPPA
================================================== */

/*
 * Questo elemento occupa TUTTO lo spazio libero
 * compreso tra titolo e testo introduttivo.
 */
.contacts-map {
	position: relative;

	flex: 1 1 0;
	min-height: 0;

	display: flex;
	align-items: center;
	justify-content: center;

	width: 100%;
}


/*
 * La mappa vera occupa l'80% dell'altezza
 * dello spazio disponibile ed è centrata.
 */
.contacts-map__inner {
	position: relative;

	width: 100%;
	height: 80%;
	min-height: 0;

	overflow: hidden;
}

.contacts-map__inner > * {
	width: 100%;
	height: 100%;
}


/* ==================================================
   TESTO INTRODUTTIVO
================================================== */

.contacts-page__intro {
	position: relative;
	z-index: 2;

	flex: 0 0 auto;

	width: 100%;
	max-width: 32rem;

	margin: 0;

	color: var(--rl-ink);
}

.contacts-page__intro p {
	margin-top: 0;
}

.contacts-page__intro p:last-child {
	margin-bottom: 0;
}


/* ==================================================
   CONTENUTO DESTRA
================================================== */

.contacts-page__content {
	position: relative;
	z-index: 2;
	min-width: 0;
	width: 100%;
	padding: var(--header-height, 80px) 1.5rem 2rem 1.5rem;
	transition:
		padding-top .6s cubic-bezier(.16, 1, .3, 1);
}


/* ==================================================
   CONTATTI PRINCIPALI
================================================== */

.contacts-page__top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;

	width: 100%;

	gap: 2rem;
}

.contacts-page__direct-row {
	display: grid;
	grid-template-columns: 1.5rem minmax(0, 1fr);
	column-gap: 1rem;
	align-items: baseline;
}

.contacts-page__direct-label {
	display: block;
	color: var(--rl-muted);
}

.contacts-page__direct-value {
	display: block;
	min-width: 0;
}

.contacts-page__direct-row a,
.contacts-page__direct-row a:link,
.contacts-page__direct-row a:visited {
	position: relative;

	display: inline-block;

	width: fit-content;

	color: inherit;

	text-decoration: none;
}


/* ==================================================
   INSTAGRAM
================================================== */

.contacts-page__instagram,
.contacts-page__instagram:link,
.contacts-page__instagram:visited {
	position: relative;

	display: inline-block;

	flex: 0 0 auto;

	color: inherit;

	text-decoration: none;
	text-transform: uppercase;
}


/* ==================================================
   UNDERLINE LINK
================================================== */

.contacts-page__direct-row a::after,
.contacts-page__instagram::after {
	content: "";

	position: absolute;
	left: 0;
	bottom: -.1em;

	width: 100%;
	height: 1px;

	background: currentColor;

	clip-path: inset(0 100% 0 0);

	transition:
		clip-path .4s cubic-bezier(.16, 1, .3, 1);

	pointer-events: none;
}

.contacts-page__direct-row a:hover::after,
.contacts-page__direct-row a:focus-visible::after,
.contacts-page__instagram:hover::after,
.contacts-page__instagram:focus-visible::after {
	clip-path: inset(0);
}


/* ==================================================
   SEDI
================================================== */

.contacts-locations {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: stretch;
	column-gap: 1.5rem;
	row-gap: 3rem;
	width: 100%;
	margin-top: clamp(2.5rem, 5vw, 5rem);
}


/* ==================================================

   SINGOLA SEDE

================================================== */

.contacts-location {

	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-width: 0;
	height: 100%;
	gap: 3rem;

}

.contacts-location__title {

	margin: 0;
	font: inherit;
	font-size: clamp(1.5rem, 2.2vw, 2.75rem);
	font-weight: 300;
	line-height: 1;
	text-transform: uppercase;

}

.contacts-location__address {

	max-width: 20rem;
	margin-top: auto;
	color: var(--rl-ink);
	line-height: 1.25;
	text-transform: uppercase;

}


/* ==================================================
   FORM
================================================== */

.contacts-form {
	position: relative;

	width: 100%;

	margin-top: clamp(5rem, 10vw, 10rem);
}

.contacts-form__title {
	margin: 0 0 1.5rem;

	color: var(--rl-muted);

	text-transform: uppercase;
}


/* ==================================================
   GRAVITY FORMS
================================================== */

.contacts-form .gform_wrapper {
	margin: 0;
}

.contacts-form .gform_wrapper form {
	margin: 0;
}

.contacts-form .gform_wrapper .gform_fields {
	display: grid;

	grid-template-columns: repeat(2, minmax(0, 1fr));

	column-gap: 1.5rem;
	row-gap: 2rem;
}


/* ==================================================
   CAMPI
================================================== */

.contacts-form .gform_wrapper .gfield {
	min-width: 0;

	margin: 0;
	padding: 0;
}

.contacts-form .gform_wrapper .gfield--width-full {
	grid-column: 1 / -1;
}


/* ==================================================
   LABEL
================================================== */

.contacts-form .gform_wrapper .gfield_label {
	display: block;
	margin: 0 0 .45rem;
	padding: 0;
	color: var(--rl-muted);
	font-family: var(--rl-font-sans);
	font-size: .875rem;
	font-weight: 400;
	letter-spacing: .025em;
	line-height: 1.2;

	text-transform: uppercase;
}

.contacts-form .gform_wrapper .gfield_required {
	color: inherit;
}


/* ==================================================
   INPUT
================================================== */

.contacts-form .gform_wrapper input[type="text"],
.contacts-form .gform_wrapper input[type="email"],
.contacts-form .gform_wrapper input[type="tel"],
.contacts-form .gform_wrapper input[type="url"],
.contacts-form .gform_wrapper input[type="number"],
.contacts-form .gform_wrapper select,
.contacts-form .gform_wrapper textarea {
	width: 100%;

	margin: 0;
	padding: .55rem 0;

	border: 0;
	border-bottom: 1px solid rgba(57, 56, 47, .35);
	border-radius: 0;

	outline: 0;

	background: transparent;

	color: var(--rl-ink);

	font-family: var(--rl-font-sans);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.3;

	box-shadow: none;

	transition:
		border-color .35s cubic-bezier(.16, 1, .3, 1);
}

.contacts-form .gform_wrapper input[type="text"]:focus,
.contacts-form .gform_wrapper input[type="email"]:focus,
.contacts-form .gform_wrapper input[type="tel"]:focus,
.contacts-form .gform_wrapper input[type="url"]:focus,
.contacts-form .gform_wrapper input[type="number"]:focus,
.contacts-form .gform_wrapper select:focus,
.contacts-form .gform_wrapper textarea:focus {
	border-color: var(--rl-ink);

	outline: 0;
	box-shadow: none;
}

.contacts-form .gform_wrapper input::placeholder,
.contacts-form .gform_wrapper textarea::placeholder {
	color: rgba(61, 59, 48, .45);

	opacity: 1;
}


/* ==================================================
   TEXTAREA
================================================== */

.contacts-form .gform_wrapper textarea {
	display: block;

	min-height: 130px;

	padding-top: .55rem;

	resize: vertical;
}


/* ==================================================
   DESCRIZIONI / VALIDAZIONE
================================================== */

.contacts-form .gform_wrapper .gfield_description {
	margin-top: .4rem;
	padding: 0;

	font-size: .75rem;
	line-height: 1.25;
}

.contacts-form .gform_wrapper .validation_message {
	margin-top: .4rem;
	padding: 0;

	border: 0;

	background: transparent;

	color: inherit;

	font-size: .75rem;
}


/* ==================================================
   CHECKBOX / RADIO
================================================== */

.contacts-form .gform_wrapper .gfield_checkbox,
.contacts-form .gform_wrapper .gfield_radio {
	display: flex;
	flex-direction: column;

	gap: .4rem;
}

.contacts-form .gform_wrapper .gchoice {
	display: flex;
	align-items: flex-start;

	gap: .55rem;
}

.contacts-form .gform_wrapper input[type="checkbox"],
.contacts-form .gform_wrapper input[type="radio"] {
	flex: 0 0 auto;

	margin-top: .15em;

	accent-color: var(--rl-ink);
}

.contacts-form .gform_wrapper .gchoice label {
	margin: 0;

	font-size: .875rem;
	line-height: 1.2;
}


/* ==================================================
   UPLOAD
================================================== */

/* Rimuove lo stile a barra del file upload */
.contacts-form .gform_wrapper input[type="file"] {
	width: auto;
	max-width: 100%;

	margin: 0;
	padding: 0;

	border: 0;

	background: transparent;
	color: transparent;

	font-family: var(--rl-font-sans);
	font-size: 0;

	box-shadow: none;
}

/* Bottone ALLEGA */
.contacts-form .gform_wrapper input[type="file"]::file-selector-button {
	appearance: none;

	margin: 0;
	padding: .45rem .8rem;

	border: 0;
	border-radius: 999px;

	background: var(--rl-ink);
	color: var(--rl-paper);

	font-family: var(--rl-font-sans);
	font-size: .65rem;
	font-weight: 500;
	letter-spacing: .03em;
	line-height: 1;

	text-transform: uppercase;

	cursor: pointer;

	transition:
		background-color .3s ease,
		color .3s ease;
}

.contacts-form .gform_wrapper input[type="file"]:hover::file-selector-button {
	background: transparent;
	color: var(--rl-ink);

	box-shadow: inset 0 0 0 1px var(--rl-ink);
}


/* Nasconde eventuale descrizione "Dimensione max..." */
.contacts-form .gform_wrapper .gfield--type-fileupload .gfield_description {
	display: none;
}


/* ==================================================
   CONSENSO
================================================== */

.contacts-form .gform_wrapper .gfield--type-consent {
	margin-top: 0;
}

.contacts-form .gform_wrapper .gfield--type-consent .gfield_label {
	display: none;
}

.contacts-form .gform_wrapper .ginput_container_consent {
	display: flex;
	align-items: flex-start;
	gap: .6rem;
}

.contacts-form .gform_wrapper .ginput_container_consent input {
	flex: 0 0 auto;

	width: 14px;
	height: 14px;

	margin: .1rem 0 0;

	accent-color: var(--rl-ink);
}

.contacts-form .gform_wrapper .ginput_container_consent label {
	margin: 0;
	font-weight: 400;
	line-height: 1.2;
	text-transform: none;
}


/* ==================================================
   FOOTER FORM
================================================== */

.contacts-form .gform_wrapper .gform_footer {
	display: flex;
	align-items: center;
	justify-content: flex-end;

	width: 100%;

	margin: 0;
	padding: 0;
}


/* ==================================================
   SUBMIT
================================================== */

.contacts-form .gform_wrapper .gform_footer input[type="submit"],
.contacts-form .gform_wrapper .gform_footer button,
.contacts-form .gform_wrapper .gform_button {
	appearance: none !important;
	width: auto !important;
	min-width: 0 !important;
	margin: 0 !important;
	margin-top: 1rem !important;
	padding: .45rem 1rem !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: var(--rl-ink) !important;
	background-color: var(--rl-ink) !important;
	color: var(--rl-paper) !important;
	font-family: var(--rl-font-sans) !important;
	font-weight: 500 !important;
	letter-spacing: .03em !important;
	line-height: 1 !important;
	text-transform: uppercase;
	box-shadow: none !important;
	cursor: pointer;
	transition:
		background-color .3s ease,
		color .3s ease !important;
}

.contacts-form .gform_wrapper .gform_footer input[type="submit"]:hover,
.contacts-form .gform_wrapper .gform_footer button:hover,
.contacts-form .gform_wrapper .gform_button:hover {
	background: transparent !important;
	color: var(--rl-ink) !important;

	box-shadow: inset 0 0 0 1px var(--rl-ink) !important;
}


/* ==================================================
   MESSAGGI GRAVITY FORMS
================================================== */

.contacts-form .gform_confirmation_wrapper {
	padding: 1.5rem 0;

	border-top: 1px solid rgba(57, 56, 47, .25);
	border-bottom: 1px solid rgba(57, 56, 47, .25);
}

/* ==================================================
   ERRORI GRAVITY FORMS
================================================== */

.contacts-form .gform_wrapper .gform_validation_errors,
.contacts-form .gform_wrapper.gravity-theme .gform_validation_errors {
	margin: 0 0 2.5rem !important;
	padding: 1.25rem 1.5rem !important;

	border: 0 !important;
	outline: 0 !important;
	border-radius: 0 !important;

	background: var(--rl-ink) !important;
	color: var(--rl-paper) !important;

	box-shadow: none !important;
}


/* Titolo */

.contacts-form .gform_wrapper .gform_validation_errors > h2,
.contacts-form .gform_wrapper.gravity-theme .gform_validation_errors > h2 {
	position: relative !important;

	margin: 0 !important;
	padding: 0 !important;

	border: 0 !important;

	color: var(--rl-paper) !important;

	font-family: var(--rl-font-sans) !important;
	font-size: .875rem !important;
	font-weight: 500 !important;
	letter-spacing: .02em !important;
	line-height: 1.3 !important;

	text-transform: uppercase;
}


/* Elimina icona rossa */

.contacts-form .gform_wrapper .gform_validation_errors > h2::before,
.contacts-form .gform_wrapper .gform_validation_errors > h2::after,
.contacts-form .gform_wrapper.gravity-theme .gform_validation_errors > h2::before,
.contacts-form .gform_wrapper.gravity-theme .gform_validation_errors > h2::after {
	display: none !important;
	content: none !important;

	width: 0 !important;
	height: 0 !important;

	margin: 0 !important;
	padding: 0 !important;

	border: 0 !important;
	background: none !important;
}


/* Lista errori */

.contacts-form .gform_wrapper .gform_validation_errors ol,
.contacts-form .gform_wrapper .gform_validation_errors ul {
	display: block !important;

	margin: 1rem 0 0 !important;
	padding: 0 0 0 1.1rem !important;

	list-style: disc !important;
}


/* Singolo errore */

.contacts-form .gform_wrapper .gform_validation_errors li {
	display: list-item !important;

	margin: 0 0 .3rem !important;
	padding: 0 !important;

	color: var(--rl-paper) !important;

	font-size: .75rem !important;
	font-weight: 400 !important;
	line-height: 1.35 !important;

	list-style: disc !important;
}

.contacts-form .gform_wrapper .gform_validation_errors li:last-child {
	margin-bottom: 0 !important;
}


/* Pallini */

.contacts-form .gform_wrapper .gform_validation_errors li::marker {
	color: var(--rl-paper) !important;
}


/* Link errori */

.contacts-form .gform_wrapper .gform_validation_errors a,
.contacts-form .gform_wrapper .gform_validation_errors a:link,
.contacts-form .gform_wrapper .gform_validation_errors a:visited,
.contacts-form .gform_wrapper .gform_validation_errors a:hover,
.contacts-form .gform_wrapper .gform_validation_errors a:focus {
	color: var(--rl-paper) !important;
	text-decoration: none !important;
}


/* ==================================================
   DESKTOP MEDIO
================================================== */

@media (min-width: 992px) and (max-width: 1199.98px) {

	.contacts-page__sticky {
		padding-right: 1rem;
		padding-left: 1rem;
	}

	.contacts-page__content {
		padding-right: 1rem;
		padding-left: 1rem;
	}

}


/* ==================================================
   TABLET
================================================== */

@media (max-width: 991.98px) {

	.contacts-page__layout {
		display: block;
	}

	.contacts-page__sidebar {
		width: 100%;
	}

	.contacts-page__sticky {
		position: relative;
		top: auto;
		display: block;
		width: 100%;
		height: auto;
		min-height: 0;
		padding-right: 1rem;
		padding-bottom: 0;
		padding-left: 1rem;
		overflow: visible;
	}


	/* Titolo */

	.contacts-page__hero {
		width: 100%;
		overflow: hidden;
	}

	.contacts-page__hero .type-display {
		padding-top: var(--header-height, 80px);
		white-space: normal;
	}


	/* Mappa */

	.contacts-map {
		display: block;
		width: 100%;
		margin: 3rem 0;
		min-height: 0;
	}

	.contacts-map__inner {
		width: 100%;
		height: auto;
		aspect-ratio: 4 / 3;
		overflow: hidden;
	}


	/* Intro */

	.contacts-page__intro {
		width: 100%;
		max-width: 40rem;
		margin: 0;
		padding-bottom: 5rem;
	}


	/* Contenuto destra */

	.contacts-page__content {
		width: 100%;

		padding:
			0
			1rem
			4rem;
	}


	/* Sedi */

	.contacts-locations {
		margin-top: 4rem;
	}


	/* Form */

	.contacts-form {
		margin-top: 6rem;
	}

}


/* ==================================================
   MOBILE
================================================== */

@media (max-width: 767.98px) {

	/* Mappa quadrata */

	.contacts-map {
		width: 100%;

		margin: 2rem 0;
	}

	.contacts-map__inner {
		width: 100%;
		height: auto;

		aspect-ratio: 1 / 1;
	}


	/* Intro */

	.contacts-page__intro {
		width: 100%;
		max-width: none;

		padding-bottom: 4rem;
	}


	/* Contatti */

	.contacts-page__top {
		display: grid;

		grid-template-columns:
			minmax(0, 1fr)
			auto;

		gap: 1rem;
	}

	.contacts-page__direct {
		min-width: 0;
	}

	.contacts-page__direct-row {
		grid-template-columns:
			1.25rem
			minmax(0, 1fr);
	}

	.contacts-page__direct-row a {
		overflow-wrap: anywhere;
	}


	/* Sedi */

	.contacts-locations {
		grid-template-columns: 1fr;

		row-gap: 3rem;

		margin-top: 3.5rem;
	}

	.contacts-location__title {
		margin-bottom: 1rem;
	}

	.contacts-location__address {
		max-width: none;
	}


	/* Form */

	.contacts-form {
		margin-top: 5rem;
	}

	.contacts-form__title {
		margin-bottom: 1.25rem;
	}

	.contacts-form .gform_wrapper .gform_fields {
		grid-template-columns: 1fr;

		row-gap: 1.75rem;
	}

	.contacts-form .gform_wrapper .gfield,
	.contacts-form .gform_wrapper .gfield--width-full {
		grid-column: 1;
	}

	.contacts-form .gform_wrapper .gform_footer {
		justify-content: flex-end;

		margin-top: 2rem;
	}

}


/* ==================================================
   MOBILE PICCOLO
================================================== */

@media (max-width: 479.98px) {

	.contacts-page__top {
		grid-template-columns: 1fr;
	}

	.contacts-page__instagram {
		justify-self: start;

		margin-top: 1rem;
	}

}


/* ==================================================
   REDUCED MOTION
================================================== */

@media (prefers-reduced-motion: reduce) {

	.contacts-page__direct-row a::after,
	.contacts-page__instagram::after,
	.contacts-form input,
	.contacts-form textarea,
	.contacts-form button {
		transition: none !important;
	}

}


/* ==================================================
   PRIVACY POLICY
================================================== */

.privacy-page {
	position: relative;
	background: var(--rl-paper);
	color: var(--rl-ink);
}


/* ==================================================
   LAYOUT
================================================== */

.privacy-page__layout {
	position: relative;

	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: stretch;

	width: 100%;
}


/* ==================================================
   COLONNA SINISTRA
================================================== */

.privacy-page__sidebar {
	position: relative;

	width: 100%;
	min-width: 0;
	align-self: stretch;
}

.privacy-page__sticky {
	position: sticky;
	top: 0;

	width: 100%;
	height: 100vh;
	height: 100dvh;

	padding:
		var(--header-height, 80px)
		1.5rem
		2rem;

	overflow: hidden;
}

.privacy-page__hero {
	width: 100%;
}

.privacy-page__hero .type-display {
	width: 100%;

	margin: 0;

	white-space: normal;
	overflow-wrap: normal;

	line-height: .85;
}


/* ==================================================
   COLONNA DESTRA
================================================== */

.privacy-page__content {
	position: relative;
	width: 100%;
	min-width: 0;
	padding:
		var(--header-height, 80px)
		1.5rem
		6rem;
}

.privacy-page__text {
	width: 100%;
}


/* ==================================================
   TESTO
================================================== */

.privacy-page__text > *:first-child {
	margin-top: 0;
}

.privacy-page__text p {
	margin-top: 0;
	margin-bottom: 1rem;
}


/* TITOLI SEZIONI */

.privacy-page__text h3 {
	margin:
		clamp(4rem, 7vw, 7rem)
		0
		1.5rem;

	font-family: var(--rl-font-sans);
	font-size: clamp(1.5rem, 2.2vw, 2.75rem);
	font-weight: 300;
	line-height: 1;

	text-transform: uppercase;
}

.privacy-page__text h3:first-child {
	margin-top: 0;
}


/* LISTE */

.privacy-page__text ul {
	margin: 1rem 0;
	padding-left: 1.2rem;
}

.privacy-page__text li {
	margin-bottom: .4rem;
}

.privacy-page__text li:last-child {
	margin-bottom: 0;
}


/* LINK */

.privacy-page__text a,
.privacy-page__text a:link,
.privacy-page__text a:visited {
	color: inherit;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: .15em;
}


/* ==================================================
   TABLET
================================================== */

@media (max-width: 991.98px) {

	.privacy-page__layout {
		display: block;
	}

	.privacy-page__sidebar {
		width: 100%;
	}

	.privacy-page__sticky {
		position: relative;
		top: auto;

		width: 100%;
		height: auto;
		min-height: 0;

		padding:
			var(--header-height, 80px)
			1rem
			0;

		overflow: visible;
	}

	.privacy-page__content {
		width: 100%;

		padding:
			4rem
			1rem
			5rem;
	}

}


/* ==================================================
   MOBILE
================================================== */

@media (max-width: 767.98px) {

	.privacy-page__content {
		padding-top: 3rem;
		padding-bottom: 4rem;
	}

	.privacy-page__text h2 {
		margin-top: 4rem;
	}

}


/* ==================================================
   REDUCED MOTION
================================================== */

@media (prefers-reduced-motion: reduce) {
	.single-project-hero__image {
		transform: none !important;
	}
	.single-project-hero__overlay {
		background: rgba(8,8,7,.35);
	}
}


/* ==================================================
   REDUCED MOTION
================================================== */

@media (prefers-reduced-motion: reduce) {

	.projects-index__item,
	.projects-index__item::after,
	.projects-archive__hero .hero-content,
	.projects-archive__projects {
		transition: none;
	}

}

/* ==================================================
   MOBILE
================================================== */

@media (max-width: 767.98px) {

	.home-hero {
		min-height: 100svh;
	}

}

@media (max-width: 767.98px) and (orientation: landscape) {

	.home-hero {
		min-height: 100dvh;
	}
	#studio {
		margin-top: 200dvh;
	}

}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	.link-arrow::after {
		transition: none;
	}

	.has-reveal .reveal-clip,
	.has-reveal .reveal-clip.is-visible,
	.has-reveal .reveal-line-inner,
	.has-reveal .reveal-lines.is-visible .reveal-line-inner {
		clip-path: none;
		opacity: 1;
		transform: none;
		transition: none;
	}
}

/* ==================================================
   PHOTOSWIPE
================================================== */

.pswp__bg {
	background: var(--rl-paper) !important;
}

/* Icone e frecce */
.pswp__button {
	color: var(--rl-ink) !important;
}

/* SVG delle icone */
.pswp__button svg {
	color: var(--rl-ink) !important;
	fill: var(--rl-ink) !important;
}

/* Nasconde contatore immagini */
.pswp__counter {
	display: none !important;
}

.pswp__button--arrow--prev,
.pswp__button--arrow--next {
	display: none !important;
}

.otgs-development-site-front-end {
	display: none !important;
}

@media (orientation: landscape) and (min-width: 1000px) and (max-width: 1050px) and (max-height: 800px) {
	#site-navigation > a::after {
		display: none;
	}
}