/*
Theme Name: NauticDev Custom Theme
Theme URI: https://example.com/nauticdev-custom-theme
Author: OpenCode
Author URI: https://example.com
Description: A custom WordPress block theme generated from Figma design tokens and layouts for NauticDev.
Requires at least: 6.5
Tested up to: 6.7
Requires PHP: 8.1
 Version: 1.1.1
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: nauticdev-custom-theme
Tags: full-site-editing, block-patterns, block-styles, custom-colors, custom-logo, featured-images
*/

/* Modern CSS reset: normalizes browser defaults so every element renders
   identically in Chrome, Firefox, Safari, and Edge. Without this, each
   browser applies different default margins, font sizes, list styles, and
   form control sizing, which is why pages look different in Firefox. */
*,
*::before,
*::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	tab-size: 4;
	-webkit-tap-highlight-color: transparent;
	scroll-padding-top: var(--nautic-header-scroll-offset, calc(var(--wp-admin--admin-bar--position-offset, 0px) + 106px));
	/* Reserve the same scrollbar gutter in every browser so 100dvw/100dvh
	   resolve to the same usable width. Windows Chrome and Firefox use
	   different scrollbar widths, which used to shift full-width sections
	   and change where flex rows wrap. */
	scrollbar-gutter: stable;
}

