/**
 * SISt – visual refresh (front end only).
 * Loaded after style.css: keeps the original identity (Blu SISt #2C506A,
 * grigio azzurro #E0E7EC, Lato + Open Sans) with cleaner spacing and type.
 */

:root {
	--sist-primary: var(--wp--preset--color--primary, #2C506A);
	--sist-primary-dark: var(--wp--preset--color--primary-dark, #1C3547);
	--sist-light: var(--wp--preset--color--light, #E0E7EC);
	--sist-surface: var(--wp--preset--color--surface, #F3F6F8);
	--sist-text: var(--wp--preset--color--ink, #404040);
	--sist-font-body: var(--wp--preset--font-family--body, "Open Sans", system-ui, sans-serif);
	--sist-font-heading: var(--wp--preset--font-family--heading, Lato, system-ui, sans-serif);
	--sist-wide: var(--wp--style--global--wide-size, 1200px);
	--sist-gutter: clamp(1.25rem, 4vw, 2rem);
	--sist-shell: calc(var(--sist-wide) + 2 * var(--sist-gutter));
	--sist-header-h: 84px;
	--sist-radius: 6px;
	--sist-ease: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- Base typography ---------- */
html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}
body,
button,
input,
select,
textarea {
	font-family: var(--sist-font-body);
	font-stretch: 87.5%;
	color: var(--sist-text);
	font-size: 1.0625rem;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
h1, h2, h3, h4, h5, h6 {
	font-family: var(--sist-font-heading);
	font-stretch: normal;
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: -0.01em;
	color: var(--sist-primary-dark);
	text-wrap: balance;
}
h1 { font-size: clamp(2.2rem, 1.6rem + 2.4vw, 3rem); font-weight: 300; }
h2 { font-size: clamp(1.6rem, 1.3rem + 1.2vw, 2rem); }
h3 { font-size: clamp(1.2rem, 1.1rem + 0.5vw, 1.375rem); }
h4 { font-size: 1.125rem; font-weight: 700; }
p { margin-top: 0; margin-bottom: 1.25em; text-wrap: pretty; }
a { color: var(--sist-primary); text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
a:hover, a:focus { color: var(--sist-primary-dark); }
:focus-visible { outline: 2px solid var(--sist-primary); outline-offset: 3px; }
::selection { background: var(--sist-light); }
img { height: auto; }

/* ---------- Header ---------- */
.site-header {
	height: var(--sist-header-h);
	background-color: rgba(255, 255, 255, .88);
	-webkit-backdrop-filter: saturate(160%) blur(12px);
	backdrop-filter: saturate(160%) blur(12px);
	border-bottom: 1px solid rgba(44, 80, 106, .12);
	transition: height .3s var(--sist-ease), box-shadow .3s var(--sist-ease), background-color .3s var(--sist-ease);
}
.site-header .content-header {
	height: 100%;
	max-width: var(--sist-shell);
	padding: 0 var(--sist-gutter);
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.site-header .content-header .site-branding {
	display: flex;
	align-items: center;
	gap: 1rem;
	width: auto;
	max-width: none;
	flex: 0 1 auto;
	min-width: 0;
}
.site-header .content-header .site-branding a { display: block; line-height: 0; }
.site-header .content-header .site-branding img {
	padding: 0;
	margin: 0;
	max-height: calc(var(--sist-header-h) - 28px);
	width: auto;
	transition: max-height .3s var(--sist-ease);
}
.site-description {
	position: static;
	margin: 0;
	padding-left: 1rem;
	border-left: 1px solid var(--sist-light);
	font-family: var(--sist-font-heading);
	font-size: 0.8125rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--sist-primary);
	line-height: 1.3;
	max-width: 14em;
}
body.is-scrolled .site-header {
	--sist-header-h: 66px;
	background-color: rgba(255, 255, 255, .96);
	box-shadow: 0 6px 24px rgba(28, 53, 71, .08);
}

@media (max-width: 600px) {
	.site-description { display: none; }
}

/* Keep content clear of the fixed header (style.css used a fixed 90px) */
.site-content { margin-top: 84px; }

/* ---------- Navigation ---------- */
.main-navigation {
	position: static;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	height: auto;
	width: auto;
	max-width: none;
	flex: 1 1 auto;
}
.site-header .content-header { position: static; }
.menu-button {
	position: static;
	width: 44px;
	height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0;
	padding: 0;
	margin-left: auto;
	background: transparent;
	cursor: pointer;
}

@media (min-width: 861px) {
	.menu-button { display: none; }
	.main-navigation ul#primary-menu,
	.main-navigation .menu > ul {
		display: flex;
		gap: 0.25rem;
		align-items: center;
		justify-content: flex-end;
		margin: 0;
		padding: 0;
	}
	.main-navigation ul#primary-menu > li { float: none; display: block; height: auto; padding: 0; margin: 0; font-size: inherit; }
	.main-navigation li:hover > a,
	.main-navigation li.focus > a,
	.main-navigation .current-menu-item > a,
	.main-navigation .current_page_item > a,
	.main-navigation .current_page_ancestor > a,
	.main-navigation .current-menu-ancestor > a,
	.main-navigation .current_page_item,
	.main-navigation .current-menu-item { background-color: transparent; border-bottom: 0; }
	.main-navigation ul#primary-menu > li > a {
		position: relative;
		display: block;
		padding: 0.5rem 0.9rem;
		font-family: var(--sist-font-heading);
		font-size: 0.8125rem;
		font-weight: 700;
		letter-spacing: 0.12em;
		text-transform: uppercase;
		text-decoration: none;
		color: var(--sist-primary-dark);
		line-height: 1.4;
		height: auto;
	}
	.main-navigation ul#primary-menu > li > a::after {
		content: "";
		position: absolute;
		left: 0.9rem;
		right: 0.9rem;
		bottom: 0.2rem;
		height: 2px;
		background: var(--sist-primary);
		transform: scaleX(0);
		transform-origin: left;
		transition: transform .3s var(--sist-ease);
	}
	.main-navigation ul#primary-menu > li > a:hover::after,
	.main-navigation ul#primary-menu > li.current-menu-item > a::after,
	.main-navigation ul#primary-menu > li.current_page_item > a::after,
	.main-navigation ul#primary-menu > li.current-menu-ancestor > a::after {
		transform: scaleX(1);
	}
}

/* ---------- Page hero (featured image) ---------- */
.panel-image {
	position: relative;
	min-height: clamp(360px, 62vh, 640px);
	isolation: isolate;
}
.panel-image::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(180deg, rgba(28, 53, 71, .15) 0%, rgba(28, 53, 71, .55) 100%);
}
.panel-image-prop { padding: 0 var(--sist-gutter); }
.panel-image-prop h1 {
	font-family: var(--sist-font-heading);
	font-weight: 300;
	letter-spacing: 0.02em;
	text-shadow: 0 2px 20px rgba(0, 0, 0, .35);
}
.panel-image-prop h1:empty,
.panel-image-prop h3:empty { display: none; }
.panel-image-prop h3 {
	font-family: var(--sist-font-heading);
	font-weight: 300;
	text-shadow: 0 2px 16px rgba(0, 0, 0, .35);
}
.home .panel-image-prop h1 {
	font-family: var(--sist-font-heading);
	font-weight: 300;
	font-size: clamp(3rem, 2rem + 5vw, 5.5rem);
	letter-spacing: 0.18em;
	text-transform: uppercase;
}
.home .panel-image-prop h3 {
	font-size: clamp(1.25rem, 1rem + 1vw, 1.75rem);
	letter-spacing: 0.3em;
	text-transform: uppercase;
	font-style: normal;
}
.panel-image-prop h1, .panel-image-prop h2, .panel-image-prop h3 { color: #fff; }

/* ---------- Block content layout ---------- */
.page .content-area,
.home .content-area {
	max-width: none;
	padding: 0;
}
.entry-content.sist-blocks {
	margin: 0;
	padding-top: var(--wp--preset--spacing--60, 4rem);
	padding-bottom: var(--wp--preset--spacing--60, 4rem);
}
.entry-content.sist-blocks > .alignfull:first-child { margin-top: calc(-1 * var(--wp--preset--spacing--60, 4rem)); }
.entry-content.sist-blocks > .alignfull:last-child { margin-bottom: calc(-1 * var(--wp--preset--spacing--60, 4rem)); }
.entry-content.sist-blocks > .alignfull + .alignfull { margin-block-start: 0; }
.entry-content.sist-blocks > .alignfull:not(:first-child):not(.has-background) { margin-block-start: var(--wp--preset--spacing--50); }
.entry-content.sist-blocks p:last-child { margin-bottom: 0; }
.entry-content.sist-blocks > .alignfull.has-background + :not(.alignfull) { margin-block-start: var(--wp--preset--spacing--50); }
.entry-content.sist-blocks > h2:not(:first-child) { margin-block-start: var(--wp--preset--spacing--50); }
.page .hentry,
.home .hentry { margin-bottom: 0; }

.entry-footer {
	max-width: var(--sist-shell);
	margin: 0 auto;
	padding: 1rem var(--sist-gutter) 2rem;
	font-size: 0.8125rem;
}

/* ---------- Buttons & forms ---------- */
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
	border: 1.5px solid var(--sist-primary);
	border-radius: 4px;
	background: var(--sist-primary);
	color: #fff;
	font-family: var(--sist-font-heading);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	padding: 0.95em 1.9em;
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover {
	background: var(--sist-primary-dark);
	border-color: var(--sist-primary-dark);
	color: #fff;
}
button.white { background: transparent; color: var(--sist-primary); border-color: var(--sist-primary); }
button.white:hover { background: var(--sist-primary); color: #fff; }
.menu-button, .menu-button:hover { background: transparent; border: 0; }

input[type="text"], input[type="email"], input[type="url"], input[type="password"],
input[type="search"], input[type="number"], input[type="tel"], input[type="date"], textarea, select {
	border: 1px solid #c9d3da;
	border-radius: 4px;
	background: #fff;
	color: var(--sist-text);
	padding: 0.75em 1em;
	transition: border-color .2s ease, box-shadow .2s ease;
}
input:focus, textarea:focus, select:focus {
	outline: none;
	border-color: var(--sist-primary);
	box-shadow: 0 0 0 3px rgba(44, 80, 106, .15);
}
.nf-form-cont { padding: 0; }
.nf-form-cont .nf-field-label label { font-weight: 600 !important; color: var(--sist-primary-dark); }

/* ---------- Projects grid (home + Progetti) ---------- */
.sist-project {
	max-width: var(--sist-shell);
	margin: 0 auto;
	padding: var(--wp--preset--spacing--50, 3rem) calc(var(--sist-gutter) - 10px);
}
.sist-project .project-preview {
	min-height: 0 !important;
	padding: 10px;
}
.sist-project .project-preview figure {
	margin: 0;
	height: 100%;
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--sist-light);
	border-radius: var(--sist-radius);
	overflow: hidden;
	transition: box-shadow .35s var(--sist-ease), transform .35s var(--sist-ease), border-color .35s;
}
.sist-project .project-preview:hover { opacity: 1; }
.sist-project .project-preview:hover figure {
	transform: translateY(-3px);
	border-color: transparent;
	box-shadow: 0 2px 4px rgba(28, 53, 71, .06), 0 16px 40px rgba(28, 53, 71, .14);
}
.sist-project .project-preview figure > a {
	display: block;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: var(--sist-surface);
}
.sist-project .project-preview figure > a img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	margin: 0;
	transition: transform .6s var(--sist-ease);
}
.sist-project .project-preview:hover figure > a img { transform: scale(1.04); }
.sist-project .project-preview figcaption {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 0.25rem 1rem;
	padding: 1rem 1.25rem 1.25rem;
}
.sist-project .project-preview figcaption h3 {
	font-family: var(--sist-font-heading);
	float: none;
	width: auto;
	margin: 0;
	font-size: 1.0625rem;
	font-weight: 700;
	line-height: 1.35;
	text-transform: none;
}
.sist-project .project-preview figcaption h3 a { color: var(--sist-primary-dark); text-decoration: none; }
.sist-project .project-preview figcaption h3 a::after { content: ""; position: absolute; inset: 0; }
.sist-project .project-preview figure { position: relative; }
.sist-project .project-preview .year {
	float: none;
	width: auto;
	margin: 0.15rem 0 0;
	font-family: var(--sist-font-heading);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: var(--sist-primary);
}
.sist-project .project-preview hr { display: none; }
.sist-project .project-preview figcaption h4 {
	grid-column: 1 / -1;
	margin: 0;
	font-family: var(--sist-font-body);
	font-size: 0.875rem;
	font-weight: 400;
	text-transform: none;
	color: #6b7780;
}
@media (max-width: 600px) {
	.sist-project .project-preview { width: 100%; }
}

/* Filter menu on Progetti */
.filtro-tipologie {
	max-width: var(--sist-shell);
	margin: 0 auto;
	padding: calc(var(--wp--preset--spacing--50, 3rem)) var(--sist-gutter) 0;
}
ul.tipo-filtro-menu {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	justify-content: flex-end;
	max-width: none;
	margin: 0;
	padding: 0;
}
ul.tipo-filtro-menu li { display: block; padding: 0; font-size: 0.875rem; }
ul.tipo-filtro-menu li a {
	display: inline-block;
	padding: 0.45em 1.1em;
	border: 1px solid var(--sist-light);
	border-radius: 999px;
	color: var(--sist-primary-dark);
	text-decoration: none;
	transition: all .2s ease;
}
ul.tipo-filtro-menu li a:hover,
ul.tipo-filtro-menu li a.selected {
	text-decoration: none;
	background: var(--sist-primary);
	border-color: var(--sist-primary);
	color: #fff;
}

/* ---------- Single project ---------- */
.single-project .content-area .content {
	max-width: var(--sist-shell);
	padding: var(--wp--preset--spacing--50, 3rem) var(--sist-gutter);
	gap: clamp(1.5rem, 4vw, 3.5rem);
}
.single-project .project-details {
	margin: 0;
	padding: 1.5rem;
	border: 0;
	border-radius: var(--sist-radius);
	background: var(--sist-surface);
	align-self: flex-start;
	font-size: 0.9375rem;
}
@media (min-width: 769px) {
	.single-project .project-details { position: sticky; top: calc(var(--sist-header-h) + 1.5rem + var(--sist-admin-bar, 0px)); flex: 0 0 280px; width: 280px; }
	.single-project .project-content { flex: 1 1 0; min-width: 0; }
}
.single-project .project-details span { float: none; display: flex; gap: 0.6rem; align-items: baseline; padding: 0.4rem 0; border-top: 1px solid var(--sist-light); }
.single-project .project-details span:first-of-type { border-top: 0; }
.single-project .project-details .fa { color: var(--sist-primary); width: 1em; text-align: center; }
.single-project .project-content h1,
.single-project .project-content .entry-title { border-bottom: 0; line-height: 1.2; margin-top: 0; }
.single-project .entry-content { margin-top: 0; }
.single-project .entry-content img { border-radius: 4px; }
.single-project .entry-header { font-size: inherit; text-transform: none; margin-top: 0; }

/* ---------- Home widget band ---------- */
#sidebar-home {
	background-size: cover;
	background-position: center;
	background-attachment: fixed;
	padding: var(--wp--preset--spacing--60, 4rem) 0;
}
@media (hover: none) { #sidebar-home { background-attachment: scroll; } }
.sidebar_home-content { max-width: var(--sist-shell); padding: 0 var(--sist-gutter); }
.sidebar_home-content .widget {
	margin: 0 !important;
	padding: clamp(1.5rem, 4vw, 2.5rem);
	background: rgba(255, 255, 255, .92);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	border-radius: var(--sist-radius);
	box-shadow: 0 16px 48px rgba(28, 53, 71, .18);
}

/* ---------- Footer ---------- */
.widget-footer-area {
	background: var(--sist-primary-dark);
	color: rgba(255, 255, 255, .92);
}
.widget-footer-area .sidebar_footer-content {
	max-width: var(--sist-shell);
	padding: clamp(3rem, 6vw, 4.5rem) var(--sist-gutter);
	gap: clamp(2rem, 4vw, 3.5rem);
}
.widget-footer-area section.widget {
	padding: 0;
	margin: 0;
	font-size: 1rem;
	line-height: 1.75;
	text-align: left;
	letter-spacing: 0.005em;
}
.widget-footer-area section.widget,
.widget-footer-area section.widget p,
.widget-footer-area section.widget li,
.widget-footer-area section.widget span,
.widget-footer-area section.widget strong,
.widget-footer-area section.widget label {
	color: rgba(255, 255, 255, .92);
}
.widget-footer-area section.widget p { margin-bottom: 0.9em; }
.widget-footer-area section.widget h2,
.widget-footer-area section.widget h3,
.widget-footer-area section.widget h4,
.widget-footer-area section.widget .widget-title {
	margin: 0 0 1.1rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid rgba(255, 255, 255, .14);
	color: #fff;
	font-family: var(--sist-font-heading);
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	font-stretch: normal;
}
.widget-footer-area section.widget a {
	color: #fff;
	text-decoration: underline;
	text-decoration-color: rgba(255, 255, 255, .35);
	text-underline-offset: 0.2em;
	transition: text-decoration-color .2s ease;
}
.widget-footer-area section.widget a:hover { text-decoration-color: #fff; }
.widget-footer-area section.widget .fa { color: #9fc0d8; width: 1.25em; }
.widget-footer-area input:not([type="submit"]):not([type="button"]),
.widget-footer-area textarea {
	background: rgba(255, 255, 255, .08);
	border-color: rgba(255, 255, 255, .25);
	color: #fff;
}
.widget-footer-area section.widget .submit-container input,
.widget-footer-area input[type="submit"] {
	background: #fff;
	border-color: #fff;
	color: var(--sist-primary-dark);
}

.site-footer {
	background: #10212e;
	color: rgba(255, 255, 255, .78);
	padding-bottom: 0;
}
.site-footer .content-footer { border-top: 0; font-size: 0.875rem; line-height: 1.6; padding: 0; }
.site-footer .content-footer .site-info {
	max-width: var(--sist-shell);
	padding: 1.25rem var(--sist-gutter);
	align-items: center;
	gap: 1rem 2rem;
}
.site-footer .content-footer .site-info p {
	padding: 0;
	white-space: pre-line;
	color: rgba(255, 255, 255, .78);
}
.site-footer .content-footer .site-info nav { padding: 0; }
.site-footer .content-footer .site-info nav ul li { padding-left: 0; margin-left: 1.5rem; }
.site-footer .content-footer .site-info nav ul li:first-child { margin-left: 0; }
.site-footer a { color: #fff; text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .3); text-underline-offset: 0.2em; }
.site-footer a:hover { text-decoration-color: #fff; color: #fff; }
@media (max-width: 768px) {
	.widget-footer-area .sidebar_footer-content { flex-direction: column; }
	.widget-footer-area section.widget { max-width: none; }
	.site-footer .content-footer .site-info { text-align: center; }
	.site-footer .content-footer .site-info p { text-align: center; }
}

.back-to-top {
	position: fixed;
	right: 1.25rem;
	bottom: 1.25rem;
	top: auto;
	z-index: 50;
	padding: 0;
	background: none;
	opacity: 0;
	transform: translateY(12px);
	pointer-events: none;
	transition: opacity .3s ease, transform .3s ease;
}
body.is-scrolled-far .back-to-top { opacity: 1; transform: none; pointer-events: auto; }
.back-to-top a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--sist-primary);
	color: #fff;
	text-decoration: none;
	box-shadow: 0 6px 18px rgba(28, 53, 71, .25);
}
.back-to-top a:hover { background: var(--sist-primary-dark); color: #fff; }

/* ---------- Legacy shortcode markup (kept working until everything is converted) ---------- */
.full-width .content { max-width: var(--sist-shell); padding: var(--wp--preset--spacing--50, 3rem) var(--sist-gutter); margin: 0 auto; }
.hero .hero-title { max-width: 640px; }

/* ---------- Motion preferences ---------- */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* ---------- Transparent header over a full-bleed hero (Home moderna template) ---------- */
body.sist-overlay-header .site-content { margin-top: 0; }
body.sist-overlay-header .content-area { padding: 0; max-width: none; }
body.sist-overlay-header .entry-content.sist-blocks { padding-top: 0; }
body.sist-overlay-header .entry-content.sist-blocks > .alignfull:first-child { margin-top: 0; }
body.sist-overlay-header .site-header { position: fixed; top: 0; left: 0; right: 0; }
body.sist-overlay-header:not(.is-scrolled) .site-header {
	background: linear-gradient(180deg, rgba(16, 33, 46, .55), rgba(16, 33, 46, 0));
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
	border-bottom-color: transparent;
}
body.sist-overlay-header:not(.is-scrolled) .site-description { color: rgba(255, 255, 255, .9); border-left-color: rgba(255, 255, 255, .3); }
body.sist-overlay-header:not(.is-scrolled) .menu-button { color: #fff; }
@media (min-width: 861px) {
	body.sist-overlay-header:not(.is-scrolled) .main-navigation ul#primary-menu > li > a { color: #fff; }
	body.sist-overlay-header:not(.is-scrolled) .main-navigation ul#primary-menu > li > a::after { background: #fff; }
}
body.sist-overlay-header .sist-canvas .hentry { margin: 0; }
body.sist-overlay-header .entry-content.sist-blocks > .alignfull:last-child { margin-bottom: 0; }
body.sist-overlay-header .entry-content.sist-blocks { padding-bottom: 0; }
/* Sections on the canvas manage their own spacing */
.sist-canvas .entry-content.sist-blocks > * + * { margin-block-start: 0; }

/* Project details labels */
.single-project .project-details span strong { font-weight: 600; color: var(--sist-primary-dark); }
.single-project .project-summary p { margin-bottom: 1rem; }
.single-project .project-content .wp-block-gallery { margin-bottom: 1.5rem; }

/* Footer uses the normal (non-condensed) width for small text legibility */
.widget-footer-area,
.site-footer { font-stretch: 100%; }

/* Separate a dark final section from the dark footer */
.widget-footer-area { border-top: 1px solid rgba(255, 255, 255, .08); }


/* =========================================================
   Mobile menu: thin animated hamburger + full-screen overlay
   ========================================================= */

/* Hamburger: two hairlines, the lower one shorter; they even out on hover
   and cross into an X when the menu is open. */
.menu-button {
	position: relative;
	z-index: 2;
	width: 48px;
	height: 48px;
	color: var(--sist-primary-dark);
	-webkit-tap-highlight-color: transparent;
}
.menu-button .burger-icon {
	position: relative;
	display: block;
	width: 28px;
	height: 14px;
	margin: 0;
	background: none !important;
	border-radius: 0;
	transition: none;
}
.menu-button .burger-icon::before,
.menu-button .burger-icon::after {
	content: "";
	position: absolute;
	right: 0;
	height: 1.5px;
	border-radius: 1px;
	background-color: currentColor !important;
	transition: width .45s cubic-bezier(.2, .7, .2, 1), transform .45s cubic-bezier(.2, .7, .2, 1), top .45s cubic-bezier(.2, .7, .2, 1);
}
.menu-button .burger-icon::before { top: 2px; width: 28px; transform: none; }
.menu-button .burger-icon::after  { top: 11px; width: 18px; transform: none; }
.menu-button:hover .burger-icon::before,
.menu-button:focus-visible .burger-icon::before { width: 18px; }
.menu-button:hover .burger-icon::after,
.menu-button:focus-visible .burger-icon::after { width: 28px; }
.menu-button[aria-expanded="true"] .burger-icon::before { top: 6px; width: 26px; transform: rotate(45deg); }
.menu-button[aria-expanded="true"] .burger-icon::after  { top: 6px; width: 26px; transform: rotate(-45deg); }
.menu-button:focus-visible { outline: 1px solid currentColor; outline-offset: 2px; border-radius: 4px; }

@media (max-width: 860px) {
	.main-navigation,
	.main-navigation.toggled { animation: none !important; opacity: 1 !important; }

	/* Overlay */
	.main-navigation ul#primary-menu,
	.main-navigation > div > ul {
		position: fixed;
		inset: 0;
		z-index: -1;
		display: flex !important;
		flex-direction: column;
		justify-content: center;
		align-items: flex-start;
		gap: 0;
		margin: 0;
		padding: calc(var(--sist-header-h) + 1rem) calc(var(--sist-gutter) + 0.5rem) 6rem;
		overflow-y: auto;
		counter-reset: sist-menu;
		color: #fff;
		background-color: #10212e;
		background-image:
			radial-gradient(90% 60% at 100% 0%, rgba(44, 80, 106, .6) 0%, rgba(16, 33, 46, 0) 70%),
			linear-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px),
			linear-gradient(90deg, rgba(255, 255, 255, .04) 1px, transparent 1px);
		background-size: 100% 100%, 48px 48px, 48px 48px;
		clip-path: circle(0 at calc(100% - var(--sist-gutter) - 24px) calc(var(--sist-header-h) / 2));
		visibility: hidden;
		transition: clip-path .7s cubic-bezier(.7, 0, .2, 1), visibility 0s linear .7s;
	}
	.main-navigation.toggled ul#primary-menu,
	.main-navigation.toggled > div > ul {
		visibility: visible;
		clip-path: circle(150% at calc(100% - var(--sist-gutter) - 24px) calc(var(--sist-header-h) / 2));
		transition: clip-path .8s cubic-bezier(.7, 0, .2, 1), visibility 0s;
	}

	/* Items: numbered, large and light, sliding in one after another */
	.main-navigation ul#primary-menu > li {
		width: 100%;
		height: auto;
		float: none;
		padding: 0;
		border: 0;
		border-bottom: 1px solid rgba(255, 255, 255, .1);
		counter-increment: sist-menu;
		opacity: 0;
		transform: translate3d(0, 24px, 0);
		transition: opacity .35s ease, transform .35s ease;
	}
	.main-navigation ul#primary-menu > li:first-child { border-top: 1px solid rgba(255, 255, 255, .1); }
	.main-navigation.toggled ul#primary-menu > li {
		opacity: 1;
		transform: none;
		transition: opacity .6s ease, transform .7s cubic-bezier(.16, 1, .3, 1);
	}
	.main-navigation.toggled ul#primary-menu > li:nth-child(1) { transition-delay: .25s; }
	.main-navigation.toggled ul#primary-menu > li:nth-child(2) { transition-delay: .31s; }
	.main-navigation.toggled ul#primary-menu > li:nth-child(3) { transition-delay: .37s; }
	.main-navigation.toggled ul#primary-menu > li:nth-child(4) { transition-delay: .43s; }
	.main-navigation.toggled ul#primary-menu > li:nth-child(5) { transition-delay: .49s; }
	.main-navigation.toggled ul#primary-menu > li:nth-child(6) { transition-delay: .55s; }

	.main-navigation ul#primary-menu > li > a {
		display: flex;
		align-items: baseline;
		gap: 1.25rem;
		padding: 1.1rem 0;
		background: none !important;
		border: 0 !important;
		font-family: var(--sist-font-heading);
		font-size: clamp(1.75rem, 7vw, 2.5rem);
		font-weight: 300;
		font-stretch: normal;
		letter-spacing: -0.01em;
		line-height: 1.1;
		text-transform: none;
		text-decoration: none;
		color: rgba(255, 255, 255, .92);
		transition: color .3s ease, padding-left .4s cubic-bezier(.2, .7, .2, 1);
	}
	.main-navigation ul#primary-menu > li > a::before {
		content: counter(sist-menu, decimal-leading-zero);
		min-width: 1.75rem;
		font-size: 0.75rem;
		font-weight: 700;
		letter-spacing: 0.12em;
		color: #9fc0d8;
		transform: translateY(-0.6em);
	}
	.main-navigation ul#primary-menu > li > a:hover,
	.main-navigation ul#primary-menu > li > a:focus-visible { color: #fff; padding-left: 0.5rem; }
	.main-navigation ul#primary-menu > li.current-menu-item > a,
	.main-navigation ul#primary-menu > li.current_page_item > a,
	.main-navigation ul#primary-menu > li.current-menu-ancestor > a { color: #fff; }
	.main-navigation ul#primary-menu > li.current-menu-item > a::after,
	.main-navigation ul#primary-menu > li.current_page_item > a::after,
	.main-navigation ul#primary-menu > li.current-menu-ancestor > a::after {
		content: "";
		width: 6px;
		height: 6px;
		margin-left: auto;
		align-self: center;
		border-radius: 50%;
		background: #9fc0d8;
	}

	/* Small signature at the bottom of the overlay */
	.main-navigation ul#primary-menu::after {
		content: attr(data-tagline);
		position: absolute;
		left: calc(var(--sist-gutter) + 0.5rem);
		bottom: 2rem;
		font-family: var(--sist-font-heading);
		font-size: 0.75rem;
		font-weight: 700;
		letter-spacing: 0.16em;
		text-transform: uppercase;
		color: rgba(255, 255, 255, .45);
		opacity: 0;
		transition: opacity .4s ease;
	}
	.main-navigation.toggled ul#primary-menu::after { opacity: 1; transition-delay: .6s; }

	/* Header while the menu is open */
	body.sist-menu-open { overflow: hidden; }
	body.sist-menu-open .site-header {
		background: transparent !important;
		-webkit-backdrop-filter: none !important;
		backdrop-filter: none !important;
		border-bottom-color: transparent !important;
		box-shadow: none !important;
	}
	body.sist-menu-open .menu-button { color: #fff; }
	body.sist-menu-open .site-description { color: rgba(255, 255, 255, .85); border-left-color: rgba(255, 255, 255, .3); }
}

@media (max-width: 860px) and (prefers-reduced-motion: reduce) {
	.main-navigation ul#primary-menu { transition: visibility 0s; }
	.main-navigation ul#primary-menu > li { transition: none !important; transform: none; }
}

/* =========================================================
   Ninja Forms: contact form
   ========================================================= */
.nf-form-cont { padding: 0 !important; font-size: 1rem; }
.nf-form-cont .nf-form-title h3,
.nf-form-cont .nf-form-title > * {
	margin: 0 0 0.35rem;
	font-family: var(--sist-font-heading);
	font-size: clamp(1.6rem, 1.3rem + 1.2vw, 2rem);
	font-weight: 300;
	letter-spacing: -0.01em;
	color: var(--sist-primary-dark);
	font-stretch: normal;
}
.nf-form-cont .nf-before-form-content,
.nf-form-cont .nf-form-fields-required {
	margin: 0 0 1.75rem;
	font-size: 0.875rem;
	color: #6b7780;
}
.nf-form-cont .ninja-forms-req-symbol { color: #b4442f; margin-left: 0.15em; }

/* Undo the legacy float layout / hidden labels & errors from style.css */
.nf-form-cont .nf-field-container { width: 100% !important; float: none !important; margin-left: 0 !important; margin-right: 0 !important; text-decoration: none; }
.nf-form-cont .nf-field-label { display: block !important; }
.nf-form-cont .nf-before-form-content { display: block; }
.nf-form-cont .nf-error-msg { display: block; }
.nf-form-cont .field-wrap,
.nf-form-cont .nf-field-element { width: 100% !important; display: block; }

/* Two-column grid: short fields side by side, message/consent/submit full width */
.nf-form-cont nf-fields-wrap {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.25rem 1.25rem;
}
.nf-form-cont nf-fields-wrap > nf-field { display: block; min-width: 0; }
.nf-form-cont nf-fields-wrap > nf-field:has(.textarea-container),
.nf-form-cont nf-fields-wrap > nf-field:has(.checkbox-container),
.nf-form-cont nf-fields-wrap > nf-field:has(.submit-container),
.nf-form-cont nf-fields-wrap > nf-field:has(.html-container),
.nf-form-cont nf-fields-wrap > nf-field:has(.hr-container) { grid-column: 1 / -1; }
@media (max-width: 600px) {
	.nf-form-cont nf-fields-wrap { grid-template-columns: 1fr; }
}
.nf-form-cont .nf-field-container { margin: 0 !important; }
.nf-form-cont .nf-field-container .nf-field-label { margin: 0 0 0.45rem !important; padding: 0 !important; }
.nf-form-cont .nf-field-label label {
	font-family: var(--sist-font-heading);
	font-size: 0.75rem;
	font-weight: 700 !important;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--sist-primary-dark) !important;
	font-stretch: normal;
}

/* Inputs */
.nf-form-cont .nf-field-element input.ninja-forms-field:not([type="button"]):not([type="submit"]):not([type="checkbox"]),
.nf-form-cont .nf-field-element textarea.ninja-forms-field,
.nf-form-cont .nf-field-element select.ninja-forms-field {
	width: 100%;
	height: auto;
	padding: 0.95rem 1.05rem;
	border: 1px solid #d5dde3;
	border-radius: 6px;
	background: var(--sist-surface);
	color: var(--sist-primary-dark);
	font-size: 1rem;
	line-height: 1.4;
	box-shadow: none;
	transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.nf-form-cont .nf-field-element textarea.ninja-forms-field { min-height: 170px; height: 170px !important; resize: vertical; }
.nf-form-cont .nf-field-element .ninja-forms-field::placeholder { color: #93a0a9; opacity: 1; }
.nf-form-cont .nf-field-element .ninja-forms-field:hover { border-color: #b9c6cf; }
.nf-form-cont .nf-field-element .ninja-forms-field:focus {
	outline: none;
	border-color: var(--sist-primary);
	background: #fff;
	box-shadow: 0 0 0 4px rgba(44, 80, 106, .12);
}

/* Consent checkbox */
.nf-form-cont .checkbox-container .field-wrap { display: flex !important; align-items: flex-start; gap: 0.75rem; }
.nf-form-cont .checkbox-container .nf-field-element { order: -1; width: auto !important; flex: 0 0 auto; margin: 0 !important; }
.nf-form-cont .checkbox-container .nf-field-label { order: 1; width: auto !important; margin: 0 !important; }
.nf-form-cont .checkbox-container .nf-field-label label {
	font-family: var(--sist-font-body);
	font-size: 0.9375rem;
	font-weight: 400 !important;
	letter-spacing: 0;
	text-transform: none;
	color: var(--sist-text) !important;
	font-stretch: 87.5%;
	cursor: pointer;
}
.nf-form-cont .checkbox-container .nf-field-label label::after,
.nf-form-cont .checkbox-container .nf-field-label label::before { display: none !important; }
.nf-form-cont .checkbox-container input[type="checkbox"] {
	-webkit-appearance: none;
	appearance: none;
	display: grid;
	place-content: center;
	width: 1.35rem;
	height: 1.35rem;
	margin: 0.1rem 0 0;
	border: 1.5px solid #b9c6cf;
	border-radius: 4px;
	background: #fff;
	cursor: pointer;
	transition: background-color .2s ease, border-color .2s ease;
}
.nf-form-cont .checkbox-container input[type="checkbox"]::after {
	content: "";
	width: 0.7rem;
	height: 0.4rem;
	border-left: 2px solid #fff;
	border-bottom: 2px solid #fff;
	transform: rotate(-45deg) scale(0);
	transform-origin: center;
	margin-top: -0.15rem;
	transition: transform .2s cubic-bezier(.34, 1.56, .64, 1);
}
.nf-form-cont .checkbox-container input[type="checkbox"]:checked { background: var(--sist-primary); border-color: var(--sist-primary); }
.nf-form-cont .checkbox-container input[type="checkbox"]:checked::after { transform: rotate(-45deg) scale(1); }
.nf-form-cont .checkbox-container input[type="checkbox"]:focus-visible { box-shadow: 0 0 0 4px rgba(44, 80, 106, .15); outline: none; }

/* Submit */
.nf-form-cont .submit-container .nf-field-element { display: flex; }
.nf-form-cont .submit-container input[type="button"],
.nf-form-cont .submit-container input[type="submit"] {
	position: relative;
	width: auto;
	min-width: 12rem;
	padding: 1.05rem 2.4rem 1.05rem 2rem;
	border: 0;
	border-radius: 6px;
	background: var(--sist-primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='12' viewBox='0 0 18 12'%3E%3Cpath d='M0 6h16M11 1l5 5-5 5' fill='none' stroke='%23fff' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 1.4rem center;
	color: #fff !important;
	font-family: var(--sist-font-heading);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-align: left;
	padding-right: 3.6rem;
	cursor: pointer;
	transition: background-color .25s ease, background-position .35s cubic-bezier(.2, .7, .2, 1), transform .25s ease, box-shadow .25s ease;
}
.nf-form-cont .submit-container input[type="button"]:hover,
.nf-form-cont .submit-container input[type="submit"]:hover {
	background-color: var(--sist-primary-dark);
	background-position: right 1.1rem center;
	transform: translateY(-1px);
	box-shadow: 0 10px 24px rgba(28, 53, 71, .22);
}
.nf-form-cont .submit-container input:disabled { opacity: .6; cursor: progress; }

/* Validation + response */
.nf-form-cont .nf-error .ninja-forms-field { border-color: #c0563f !important; background: #fdf6f4 !important; }
.nf-form-cont .nf-error-msg,
.nf-form-cont .nf-error-wrap .nf-error-msg { margin-top: 0.4rem; font-size: 0.8125rem; color: #b4442f; }
.nf-form-cont .nf-pass .ninja-forms-field { border-color: #9cc3a8; }
.nf-form-cont .nf-field-container .nf-field-element:after { display: none !important; } /* hide NF's own icons */
.nf-form-cont .nf-response-msg:not(:empty) {
	margin-bottom: 1.5rem;
	padding: 1.1rem 1.25rem 1.1rem 3.25rem;
	border-radius: 8px;
	background: #eef6f1 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='9' fill='%232f7a52'/%3E%3Cpath d='M6 10.5l2.5 2.5L14 7.5' fill='none' stroke='%23fff' stroke-width='1.8'/%3E%3C/svg%3E") no-repeat 1.1rem 1.2rem;
	color: #1f5139;
}
.nf-form-cont .nf-form-errors .nf-error-msg { margin-top: 1rem; }

/* =========================================================
   Logged-in admins: keep the fixed header below the WordPress toolbar
   (32px on desktop, 46px on tablets/phones; on phones <=600px the toolbar
   scrolls away, so modern.js shrinks the offset while scrolling).
   ========================================================= */
body.admin-bar { --sist-admin-bar: 32px; }
body.admin-bar .site-header { top: var(--sist-admin-bar) !important; }
@media (max-width: 782px) {
	body.admin-bar { --sist-admin-bar: 46px; }
}
@media (max-width: 600px) {
	body.admin-bar { --sist-admin-bar: var(--sist-admin-bar-live, 46px); }
	#wpadminbar { position: absolute; }
}
/* Mobile menu overlay starts under the toolbar too */
@media (max-width: 860px) {
	body.admin-bar .main-navigation ul#primary-menu { padding-top: calc(var(--sist-header-h) + var(--sist-admin-bar) + 1rem); }
}