body {
	line-height: 1.5;
	min-height: 100vh;
	min-height: 100dvh;
	text-rendering: optimizeSpeed;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* Keep the footer at the viewport bottom when a page has little or no content. */
.site-page-shell {
	display: flex;
	min-height: 100vh;
	min-height: 100dvh;
	flex-direction: column;
}

.site-page-shell > main {
	width: 100%;
	flex: 1 0 auto;
}

.site-page-shell > footer.wp-block-template-part {
	margin-top: auto;
}

img,
picture,
video,
canvas,
svg {
	display: block;
	max-width: 100%;
	height: auto;
}

img,
picture {
	vertical-align: middle;
}

svg {
	overflow: visible;
}

figure {
	margin: 0;
}

/* Reset block-level element margins and let the theme control spacing. */
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
ul,
ol,
dl,
dd,
pre,
address {
	margin: 0;
}

/* Reset list semantics to a plain, predictable baseline. */
ul,
ol {
	list-style: none;
}

/* Headings and text inherit font settings consistently. */
h1,
h2,
h3,
h4,
h5,
h6,
button,
input,
select,
textarea {
	font: inherit;
}

/* Inherit text color and background on form controls. */
button,
input,
select,
textarea {
	color: inherit;
	background: transparent;
}

/* Form fields render predictably across browsers. */
button,
input,
select,
textarea {
	border: 0;
	border-radius: 0;
	margin: 0;
	padding: 0;
}

button,
[type="button"],
[type="reset"],
[type="submit"] {
	-webkit-appearance: button;
	appearance: button;
	cursor: pointer;
}

button::-moz-focus-inner,
input::-moz-focus-inner {
	border: 0;
	padding: 0;
}

textarea {
	resize: vertical;
	overflow: auto;
}

[hidden] {
	display: none !important;
}

/* Consistent link styling baseline. */
a {
	color: inherit;
	text-decoration: inherit;
}

hr {
	height: 0;
	overflow: visible;
	border: 0;
	border-top: 1px solid;
	margin: 0;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

caption,
th,
td {
	text-align: left;
	font-weight: normal;
	vertical-align: middle;
}

q::before,
q::after,
blockquote::before,
blockquote::after {
	content: none;
}

/* Adds smooth hover/focus transitions to links, buttons, and nav items. */
html,
body {
	overflow-x: hidden;
	padding-bottom: 0 !important;
}

.wp-block-button__link,
.wp-element-button,
.wp-block-navigation-item__content,
a {
	transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease, opacity 0.3s ease;
}

/* Responsive font sizes */

h1 {
  font-size: clamp(2rem, 1.5rem + 2vw, 3rem);
}

h2 {
  font-size: clamp(1.5rem, 1.2rem + 1.5vw, 2.5rem);
}

h3 {
  font-size: clamp(1.2rem, 1rem + 0.8vw, 1.75rem);
}

p {
  font-size: clamp(1rem, 0.95rem + 0.25vw, 1.2rem);
  line-height: 1.6;
}

/* Keeps the rendered header wrapper visually clean. */
header.wp-block-template-part {
	margin-top: 0;
	padding-top: 0;
	background-color: var(--wp--preset--color--secondario);
}

footer.wp-block-template-part {
	margin-bottom: 0;
	padding-bottom: 0;
	background-color: var(--wp--preset--color--neutral-900);
}

footer.wp-block-template-part > .wp-block-group,
footer.wp-block-template-part .full-width {
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

footer.wp-block-template-part a {
	font-weight: normal;
	transition: all 0.5s ease;
	opacity:0.8;
	color: var(--wp--preset--color--white);
}

footer.wp-block-template-part a:hover,
footer.wp-block-template-part a:focus {
	padding-left:5px;
	opacity:1;
	text-decoration: none;
}

/* Pins the actual header block to the top reliably. */
.site-header-sticky,
header.wp-block-template-part .site-header-sticky {
	position: fixed !important;
	top: var(--wp-admin--admin-bar--position-offset, 0) !important;
	left: 0;
	right: 0;
	width: 100%;
	overflow: visible;
	z-index: 40;
}

/* ThemeIsle reuses the header button ID in page content, so page-generated
   block CSS can otherwise change the header button on individual pages. */
.site-header-sticky .wp-block-themeisle-blocks-button .wp-block-button__link,
.site-header-sticky .wp-block-button .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	line-height: 1.2 !important;
	white-space: nowrap !important;
}

/* Forces navigation link hover/focus text to white. */
.wp-block-navigation .wp-block-navigation-item__content:hover,
.wp-block-navigation .wp-block-navigation-item__content:focus {
	color: var(--wp--preset--color--white);
}

/* Make the current page clear in the primary navigation. WordPress uses
   current-menu-item for synced navigation and aria-current for page links. */
.site-header-sticky .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content,
.site-header-sticky .wp-block-navigation-item.current-menu-ancestor > .wp-block-navigation-item__content,
.site-header-sticky .wp-block-navigation-item__content[aria-current="page"] {
	color: var(--wp--preset--color--white) !important;
	font-weight: 700;
	box-shadow: inset 0 -2px 0 var(--wp--preset--color--light-blue);
}

.nauticdev-service-schema {
	width: 100%;
}

.nauticdev-service-schema__svg {
	display: block;
	width: 100%;
	height: auto;
}

.nauticdev-service-schema__anchor {
	cursor: pointer;
	text-decoration: none;
}

.nauticdev-service-schema__anchor .nauticdev-service-schema__item,
.nauticdev-service-schema__anchor text {
	transition: opacity 0.2s ease;
}

.nauticdev-service-schema__anchor:hover .nauticdev-service-schema__item,
.nauticdev-service-schema__anchor:focus .nauticdev-service-schema__item,
.nauticdev-service-schema__anchor:hover text,
.nauticdev-service-schema__anchor:focus text {
	opacity: 0.72;
}

.nauticdev-service-schema__mobile-list-wrap {
	display: none;
}

@media (max-width: 767px) {
	.nauticdev-service-schema__svg {
		display: none;
	}

	.nauticdev-service-schema__mobile-list-wrap {
		display: block;
	}

	.nauticdev-service-schema__mobile-list-title {
		margin: 0 0 8px;
		color: var(--wp--preset--color--white);
		font-family: var(--wp--preset--font-family--serenity);
		font-size: var(--wp--preset--font-size--lg);
		text-transform: uppercase;
	}

	.nauticdev-service-schema__mobile-list {
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.nauticdev-service-schema__mobile-list a,
	.nauticdev-service-schema__mobile-list .is-unlinked {
		display: block;
		padding: 12px 0;
		border-bottom: 1px solid rgba(255, 255, 255, 0.15);
	}

	.nauticdev-service-schema__mobile-list a {
		color: var(--wp--preset--color--white);
		font-weight: 700;
		text-decoration: none;
		text-transform: uppercase;
	}

	.nauticdev-service-schema__mobile-list a:hover,
	.nauticdev-service-schema__mobile-list a:focus {
		color: var(--wp--preset--color--light-blue);
	}

	.nauticdev-service-schema__mobile-list .is-unlinked {
		color: rgba(255, 255, 255, 0.5);
	}
}

/* Keep the article body beside the fixed sidebar while the post content
   continues down the page. */
.single .nns-article-main .nauticdev-sticky-side-layout {
	display: flex !important;
	flex-wrap: nowrap !important;
	align-items: flex-start;
	gap: var(--wp--preset--spacing--60);
}
.single .nns-article-main .nauticdev-sticky-side__aside {
	flex: 0 0 32% !important;
	width: 32% !important;
	align-self: flex-start;
}
.single .nns-article-main .nauticdev-sticky-side__content {
	flex: 1 1 0 !important;
	width: auto !important;
	min-width: 0;
}
.single .nns-article-main .nauticdev-sticky-side__aside > .is-position-sticky {
	position: sticky !important;
	top: 140px;
	align-self: flex-start;
	width: 100%;
}
.single .nns-article-main .nauticdev-sticky-side__aside > .is-position-sticky > .wp-block-group {
	width: 100%;
	flex: 0 0 100%;
	box-sizing: border-box;
}
.single .nns-article-main .nns-article-body {
	width: 100%;
	max-width: none !important;
	margin: 0;
}
.single .nns-article-main .nns-article-body .wp-block-post-content {
	width: 100%;
	max-width: none;
}
.single .nns-article-main .nauticdev-sticky-side__aside .wp-block-post-title a {
	color: #000000 !important;
	font-size: var(--wp--preset--font-size--base) !important;
	font-weight: 400;
	line-height: 1.5;
	text-decoration: none;
}
.single .nns-article-main .nauticdev-sticky-side__aside .wp-block-post-title a:hover,
.single .nns-article-main .nauticdev-sticky-side__aside .wp-block-post-title a:focus {
	color: var(--wp--preset--color--principale) !important;
	text-decoration: underline;
}
@media (max-width: 767px) {
	.single .nns-article-main .nauticdev-sticky-side-layout {
		flex-wrap: wrap !important;
	}
	.single .nns-article-main .nauticdev-sticky-side__aside,
	.single .nns-article-main .nauticdev-sticky-side__content {
		flex: 0 0 100% !important;
		width: 100% !important;
	}
	.single .nns-article-main .nauticdev-sticky-side__aside > .is-position-sticky {
		position: static !important;
	}
}

/* Keeps the navigation block in hamburger mode from 600px through 1024px. */
@media (min-width: 600px) and (max-width: 1220px) {
	.wp-block-navigation.is-responsive .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}

	.wp-block-navigation.is-responsive .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}
}

/* Lets selected blocks break out of constrained parents to span the full
   viewport. Uses 100vw + calc(50% - 50vw) instead of 100dvw so the
   scrollbar width (which differs between Chrome and Firefox on Windows)
   cannot change the usable width and shift where flex rows wrap. The
   calc() is based on the parent's real width vs the viewport, so it is
   identical in every browser. */
.full-width {
	position: relative !important;
	width: 100vw !important;
	max-width: 100vw !important;
	margin-left: calc(50% - 50vw) !important;
	margin-right: 0 !important;
	box-sizing: border-box;
}

/* Allows a full-width block to remain sticky when needed. */
.full-width.is-position-sticky,
header.wp-block-template-part .full-width.is-position-sticky {
	position: sticky !important;
	top: var(--wp-admin--admin-bar--position-offset, 0);
}

/* On small screens, buttons that stack vertically take the full row width. */
@media (max-width: 599px) {
	.wp-block-buttons,
	.wp-block-themeisle-blocks-button-group {
		width: 100%;
	}

	.wp-block-buttons .wp-block-button,
	.wp-block-themeisle-blocks-button-group .wp-block-themeisle-blocks-button {
		width: 100%;
	}

	.wp-block-buttons .wp-block-button .wp-block-button__link,
	.wp-block-themeisle-blocks-button-group .wp-block-themeisle-blocks-button .wp-block-button__link {
		width: 100%;
		box-sizing: border-box;
	}
}

@media (max-width: 889px) {
	.home .wp-block-group.has-secondario-background-color > .force-with {
		width: 100%;
		flex-direction: column;
		align-items: center;
		justify-content: flex-start;
	}

	.home .wp-block-group.has-secondario-background-color > .force-with > .logo-inline-item {
		display: flex;
		gap: 16px;
		align-items: center;
		justify-content: center;
		width: 100%;
		margin-top: 8px !important;
		margin-bottom: 8px !important;
		box-sizing: border-box;
		text-align: left;
	}

	.home .wp-block-group.has-secondario-background-color > .force-with > .logo-inline-item > .wp-block-image {
		width: 65px;
		margin: 0;
		flex: 0 0 65px;
	}

	.home .wp-block-group.has-secondario-background-color > .force-with > .logo-inline-item p {
		margin: 0;
		white-space: nowrap;
	}

	.home .wp-block-group.has-secondario-background-color > .force-with > .logo-inline-item p br {
		display: none;
	}

	.home .wp-block-group.has-secondario-background-color > .force-with > .logo-inline-item[style*="border-right"] {
		border-right-width: 0 !important;
	}
}

@media (max-width: 781px) {
	.home .wp-block-columns.wp-container-core-columns-is-layout-b88783a7
		> .wp-block-column:last-child {
		order: -1;
	}

	.nns-global-cta .nns-mobile-center,
	.nns-global-cta .wp-block-themeisle-blocks-button-group,
	.nns-global-cta .wp-block-themeisle-blocks-button,
	.nns-global-cta .wp-block-themeisle-blocks-button .wp-block-button__link {
		box-sizing: border-box;
		width: 100%;
	}

	.nns-global-cta .wp-block-themeisle-blocks-button .wp-block-button__link {
		display: block;
		text-align: center;
	}
}

/* The compact horizontal sidebar still uses the shared title size. */
.single .nns-article-sidebar-related__body .wp-block-post-title {
	font-size: 23.2px !important;
}

/* Stack the call/contact buttons across the available width. */
.wp-block-group.has-white-background-color:has(> .wp-block-group.is-vertical > .wp-block-group > .wp-block-buttons + .wp-block-buttons)
	> .wp-block-group.is-vertical > .wp-block-group {
	width: 100%;
	max-width: none;
}

.wp-block-group.has-white-background-color:has(> .wp-block-group.is-vertical > .wp-block-group > .wp-block-buttons + .wp-block-buttons)
	> .wp-block-group.is-vertical > .wp-block-group > .wp-block-buttons {
	width: 100%;
}

.wp-block-group.has-white-background-color:has(> .wp-block-group.is-vertical > .wp-block-group > .wp-block-buttons + .wp-block-buttons)
	> .wp-block-group.is-vertical > .wp-block-group > .wp-block-buttons + .wp-block-buttons {
	margin-block-start: var(--wp--preset--spacing--30);
}

.wp-block-group.has-white-background-color:has(> .wp-block-group.is-vertical > .wp-block-group > .wp-block-buttons + .wp-block-buttons)
	.wp-block-themeisle-blocks-button,
.wp-block-group.has-white-background-color:has(> .wp-block-group.is-vertical > .wp-block-group > .wp-block-buttons + .wp-block-buttons)
	.wp-block-themeisle-blocks-button .wp-block-button__link {
	width: 100%;
	box-sizing: border-box;
}

@media (max-width: 599px) {
	.nauticdev-sticky-side__aside {
		display: none !important;
	}

.nauticdev-sticky-side__content {
		flex-basis: 100% !important;
	}
}

.nauticdev-sticky-side-layout {
	align-items: flex-start !important;
}

.nauticdev-sticky-side__aside {
	align-self: flex-start !important;
	box-sizing: border-box;
}

.nauticdev-sticky-side__aside-inner {
	box-sizing: border-box;
	height: fit-content;
}

html.nauticdev-popup-open,
body.nauticdev-popup-open {
	overflow: hidden;
}

.nns-boat-template-main {
	padding-top: 64px;
}

@media (min-width: 1221px) {
	.nns-boat-template-main {
		padding-top: 80px;
	}
}

.nauticdev-popup {
	position: fixed;
	inset: 0;
	width: 100vw;
	max-width: 100vw;
	margin: 0 !important;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	background: rgba(0, 0, 0, 0.8);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	z-index: 9999;
	box-sizing: border-box;
	overflow: hidden;
}

.nauticdev-popup.wp-block-group {
	max-width: none !important;
}

.nauticdev-popup.is-open {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.nauticdev-popup > .nauticdev-popup__panel {
	width: min(100%, 720px);
	max-width: 720px;
	max-height: calc(100vh - 48px);
	overflow-y: auto;
	-ms-overflow-style: none;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
	padding: clamp(24px, 4vw, 40px);
	border-radius: 16px;
	background: transparent;
	border: 0;
	box-shadow: none;
	transform: translateY(24px) scale(0.98);
	transition: transform 0.3s ease;
	box-sizing: border-box;
}

.nauticdev-popup > .nauticdev-popup__panel::-webkit-scrollbar {
	display: none;
}

.nauticdev-popup > .nauticdev-popup__panel.has-white-background-color,
.nauticdev-popup > .nauticdev-popup__panel.has-background {
	border: 0;
	box-shadow: none;
}

.error-header {
	font-size: 200px;
}

.nauticdev-popup__panel,
.nauticdev-popup__panel p,
.nauticdev-popup__panel label,
.nauticdev-popup__panel legend,
.nauticdev-popup__panel li,
.nauticdev-popup__panel .wp-block-heading,
.nauticdev-popup__panel input,
.nauticdev-popup__panel textarea,
.nauticdev-popup__panel select,
.nauticdev-popup__panel .wpcf7,
.nauticdev-popup__panel .wpcf7-form,
.nauticdev-popup__panel .wpforms-container,
.nauticdev-popup__panel .wpforms-form,
.nauticdev-popup__panel .frm_forms,
.nauticdev-popup__panel .ff-el-group,
.nauticdev-popup__panel .ff-el-form-control,
.nauticdev-popup__panel .gform_wrapper,
.nauticdev-popup__panel .gfield_label {
	color: var(--wp--preset--color--white);
}

.nauticdev-popup__panel input::placeholder,
.nauticdev-popup__panel textarea::placeholder {
	color: rgba(255, 255, 255, 0.75);
}

.nauticdev-popup.is-open > .nauticdev-popup__panel {
	transform: translateY(0) scale(1);
}

.nauticdev-popup .js-close-popup {
	cursor: pointer;
}

.nauticdev-popup__panel > .wp-block-image {
	width: fit-content;
	max-width: 100%;
	margin-right: auto;
	margin-left: auto;
	text-align: center;
}

.nauticdev-popup__panel > .wp-block-image img {
	display: block;
	width: auto;
	max-width: min(220px, 100%);
	height: auto;
	margin-right: auto;
	margin-left: auto;
}

/* In Gutenberg, show popup groups as normal editable sections instead of hidden fixed overlays. */
.block-editor-block-list__layout .nauticdev-popup,
.editor-styles-wrapper .nauticdev-popup {
	position: relative;
	inset: auto;
	display: block;
	padding: 0;
	background: transparent;
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transition: none;
	z-index: auto;
	overflow: visible;
}

.block-editor-block-list__layout .nauticdev-popup > .nauticdev-popup__panel,
.editor-styles-wrapper .nauticdev-popup > .nauticdev-popup__panel {
	width: 100%;
	max-width: 100%;
	max-height: none;
	transform: none;
	transition: none;
	box-shadow: 0 0 0 1px rgba(13, 6, 38, 0.15);
	overflow: visible;
}

@media (max-width: 767px) {
	.nauticdev-popup {
		padding: 16px;
	}

	.nauticdev-popup > .nauticdev-popup__panel {
		max-height: calc(100vh - 32px);
		padding: 24px;
	}
}

/* Mobile and tablet overlay menu: keep this block isolated from desktop submenu styles. */
.site-header-sticky .nns-overlay-contact-item {
	display: none !important;
}

@media (max-width: 1220px) {
	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open {
		padding: 0;
		background: var(--wp--preset--color--secondario) !important;
		color: var(--wp--preset--color--white);
	}

	.site-header-sticky > .wp-block-group > .wp-block-group {
		justify-content: flex-start;
	}

	.site-header-sticky > .wp-block-group > .wp-block-group > .wp-block-navigation {
		order: 2;
		margin-left: 0;
	}

	.site-header-sticky > .wp-block-group > .wp-block-group > .wp-block-group:last-child {
		order: 1;
		margin-left: auto;
		margin-right: 10px;
	}

	/* Bigger hamburger button with more padding from the right edge. */
	.site-header-sticky .wp-block-navigation__responsive-container-open {
		width: 48px;
		height: 48px;
		padding: 0;
		margin-right: 8px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}

	.site-header-sticky .wp-block-navigation__responsive-container-open svg {
		width: 32px;
		height: 32px;
	}

	/* Keep the close (X) button in the exact same spot as the hamburger. */
	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
		position: fixed;
		width: 48px;
		height: 48px;
		top: var(--nautic-menu-close-top, calc(var(--wp-admin--admin-bar--position-offset, 0px) + 21px));
		right: auto;
		left: var(--nautic-menu-close-left, auto);
		margin: 0;
		padding: 0;
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}

	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close svg {
		width: 32px;
		height: 32px;
	}


	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open,
	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open::before,
	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open::after {
		background-color: var(--wp--preset--color--secondario) !important;
	}

	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list,
	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,
	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
		background-color: var(--wp--preset--color--secondario) !important;
	}

	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		display: flex;
		flex-direction: column;
		align-items: center;
		width: 100%;
		max-width: 100%;
		padding: 40px 20px;
		background: var(--wp--preset--color--secondario) !important;
		box-sizing: border-box;
	}

	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list {
		display: flex;
		flex-direction: column;
		gap: 0;
		width: 100%;
		max-width: var(--wp--style--global--wide-size, 1400px);
		margin: 0 auto;
		padding: 0;
		box-sizing: border-box;
	}

	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,
	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list > li {
		position: relative;
		margin: 0;
		width: 100%;
		box-sizing: border-box;
		border-bottom: 1px solid var(--wp--preset--color--light-gray);
	}

	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .nns-overlay-contact-item {
		display: flex !important;
		justify-content: center;
		padding-top: var(--wp--preset--spacing--30);
		border-bottom: 0;
	}

	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .nns-overlay-contact-button {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: auto;
		min-width: 180px;
		min-height: 44px;
		padding: 10px 24px;
		border-radius: 10px;
		background: var(--wp--preset--color--white) !important;
		color: var(--wp--preset--color--light-green) !important;
		font-weight: 700;
		line-height: 1.2;
		text-align: center;
		text-transform: uppercase;
	}

	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: center;
		align-content: center;
		width: 100%;
	}

	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		padding: var(--wp--preset--spacing--25) 56px var(--wp--preset--spacing--25) 56px;
		color: var(--wp--preset--color--light-gray);
		box-sizing: border-box;
		text-align: center;
	}

	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child > .wp-block-navigation-item__content {
		width: auto;
		min-height: calc((2 * var(--wp--preset--spacing--25)) + 1em);
		min-width: 0;
		padding-left: 0;
		padding-right: 0;
	}

	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child.is-open {
		background: var(--wp--preset--color--principale) !important;
	}

	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child.is-open > .wp-block-navigation-item__content,
	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child.is-open > .wp-block-navigation-submenu__toggle {
		background: transparent !important;
		color: var(--wp--preset--color--white) !important;
	}

	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle {
		position: static;
		align-self: center;
		z-index: 2;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: auto;
		height: auto;
		min-width: 44px;
		min-height: 44px;
		margin-left: 24px;
		padding: 0 8px;
		border: 0;
		border-radius: 0;
		background: transparent;
		color: var(--wp--preset--color--light-gray);
	}

	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle .wp-block-navigation__submenu-icon {
		display: inline-block;
		width: 16px;
		height: 16px;
		margin: 0;
	}

	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle .wp-block-navigation__submenu-icon svg {
		display: block;
		width: 16px;
		height: 16px;
	}

	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle:hover,
	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle:focus,
	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle[aria-expanded="true"] {
		background: transparent;
		color: var(--wp--preset--color--white);
	}

	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon {
		width: 14px;
		height: 14px;
		margin-left: 8px;
		transition: transform 0.3s ease;
	}

	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle[aria-expanded="true"] .wp-block-navigation__submenu-icon {
		transform: rotate(180deg);
	}

	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
		position: static !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 100%;
		flex-basis: 100%;
		margin: 0;
		padding: 0 0 var(--wp--preset--spacing--15) 0;
		border: 0;
		background: transparent !important;
		box-shadow: none;
		display: none !important;
	}

	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container[hidden] {
		display: none !important;
	}

	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child.is-open > .wp-block-navigation__submenu-container {
		display: flex !important;
		flex-direction: column;
	}

	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item {
		border-bottom: 0;
		background: transparent !important;
	}

	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		justify-content: center;
		width: 100%;
		padding: var(--wp--preset--spacing--25) 56px var(--wp--preset--spacing--25) 56px;
		color: var(--wp--preset--color--light-blue);
		font-size: var(--wp--preset--font-size--sm-plus);
		font-weight: 400;
		text-align: center;
		text-transform: uppercase;
	}

	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-title {
		display: none !important;
	}

	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
		color: var(--wp--preset--color--white);
	}
}

/* Mobile: keep the hamburger on the left side of the header. */
@media (max-width: 767px) {
	.site-header-sticky > .wp-block-group > .wp-block-group {
		justify-content: space-between;
	}

	.site-header-sticky > .wp-block-group > .wp-block-group > .wp-block-navigation {
		order: 1;
		margin-left: 0;
	}

	.site-header-sticky > .wp-block-group > .wp-block-group > .wp-block-group:last-child {
		order: 2;
		margin-left: 0;
		margin-right: 0;
	}

}

/* Compact phone header and keep the open/close controls under the pointer. */
@media (max-width: 600px) {
	html {
		scroll-padding-top: var(--nautic-header-scroll-offset, calc(var(--wp-admin--admin-bar--position-offset, 0px) + 80px));
	}

	.site-header-sticky > .wp-block-group {
		height: 80px;
		min-height: 80px !important;
	}

	.site-header-sticky > .wp-block-group > .wp-block-group {
		height: 80px;
		min-height: 80px;
		margin-bottom: 0 !important;
		padding: 0 12px !important;
	}

	.site-header-sticky .wp-block-site-logo img {
		width: auto;
		max-width: 190px;
		height: 58px;
		object-fit: contain;
	}

	.site-header-sticky .wp-block-navigation__responsive-container-open {
		margin: 0;
	}

	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
		top: calc(var(--wp-admin--admin-bar--position-offset, 0px) + 16px);
		left: 12px;
		right: auto;
	}

	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		padding: 15px 12px 20px;
	}

	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
	.site-header-sticky .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		padding-top: 10px;
		padding-right: 44px;
		padding-bottom: 10px;
		padding-left: 44px;
	}
}

/* Desktop submenu container: keep this block isolated from other menu styles. */
@media (min-width: 1221px) {
	.site-header-sticky {
		--nautic-header-height: 105px;
		overflow: visible;
	}

	/* Keep the full 90px-tall logo inside the bar, including its lower arrow. */
	.site-header-sticky > .wp-block-group {
		height: 105px;
		min-height: 105px !important;
	}

	.site-header-sticky > .wp-block-group > .wp-block-group {
		height: 105px;
		margin-bottom: 0 !important;
		align-items: center;
	}

	.site-header-sticky > .wp-block-group {
		position: relative !important;
		z-index: 1;
	}

	.site-header-sticky > .wp-block-group > .wp-block-group {
		position: relative !important;
		z-index: 2;
	}

	.site-header-sticky > .wp-block-group > .wp-block-group > .wp-block-group {
		position: relative !important;
		z-index: 2;
	}

	.site-header-sticky .wp-block-group,
	.site-header-sticky .wp-block-navigation,
	.site-header-sticky .wp-block-navigation__container,
	.site-header-sticky .wp-block-navigation__responsive-container-content,
	.site-header-sticky .wp-block-navigation-item,
	.site-header-sticky .wp-block-page-list,
	.site-header-sticky .wp-block-page-list > li,
	.site-header-sticky .wp-block-navigation__responsive-container {
		position: static !important;
	}

	.site-header-sticky .wp-block-navigation .has-child {
		position: static !important;
	}

	.site-header-sticky > .wp-block-group > .wp-block-group > .wp-block-group > .wp-block-group {
		position: relative;
		z-index: 5;
	}

	.site-header-sticky .wp-block-navigation .has-child .wp-block-navigation__submenu-container {
		position: fixed !important;
		left: 0 !important;
		right: 0 !important;
		top: calc(var(--wp-admin--admin-bar--position-offset, 0px) + var(--nautic-submenu-top, var(--nautic-header-height))) !important;
		width: 100% !important;
		max-width: 100% !important;
		transform: none !important;
		margin: 0 !important;
		padding: var(--wp--preset--spacing--40) max(24px, calc((100vw - var(--wp--style--global--wide-size)) / 2)) var(--wp--preset--spacing--40) !important;
		border: 0 !important;
		background: var(--wp--preset--color--secondario) !important;
		box-sizing: border-box;
		z-index: 1;
		isolation: isolate;
		height: auto !important;
		max-height: none !important;
		min-height: 0 !important;
		display: none !important;
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: center;
		align-items: flex-start;
		gap: var(--wp--preset--spacing--20);
		overflow: visible !important;
		row-gap: var(--wp--preset--spacing--20);
	}

	.site-header-sticky .wp-block-navigation .has-child:not(.is-submenu-pinned):not(.is-submenu-closing) > .wp-block-navigation__submenu-container {
		display: none !important;
		visibility: hidden !important;
		opacity: 0 !important;
		pointer-events: none !important;
	}

	.site-header-sticky .wp-block-navigation .has-child > .wp-block-navigation__submenu-container[hidden] {
		display: none !important;
	}

	.site-header-sticky .wp-block-navigation .has-child.is-submenu-pinned > .wp-block-navigation__submenu-container {
		display: flex !important;
		height: auto !important;
		max-height: none !important;
		overflow: visible !important;
		visibility: visible !important;
		opacity: 1;
		pointer-events: auto !important;
		animation: nautic-submenu-fade-in 600ms ease-out both;
	}

	.site-header-sticky .wp-block-navigation .has-child.is-submenu-closing > .wp-block-navigation__submenu-container {
		display: flex !important;
		visibility: visible !important;
		pointer-events: none !important;
		animation: nautic-submenu-fade-out 250ms ease-in both;
	}

	@keyframes nautic-submenu-fade-in {
		from {
			opacity: 0;
		}
		to {
			opacity: 1;
		}
	}

	@keyframes nautic-submenu-fade-out {
		from {
			opacity: 1;
		}
		to {
			opacity: 0;
		}
	}

	.site-header-sticky .wp-block-navigation .has-child.is-submenu-pinned > .wp-block-navigation__submenu-container > li,
	.site-header-sticky .wp-block-navigation .has-child.is-submenu-pinned > .wp-block-navigation__submenu-container > li > a,
	.site-header-sticky .wp-block-navigation .has-child.is-submenu-closing > .wp-block-navigation__submenu-container > li,
	.site-header-sticky .wp-block-navigation .has-child.is-submenu-closing > .wp-block-navigation__submenu-container > li > a {
		visibility: visible !important;
		opacity: 1 !important;
	}

	.site-header-sticky .wp-block-navigation .has-child.is-submenu-pinned > .wp-block-navigation__submenu-container > li,
	.site-header-sticky .wp-block-navigation .has-child.is-submenu-pinned > .wp-block-navigation__submenu-container > li > a {
		pointer-events: auto !important;
	}

	.site-header-sticky .wp-block-navigation .has-child .wp-block-navigation__submenu-title {
		display: flex;
		align-items: center;
		justify-content: flex-start;
		gap: var(--wp--preset--spacing--15);
		flex: 0 0 100%;
		margin: 0 0 var(--wp--preset--spacing--10);
		padding: 0;
		color: var(--wp--preset--color--white);
		font-family: var(--wp--preset--font-family--serenity);
		font-size: var(--wp--preset--font-size--lg);
		line-height: 1.1;
		list-style: none;
		text-transform: uppercase;
	}
	.site-header-sticky .wp-block-navigation .has-child .wp-block-navigation__submenu-title::before {
		content: "";
		display: block;
		flex: 0 0 0;
		width: 0;
		height: 1px;
		background: var(--wp--preset--color--light-blue);
	}

	.site-header-sticky .wp-block-navigation .has-child .wp-block-navigation__submenu-title::after {
		content: "";
		display: block;
		flex: 1 1 auto;
		height: 1px;
		background: var(--wp--preset--color--light-blue);
	}

	.site-header-sticky .wp-block-navigation .has-child .wp-block-navigation__submenu-container li:not(.wp-block-navigation__submenu-title) {
		display: flex !important;
		flex: 0 0 calc((100% - (3 * var(--wp--preset--spacing--20))) / 4);
		width: calc((100% - (3 * var(--wp--preset--spacing--20))) / 4);
		max-width: calc((100% - (3 * var(--wp--preset--spacing--20))) / 4);
		margin: 0;
		padding: 0;
		list-style: none;
	}

	.site-header-sticky .wp-block-navigation .has-child .wp-block-navigation__submenu-container a {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		flex: 1 1 auto;
		min-height: 44px;
		padding: 10px 14px;
		border: 1px solid var(--wp--preset--color--light-blue);
		border-radius: 10px;
		background: var(--wp--preset--color--secondario);
		color: var(--wp--preset--color--white);
		font-family: var(--wp--preset--font-family--myriad-pro);
		font-size: var(--wp--preset--font-size--sm-plus);
		font-weight: 700;
		text-decoration: none;
		text-transform: uppercase;
		text-align: center;
		white-space: normal;
	}

	.site-header-sticky .wp-block-navigation .has-child .wp-block-navigation__submenu-container a:hover,
.site-header-sticky .wp-block-navigation .has-child .wp-block-navigation__submenu-container a:focus {
	border-color: var(--wp--preset--color--white);
	background: var(--wp--preset--color--principale);
	color: var(--wp--preset--color--white);
}
}

@media (min-width: 1221px) and (prefers-reduced-motion: reduce) {
	.site-header-sticky .wp-block-navigation .has-child.is-submenu-pinned > .wp-block-navigation__submenu-container,
	.site-header-sticky .wp-block-navigation .has-child.is-submenu-closing > .wp-block-navigation__submenu-container {
		animation: none;
	}
}

/* Keep desktop overlay menu tiles uniform even when labels wrap to different
   numbers of lines. */
@media (min-width: 1221px) {
	.site-header-sticky .wp-block-navigation .has-child .wp-block-navigation__submenu-container > li:not(.wp-block-navigation__submenu-title) {
		height: 64px;
		min-height: 64px;
		box-sizing: border-box;
	}
	.site-header-sticky .wp-block-navigation .has-child .wp-block-navigation__submenu-container > li:not(.wp-block-navigation__submenu-title) > a {
		height: 100%;
		min-height: 0;
		box-sizing: border-box;
	}
}

.entry-content {
	margin-top: 114px;
}

.single .entry-content {
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
}

/* Article page layout shared by every single post. */
.nns-article-hero {
	align-items: stretch;
	margin-top: 0 !important;
}
.nns-article-hero > .wp-block-column:first-child {
	background: var(--wp--preset--color--white);
}
.nns-article-hero > .wp-block-column:last-child {
	min-height: 50vh;
}
.nns-article-hero__image,
.nns-article-hero__image img {
	width: 100%;
	height: 100%;
	min-height: 82vh;
	object-fit: contain;
}
.nns-article-hero__image {
	margin: 0;
}
.nns-article-hero__image img {
	border-radius: 0;
}
.nns-article-hero .wp-block-post-title {
	color: var(--wp--preset--color--principale);
	font-size: clamp(1.6rem, 3vw, 3rem);
	line-height: 1.1;
}
.nns-article-hero .wp-block-post-terms {
	margin-bottom: var(--wp--preset--spacing--20);
	color: var(--wp--preset--color--principale);
	font-weight: 700;
	text-transform: uppercase;
}
.nns-article-hero .wp-block-post-excerpt {
	margin-top: var(--wp--preset--spacing--30);
	color: var(--wp--preset--color--neutral-700);
}
.nns-article-hero .wp-block-post-date {
	margin-top: var(--wp--preset--spacing--30);
	color: var(--wp--preset--color--neutral-500);
}
.nns-article-body {
	margin-top: 0 !important;
}
.nns-article-body .wp-block-post-content > * {
	margin-bottom: var(--wp--preset--spacing--30);
}
.single .nns-article-body .wp-block-post-content ul {
	padding-left: 1.5em;
	list-style: disc outside;
}
.single .nns-article-body .wp-block-post-content ol {
	padding-left: 1.5em;
	list-style: decimal outside;
}
.single .nns-article-body .wp-block-post-content ul ul {
	list-style-type: circle;
}
.single .nns-article-body .wp-block-post-content ol ol {
	list-style-type: lower-alpha;
}
.single .nns-article-body .wp-block-post-content li + li {
	margin-top: 0.4em;
}

/* The synced Article pattern uses a full-width wrapper with a centered
   1420px content area and 20px gutters, matching the rest of the site. */
.nns-article-main {
	width: 100%;
	max-width: none !important;
	padding-right: 20px;
	padding-left: 20px;
}
.nns-article-main > .wp-block-group {
	width: 100%;
	max-width: 1000px !important;
	margin-right: auto;
	margin-left: auto;
}
.nns-article-main .nauticdev-sticky-side__content {
	min-width: 0;
}
.nns-article-main .nauticdev-sticky-side__aside .wp-block-post-excerpt,
.nns-article-main .nauticdev-sticky-side__aside .wp-block-post-terms {
	margin-top: var(--wp--preset--spacing--20);
	color: var(--wp--preset--color--secondario);
}
.nns-article-main .wp-block-query .nns-article-card-media {
		overflow: hidden;
}
.nns-article-main .wp-block-query .nns-article-card-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Archive and blog listing cards: image fills the full card width. */
.nns-article-archive .nns-card-media-wrap,
.site-main-content .wp-block-query .nns-card-media-wrap {
	width: 100%;
	overflow: hidden;
}
.nns-article-archive .nns-article-card-media,
.site-main-content .wp-block-query .nns-article-card-media {
	display: block;
	width: 100%;
	overflow: hidden;
}
.nns-article-archive .nns-article-card-media img,
.site-main-content .wp-block-query .nns-article-card-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media (max-width: 767px) {

	.nns-article-hero > .wp-block-column:first-child {
		order: 2;
	}
	.nns-article-hero > .wp-block-column:last-child {
		order: 1;
	}
}

.footer-list li {
	padding-bottom: 10px;
}

/* Service pages: remove the side padding on the "Di cosa ci occupiamo"
   section when it stacks on narrow screens. */
@media (max-width: 1070px) {
	.wp-block-group.wp-container-core-group-is-layout-14415686:has(.wp-container-core-columns-is-layout-0774469b) {
		padding-right: 0 !important;
		padding-left: 0 !important;
	}
	.wp-block-group.wp-container-core-group-is-layout-14415686 {
		padding-right: 0 !important;
		padding-left: 0 !important;
	}
}

/* On the "Perché noi" page, when the columns stack the image should span
   full width without side padding and still shrink with the container. */
@media (max-width: 781px) {
	.page-id-519 .wp-block-columns:has(> .wp-block-column > .wp-block-group[class*="light-blue-background-color"]) {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	.page-id-519 .wp-block-columns:has(> .wp-block-column > .wp-block-group[class*="light-blue-background-color"])
		> .wp-block-column:last-child {
		width: 100%;
		max-width: none;
	}

	.page-id-519 .wp-block-columns:has(> .wp-block-column > .wp-block-group[class*="light-blue-background-color"])
		> .wp-block-column:last-child > .wp-block-group {
		width: 100%;
		max-width: none;
	}
}

/* Center the footer contact items (email / WhatsApp) when they stack. */
@media (max-width: 664px) {
	footer .wp-block-columns:has(.wp-block-column > .wp-block-group > .has-neutral-50-background-color)
		> .wp-block-column > .wp-block-group {
		justify-content: center;
	}
}

footer ul {
  margin: 0;             
  padding: 0;              
}

/* Contact Details Banner: stack items vertically on narrow screens,
   swapping the right-side divider for a bottom divider. */
@media (max-width: 1354px) {
	.ticss-ab8b0477 {
		gap: 40px;
	}

	.ticss-ab8b0477 .contact-detail-item {
		width: 100% !important;
		max-width: 100% !important;
		justify-content: center;
		border-right: 0 !important;
		border-bottom: 1px solid #000 !important;
		padding-right: 0 !important;
		padding-bottom: 40px;
		margin-bottom: 40px;
	}

	.ticss-ab8b0477 .contact-detail-item:last-child {
		border-bottom: 0 !important;
		margin-bottom: 0;
	}
}

/* Article cards: image on top, text below (matching the boat card style).
   Each card is a vertical column with a 16/9 image and a padded text body. */
body:not(.single) .wp-block-post-template.is-layout-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	max-width: 1400px;
	margin-left: auto;
	margin-right: auto;
}
body:not(.single) .wp-block-post-template.is-layout-grid > .wp-block-post {
	min-width: 0;
}

/* Post carousel: horizontal track of article cards with prev/next controls. */
.nauticdev-post-carousel {
	position: relative;
	width: 100%;
	min-width: 0;
	align-self: stretch;
}
.nauticdev-post-carousel__viewport {
	overflow: hidden;
}
.nauticdev-post-carousel__track {
	display: flex;
	gap: 24px;
	transition: transform 0.4s ease;
}
.nauticdev-post-carousel__slide {
	flex: 0 0 100%;
	min-width: 0;
}
.nauticdev-post-carousel__nav {
	position: absolute;
	top: 50%;
	z-index: 2;
	display: grid;
	width: 44px;
	height: 44px;
	padding: 0;
	place-items: center;
	border: 1px solid rgba(60, 60, 59, 0.2);
	border-radius: 50%;
	background: #fff;
	color: var(--wp--preset--color--secondario);
	cursor: pointer;
	box-shadow: 0 3px 12px rgba(13, 6, 38, 0.1);
	transform: translateY(-50%);
}
.nauticdev-post-carousel__nav:hover:not(:disabled) {
	background: var(--wp--preset--color--principale);
	border-color: var(--wp--preset--color--principale);
	color: #fff;
}
.nauticdev-post-carousel__nav:disabled {
	opacity: 0.35;
	cursor: default;
}
.nauticdev-post-carousel__nav--prev {
	left: -22px;
}
.nauticdev-post-carousel__nav--next {
	right: -22px;
}

@media (min-width: 700px) {
	.nauticdev-post-carousel__slide {
		flex-basis: calc((100% - 24px) / 2);
	}
}

@media (min-width: 1100px) {
	.nauticdev-post-carousel__slide {
		flex-basis: calc((100% - 48px) / 3);
	}
}

@media (max-width: 767px) {
	.nauticdev-post-carousel__nav {
		top: auto;
		bottom: -52px;
		transform: none;
	}
	.nauticdev-post-carousel__nav--prev {
		left: 50%;
		margin-left: -52px;
	}
	.nauticdev-post-carousel__nav--next {
		right: 50%;
		margin-right: -52px;
	}
}

@media (max-width: 1022px) {
	body:not(.single) .wp-block-post-template.is-layout-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}}

@media (max-width: 767px) {
	body:not(.single) .wp-block-post-template.is-layout-grid {
		grid-template-columns: 1fr;
	}
}

/* Dark hero overlay. The layer belongs to the cover wrapper, not the image
   element, because replaced image elements cannot reliably render ::after. */
.nns-overlay-dark,
.nns-black {
	position: relative;
	overflow: hidden;
}
.nns-overlay-dark::before,
.nns-black::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: rgba(0, 0, 0, 0.30);
	pointer-events: none;
}
.nns-overlay-dark > .wp-block-cover__image-background,
.nns-black > .wp-block-cover__image-background {
	position: absolute;
	z-index: 0;
}
.nns-overlay-dark > .wp-block-cover__inner-container,
.nns-black > .wp-block-cover__inner-container {
	position: relative;
	z-index: 2;
}

/* Fading overlay: black on the left, transparent toward the right. */
.nns-overlay-fade-left {
	position: relative;
}
.nns-overlay-fade-left::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to right, rgba(0, 0, 0, 0.7), transparent);
	pointer-events: none;
}

/* Bottom fade: darkest at the bottom and transparent toward the top. */
.nns-overlay-fade-bottom {
	position: relative;
}
.nns-overlay-fade-bottom::after {
	display: none;
}

/* Keep the fade on the image layer so cover content remains bright. */
.nns-overlay-fade-bottom > .wp-block-cover__image-background {
	position: absolute;
	z-index: 0;
}
.nns-overlay-fade-bottom > .wp-block-cover__image-background::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.7), transparent);
	pointer-events: none;
}

/* Deterministic header logo: the white brand box is sized and offset
   explicitly so it renders identically in Chrome and Firefox. Font-metric
   differences between browsers used to push the header taller and pull the
   logo inside it; fixing both removes that variance. */
.site-header-sticky .wp-block-group .wp-block-group.has-white-background-color:first-child {
	position: relative;
	flex: 0 0 90px;
	width: 90px;
	min-width: 90px;
	min-height: 90px;
	transform: translateY(30px);
	z-index: 6;
}

/* Logos row under the hero: force items to stay centered on one line and
   shrink if needed so Firefox (which measures text slightly wider than
   Chrome) does not wrap them onto a second line. */
.logos-showcase-grid {
	flex-wrap: nowrap !important;
	align-items: center;
}
.logos-showcase-grid .logos-showcase-item,
.logos-showcase-grid .wp-block-image {
	flex-shrink: 1;
	min-width: 0;
}
.logos-showcase-grid .logos-showcase-item img {
	width: auto;
	max-width: 100%;
}

/* Mobile/tablet-only text+button section shown below the map. Hidden on
   desktop. Otter's otterConditions visibility is not reliably applied to
   core/group blocks, so we force it with CSS. */
.map-text-mobile {
	display: none !important;
}
@media (max-width: 1024px) {
	.map-text-mobile {
		display: block !important;
	}
}

/* "Perché noi" stats row: below 1070px the four columns stack one on top
   of the other, each item centered, with the logo vertically centered
   against its text so the logos line up cleanly regardless of text length. */
.ticss-ea91c231 {
	width: min(calc(100% - 32px), 1400px);
	margin-right: auto !important;
	margin-left: auto !important;
	box-sizing: border-box;
}

@media (max-width: 1069px) {
	.ticss-ea91c231 {
		width: 100%;
		flex-direction: column;
		align-items: center;
		padding: 32px !important;
	}

	.ticss-ea91c231 > .wp-block-column {
		flex: 1 1 auto !important;
		width: 100%;
		max-width: none;
		padding-top: 1rem;
		padding-bottom: 1rem;
		border-right: 0;
		border-bottom: 2px solid var(--wp--preset--color--light-light-gray);
	}

	.ticss-ea91c231 > .wp-block-column > .wp-block-media-text {
		width: min(100%, 400px);
		margin-right: auto;
		margin-left: auto;
	}

	.ticss-ea91c231 > .wp-block-column:last-child {
		border-bottom: 0;
	}
}

@media (max-width: 600px) {
	.ticss-ea91c231 {
		width: 100%;
		margin-top: -48px !important;
		padding: 24px 16px !important;
	}

	.ticss-ea91c231 > .wp-block-column {
		max-width: 100%;
		padding: 20px 0;
	}

	.ticss-ea91c231 > .wp-block-column > .wp-block-media-text {
		display: grid;
		grid-template-columns: 1fr !important;
		gap: 12px;
		justify-items: center;
		text-align: center;
	}

	.ticss-ea91c231 .wp-block-media-text__media {
		grid-column: 1;
		grid-row: 1;
		width: 84px;
		margin: 0 auto;
	}

	.ticss-ea91c231 .wp-block-media-text__media img {
		display: block;
		width: 84px;
		height: 84px;
		object-fit: contain;
	}

	.ticss-ea91c231 .wp-block-media-text__content {
		grid-column: 1;
		grid-row: 2;
		width: 100%;
		padding: 0 12px !important;
		text-align: center;
	}

	.ticss-ea91c231 .wp-block-media-text__content p {
		margin-top: 4px;
		margin-bottom: 4px;
	}
}

/* FAQ answers: when the items wrap/stack on narrow screens, drop the right
   divider so the items fall cleanly on top of each other. */
@media (max-width: 1069px) {
	.wp-block-themeisle-blocks-accordion-item__content .logo-inline-item {
		border-right: 0 !important;
		border-right-width: 0 !important;
		border-right-color: transparent !important;
	}
}

/* On small screens, stack the logos on top of each other instead of
   shrinking them to fit on one line. */
@media (max-width: 599px) {
	.logos-showcase-grid {
		flex-wrap: wrap !important;
		flex-direction: column;
		align-items: center;
	}
	.logos-showcase-grid .logos-showcase-item,
	.logos-showcase-grid .wp-block-image {
		flex-shrink: 0;
	}
	.logos-showcase-grid .logos-showcase-item img {
		width: auto;
		max-width: 100%;
		height: auto;
	}
}

/* Hero section video background: a core/video block is the first child of
   the hero <section>. It is positioned absolutely to cover the whole
   section, behind the content, replacing the previous background image. */
.wp-block-video.nns-hero-video {
	position: absolute;
	inset: 0;
	width: 100%;
	max-width: none;
	height: 100%;
	max-height: none;
	margin: 0;
	padding: 0;
	overflow: hidden;
	z-index: 0;
	pointer-events: none;
}
.wp-block-video.nns-hero-video video {
	position: absolute;
	top: 50%;
	right: auto;
	bottom: auto;
	left: 50%;
	display: block;
	width: auto;
	max-width: none;
	min-width: calc(100% + 4px);
	height: auto;
	max-height: none;
	min-height: calc(100% + 4px);
	margin: 0;
	padding: 0;
	object-fit: cover;
	object-position: center center;
	border: 0;
	outline: 0;
	box-shadow: none;
	-webkit-transform: translate3d(-50%, -50%, 0);
	transform: translate3d(-50%, -50%, 0);
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}

/* Ensure the hero section is a positioning context and its content sits
   above the video. */
.wp-block-group.alignfull.full-width.nns-overlay-dark {
	position: relative;
	overflow: hidden;
}
.wp-block-group.alignfull.full-width.nns-overlay-dark > *:not(.wp-block-video.nns-hero-video) {
	position: relative;
	z-index: 1;
}

/* Shared button treatment: match the compact home-hero buttons everywhere. */
.wp-block-button__link,
.wp-block-themeisle-blocks-button .wp-block-button__link,
.wp-element-button {
	padding: 3px 10px !important;
	min-height: 0 !important;
	height: auto !important;
	border-radius: 10px !important;
	box-sizing: border-box;
}
.site-header-sticky .wp-block-themeisle-blocks-button .wp-block-button__link {
	font-size: 1rem !important;
}

/* Single article reference layout. */
.single .nns-article-hero {
	width: min(1420px, calc(100% - 40px)) !important;
	max-width: 1420px !important;
	margin: 0 auto !important;
	padding-right: 20px !important;
	padding-left: 20px !important;
	box-sizing: border-box;
}
.single .nns-article-hero .wp-block-post-featured-image {
	height: 100% !important;
	min-height: 0 !important;
	aspect-ratio: 4 / 3 !important;
	overflow: hidden;
}
.single .nns-article-hero .wp-block-post-featured-image img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	min-height: 0 !important;
	object-fit: cover;
}
.single .nns-article-main > .wp-block-group,
.single .nns-article-related > .wp-block-group,
.single .nns-article-cta > .wp-block-columns {
	width: 100%;
	max-width: 1400px !important;
	margin-right: auto;
	margin-left: auto;
}
.nns-article-related .wp-block-post-excerpt__excerpt,
.nns-useful-info .wp-block-post-excerpt__excerpt {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}
.single .nns-article-related .wp-block-post-template.is-layout-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	max-width: 1400px;
}
.single .nns-article-related .wp-block-post-template.is-layout-grid > .wp-block-post {
	min-width: 0;
}
.single .nns-article-related .wp-block-post > .wp-block-group,
.single .nns-article-related .wp-block-post .wp-block-post-title,
.single .nns-article-related .wp-block-post .wp-block-post-title a,
.single .nns-article-related .wp-block-post .wp-block-post-excerpt,
.single .nns-article-related .wp-block-post .wp-block-post-excerpt__excerpt {
	color: var(--wp--preset--color--secondario) !important;
}
.single .nns-article-related .wp-block-post .wp-block-post-excerpt a {
	color: var(--wp--preset--color--blue) !important;
}
.single .nns-article-related .nns-card-media-wrap {
	width: 100%;
	aspect-ratio: 16 / 9;
	overflow: hidden;
}
.single .nns-article-related .nns-article-card-media {
	display: block;
	width: 100%;
	height: 100%;
	overflow: hidden;
}
.single .nns-article-related .nns-article-card-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
@media (max-width: 1022px) {
	.single .nns-article-related .wp-block-post-template.is-layout-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 767px) {
	.single .nns-article-hero {
		width: 100% !important;
		min-height: 0 !important;
		height: auto !important;
		max-height: none !important;
		padding-right: 0 !important;
		padding-left: 0 !important;
	}
	.single .nns-article-hero > .wp-block-column:last-child {
		min-height: 36vh !important;
		height: auto !important;
	}
	.single .nns-article-related .wp-block-post-template.is-layout-grid {
		grid-template-columns: 1fr;
	}
}

/* Single article redesign based on NNS-schema-singolo-articolo.pdf. */

.single .nns-article-hero__label {
	align-self: flex-start;
	box-sizing: border-box;
	width: fit-content;
	max-width: 100%;
	margin: 0 0 12px;
	padding: 6px 16px;
	border-radius: 999px;
	background: var(--wp--preset--color--principale);
	color: #fff;
	font-size: 0.78rem;
	line-height: 1;
}
.single .nns-article-hero__divider {
	width: 100%;
	margin: 34px 0 20px;
	border: 0;
	border-top: 1px solid #777;
}
.single .nns-article-share {
	gap: 14px;
	margin: 0;
}
.single .nns-article-share__label {
	margin: 0;
	color: var(--wp--preset--color--secondario);
	font-size: 0.82rem;
	font-weight: 700;
}
.single .nns-article-share__links {
	margin: 0;
	gap: 9px;
}
.single .nns-article-share__links .wp-social-link {
	width: 38px;
	height: 38px;
}
.single .nns-article-hero__image,
.single .nns-article-hero__image img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
}
.single .nns-article-main > .wp-block-group {
	max-width: 1400px !important;
}
.single .nns-article-main .nauticdev-sticky-side-layout {
	align-items: flex-start;
}
.single .nns-article-main .nauticdev-sticky-side__aside > .wp-block-group {
	gap: 28px;
}
.single .nns-article-sidebar-card {
	box-sizing: border-box;
	width: 100%;
	margin: 0;
	padding: 32px;
	border-radius: 16px;
	background: #eaeaea;
}
.single .nns-article-sidebar-card h3 {
	margin: 0 0 24px;
	color: var(--wp--preset--color--principale);
	font-size: clamp(1.35rem, 2vw, 1.8rem);
	line-height: 1.1;
}
.single .nns-article-sidebar-related {
	background: #f0f0f6;
}
.single .nns-article-sidebar-related .wp-block-post-template {
	display: grid;
	gap: 18px;
}
.single .nns-article-sidebar-related__item {
	display: grid !important;
	grid-template-columns: minmax(92px, 40%) minmax(0, 1fr);
	gap: 16px;
	align-items: stretch;
	margin: 0;
}
.single .nns-article-sidebar-related__image {
	width: 100%;
	height: 100%;
	min-height: 112px;
	margin: 0;
	overflow: hidden;
	background: var(--wp--preset--color--principale);
}
.single .nns-article-sidebar-related__image img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 112px;
	object-fit: contain;
	border-radius: 0;
}
.single .nns-article-sidebar-related__body {
	display: flex;
	min-width: 0;
	justify-content: flex-start;
	flex-direction: column;
	gap: 7px;
}
.single .nns-article-sidebar-related__body .wp-block-post-title {
	margin: 0;
	font-size: 0.98rem;
	line-height: 1.2;
	text-transform: uppercase;
}
.single .nns-article-sidebar-related__body .wp-block-post-title a,
.single .nns-article-sidebar-related__body .wp-block-post-excerpt a {
	color: var(--wp--preset--color--principale);
}
.single .nns-article-sidebar-related__body .wp-block-post-excerpt {
	margin: 0;
	font-size: 0.82rem;
	line-height: 1.35;
}
.single .nns-article-sidebar-related__body .wp-block-post-excerpt__excerpt {
	display: -webkit-box;
	margin: 0;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}
.single .nns-article-sidebar-related__body .wp-block-post-excerpt__more-link {
	display: block;
	margin-top: 7px;
	font-size: 0.78rem;
	font-weight: 700;
	text-decoration: none;
}
.single .nns-article-sidebar-categories {
	background: var(--wp--preset--color--principale);
	color: #fff;
}
.single .nns-article-sidebar-categories h3 {
	color: #fff;
}
.single .nns-article-sidebar-categories .wp-block-categories-list {
	margin: 0;
	padding: 0;
	list-style: none;
}
.single .nns-article-sidebar-categories .wp-block-categories-list li {
	border-bottom: 1px solid rgba(255, 255, 255, 0.65);
}
.single .nns-article-sidebar-categories .wp-block-categories-list li:last-child {
	border-bottom: 0;
}
.single .nns-article-sidebar-categories .wp-block-categories-list a {
	display: block;
	padding: 9px 18px 9px 0;
	color: #fff;
	font-weight: 700;
	text-decoration: none;
}

@media (max-width: 1022px) {
	.single .nns-article-hero {
		display: flex;
		flex-direction: column;
		min-height: 0 !important;
		height: auto !important;
		max-height: none !important;
	}

	.single .nns-article-hero > .wp-block-column {
		width: 100%;
		flex-basis: auto !important;
		min-height: 0 !important;
		height: auto !important;
		max-height: none !important;
	}
	.single .nns-article-hero > .wp-block-column:first-child {
		order: 1;
	}
	.single .nns-article-hero > .wp-block-column:last-child {
		order: 2;
		min-height: 0;
	}

	.single .nns-article-main .nauticdev-sticky-side-layout {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr);
		gap: 28px;
	}
	.single .nns-article-main .nauticdev-sticky-side__aside,
	.single .nns-article-main .nauticdev-sticky-side__aside > .wp-block-group {
		display: contents;
	}
	.single .nns-article-toc {
		order: 1;
	}
	.single .nns-article-main .nauticdev-sticky-side__content {
		order: 2;
		width: 100%;
		flex-basis: auto !important;
	}
	.single .nns-article-sidebar-related {
		order: 3;
	}
	.single .nns-article-sidebar-categories {
		order: 4;
	}
	.single .nns-article-sidebar-related .wp-block-post-template {
		display: flex;
		gap: 18px;
		overflow-x: auto;
		overflow-y: hidden;
		scroll-snap-type: x mandatory;
		scrollbar-width: thin;
		-webkit-overflow-scrolling: touch;
	}
	.single .nns-article-sidebar-related .wp-block-post-template > .wp-block-post {
		box-sizing: border-box;
		min-width: 0;
		flex: 0 0 100%;
		scroll-snap-align: start;
		scroll-snap-stop: always;
	}
}
