/*!
Theme Name: lotus
Theme URI: https://www.protocollicreativi.it/
Author: Protocolli Creativi - Web Agency, Software House, System Integrator
Author URI: https://www.protocollicreativi.it/
Description: Description
Version: 1.2.0
Tested up to: 6.2
Requires PHP: 8.2
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: lotus
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

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

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

*/

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

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

/*--------------------------------------------------------------
# Design Tokens — Palette cromatica
--------------------------------------------------------------*/

:root {
	/* Verde Salvia */
	--color-sage-dark:    #2C4230;   /* headings principali, testi scuri */
	--color-sage-mid:     #5E8370;   /* verde sfondo unificato (riunione 08/09: verde pagine servizi), CTA secondari, icone */
	--color-sage-light:   #8FAF82;   /* sfondo sezioni, hover state */
	--color-logo:         #5A8C82;   /* colore esatto del logo — nav e branding */

	/* Terracotta */
	--color-terra:        #B5442C;   /* CTA primario, accenti, highlight */
	--color-terra-light:  #C96A50;   /* hover CTA, variante chiara */

	/* Beige / Panna */
	--color-beige-warm:   #EDE5D0;   /* panna caldo — sfondo principale sezioni */
	--color-beige-mid:    #D8CDB5;   /* beige medio — sezioni alternate, card */
	--color-beige-dark:   #C4B49A;   /* beige scuro — bordi, separatori */

	/* Testo */
	--color-text-dark:    #423D36;   /* body text principale */
	--color-text-mid:     #4A4540;   /* testo secondario */

	/* Neutri */
	--color-white:        #FFFFFF;
	--color-off-white:    #F5EFE0;   /* panna chiaro — body bg, widget, elementi UI */
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

sub {
	bottom: -0.25em;
}

sup {
	top: -0.5em;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

html {
	box-sizing: border-box;
}

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

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

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

p {
	color: #423d36;
	font-size: 19px;
	font-weight: 400;
	margin-bottom: 1.5em;
	line-height: 26px;
}

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

blockquote {
	margin: 0 1.5em;
}

address {
	margin: 0 0 1.5em;
}

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

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

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

mark,
ins {
	background: #fff9c0;
	text-decoration: none;
}

big {
	font-size: 125%;
}

/* Elements
--------------------------------------------- */
/* html terracotta = canvas oltre la fine della pagina invisibile dietro la barra footer */
html {
	background: var(--color-terra);
}

body {
	background: var(--color-off-white);
	font-family: "futura-pt", Arial, sans-serif;
}

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

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

ul {
	list-style: disc;
}

ol {
	list-style: decimal;
}

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

dt {
	font-weight: 700;
}

dd {
	margin: 0 1.5em 1.5em;
}

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

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

figure {
	margin: 1em 0;
}

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

/* Links
--------------------------------------------- */
a {
	color: var(--color-sage-mid);
}


a:hover,
a:focus,
a:active {
	color: var(--color-sage-dark);
}

a:focus {
	outline: thin dotted;
}

a:hover,
a:active {
	outline: 0;
}

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

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

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

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

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

select {
	border: 1px solid #ccc;
}

textarea {
	width: 100%;
}

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

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

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

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

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

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

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

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

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

.main-navigation li {
	position: relative;
}

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

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

/* Footer pannello menu mobile — visibile solo su mobile */
.lotus-menu-footer {
	display: none;
}

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

	.menu-toggle {
		display: none;
	}

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

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

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

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

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

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

.post,
.page {
	margin: 0 0 1.5em;
}

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

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

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

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

.bypostauthor {
	display: block;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.gallery-caption {
	display: block;
}

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

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

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

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

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

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

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

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

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

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

	/*rtl:ignore*/
	float: left;

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

.alignright {

	/*rtl:ignore*/
	float: right;

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

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

/*--------------------------------------------------------------
# Header
--------------------------------------------------------------*/

#masthead.site-header {
	background: var(--color-beige-warm);
	border-bottom: 1px solid var(--color-beige-mid);
	position: sticky;
	top: 0;
	z-index: 200; /* sopra il pannello menu full-screen (z-index 150) così logo restano sempre visibili */
	padding: 0px;
}

#masthead .header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	max-width: none;
	margin: 0 auto;
	padding: 0 40px;
	height: 120px;
	gap: 24px;
}

/* Branding — logo + 3 righe di testo */
#masthead .site-branding {
	display: flex;
	align-items: center;
	gap: 22px;
	flex-shrink: 0;
}

#masthead .site-logo img,
#masthead .site-logo .custom-logo {
	width: 150px !important;
	height: auto !important;
	display: block;
	position: relative;
	z-index: 250; /* sopra il pannello menu full-screen (z-index 150): logo sempre visibile */
	mix-blend-mode: multiply; /* sfondo bianco del PNG invisibile sul beige */
	/* margin-left: 0%; */
}

#masthead a.site-branding-text {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	line-height: 1;
	gap: 4px;
	position: relative;
	z-index: 250; /* visibile anche col pannello menu full-screen aperto */
}

#masthead a.site-branding-text .brand-name {
	display: block;
	font-family: "futura-pt", Arial, sans-serif !important;
	font-size: 28px !important;
	font-weight: 400 !important;
	color: #4C6F60 !important;
	letter-spacing: 3px;
	text-transform: uppercase;
	line-height: 1.2;
	margin: 0;
}

#masthead a.site-branding-text .site-name {
	display: block;
	font-family: "futura-pt", Arial, sans-serif !important;
	font-size: 22px !important;
	font-weight: 400 !important;
	color: var(--color-logo);
	letter-spacing: 0.3px;
	line-height: 1.3;
	margin: 0;
	text-transform: none;
}

#masthead a.site-branding-text .site-tagline {
	display: block;
	font-family: "futura-pt", Arial, sans-serif !important;
	font-size: 14px !important;
	font-weight: 300 !important;
	color: var(--color-logo) !important;
	letter-spacing: 0.2px;
	line-height: 1.4;
	margin: 0;
	text-transform: none;
}

/* Navigation
 * wp_nav_menu genera: <div class="nav-menu"><ul><li>
 * Il tema base ha .main-navigation { width: 100% } che va resettato
 */
#masthead .main-navigation {
	display: flex !important;
	width: auto !important;
	flex: 1;
	justify-content: center;
}

#masthead .main-navigation .nav-menu {
	display: flex !important;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: 36px;
	align-items: center;
}

#masthead .main-navigation .nav-menu > li {
	margin: 0;
	padding: 0;
	float: none;
}

#masthead .main-navigation .nav-menu > li > a {
	display: inline-block;
	font-family: "futura-pt", Arial, sans-serif !important;
	font-size: 19px !important;
	font-weight: 400 !important;
	color: #4C6F60 !important;
	text-decoration: none;
	text-transform: capitalize;
	letter-spacing: 0.08em;
	padding: 0 0 0px;
	white-space: nowrap;
	position: relative;
}

#masthead .main-navigation .nav-menu > li > a::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 0;
	height: 1px;
	background: #4C6F60;
	transition: width 0.3s ease;
}

#masthead .main-navigation .nav-menu > li > a:hover::after {
	width: 100%;
}

/* ── Dropdown submenu ───────────────────────────────────────── */
#masthead .main-navigation .nav-menu .menu-item-has-children,
#masthead .main-navigation .nav-menu .page_item_has_children {
	position: relative;
}

#masthead .main-navigation .nav-menu .sub-menu,
#masthead .main-navigation .nav-menu .children {
	display: block !important;
	position: absolute;
	top: calc(100% + 14px);
	left: 50%;
	transform: translateX(-50%);
	min-width: 240px;
	background: var(--color-beige-warm);
	border-top: 1px solid var(--color-beige-mid);
	border-radius: 0;
	box-shadow: none;
	list-style: none;
	margin: 0;
	padding: 10px 0;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s;
	z-index: 999;
}

/* Ponte invisibile sul gap tra menu e dropdown:
 * mantenere il hover attraversando i 14px di distacco */
#masthead .main-navigation .nav-menu .sub-menu::before,
#masthead .main-navigation .nav-menu .children::before {
	content: '';
	position: absolute;
	top: -14px;
	left: 0;
	width: 100%;
	height: 14px;
	background: transparent;
}

/* Aperto (via JS .is-open e — fallback robusto — CSS hover puro sul desktop) */
#masthead .main-navigation .nav-menu .menu-item-has-children.is-open > .sub-menu,
#masthead .main-navigation .nav-menu .page_item_has_children.is-open > .children {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateX(-50%) translateY(0);
}

@media (hover: hover) and (min-width: 1025px) {
	#masthead .main-navigation .nav-menu .menu-item-has-children:hover > .sub-menu,
	#masthead .main-navigation .nav-menu .page_item_has_children:hover > .children,
	#masthead .main-navigation .nav-menu .menu-item-has-children a:focus ~ .sub-menu {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transform: translateX(-50%) translateY(0);
	}
}

/* Logo a sinistra — sotto i 1500px riduci il padding laterale dell'header */
@media (max-width: 1500px) {
	#masthead .header-inner {
		padding: 0 28px;
	}
}

/* Link dentro il sottomenu */
#masthead .main-navigation .nav-menu .sub-menu li,
#masthead .main-navigation .nav-menu .children li {
	margin: 0;
	padding: 0;
}

#masthead .main-navigation .nav-menu .sub-menu li a,
#masthead .main-navigation .nav-menu .children li a {
	display: block !important;
	width: 100% !important;
	box-sizing: border-box;
	font-family: "futura-pt", Arial, sans-serif !important;
	font-size: 19px !important;
	font-weight: 400 !important;
	color: #4C6F60 !important;
	text-transform: none !important;
	letter-spacing: 0.08em;
	padding: 12px 24px !important;
	white-space: nowrap;
	text-decoration: none;
	transition: background 0.15s, color 0.15s;
	position: static;
}

#masthead .main-navigation .nav-menu .sub-menu li a::after,
#masthead .main-navigation .nav-menu .children li a::after {
	display: none !important;
}

#masthead .main-navigation .nav-menu .sub-menu li a:hover,
#masthead .main-navigation .nav-menu .children li a:hover {
	background: var(--color-beige-mid);
	color: var(--color-sage-dark) !important;
}

/* Freccia sul link padre */
.dropdown-arrow {
	display: inline-block;
	margin-left: 5px;
	width: 7px;
	height: 7px;
	border-right: 1.5px solid #4C6F60;
	border-bottom: 1.5px solid #4C6F60;
	transform: rotate(45deg) translateY(-2px);
	transition: transform 0.2s ease;
	vertical-align: middle;
}

.menu-item-has-children.is-open > a .dropdown-arrow {
	transform: rotate(-135deg) translateY(-2px);
}

/* ── Burger button (visibile solo su mobile) ──────────────────── */
.menu-toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 5px;
	width: 40px;
	height: 40px;
	background: transparent;
	border: none;
	cursor: pointer;
	padding: 4px;
	z-index: 200;
	flex-shrink: 0;
}

.burger-line {
	display: block;
	width: 24px;
	height: 2px;
	background: var(--color-logo);
	border-radius: 2px;
	transition: transform 0.25s ease, opacity 0.25s ease;
	transform-origin: center;
}

/* Burger → X quando aperto */
.menu-toggle.is-open .burger-line:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}
.menu-toggle.is-open .burger-line:nth-child(2) {
	opacity: 0;
}
.menu-toggle.is-open .burger-line:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

/* ── HEADER FLUIDO — 1280-1650px: il menu orizzontale si comprime
   progressivamente (font, gap, logo) invece di traboccare ────── */
@media (min-width: 1280px) and (max-width: 1650px) {
	#masthead .header-inner {
		padding: 0 28px;
		gap: 16px;
	}

	#masthead .site-logo img,
	#masthead .site-logo .custom-logo {
		width: clamp(110px, 7.3vw, 150px) !important;
	}

	#masthead a.site-branding-text .brand-name {
		font-size: clamp(22px, 1.5vw, 28px) !important;
	}

	#masthead a.site-branding-text .site-name {
		font-size: clamp(17px, 1.2vw, 22px) !important;
	}

	#masthead a.site-branding-text .site-tagline {
		font-size: clamp(12px, 0.85vw, 14px) !important;
	}

	#masthead .main-navigation .nav-menu {
		gap: clamp(16px, 1.9vw, 36px);
	}

	#masthead .main-navigation .nav-menu > li > a {
		font-size: clamp(15.5px, 1.15vw, 19px) !important;
	}

	#masthead .btn-prenota {
		font-size: clamp(14px, 1vw, 16px) !important;
		padding: clamp(11px, 0.9vw, 14px) clamp(20px, 1.8vw, 28px);
	}
}

/* ── MENU MOBILE — breakpoint 1279px (rifatto da capo) ───────── */
@media (max-width: 1279px) {

	/* Header compatto: logo a sinistra, burger a destra */
	#masthead .header-inner {
		height: 76px;
		padding: 0 20px;
		gap: 12px;
	}

	#masthead .site-branding {
		order: 1;
		margin-right: auto;
		gap: 14px;
	}

	#masthead .site-logo img,
	#masthead .site-logo .custom-logo {
		width: 64px !important;
	}

	#masthead a.site-branding-text .brand-name {
		font-size: 20px !important;
		letter-spacing: 2px;
	}

	#masthead a.site-branding-text .site-name {
		font-size: 15px !important;
	}

	#masthead a.site-branding-text .site-tagline {
		display: none;
	}

	/* Burger visibile, a destra */
	.menu-toggle {
		display: flex;
		order: 3;
	}

	/* CTA PRENOTA compatta in header mobile (riunione 08/09: mancava su mobile).
	   Le dimensioni del bottone sono ovverraidate più avanti nel file
	   (dopo le regole desktop di .btn-prenota) per il cascade. */
	.header-cta {
		display: flex !important;
		order: 2;
	}

	/* ── Pannello menu full-screen ─────────────────────────────
	 * display:none !important serve a battere la regola desktop
	 * #masthead .main-navigation { display:flex !important } */
	#site-navigation.main-navigation {
		display: none !important;
		position: fixed;
		inset: 0;
		width: 100%;
		height: 100vh;
		height: 100dvh;
		background: var(--color-beige-warm);
		z-index: 150;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		padding: 110px 28px 48px;
		box-sizing: border-box;
	}

	#site-navigation.main-navigation.toggled {
		display: flex !important;
		flex-direction: column;
		align-items: stretch;
		justify-content: flex-start; /* il desktop ha justify-content:center: verticale qui, si parte dall'alto */
		animation: lotusMenuIn 0.25s ease both;
	}

	@keyframes lotusMenuIn {
		from { opacity: 0; transform: translateY(-10px); }
		to   { opacity: 1; transform: translateY(0); }
	}

	/* Voci in colonna, riga intera cliccabile */
	#site-navigation .nav-menu {
		flex-direction: column !important;
		width: 100%;
		gap: 0 !important;
		align-items: stretch !important;
	}

	#site-navigation .nav-menu > li {
		width: 100%;
		margin: 0;
		border-bottom: 1px solid var(--color-beige-mid);
	}

	#site-navigation .nav-menu > li > a {
		display: flex !important;
		justify-content: space-between;
		align-items: center;
		width: 100%;
		box-sizing: border-box;
		font-size: 20px !important;
		padding: 16px 0 !important;
		white-space: normal;
	}

	#site-navigation .nav-menu > li > a::after {
		display: none;
	}

	/* ── Footer pannello menu: telefono + social da ACF ───────── */
	.lotus-menu-footer {
		display: flex;
		justify-content: space-between;
		align-items: center;
		margin-top: 40px;
		padding-top: 28px;
		border-top: 1px solid var(--color-beige-mid);
	}

	.lotus-menu-tel {
		display: inline-flex;
		align-items: center;
		gap: 10px;
		font-family: "futura-pt", Arial, sans-serif;
		font-size: 19px;
		font-weight: 400;
		color: #4C6F60;
		text-decoration: none;
		white-space: nowrap;
	}

	.lotus-menu-socials {
		display: inline-flex;
		align-items: center;
		gap: 18px;
	}

	.lotus-menu-socials a {
		display: inline-flex;
		color: #4C6F60;
	}

	/* ── Submenu: accordion (apre con .is-open via JS) ───────── */
	#masthead #site-navigation .nav-menu .sub-menu,
	#masthead #site-navigation .nav-menu .children {
		display: none !important;
		position: static !important;
		transform: none !important;
		opacity: 1 !important;
		visibility: visible !important;
		pointer-events: auto !important;
		background: transparent !important;
		box-shadow: none !important;
		border-top: none !important;
		border-radius: 0 !important;
		min-width: 0 !important;
		padding: 0 0 8px 18px !important;
	}

	#masthead #site-navigation .nav-menu .sub-menu::before {
		display: none !important;
	}

	#masthead #site-navigation .nav-menu .menu-item-has-children.is-open > .sub-menu,
	#masthead #site-navigation .nav-menu .page_item_has_children.is-open > .children {
		display: block !important;
	}

	#masthead #site-navigation .nav-menu .sub-menu li a,
	#masthead #site-navigation .nav-menu .children li a {
		font-size: 17px !important;
		padding: 12px 0 !important;
		border-bottom: none !important;
		color: var(--color-text-mid) !important;
	}

	/* Freccia sul link padre: ruota quando il submenu è aperto */
	#site-navigation .dropdown-arrow {
		width: 9px;
		height: 9px;
		margin-left: 10px;
		flex-shrink: 0;
	}

	#site-navigation .menu-item-has-children.is-open > a .dropdown-arrow {
		transform: rotate(-135deg) translateY(-2px);
	}

	/* Blocca lo scroll della pagina quando il menu è aperto */
	body.menu-open {
		overflow: hidden;
	}
}

/* CTA Prenota */
#masthead .header-cta {
	flex-shrink: 0;
	position: relative;
	z-index: 250; /* come il logo: resta visibile sopra il pannello menu mobile (z-index 150) */
}

#masthead .btn-prenota {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: var(--color-terra);
	border: 2px solid var(--color-terra);
	border-radius: 10px;
	color: #fff !important;
	font-family: "futura-pt", Arial, sans-serif !important;
	font-size: 16px !important;
	font-weight: 400 !important;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	padding: 14px 28px;
	text-decoration: none;
	transition: all 0.2s ease, visibility 0s;
	white-space: nowrap;
	flex-shrink: 0;
	cursor: pointer;
}

#masthead .btn-prenota:hover {
	background: transparent;
	border-color: var(--color-terra);
	color: var(--color-terra) !important;
}

/* CTA PRENOTA compatta su mobile — DOPO le regole desktop per battere il cascade
   (riunione 08/09: la CTA doveva esserci anche su mobile) */
@media (max-width: 1279px) {
	#masthead .btn-prenota {
		font-size: 13px !important;
		padding: 9px 16px;
		border-width: 1.5px;
		gap: 0;
		white-space: nowrap;
	}

	#masthead .btn-prenota svg {
		display: none;
	}
}

/* Schermi piccoli: header ancora più compatto per far stare
   logo + PRENOTA + burger su una riga */
@media (max-width: 480px) {
	#masthead .header-inner {
		gap: 8px;
		padding: 0 12px;
	}

	#masthead .site-logo img,
	#masthead .site-logo .custom-logo {
		width: 48px !important;
	}

	#masthead a.site-branding-text .brand-name {
		font-size: 17px !important;
	}

	#masthead a.site-branding-text .site-name {
		font-size: 12px !important;
	}

	#masthead .btn-prenota {
		font-size: 12px !important;
		padding: 8px 13px;
	}
}

/*--------------------------------------------------------------
# Hero
--------------------------------------------------------------*/

.hero {
	width: 100%;
}

/* Immagine di sfondo + contenuto sovrapposto */
.hero-inner {
	position: relative;
	width: 100%;
	height: 35vw;
	background-size: cover;
	background-position: center top;
	background-repeat: no-repeat;
	display: flex;
	align-items: center;
}

/* Testo posizionato nella metà destra */
.hero-content {
	position: relative;
	z-index: 2;
	margin-left: 50%;
	max-width: 580px;
	padding-right: 60px;
}

.hero-title {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 60px;
	font-weight: 400;
	color: #ffffff;
	line-height: 1.15;
	margin: 0 0 18px 0;
	float: right;
}

.hero-subtitle {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 23px;
	font-weight: 400;
	color: #fff;
	line-height: 1.2;
	margin: 0 0 30px 104px;
	text-align: right;
	width: auto;
	/* float: right; */
}

/* Bottone CTA hero */
.btn-hero {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: var(--color-terra);
	border: 2px solid var(--color-terra);
	border-radius: 10px;
	color: #fff;
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 18px;
	font-weight: 400;
	letter-spacing: 0.5px;
	padding: 14px 28px;
	text-decoration: none;
	transition: all 0.2s ease, visibility 0s;
	cursor: pointer;
	float: right;
}

.btn-hero svg {
	flex-shrink: 0;
}

.btn-hero:hover {
	background: transparent;
	color: var(--color-terra);
}

/* Barra colorata beige sotto la hero */
.hero-bar {
	background: var(--color-beige-warm);
	width: 100%;
}

.hero-bar-inner {
	max-width: 1120px;
	margin: 0 auto;
	padding: 47px 40px;
	text-align: center;
}

.hero-bar-inner p {
	font-size: 26px;
	color: var(--color-sage-dark);
	line-height: 1.5;
	margin: 0px;
	font-weight: 400;
	opacity: 0.9;
}

/* Hero — mobile: testo e CTA dentro la hero, larghezza piena */
@media (max-width: 768px) {
	.hero-inner {
		height: auto;
		min-height: 440px;
		align-items: flex-end;
		justify-content: center;
		padding: 48px 24px 56px;
		/* Il viso di Ilenia è a ~30% della foto: lo centriamo nel viewport mobile */
		background-position: 30% center;
	}

	/* Velatura scura per leggibilità del testo sulla foto */
	.hero-inner::before {
		content: "";
		position: absolute;
		inset: 0;
		background: linear-gradient(to top, rgba(0,0,0,0.62) 0%, rgba(0,0,0,0.28) 55%, rgba(0,0,0,0.12) 100%);
	}

	.hero-content {
		margin-left: 0;
		max-width: 100%;
		padding-right: 0;
		text-align: center;
	}

	.hero-title {
		float: none;
		font-size: 34px;
		margin: 0 0 14px 0;
	}

	.hero-subtitle {
		margin-left: 0;
		text-align: center;
		font-size: 19px;
		margin-bottom: 26px;
	}

	.btn-hero {
		float: none;
	}

	.hero-bar-inner {
		padding: 32px 24px;
	}

	.hero-bar-inner p {
		font-size: 20px;
	}

	section.cs-quote {
		display: flex;
		width: 100%;
		background: var(--color-beige-warm);
		box-sizing: border-box;
		min-height: 520px;
		padding: 0px;
	}

	/* Template servizi — i box si estendono a tutta larghezza, senza
	   spazio sullo sfondo del wrapper né laterale né verticale */
	div.servizio-blocchi-wrapper {
		padding: 0;
	}

	div.servizio-blocco + div.servizio-blocco {
		margin-top: 0;
	}

	div.servizio-testo-box {
		margin: 0;
	}

	/* Niente fascia verde sotto l'ultimo box */
	div.servizio-blocchi-wrapper > *:last-child {
		margin-bottom: 0;
	}

	/* Il testo dei blocchi usa tutta la larghezza disponibile */
	div.servizio-blocco-content-inner {
		width: 100%;
		max-width: 100%;
		display: flex;
		flex-direction: column;
		align-items: flex-start;
	}
}

/*--------------------------------------------------------------
# Chi Siamo
--------------------------------------------------------------*/

.chi-siamo {
	display: flex;
	width: 100%;
	background-color: var(--color-sage-mid);
	background-size: cover;
	background-position: center;
	padding: 75px;
	box-sizing: border-box;
}

.chi-siamo-content {
	flex: 0 0 50%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	padding: 60px 30px;
	background: var(--color-beige-warm);
}

.chi-siamo-content-inner {
	width: 100%;
	max-width: 650px;
	display: flex;
	flex-direction: column;
}

.chi-siamo-pretitle {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 20px;
	font-weight: 400;
	color: var(--color-sage-dark);
	letter-spacing: 0.5px;
	margin: 0 0 16px 0;
}

.chi-siamo-title {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 38px;
	font-weight: 400;
	color: var(--color-sage-dark);
	line-height: 1.1em;
	margin: 0 0 24px 0;
}

.chi-siamo-text {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 16px;
	font-weight: 300;
	color: var(--color-sage-dark);
	line-height: 1.7;
	margin: 0 0 36px 0;
	opacity: 0.85;
}

.btn-chi-siamo {
	display: inline-block;
	align-self: flex-start;
	background: var(--color-terra);
	border: 2px solid var(--color-terra);
	border-radius: 10px;
	color: #fff;
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 16px;
	font-weight: 400;
	letter-spacing: 0.5px;
	padding: 14px 32px;
	text-decoration: none;
	transition: all 0.2s ease, visibility 0s;
	cursor: pointer;
}

.btn-chi-siamo:hover {
	background: transparent;
	color: var(--color-terra);
}

.chi-siamo-image {
	flex: 0 0 50%;
	overflow: hidden;
}

.chi-siamo-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/*--------------------------------------------------------------
# Naturopatia
--------------------------------------------------------------*/

.naturopatia {
	position: relative;
	width: 100%;
	min-height: 760px;
	background-size: cover;
	background-position: center;
	display: flex;
	align-items: center;
	justify-content: flex-end;
}

.naturopatia::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(to right, rgba(0,0,0,0.25) 0%, rgba(0,0,0,0.1) 50%, rgba(0,0,0,0.35) 100%);
}

.naturopatia-content {
	position: relative;
	z-index: 1;
	width: 50%;
	display: flex;
	justify-content: center;
	padding: 80px 80px 80px 40px;
	box-sizing: border-box;
}

.naturopatia-content-inner {
	width: 100%;
	max-width: 450px;
	display: flex;
	flex-direction: column;
}

.naturopatia-pretitle {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 20px;
	font-weight: 400;
	color: #fff;
	letter-spacing: 0.5px;
	margin: 0 0 16px 0;
}

.naturopatia-title {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 38px;
	font-weight: 400;
	color: #fff;
	line-height: 1.1em;
	margin: 0 0 24px 0;
}

.naturopatia-text {
	font-size: 17px;
	font-weight: 400;
	color: #fff;
	line-height: 1.6;
	margin: 0 0 36px 0;
}

.naturopatia-text p {
	color: #fff;
	margin-bottom: 0;
}

.btn-naturopatia {
	display: inline-block;
	align-self: flex-start;
	border: 1.5px solid #fff;
	border-radius: 10px;
	color: #fff;
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 16px;
	font-weight: 400;
	letter-spacing: 0.5px;
	padding: 14px 32px;
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease;
}

.btn-naturopatia:hover {
	background: #fff;
	color: var(--color-sage-dark);
}

.home-page-content {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 120px 40px;
	box-sizing: border-box;
	text-align: center;
}

.home-page-content h2,
.home-page-content h3 {
	margin-bottom: 80px;
}

/* Responsive Naturopatia */
@media (max-width: 900px) {
	.naturopatia-content {
		width: 100%;
		padding: 60px 40px;
		justify-content: flex-start;
	}

	.naturopatia-content-inner {
		max-width: 100%;
	}
}

@media (max-width: 600px) {
	.naturopatia {
		min-height: 400px;
	}

	.naturopatia-content {
		padding: 48px 24px;
	}

	.naturopatia-title {
		font-size: 28px;
	}
}

/*--------------------------------------------------------------
# Servizi Carousel
--------------------------------------------------------------*/

.servizi-section {
	width: 100%;
	padding: 80px 60px;
	background: var(--color-beige-warm);
	box-sizing: border-box;
	overflow: hidden;
}

.servizi-header {
	text-align: center;
	max-width: 800px;
	margin: 0 auto 56px;
}

.servizi-pretitle {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 20px;
	font-weight: 200;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--color-sage-dark);
	margin: 0 0 16px 0;
}

.servizi-title {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 42px;
	font-weight: 400;
	color: var(--color-sage-dark);
	line-height: 1.1;
	margin: 0 0 20px 0;
}

.servizi-description {
	font-size: 17px;
	color: var(--color-text-dark);
	line-height: 1.6;
	margin: 0;
}

/* Swiper container */
.servizi-swiper {
	width: 100%;
	height: 580px !important;
	overflow: visible;
}

/* Card */
.servizi-card {
	position: relative;
	width: 435px !important;
	height: 580px !important;
	border-radius: 16px;
	overflow: hidden;
	cursor: pointer;
}

.servizi-card-bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center top;
	transition: transform 0.4s ease;
}

.servizi-card:hover .servizi-card-bg {
	transform: scale(1.04);
}

.servizi-card-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(76, 111, 96, 0.02), rgba(76, 111, 96, 0.68)) !important;
}

.servizi-card-content {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: 28px 22px;
	z-index: 2;
}

.servizi-card-title {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 26px;
	font-weight: 400;
	color: #fff;
	margin: 0 0 10px 0;
	line-height: 1.2;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.servizi-card-excerpt {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 17px;
	font-weight: 300;
	color: rgba(255, 255, 255, 0.92);
	line-height: normal;
	margin: 0 0 18px 0;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.btn-servizio {
	display: inline-block;
	border: 1.5px solid rgba(255, 255, 255, 0.85);
	border-radius: 10px;
	color: #fff;
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 16px;
	font-weight: 400;
	letter-spacing: 0.5px;
	padding: 10px 70px;
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.btn-servizio:hover {
	background: #fff;
	color: var(--color-sage-dark);
}

/* Frecce navigazione */
.servizi-swiper .swiper-button-prev,
.servizi-swiper .swiper-button-next {
	width: 42px;
	height: 42px;
	background: #fff;
	border-radius: 50%;
	box-shadow: 0 2px 8px rgba(0,0,0,0.15);
	color: var(--color-sage-dark);
}

.servizi-swiper .swiper-button-prev::after,
.servizi-swiper .swiper-button-next::after {
	font-size: 14px;
	font-weight: 700;
}

/* Messaggio vuoto */
.servizi-empty {
	text-align: center;
	color: #999;
	font-style: italic;
	padding: 40px 0;
}

/* Responsive Servizi Carousel */
@media (max-width: 900px) {
	.servizi-section {
		padding: 60px 30px;
	}

	.servizi-title {
		font-size: 32px;
	}
}

@media (max-width: 600px) {
	.servizi-section {
		padding: 48px 20px;
	}

	.servizi-title {
		font-size: 26px;
	}

	.servizi-swiper {
		height: 360px;
	}

	.servizi-card {
		height: 360px;
	}
}

/* Responsive Chi Siamo */
@media (max-width: 900px) {
	.chi-siamo {
		flex-direction: column;
		padding: 40px;
	}

	.chi-siamo-content {
		flex: none;
		padding: 60px 30px;
		align-items: flex-start;
	}

	.chi-siamo-content-inner {
		max-width: 100%;
	}

	.chi-siamo-image {
		flex: none;
		height: 320px;
	}
}

@media (max-width: 600px) {
	.chi-siamo {
		padding: 24px;
	}

	.chi-siamo-content {
		padding: 48px 24px;
	}

	.chi-siamo-title {
		font-size: 28px;
	}

	.chi-siamo-image {
		height: 260px;
	}
}

/* =============================================
   VANTAGGI
   ============================================= */

.vantaggi {
	display: flex;
	width: 100%;
	background: var(--color-sage-mid);
	padding: 0 75px 75px 75px;
	box-sizing: border-box;
}

.vantaggi-image {
	flex: 0 0 50%;
	overflow: hidden;
}

.vantaggi-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.vantaggi-content {
	flex: 0 0 50%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	padding: 60px 30px;
	background: var(--color-beige-warm);
}

.vantaggi-content-inner {
	width: 100%;
	max-width: 450px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.vantaggi-pretitle {
	font-size: 20px;
	font-weight: 400;
	color: var(--color-sage-dark);
	margin-bottom: 12px;
}

.vantaggi-title {
	font-size: 38px;
	font-weight: 400;
	color: var(--color-sage-dark);
	line-height: 1.1em;
	margin-bottom: 24px;
}

.vantaggi-text {
	color: var(--color-text-dark);
	font-size: 17px;
	line-height: 1.6em;
	margin-bottom: 32px;
}

.btn-vantaggi {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--color-terra);
	border: none;
	color: #fff;
	padding: 16px 28px;
	font-size: 16px;
	font-weight: 400;
	letter-spacing: 0.5px;
	text-decoration: none;
	border-radius: 10px;
	transition: background 0.25s ease;
	margin-bottom: 24px;
}

.btn-vantaggi:hover {
	background: var(--color-terra-light);
}

.vantaggi-links {
	list-style: none;
	padding: 0;
	margin: 0;
}

.vantaggi-links li {
	margin-bottom: 8px;
}

.vantaggi-links a {
	color: var(--color-sage-dark);
	font-size: 15px;
	font-weight: 400;
	text-decoration: underline;
	text-underline-offset: 3px;
	transition: opacity 0.2s ease;
}

.vantaggi-links a:hover {
	opacity: 0.7;
}

/* Responsive Vantaggi */
@media (max-width: 900px) {
	.vantaggi {
		flex-direction: column;
		padding: 40px;
	}

	.vantaggi-image {
		flex: none;
		height: 320px;
	}

	.vantaggi-content {
		flex: none;
		padding: 60px 30px;
		align-items: flex-start;
	}

	.vantaggi-content-inner {
		max-width: 100%;
	}

	.vantaggi-title {
		font-size: 30px;
	}
}

@media (max-width: 600px) {
	.vantaggi {
		padding: 24px;
	}

	.vantaggi-content {
		padding: 48px 24px;
	}

	.vantaggi-image {
		height: 260px;
	}

	.vantaggi-title {
		font-size: 28px;
	}
}

/* =============================================
   APPROFONDIMENTI
   ============================================= */

.approfondimenti-section {
	padding: 80px 60px;
	box-sizing: border-box;
}

.approfondimenti-header {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-bottom: 48px;
}

.approfondimenti-all-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 17px;
	font-weight: 400;
	color: var(--color-sage-dark);
	text-decoration: none;
	letter-spacing: 0.5px;
	margin-bottom: 12px;
	transition: opacity 0.2s ease;
}

.approfondimenti-all-link:hover {
	opacity: 0.7;
}

.approfondimenti-title {
	font-size: 64px;
	font-weight: 300;
	color: var(--color-sage-dark);
	letter-spacing: 4px;
	text-transform: uppercase;
	line-height: 1em;
	margin: 0;
	text-align: center;
}

/* Swiper */
.approfondimenti-swiper {
	width: 100%;
	height: 445px;
	overflow: hidden;
}

/* Fascia reel: card verticali tutte uguali (360×360 + fascetta icona).
   La fascia contiene o solo reel o solo articoli (fallback), mai misti. */
.approfondimenti-swiper.is-reel-band {
	height: auto;
}

.approfondimenti-swiper .swiper-slide {
	width: 445px;
	height: 445px;
	flex-shrink: 0;
}

/* Card */
.approfondimenti-card {
	position: relative;
	width: 445px;
	height: 445px;
	border-radius: 12px;
	overflow: hidden;
	cursor: pointer;
	background: var(--color-sage-dark);
}

.approfondimenti-card-bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	transition: transform 0.4s ease;
}

.approfondimenti-card:hover .approfondimenti-card-bg {
	transform: scale(1.04);
}

.approfondimenti-card-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to bottom,
		rgba(62, 74, 60, 0.58) 0%,
		rgba(62, 74, 60, 0.08) 32%,
		rgba(62, 74, 60, 0.08) 55%,
		rgba(62, 74, 60, 0.72) 100%
	);
}

/* Card header */
.approfondimenti-card-header {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	padding: 18px 16px 12px;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 10px;
	z-index: 2;
}

.approfondimenti-card-meta {
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.approfondimenti-card-author {
	color: #fff;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.2;
}

.approfondimenti-card-info {
	color: rgba(255, 255, 255, 0.78);
	font-size: 14px;
	font-weight: 300;
	line-height: 1.2;
}

.approfondimenti-card-menu {
	background: none;
	border: none;
	color: #fff;
	cursor: pointer;
	padding: 0 3px;
	flex-shrink: 0;
	opacity: 0.75;
	line-height: 1;
	margin-top: 2px;
}

.approfondimenti-card-menu:hover {
	opacity: 1;
}

/* Card bottom content */
.approfondimenti-card-content {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: 16px 16px 14px;
	z-index: 2;
}

.approfondimenti-card-cat {
	display: inline-block;
	background: var(--color-sage-dark);
	color: #fff;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 1px;
	text-transform: uppercase;
	padding: 6px 12px;
	border-radius: 9px;
	margin-bottom: 10px;
	text-decoration: none;
}

/* Badge = link: niente sottolineato e resta bianco all'hover
   (il verde su verde non si vedrebbe) */
a.approfondimenti-card-cat,
a.approfondimenti-card-cat:hover,
a.approfondimenti-card-cat:focus,
a.approfondimenti-card-cat:active {
	color: #fff;
	text-decoration: none;
}

.approfondimenti-card-title {
	font-size: 16px;
	font-weight: 400;
	line-height: 1.35;
	margin: 0 0 12px;
}

.approfondimenti-card-title a {
	color: #fff;
	text-decoration: none;
	font-size: 24px;
	font-weight: 300;
	line-height: normal;
}

.approfondimenti-card-title a:hover {
	text-decoration: underline;
}

/* Stats bar */
.approfondimenti-card-stats {
	display: flex;
	align-items: center;
	justify-content: space-between;
	border-top: 1px solid rgba(255,255,255,0.22);
	padding-top: 10px;
}

.approfondimenti-card-views {
	display: flex;
	align-items: center;
	gap: 5px;
	color: rgba(255,255,255,0.82);
	font-size: 13px;
}

.approfondimenti-card-like {
	display: flex;
	align-items: center;
	gap: 5px;
	background: none;
	border: none;
	color: rgba(255,255,255,0.82);
	font-size: 13px;
	cursor: pointer;
	padding: 0;
	transition: color 0.2s;
}

.approfondimenti-card-like svg {
	fill: transparent;
	stroke: rgba(255,255,255,0.82);
	stroke-width: 2;
	transition: fill 0.2s, stroke 0.2s;
}

.approfondimenti-card-like.is-liked {
	color: var(--color-terra);
}

.approfondimenti-card-like.is-liked svg {
	fill: var(--color-terra);
	stroke: var(--color-terra);
}

/* Card reel — copertina del post (campo ACF reel_url) + fascetta icona IG.
   Tutte le card hanno la stessa altezza: area immagine 360×360 + fascetta. */
.approfondimenti-card.is-reel {
	width: 360px;
	height: auto;
	border-radius: 12px;
	overflow: hidden;
	background: var(--color-sage-dark);
	cursor: default;
}

/* Copertina reel: area immagine fissa 360×360 per tutte le card.
   I reel 9:16 (più alti) vengono centrati e ritagliati, così le card
   restano tutte della stessa dimensione. La card è un link a Instagram. */
.is-reel .reel-cover {
	display: block;
	height: 360px;
	overflow: hidden;
	border-radius: 12px 12px 0 0;
}

.is-reel .reel-cover img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
	transition: transform 0.4s ease;
}

.is-reel .reel-cover:hover img {
	transform: scale(1.03);
}

.is-reel .reel-card-content {
	display: flex;
	align-items: center;
	padding: 10px 14px 12px;
}

/* Titolo dell'articolo che contiene il reel (max 2 righe) */
.is-reel .reel-card-title {
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.is-reel .reel-card-title a {
	color: #fff;
	font-size: 24px;
	font-weight: 300;
	line-height: 1.25;
	text-decoration: none;
}

.is-reel .reel-card-title a:hover {
	text-decoration: underline;
}

/* Copertina reel — overlay verde scuro sempre visibile (come da mockup),
   si intensifica in hover. Play icon bianca in stile moderno (anello vetro). */
.is-reel .reel-cover {
	position: relative;
}

.is-reel .reel-cover::after {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(47, 66, 45, 0.30);
	transition: background 0.3s ease;
	pointer-events: none;
}

.is-reel .reel-cover:hover::after {
	background: rgba(47, 66, 45, 0.50);
}

/* Badge play sopra la copertina: indica che la card apre un video.
   Centraggio assoluto (translate) così resta al centro dell'immagine
   a prescindere dal layout del contenitore. */
.is-reel .reel-play {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 64px;
	height: 64px;
	z-index: 1;
	pointer-events: none;
}

.is-reel .reel-play::before {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.12);
	border: 2px solid rgba(255, 255, 255, 0.9);
	backdrop-filter: blur(3px);
	-webkit-backdrop-filter: blur(3px);
	box-shadow: 0 4px 18px rgba(0, 0, 0, 0.25);
	transition: background 0.25s ease, transform 0.25s ease;
}

.is-reel .reel-cover:hover .reel-play::before {
	background: rgba(255, 255, 255, 0.22);
	transform: scale(1.08);
}

.is-reel .reel-play svg {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	color: #fff;
	width: 26px;
	height: 26px;
	margin-left: 3px;
	filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.35));
}

/* ── Reel nell'articolo singolo ───────────────────────────────
   Stessa card della home (copertina + play + lightbox) ma senza la
   larghezza fissa 360px: la copertina mostra le proporzioni reali del
   video, grande quanto possibile dentro la colonna dell'articolo. */
.single-reel {
	margin: 40px 0;
	display: flex;
	justify-content: center;
}

.single-reel .reel-cover {
	display: block;
	height: auto;
	line-height: 0;
	border-radius: 12px;
	overflow: hidden;
}

.single-reel .reel-cover img {
	width: auto;
	height: auto;
	max-height: 70vh;
	max-width: 100%;
}

@media (max-width: 600px) {
	.single-reel .reel-cover img {
		max-height: 62vh;
	}
}

/* ── Lightbox reel Instagram ──────────────────────────────────
   Overlay scuro con il player /embed, aperto al click sulla copertina.
   L'iframe è creato solo all'apertura dal JS (privacy: zero richieste
   a Instagram finché non si clicca). */
.lotus-reel-lightbox {
	position: fixed;
	inset: 0;
	z-index: 10000;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(30, 34, 30, 0.88);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	animation: reel-lightbox-fade 0.25s ease;
}

@keyframes reel-lightbox-fade {
	from { opacity: 0; }
	to   { opacity: 1; }
}

.lotus-reel-lightbox-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	max-width: 92vw;
	max-height: 92vh;
}

/* Cornice del player: le proporzioni vengono impostate inline dal JS con
   l'aspect reale del video (dalla copertina), fallback 9/16. L'iframe
   dell'embed IG ha header (~62px) e footer (~200px): lo allunghiamo e
   spostiamo su, così la cornice resta fuori e si vede solo il video.
   Viti di regolazione: top (-62px) e il extra-height (+290px). */
.lotus-reel-lightbox-frame {
	position: relative;
	height: min(88vh, 800px);
	max-width: 94vw;
	aspect-ratio: 9 / 16;
	overflow: hidden;
	border-radius: 10px;
	background: #000;
	animation: reel-lightbox-zoom 0.3s ease;
}

@keyframes reel-lightbox-zoom {
	from { transform: scale(0.94); opacity: 0; }
	to   { transform: scale(1); opacity: 1; }
}

.lotus-reel-lightbox-frame iframe {
	position: absolute;
	top: -62px;
	left: 0;
	width: 100%;
	height: calc(100% + 290px);
	border: 0;
}

.lotus-reel-lightbox-close {
	position: absolute;
	top: 20px;
	right: 20px;
	width: 46px;
	height: 46px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(255,255,255,0.5);
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.35);
	color: #fff;
	cursor: pointer;
	transition: background 0.2s ease, transform 0.25s ease;
}

.lotus-reel-lightbox-close svg {
	display: block;
}

.lotus-reel-lightbox-close:hover {
	background: rgba(255,255,255,0.15);
	transform: rotate(90deg);
}

/* Blocca lo scroll della pagina quando la lightbox è aperta */
body.reel-lightbox-open {
	overflow: hidden;
}

.approfondimenti-card-like:hover:not(.is-liked) svg {
	fill: rgba(181, 68, 44, 0.25);
	stroke: var(--color-terra);
}

.approfondimenti-empty {
	text-align: center;
	color: #999;
	font-style: italic;
	padding: 40px 0;
}

/* Frecce navigazione */
.approfondimenti-swiper .swiper-button-prev,
.approfondimenti-swiper .swiper-button-next {
	color: var(--color-sage-dark);
}

/* Responsive */
@media (max-width: 900px) {
	.approfondimenti-section {
		padding: 60px 30px;
	}

	.approfondimenti-title {
		font-size: 44px;
	}
}

@media (max-width: 600px) {
	.approfondimenti-section {
		padding: 48px 20px;
	}

	.approfondimenti-title {
		font-size: 32px;
		letter-spacing: 2px;
	}

	.approfondimenti-card {
		width: 100%;
		height: 340px;
	}
}

/* =============================================
   CONSULENZA
   ============================================= */

.consulenza-wrapper {
	background: var(--color-sage-mid);
	padding: 0 75px 75px 75px;
}

.consulenza {
	position: relative;
	width: 100%;
	min-height: 1000px;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	display: flex;
	align-items: flex-end;
	border-radius: 30px;
}

.consulenza-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to right, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0.3) 50%, rgba(0, 0, 0, 0.1) 100%);
	z-index: 1;
	border-radius: 10px;
}

.consulenza-content {
	position: relative;
	z-index: 2;
	padding: 60px 60px;
	max-width: 560px;
	color: #fff;
}

.consulenza-title {
	font-size: 38px;
	font-weight: 400;
	color: #fff;
	line-height: 1.1em;
	margin-bottom: 16px;
}

.consulenza-subtitle {
	font-size: 17px;
	font-weight: 300;
	color: #fff;
	line-height: 1.6em;
	margin-bottom: 32px;
}

.btn-consulenza {
	display: inline-block;
	background: transparent;
	border: 1px solid #fff;
	color: #fff;
	padding: 14px 50px;
	font-size: 16px;
	font-weight: 400;
	letter-spacing: 1px;
	text-decoration: none;
	transition: background 0.25s ease, color 0.25s ease;
	border-radius: 14px;
}

.btn-consulenza:hover {
	background: #fff;
	color: var(--color-sage-dark);
}

/* Responsive Consulenza */
@media (max-width: 900px) {
	.consulenza-wrapper {
		padding: 0 40px 40px 40px;
	}

	.consulenza {
		min-height: 420px;
	}

	.consulenza-content {
		padding: 40px 30px;
		max-width: 100%;
	}

	.consulenza-title {
		font-size: 30px;
	}
}

@media (max-width: 600px) {
	.consulenza-wrapper {
		padding: 0 24px 24px 24px;
	}

	.consulenza {
		min-height: 340px;
	}

	.consulenza-content {
		padding: 30px 24px;
	}

	.consulenza-title {
		font-size: 24px;
	}
}

/* =============================================
   DOMANDE FREQUENTI
   ============================================= */

.faq-section {
	padding: 80px 60px;
	box-sizing: border-box;
}

.faq-section-title {
	font-size: 48px;
	font-weight: 400;
	color: var(--color-sage-dark);
	text-align: center;
	margin: 0 0 52px 0;
}

/* Tab buttons */
.faq-tabs {
	display: flex;
	flex-wrap: nowrap;
	gap: 12px;
	margin-bottom: 24px;
}

.faq-tab {
	flex: 1;
	background: var(--color-sage-mid);
	color: #fff;
	border: none;
	border-radius: 10px;
	padding: 16px 18px;
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 22px;
	font-weight: 400;
	letter-spacing: 0.3px;
	cursor: pointer;
	transition: background 0.2s ease;
	line-height: 1.2;
	text-align: center;
}

.faq-tab:hover {
	background: var(--color-sage-dark);
}

.faq-tab.is-active {
	background: var(--color-sage-dark);
	box-shadow: inset 0 -3px 0 var(--color-terra);
}

/* Pannelli contenuto */
.faq-panels {
	background: var(--color-sage-mid);
	border-radius: 14px;
	padding: 44px 56px;
}

.faq-panel {
	display: none;
}

.faq-panel.is-active {
	display: block;
}

.faq-panel p {
	font-size: 17px;
	font-weight: 300;
	line-height: normal;
	color: #fff;
	margin-bottom: 0;
}

.faq-panel p:first-child {
	font-size: 20px;
	font-weight: 400;
}

.faq-panel ul,
.faq-panel ol {
	padding-left: 22px;
	margin-bottom: 1.3em;
}

.faq-panel li {
	font-size: 18px;
	font-weight: 300;
	line-height: 1.8em;
	color: #fff;
	margin-bottom: 8px;
}

.faq-panel a {
	color: #fff;
	font-weight: 400;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Pannello con immagine laterale — 50% testo / 50% immagine */
.faq-panel-inner {
	display: flex;
	gap: 40px;
	align-items: center;
}

.faq-panel-inner.has-image .faq-panel-text {
	flex: 1 1 50%;
	min-width: 0;
}

.faq-panel-image {
	margin: 0;
	flex: 1 1 50%;
	min-width: 0;
}

.faq-panel-image img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 14px;
	object-fit: cover;
	aspect-ratio: 1 / 1;
	max-height: 480px;
}

/* Responsive */
@media (max-width: 900px) {
	.faq-section {
		padding: 60px 30px;
	}

	.faq-panels {
		padding: 40px 32px;
	}

	.faq-section-title {
		font-size: 36px;
	}

	.faq-panel p,
	.faq-panel li {
		font-size: 16px;
	}

	.faq-panel p:first-child {
		font-size: 18px;
	}

	.faq-panel-inner {
		flex-direction: column;
		gap: 24px;
		align-items: flex-start;
	}

	.faq-panel-image {
		flex: none;
		width: 100%;
		max-width: 440px;
	}

	.faq-panel-image img {
		aspect-ratio: 4 / 3;
		max-height: none;
	}
}

@media (max-width: 600px) {
	.faq-section {
		padding: 48px 20px;
	}

	.faq-tabs {
		flex-wrap: wrap;
	}

	.faq-tab {
		font-size: 14px;
		padding: 12px 18px;
		flex: 1 1 45%;
	}

	.faq-panels {
		padding: 30px 22px;
	}

	.faq-section-title {
		font-size: 28px;
	}

	.faq-panel p,
	.faq-panel li {
		font-size: 15px;
	}

	.faq-panel p:first-child {
		font-size: 16px;
	}
}

/* -------------------------------------------------------
   FOOTER
------------------------------------------------------- */
.site-footer {
	background: #efe8d6;
	font-family: "futura-pt", Arial, sans-serif;
}

/* Main grid */
.footer-main {
	padding: 70px 40px 60px;
}

.footer-grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1.1fr 1.1fr;
	gap: 48px;
	max-width: 90%;
	margin: 0 auto;
}

/* Colonna 1 — Brand */
.footer-branding {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 24px;
}

.footer-logo img {
	width: 50px;
	height: auto;
	mix-blend-mode: multiply;
}

.footer-branding-text {
	text-decoration: none;
	display: flex;
	flex-direction: column;
	line-height: 1.2;
}

.footer-brand-name {
	font-size: 26px;
	font-weight: 400;
	color: #4C6F60;
	letter-spacing: 2px;
}

.footer-site-name {
	font-size: 17px;
	font-weight: 300;
	color: #4C6F60;
	letter-spacing: 0.3px;
}

.footer-contact {
	font-size: 18px;
	font-weight: 400;
	color: #4C6F60;
	margin: 0 0 6px;
	line-height: 1.5;
}

.footer-contact a {
	color: #4C6F60;
	text-decoration: none;
}

.footer-contact a:hover {
	color: var(--color-sage-dark);
}

.footer-registro {
	font-size: 17px;
	font-weight: 300;
	color: #4C6F60;
	line-height: 1.6;
	margin: 16px 0 20px;
}

.footer-logo-fnnp {
	margin-top: 4px;
}

.footer-logo-fnnp img {
	max-width: 220px;
	height: auto;
	mix-blend-mode: multiply;
}

/* Colonna 2 — Studio */
.footer-studio-block {
	margin-bottom: 28px;
}

.footer-studio-label {
	display: block;
	font-size: 18px;
	font-weight: 400;
	color: #4C6F60;
	text-decoration: underline;
	text-underline-offset: 3px;
	margin-bottom: 6px;
}

.footer-studio-text {
	font-size: 18px;
	font-weight: 300;
	color: #4C6F60;
	line-height: 1.5;
	margin: 0;
}

/* Colonne 3 e 4 — Menu */
.footer-col-title {
	font-size: 19px;
	font-weight: 400;
	color: #4C6F60;
	margin: 0 0 16px;
	letter-spacing: 0.2px;
}

.footer-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.footer-menu li {
	margin-bottom: 10px;
}

.footer-menu li a {
	font-size: 18px;
	font-weight: 300;
	color: #4C6F60;
	text-decoration: none;
	line-height: 1.4;
	transition: color 0.15s ease;
}

.footer-menu li a:hover {
	color: var(--color-sage-dark);
}

/* Social */
.footer-social {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-top: 32px;
}

.footer-social-link {
	color: #4C6F60;
	display: flex;
	align-items: center;
	transition: color 0.15s ease;
}

.footer-social-link:hover {
	color: var(--color-sage-dark);
}

/* Barra copyright — colori CTA (terracotta + bianco) */
.footer-bottom {
	background: var(--color-terra);
	padding: 18px 60px;
	text-align: center;
}

.footer-copyright {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 16px;
	font-weight: 400;
	color: #fff;
	margin: 0;
}

/* Responsive footer */
@media (max-width: 1100px) {
	.footer-grid {
		grid-template-columns: 1fr 1fr;
		gap: 40px;
	}
}

@media (max-width: 600px) {
	.footer-main {
		padding: 48px 24px 40px;
	}

	.footer-grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.footer-brand-name {
		font-size: 22px;
	}

	.footer-menu li a,
	.footer-contact,
	.footer-studio-label,
	.footer-studio-text {
		font-size: 16px;
	}

	.footer-col-title {
		font-size: 17px;
	}

	.footer-bottom {
		padding: 16px 24px;
	}
}

/* -------------------------------------------------------
   INFO PRE-FOOTER
------------------------------------------------------- */
.info-section {
	background: var(--color-beige-warm);
	padding: 40px 60px;
	width: 100%;
	box-sizing: border-box;
}

.info-inner {
	max-width: 730px;
	margin: 0 auto;
	text-align: center;
}

.info-text {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 14px;
	font-weight: 400;
	color: var(--color-sage-dark);
	line-height: 1.7;
	text-decoration: underline;
	text-underline-offset: 3px;
	margin: 0;
}

/* -------------------------------------------------------
   NEWSLETTER PRE-FOOTER
------------------------------------------------------- */
.newsletter-section {
	background: var(--color-sage-mid);
	padding: 100px 60px;
	width: 100%;
	box-sizing: border-box;
}

.newsletter-inner {
	max-width: 650px;
	margin: 0 auto;
	text-align: center;
}

.newsletter-title {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 43px;
	font-weight: 400;
	color: #fff;
	letter-spacing: 1px;
	text-transform: uppercase;
	margin: 0 0 20px;
	line-height: 1.1;
}

.newsletter-subtitle {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 21px;
	font-weight: 300;
	color: #fff;
	line-height: 1.65;
	margin: 0 0 56px;
	opacity: 0.9;
}

/* Form wrap */
.newsletter-form-wrap {
	text-align: left;
}

.newsletter-form-wrap .wpcf7-form {
	margin: 0;
}

/* Row struttura */
.newsletter-form-wrap .nl-row {
	margin-bottom: 24px;
}

.newsletter-form-wrap .nl-row--two {
	display: flex;
	gap: 24px;
}

.newsletter-form-wrap .nl-col {
	flex: 1;
}

/* Label */
.newsletter-form-wrap .nl-label {
	display: block;
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 14px;
	font-weight: 400;
	color: #fff;
	margin-bottom: 8px;
	letter-spacing: 0.2px;
}

.newsletter-form-wrap .nl-label abbr {
	text-decoration: none;
	color: #fff;
}

/* Input */
.newsletter-form-wrap input[type="text"],
.newsletter-form-wrap input[type="email"] {
	width: 100%;
	box-sizing: border-box;
	background: var(--color-off-white);
	border: 1.5px solid transparent;
	border-radius: 10px;
	padding: 18px 20px;
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 16px;
	font-weight: 400;
	color: var(--color-text-dark);
	outline: none;
	transition: border-color 0.2s ease;
}

.newsletter-form-wrap input[type="text"]:focus,
.newsletter-form-wrap input[type="email"]:focus {
	border-color: var(--color-sage-dark);
}

.newsletter-form-wrap input::placeholder {
	color: var(--color-sage-light);
}

/* Acceptance (checkbox) */
.newsletter-form-wrap .nl-row--check {
	display: flex;
	align-items: center;
	margin-bottom: 28px;
}

.newsletter-form-wrap .nl-row--check .wpcf7-acceptance {
	display: flex;
	align-items: center;
}

.newsletter-form-wrap .nl-row--check .wpcf7-list-item {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
}

.newsletter-form-wrap .nl-row--check .wpcf7-list-item-label {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 15px;
	font-weight: 400;
	color: #fff;
	cursor: pointer;
}

.newsletter-form-wrap .nl-row--check input[type="checkbox"] {
	width: 22px;
	height: 22px;
	min-width: 22px;
	border-radius: 3px;
	accent-color: var(--color-sage-dark);
	cursor: pointer;
}

/* Submit row */
.newsletter-form-wrap .nl-row--submit {
	display: flex;
	justify-content: flex-end;
	margin-bottom: 0;
}

.newsletter-form-wrap .wpcf7-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--color-sage-dark);
	border: 2px solid var(--color-sage-dark);
	border-radius: 10px;
	color: #fff;
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 16px;
	font-weight: 400;
	letter-spacing: 0.5px;
	padding: 20px 60px;
	min-width: 220px;
	cursor: pointer;
	transition: all 0.2s ease;
}

.newsletter-form-wrap .wpcf7-submit:hover {
	background: transparent;
	color: var(--color-sage-dark);
	border-color: var(--color-sage-dark);
}

/* Messaggi CF7 */
.newsletter-form-wrap .wpcf7-response-output {
	margin: 20px 0 0;
	padding: 12px 18px;
	border-radius: 8px;
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 14px;
	border: none;
	background: rgba(255,255,255,0.2);
	color: #fff;
}

/* Errori field */
.newsletter-form-wrap .wpcf7-not-valid-tip {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 12px;
	color: #FAE8E3;
	margin-top: 5px;
	display: block;
}

.newsletter-form-wrap .wpcf7-not-valid input {
	border-color: #F2C4B8;
}

/* Responsive */
@media (max-width: 900px) {
	.newsletter-section {
		padding: 80px 40px;
	}

	.newsletter-title {
		font-size: 38px;
		letter-spacing: 2px;
	}
}

@media (max-width: 600px) {
	.newsletter-section {
		padding: 60px 24px;
	}

	.newsletter-title {
		font-size: 28px;
		letter-spacing: 1px;
	}

	.newsletter-subtitle {
		font-size: 17px;
		margin-bottom: 40px;
	}

	.newsletter-form-wrap .nl-row--two {
		flex-direction: column;
		gap: 0;
	}

	.newsletter-form-wrap .nl-row--two .nl-col {
		margin-bottom: 24px;
	}

	.newsletter-form-wrap .nl-row--two .nl-col:last-child {
		margin-bottom: 0;
	}

	.newsletter-form-wrap .wpcf7-submit {
		width: 100%;
		padding: 18px 40px;
	}
}

/* -------------------------------------------------------
   CTA PRENOTA — pre-footer pagine istituzionali
   (al posto della newsletter, solo blog/articoli la tengono)
------------------------------------------------------- */

.cta-prenota-section {
	background: var(--color-sage-mid);
	padding: 100px 60px;
	width: 100%;
	box-sizing: border-box;
	text-align: center;
}

.cta-prenota-title {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 43px;
	font-weight: 400;
	color: #fff;
	letter-spacing: 1px;
	text-transform: uppercase;
	margin: 0 0 16px;
	line-height: 1.1;
}

.cta-prenota-subtitle {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 21px;
	font-weight: 300;
	color: rgba(255,255,255,0.9);
	margin: 0 0 36px;
}

.btn-cta-prenota {
	display: inline-block;
	border: 1.5px solid #fff;
	border-radius: 10px;
	color: #fff;
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 16px;
	font-weight: 400;
	letter-spacing: 0.5px;
	padding: 14px 32px;
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease;
}

.btn-cta-prenota:hover {
	background: #fff;
	color: var(--color-sage-dark);
}

@media (max-width: 900px) {
	.cta-prenota-section {
		padding: 80px 40px;
	}

	.cta-prenota-title {
		font-size: 38px;
		letter-spacing: 2px;
	}
}

@media (max-width: 600px) {
	.cta-prenota-section {
		padding: 60px 24px;
	}

	.cta-prenota-title {
		font-size: 28px;
		letter-spacing: 1px;
	}

	.cta-prenota-subtitle {
		font-size: 17px;
	}
}

/* -------------------------------------------------------
   DETTAGLIO SERVIZIO — single-servizi.php
------------------------------------------------------- */

/* Hero */
.servizio-hero {
	position: relative;
	width: 100%;
	height: 58vh;
	min-height: 420px;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	display: flex;
	align-items: flex-end;
	justify-content: center;
}

.servizio-hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0,0,0,0.60) 0%, rgba(0,0,0,0.15) 50%, transparent 100%);
}

.servizio-hero-content {
	position: relative;
	z-index: 2;
	text-align: center;
	padding: 0 40px 60px;
}

.servizio-hero-title {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 44px;
	font-weight: 400;
	color: #fff;
	text-transform: uppercase;
	letter-spacing: 2px;
	line-height: 1.1;
	margin: 0 0 28px;
}

.btn-servizio-hero {
	display: inline-flex;
	align-items: center;
	background: transparent;
	border: 2px solid #fff;
	border-radius: 10px;
	color: #fff;
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 16px;
	font-weight: 400;
	letter-spacing: 0.5px;
	padding: 14px 40px;
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease;
}

.btn-servizio-hero:hover {
	background: #fff;
	color: var(--color-sage-dark);
}

/* Intro */
.servizio-intro {
	background: var(--color-beige-warm);
	padding: 80px 60px;
}

.servizio-intro-inner {
	max-width: 1200px;
	margin: 0 auto;
	text-align: left;
}

.servizio-intro-title {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 34px;
	font-weight: 400;
	color: var(--color-sage-dark);
	line-height: 1.2;
	margin: 0 0 28px;
}

.servizio-intro-testo {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 17px;
	font-weight: 300;
	color: var(--color-text-dark);
	line-height: 1.7;
}

.servizio-intro-testo p {
	margin-bottom: 1.4em;
}

/* Blocchi wrapper */
.servizio-blocchi-wrapper {
	padding: 75px;
}

.servizio-blocco {
	display: flex;
	align-items: stretch;
	min-height: 380px;
}

.servizio-blocco + .servizio-blocco {
	margin-top: 50px;
}

.servizio-testo-box {
	padding: 80px 90px;
	margin: 50px 0;
	/* background via inline style */
}

.servizio-testo-titolo {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 38px;
	font-weight: 300;
	font-style: italic;
	color: var(--color-sage-dark);
	line-height: 1.25;
	text-align: center;
	margin: 0 auto 52px;
	max-width: 640px;
}

.servizio-testo-corpo {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 16px;
	font-weight: 300;
	color: var(--color-text-dark);
	line-height: 1.8;
	max-width: 1400px;
	margin: 0 auto;
	columns: 2;
	column-gap: 56px;
}

.servizio-testo-corpo p {
	margin-bottom: 1.4em;
	break-inside: avoid;
}

/* Liste nei box testo e nei blocchi servizio */
.servizio-testo-corpo ul,
.servizio-testo-corpo ol,
.servizio-blocco-testo ul,
.servizio-blocco-testo ol {
	margin: 0 0 1.5em;
	padding-left: 22px;
	break-inside: avoid;
}

.servizio-testo-corpo li,
.servizio-blocco-testo li {
	margin-bottom: 0px;
	padding-left: 4px;
	font-weight: 500;
	font-size: 18px;
}

.servizio-testo-corpo li:last-child,
.servizio-blocco-testo li:last-child {
	margin-bottom: 0;
}

.servizio-testo-corpo li::marker,
.servizio-blocco-testo li::marker {
	color: var(--color-sage-dark);
	font-weight: 500;
}

/* Elenchi puntati con marker personalizzato */
.servizio-testo-corpo ul li::marker,
.servizio-blocco-testo ul li::marker {
	font-size: 1.1em;
}

/* Liste annidate */
.servizio-testo-corpo li ul,
.servizio-testo-corpo li ol,
.servizio-blocco-testo li ul,
.servizio-blocco-testo li ol {
	margin: 0.5em 0 0.2em;
	padding-left: 20px;
}

.servizio-testo-corpo li p,
.servizio-blocco-testo li p {
	margin-bottom: 0.4em;
}

/* Liste dentro i blocchi con sfondo beige: leggero respiro in più */
.servizio-blocco-testo ul,
.servizio-blocco-testo ol {
	margin-bottom: 1.2em;
}

.servizio-testo-cta {
	text-align: center;
	margin-top: 36px;
}

.servizio-testo-corpo > *:first-child {
	margin-top: 0;
}

.servizio-testo-corpo > *:last-child {
	margin-bottom: 0;
}

.servizio-blocco-content {
	flex: 0 0 50%;
	background: var(--color-beige-warm);
	padding: 40px 30px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}

.servizio-blocco-content-inner {
	width: 100%;
	max-width: 90%;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.servizio-blocco-image {
	flex: 0 0 50%;
	overflow: hidden;
	position: relative;
}

.servizio-blocco-image img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.servizio-blocco-pretitle {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 13px;
	font-weight: 500;
	color: var(--color-sage-dark);
	text-transform: uppercase;
	letter-spacing: 2px;
	margin: 0 0 12px;
}

.servizio-blocco-title {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 30px;
	font-weight: 400;
	color: var(--color-sage-dark);
	line-height: 1.2;
	margin: 0 0 24px;
}

.servizio-blocco-testo {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 16px;
	font-weight: 300;
	color: var(--color-text-dark);
	line-height: 1.75;
	margin-bottom: 32px;
}

.servizio-blocco-testo p {
	margin-bottom: 1.3em;
}

.btn-servizio-blocco {
	display: inline-block;
	background: var(--color-terra);
	color: #fff;
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 16px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	padding: 13px 32px;
	border-radius: 4px;
	text-decoration: none;
	transition: background 0.2s, color 0.2s;
}

.btn-servizio-blocco:hover {
	background: var(--color-terra-light);
	color: #fff;
}

/* Responsive */
@media (max-width: 900px) {
	.servizio-hero {
		height: 50vh;
		min-height: 340px;
	}

	.servizio-hero-title {
		font-size: 32px;
	}

	.servizio-intro {
		padding: 60px 40px;
	}

	.servizio-blocchi-wrapper {
		padding: 40px;
	}

	.servizio-blocco {
		flex-direction: column;
	}

	.servizio-blocco-content {
		flex: none;
		padding: 48px 30px;
	}

	.servizio-blocco-image {
		flex: none;
		height: 300px;
	}

	.servizio-blocco--img-testo .servizio-blocco-image {
		order: -1;
	}

	.servizio-testo-box {
		padding: 56px 40px;
	}

	.servizio-testo-titolo {
		font-size: 30px;
	}

	.servizio-testo-corpo {
		columns: 1;
	}
}

@media (max-width: 600px) {
	.servizio-hero {
		height: 45vh;
		min-height: 280px;
	}

	.servizio-hero-title {
		font-size: 24px;
		letter-spacing: 1px;
	}

	.servizio-hero-content {
		padding: 0 24px 40px;
	}

	.servizio-intro {
		padding: 48px 24px;
	}

	.servizio-intro-title {
		font-size: 26px;
	}

	.servizio-blocchi-wrapper {
		padding: 24px;
	}

	.servizio-blocco + .servizio-blocco {
		margin-top: 24px;
	}

	.servizio-blocco-image {
		height: 240px;
	}

	.servizio-blocco-title {
		font-size: 24px;
	}

	.servizio-testo-box {
		padding: 40px 24px;
	}

	.servizio-testo-titolo {
		font-size: 24px;
		margin-bottom: 36px;
	}
}

/*--------------------------------------------------------------
# Blog — Single Post
--------------------------------------------------------------*/

/* Wrapper esterno */
.single-wrapper {
	background: var(--color-beige-warm);
}

/* ── Breadcrumbs ── */
.single-breadcrumbs {
	background: var(--color-off-white);
	border-bottom: 1px solid var(--color-beige-warm);
	padding: 14px 0;
}

.single-breadcrumbs-inner {
	max-width: 1400px;
	margin: 0 auto;
	padding: 0 40px;
}

.breadcrumb-list {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.breadcrumb-item {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 13px;
	font-weight: 400;
	color: #666;
}

.breadcrumb-item a {
	color: var(--color-sage-dark);
	text-decoration: none;
	transition: opacity 0.2s;
}

.breadcrumb-item a:hover {
	opacity: 0.7;
}

.breadcrumb-current {
	color: var(--color-text-dark);
	font-weight: 400;
	/* Tronca se troppo lungo */
	max-width: 340px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.breadcrumb-sep {
	color: #aaa;
	font-size: 14px;
	line-height: 1;
	user-select: none;
}

/* ── Layout 2 colonne ── */
.single-layout {
	max-width: 1500px;
	margin: 0 auto;
	padding: 48px 40px 72px;
	display: grid;
	grid-template-columns: 1fr 300px;
	gap: 48px;
	align-items: start;
}

/* ── Articolo ── */
/* min-width: 0 è obbligatorio sui grid item: senza di esso
   un'immagine grande sfonda la colonna e altera tutta la griglia. */
.single-main,
.single-article {
	min-width: 0;
	background: var(--color-beige-warm);
}

/* Immagine di copertina */
.single-featured-image {
	width: 100%;
	border-radius: 12px;
	overflow: hidden;
	margin-bottom: 36px;
	aspect-ratio: 16 / 7;
}

.single-thumbnail {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Corpo articolo */
.single-article-body {
	padding: 0;
}

/* Badge categorie */
.single-categories {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 18px;
}

.single-category-badge {
	display: inline-block;
	background: var(--color-sage-mid);
	color: #fff;
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 1px;
	text-transform: uppercase;
	padding: 5px 14px;
	border-radius: 50px;
	text-decoration: none;
	transition: background 0.2s;
}

.single-category-badge:hover {
	background: var(--color-sage-dark);
}

/* H1 titolo */
.single-title {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 42px;
	font-weight: 400;
	color: var(--color-sage-dark);
	line-height: 1.15;
	margin: 0 0 22px;
}

/* Meta */
.single-meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 36px;
	padding-bottom: 28px;
	border-bottom: 1px solid var(--color-beige-warm);
}

.single-meta-item {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 14px;
	font-weight: 400;
	color: #666;
}

.single-meta-item svg {
	color: var(--color-sage-mid);
	flex-shrink: 0;
}

.single-meta-author-link {
	color: var(--color-sage-dark);
	text-decoration: none;
	font-weight: 500;
}

.single-meta-author-link:hover {
	text-decoration: underline;
}

.single-meta-sep {
	color: #ccc;
	font-size: 16px;
}

/* Corpo testo articolo */
.single-content {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 17px;
	font-weight: 300;
	color: var(--color-text-dark);
	line-height: 1.75;
}

.single-content p {
	margin-bottom: 1.5em;
}

.single-content h2 {
	font-size: 28px;
	font-weight: 400;
	color: var(--color-sage-dark);
	line-height: 1.2;
	margin: 2em 0 0.6em;
}

.single-content h3 {
	font-size: 22px;
	font-weight: 400;
	color: var(--color-sage-dark);
	line-height: 1.25;
	margin: 1.8em 0 0.5em;
}

.single-content ul,
.single-content ol {
	padding-left: 1.5em;
	margin-bottom: 1.5em;
}

.single-content li {
	margin-bottom: 0.4em;
}

.single-content a {
	color: var(--color-sage-dark);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.single-content a:hover {
	color: var(--color-sage-mid);
}

.single-content blockquote {
	margin: 2.5em 0;
	padding: 26px 32px;
	background: rgba(94, 131, 112, 0.10);
	border-left: 3px solid var(--color-sage-mid);
	border-radius: 0 12px 12px 0;
	font-size: 17px;
	font-weight: 500;
	font-style: normal;
	line-height: 1.7;
	color: var(--color-sage-dark);
}

/* Blockquote nelle landing servizi (testo_corpo / blocco testo / intro) */
.servizio-testo-corpo blockquote,
.servizio-blocco-testo blockquote,
.servizio-intro-testo blockquote {
	margin: 2.5em 0;
	padding: 26px 32px;
	background: rgba(94, 131, 112, 0.10);
	border: none;
	border-left: 3px solid var(--color-sage-mid);
	border-radius: 0 12px 12px 0;
	font-size: 17px;
	font-weight: 500;
	font-style: normal;
	line-height: 1.7;
	color: var(--color-sage-dark);
}

.single-content blockquote p {
	margin: 0;
}

.single-content img {
	max-width: 100%;
	height: auto;
	border-radius: 8px;
}

.single-content .wp-caption,
.single-content figure {
	max-width: 100%;
	margin: 2em 0;
}

.single-content figcaption,
.single-content .wp-caption-text {
	font-size: 13px;
	color: #888;
	text-align: center;
	margin-top: 8px;
	font-style: italic;
}

/* Tag */
.single-tags {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	margin: 36px 0 0;
	padding-top: 28px;
	border-top: 1px solid var(--color-beige-warm);
}

.single-tags-label {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 13px;
	font-weight: 500;
	color: #666;
	text-transform: uppercase;
	letter-spacing: 1px;
}

.single-tag {
	display: inline-block;
	border: 1px solid var(--color-sage-mid);
	color: var(--color-sage-dark);
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 13px;
	font-weight: 400;
	padding: 4px 12px;
	border-radius: 50px;
	text-decoration: none;
	transition: background 0.2s, color 0.2s;
}

.single-tag:hover {
	background: var(--color-sage-mid);
	color: #fff;
	border-color: var(--color-sage-mid);
}

/* Barra condivisione + like */
.single-share-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 16px;
	margin: 28px 0 0;
	padding: 24px 28px;
	background: var(--color-off-white);
	border-radius: 10px;
}

.single-share-group {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}

.single-share-label {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 13px;
	font-weight: 500;
	color: #666;
	text-transform: uppercase;
	letter-spacing: 1px;
	white-space: nowrap;
}

.single-share-links {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}

.single-share-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 16px;
	font-weight: 400;
	padding: 8px 16px;
	border-radius: 6px;
	text-decoration: none;
	border: none;
	cursor: pointer;
	transition: background 0.2s, color 0.2s;
}

.single-share-fb {
	background: #1877f2;
	color: #fff;
}

.single-share-fb:hover {
	background: #1558b0;
	color: #fff;
}

.single-share-wa {
	background: #25d366;
	color: #fff;
}

.single-share-wa:hover {
	background: var(--color-sage-mid);
	color: #fff;
}

.single-share-copy {
	background: var(--color-sage-dark);
	color: #fff;
}

.single-share-copy:hover {
	background: var(--color-sage-mid);
	color: #fff;
}

/* Like */
.single-like-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: var(--color-off-white);
	border: 2px solid var(--color-beige-warm);
	color: #aaa;
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 16px;
	font-weight: 400;
	padding: 8px 18px;
	border-radius: 50px;
	cursor: pointer;
	transition: border-color 0.2s, color 0.2s;
}

/* Il cuore segue il colore del contatore (grigio); hover e like restano terracotta */
.single-like-btn svg {
	fill: currentColor;
	stroke: none;
}

.single-like-btn:hover,
.single-like-btn.is-liked {
	border-color: var(--color-terra);
	color: var(--color-terra);
}

.single-like-btn.is-liked svg {
	fill: var(--color-terra);
	color: var(--color-terra);
}

/* Box autore */
.single-author-box {
	display: flex;
	align-items: flex-start;
	gap: 24px;
	margin-top: 48px;
	padding: 32px;
	background: var(--color-sage-mid);
	border-radius: 12px;
}

.single-author-avatar {
	flex-shrink: 0;
}

.single-avatar-img {
	width: 80px !important;
	height: 80px !important;
	border-radius: 50%;
	object-fit: cover;
	display: block;
	border: 3px solid rgba(255,255,255,0.4);
}

.single-author-info {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.single-author-name {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 18px;
	font-weight: 500;
	color: #fff;
	text-decoration: none;
}

.single-author-name:hover {
	text-decoration: underline;
}

.single-author-bio {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 15px;
	font-weight: 300;
	color: rgba(255,255,255,0.9);
	line-height: 1.6;
	margin: 0;
}

/* ── Navigazione prev/next ── */
.single-post-nav {
	display: flex;
	gap: 16px;
	margin: 48px 0 0;
	padding-top: 36px;
	border-top: 1px solid var(--color-beige-warm);
}

.post-nav-link {
	display: flex;
	align-items: center;
	gap: 14px;
	flex: 1;
	padding: 20px 24px;
	background: var(--color-off-white);
	border-radius: 10px;
	text-decoration: none;
	transition: background 0.2s;
	min-width: 0;
}

.post-nav-link:hover {
	background: var(--color-beige-warm);
}

.post-nav-next {
	justify-content: flex-end;
	text-align: right;
}

.post-nav-arrow {
	font-size: 22px;
	color: var(--color-sage-mid);
	flex-shrink: 0;
}

.post-nav-info {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.post-nav-label {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 11px;
	font-weight: 500;
	color: var(--color-sage-mid);
	text-transform: uppercase;
	letter-spacing: 1.5px;
}

.post-nav-title {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 15px;
	font-weight: 400;
	color: var(--color-sage-dark);
	line-height: 1.3;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* ── Articoli correlati ── */
.single-related {
	margin-top: 56px;
	padding-top: 40px;
	border-top: 1px solid var(--color-beige-warm);
}

.single-related-title {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 26px;
	font-weight: 400;
	color: var(--color-sage-dark);
	margin: 0 0 28px;
}

.single-related-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.single-related-card {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	border-radius: 10px;
	overflow: hidden;
	border: 1px solid var(--color-beige-warm);
	transition: box-shadow 0.2s, transform 0.2s;
}

.single-related-card:hover {
	box-shadow: 0 6px 24px rgba(0,0,0,0.10);
	transform: translateY(-2px);
}

.single-related-img {
	height: 160px;
	overflow: hidden;
}

.single-related-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s;
}

.single-related-card:hover .single-related-img img {
	transform: scale(1.04);
}

.single-related-body {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 18px;
}

.single-related-cat {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 12px;
	font-weight: 500;
	color: var(--color-sage-mid);
	text-transform: uppercase;
	letter-spacing: 1px;
}

.single-related-post-title {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 17px;
	font-weight: 400;
	color: var(--color-sage-dark);
	line-height: 1.35;
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.single-related-date {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 13px;
	font-weight: 300;
	color: #999;
	margin: 0;
}

/*--------------------------------------------------------------
# Blog — Sidebar
--------------------------------------------------------------*/

.single-sidebar {
	position: sticky;
	top: 24px;
	display: flex;
	flex-direction: column;
	gap: 28px;
}

/* Widget base */
.sidebar-widget {
	background: var(--color-off-white);
	border: 1px solid var(--color-beige-warm);
	border-radius: 12px;
	padding: 28px;
}

.sidebar-widget-title {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 14px;
	font-weight: 500;
	color: var(--color-sage-dark);
	text-transform: uppercase;
	letter-spacing: 2px;
	margin: 0 0 20px;
	padding-bottom: 14px;
	border-bottom: 2px solid var(--color-sage-mid);
}

/* Ricerca */
.sidebar-search-wrap {
	display: flex;
	border: 1px solid var(--color-beige-mid);
	border-radius: 8px;
	overflow: hidden;
	transition: border-color 0.2s;
}

.sidebar-search-wrap:focus-within {
	border-color: var(--color-sage-mid);
}

.sidebar-search-input {
	flex: 1;
	border: none;
	outline: none;
	padding: 10px 14px;
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 14px;
	font-weight: 300;
	color: var(--color-text-dark);
	background: transparent;
}

.sidebar-search-input::placeholder {
	color: #bbb;
}

.sidebar-search-btn {
	background: var(--color-sage-dark);
	border: none;
	color: #fff;
	padding: 0 14px;
	cursor: pointer;
	display: flex;
	align-items: center;
	transition: background 0.2s;
	flex-shrink: 0;
}

.sidebar-search-btn:hover {
	background: var(--color-sage-mid);
}

/* CTA */
.sidebar-cta {
	background: var(--color-sage-dark);
	border-color: var(--color-sage-dark);
	text-align: center;
}

.sidebar-cta-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
}

.sidebar-cta-icon {
	color: rgba(255,255,255,0.6);
}

.sidebar-cta-text {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 15px;
	font-weight: 300;
	color: rgba(255,255,255,0.9);
	line-height: 1.6;
	margin: 0;
}

.btn-sidebar-cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: transparent;
	border: 2px solid #fff;
	border-radius: 10px;
	color: #fff;
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 16px;
	font-weight: 400;
	letter-spacing: 0.5px;
	padding: 12px 24px;
	text-decoration: none;
	transition: background 0.2s, color 0.2s;
	white-space: nowrap;
}

.btn-sidebar-cta:hover {
	background: #fff;
	color: var(--color-sage-dark);
}

/* Categorie */
.sidebar-cat-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.sidebar-cat-item {
	margin: 0;
}

.sidebar-cat-link {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 10px 12px;
	border-radius: 6px;
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 18px;
	font-weight: 400;
	color: var(--color-sage-dark);
	text-decoration: none;
	transition: background 0.15s;
}

.sidebar-cat-link:hover {
	background: var(--color-off-white);
}

.sidebar-cat-count {
	font-size: 13px;
	color: #999;
	background: var(--color-off-white);
	padding: 2px 8px;
	border-radius: 50px;
}

/* Ultimi articoli */
.sidebar-recent-list {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.sidebar-recent-item {
	display: flex;
	gap: 12px;
	text-decoration: none;
	align-items: flex-start;
	transition: opacity 0.2s;
}

.sidebar-recent-item:hover {
	opacity: 0.75;
}

.sidebar-recent-img {
	width: 68px;
	height: 68px;
	border-radius: 6px;
	overflow: hidden;
	flex-shrink: 0;
}

.sidebar-recent-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.sidebar-recent-info {
	display: flex;
	flex-direction: column;
	gap: 5px;
	min-width: 0;
}

.sidebar-recent-title {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 18px;
	font-weight: 400;
	color: var(--color-sage-dark);
	line-height: 1.35;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.sidebar-recent-date {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 14px;
	font-weight: 300;
	color: #999;
}

/* Tag cloud */
.sidebar-tag-cloud {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.sidebar-tag-pill {
	display: inline-block;
	border: 1px solid var(--color-beige-mid);
	color: var(--color-sage-dark);
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 12px;
	font-weight: 400;
	padding: 5px 12px;
	border-radius: 50px;
	text-decoration: none;
	transition: background 0.2s, border-color 0.2s, color 0.2s;
}

.sidebar-tag-pill:hover {
	background: var(--color-sage-mid);
	border-color: var(--color-sage-mid);
	color: #fff;
}

/*--------------------------------------------------------------
# Blog — Responsive
--------------------------------------------------------------*/

@media (max-width: 900px) {
	.single-layout {
		grid-template-columns: 1fr;
		padding: 36px 32px 60px;
	}

	.single-sidebar {
		position: static;
		/* Su tablet la sidebar va sotto l'articolo */
	}

	.single-breadcrumbs-inner {
		padding: 0 32px;
	}

	.single-title {
		font-size: 32px;
	}

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

@media (max-width: 600px) {
	.single-layout {
		padding: 24px 20px 48px;
	}

	.single-breadcrumbs-inner {
		padding: 0 20px;
	}

	.single-title {
		font-size: 26px;
	}

	.single-meta {
		gap: 6px;
	}

	.single-meta-sep {
		display: none;
	}

	.single-meta-item {
		font-size: 13px;
	}

	.single-share-bar {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
		padding: 18px 20px;
	}

	.single-related-grid {
		grid-template-columns: 1fr;
	}

	.single-post-nav {
		flex-direction: column;
	}

	.post-nav-link {
		padding: 16px 20px;
	}

	.single-author-box {
		flex-direction: column;
		gap: 16px;
	}
}

/*--------------------------------------------------------------
# Pagina 404
--------------------------------------------------------------*/

.error404-wrapper {
	background: var(--color-beige-warm);
}

/* Layout: contenuto sinistra (1fr) + sidebar destra (260px) */
.error404-layout {
	max-width: 1500px;
	margin: 0 auto;
	padding: 56px 40px 80px;
	display: grid;
	grid-template-columns: 1fr 300px;
	gap: 48px;
	align-items: start;
}

/* La sidebar è la stessa del blog — riusata as-is */
.error404-layout .single-sidebar {
	position: sticky;
	top: 24px;
}

.error404-main {
	min-width: 0;
}

.error404-content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0;
}

/* Numero 404 grande decorativo */
.error404-number {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 140px;
	font-weight: 300;
	color: var(--color-beige-warm);
	line-height: 1;
	margin-bottom: 8px;
	user-select: none;
}

/* Titolo */
.error404-title {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 38px;
	font-weight: 400;
	color: var(--color-sage-dark);
	line-height: 1.15;
	margin: 0 0 18px;
}

/* Descrizione */
.error404-desc {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 17px;
	font-weight: 300;
	color: var(--color-text-dark);
	line-height: 1.7;
	margin: 0 0 36px;
}

/* Bottoni CTA */
.error404-actions {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
	margin-bottom: 40px;
}

.btn-error404-primary {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--color-terra);
	border: 2px solid var(--color-terra);
	border-radius: 10px;
	color: #fff;
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 15px;
	font-weight: 400;
	letter-spacing: 0.5px;
	padding: 14px 28px;
	text-decoration: none;
	transition: background 0.2s, color 0.2s;
}

.btn-error404-primary:hover {
	background: transparent;
	color: var(--color-terra);
}

.btn-error404-secondary {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: transparent;
	border: 2px solid var(--color-sage-mid);
	border-radius: 10px;
	color: var(--color-sage-dark);
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 15px;
	font-weight: 400;
	padding: 14px 28px;
	text-decoration: none;
	transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.btn-error404-secondary:hover {
	background: var(--color-sage-mid);
	border-color: var(--color-sage-mid);
	color: #fff;
}

/* Ricerca */
.error404-search {
	width: 100%;
	max-width: 520px;
	margin-bottom: 52px;
}

.error404-search-label {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 14px;
	font-weight: 400;
	color: #666;
	margin: 0 0 10px;
}

.error404-search-form .sidebar-search-wrap {
	border-color: var(--color-beige-mid);
}

/* Articoli suggeriti — riusa le card .single-related-card */
.error404-suggested {
	width: 100%;
}

.error404-suggested-title {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 22px;
	font-weight: 400;
	color: var(--color-sage-dark);
	margin: 0 0 24px;
}

.error404-suggested-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}

/* Responsive 404 */
@media (max-width: 900px) {
	.error404-layout {
		grid-template-columns: 1fr;
		padding: 36px 32px 60px;
	}

	.error404-layout .single-sidebar {
		position: static;
	}

	.error404-number {
		font-size: 100px;
	}

	.error404-title {
		font-size: 30px;
	}

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

@media (max-width: 600px) {
	.error404-layout {
		padding: 24px 20px 48px;
	}

	.error404-number {
		font-size: 80px;
	}

	.error404-title {
		font-size: 26px;
	}

	.error404-suggested-grid {
		grid-template-columns: 1fr;
	}
}

/*--------------------------------------------------------------
# Pagina Ricerca
--------------------------------------------------------------*/

.search-wrapper {
	background: var(--color-beige-warm);
}

/* Header con barra di ricerca prominente */
.search-header {
	background: var(--color-sage-dark);
	padding: 48px 40px;
}

.search-header-inner {
	max-width: 680px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.search-header-wrap {
	display: flex;
	border-radius: 12px;
	overflow: hidden;
	background: #fff;
	box-shadow: 0 4px 24px rgba(0,0,0,0.18);
}

.search-header-input {
	flex: 1;
	border: none;
	outline: none;
	padding: 16px 22px;
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 17px;
	font-weight: 300;
	color: var(--color-text-dark);
	background: transparent;
}

.search-header-input::placeholder {
	color: #bbb;
}

.search-header-btn {
	background: var(--color-sage-mid);
	border: none;
	color: #fff;
	padding: 0 24px;
	cursor: pointer;
	display: flex;
	align-items: center;
	transition: background 0.2s;
	flex-shrink: 0;
}

.search-header-btn:hover {
	background: var(--color-sage-mid);
}

/* Contatore risultati */
.search-result-count {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 15px;
	font-weight: 300;
	color: rgba(255,255,255,0.8);
	margin: 0;
	text-align: center;
}

.search-result-count strong {
	font-weight: 500;
	color: #fff;
}

.search-result-count em {
	font-style: italic;
	color: #fff;
}

/* Stato vuoto */
.search-empty {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0;
	padding: 20px 0;
}

.search-empty-icon {
	color: var(--color-beige-mid);
	margin-bottom: 20px;
}

.search-empty-title {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 30px;
	font-weight: 400;
	color: var(--color-sage-dark);
	margin: 0 0 14px;
}

.search-empty-desc {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 16px;
	font-weight: 300;
	color: #666;
	line-height: 1.7;
	margin: 0 0 28px;
	max-width: 520px;
}

.search-empty-actions {
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
	margin-bottom: 36px;
}

.search-empty-cats {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.search-empty-cats-label {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 13px;
	font-weight: 500;
	color: #666;
	text-transform: uppercase;
	letter-spacing: 1px;
	margin: 0;
}

.search-empty-cats-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

/* Responsive */
@media (max-width: 900px) {
	.search-header {
		padding: 36px 32px;
	}
}

@media (max-width: 600px) {
	.search-header {
		padding: 28px 20px;
	}

	.search-header-input {
		font-size: 15px;
		padding: 14px 16px;
	}
}

/*--------------------------------------------------------------
# Blog — Archive (indice blog, categorie, tag, autori, date)
--------------------------------------------------------------*/

.archive-wrapper {
	background: var(--color-beige-warm);
}

/* ── Header archivio ── */
.archive-header {
	background: var(--color-sage-dark);
	padding: 56px 40px;
	text-align: center;
}

.archive-header-inner {
	max-width: 700px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
}

.archive-header-type {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 13px;
	font-weight: 500;
	color: var(--color-sage-mid);
	text-transform: uppercase;
	letter-spacing: 2.5px;
}

.archive-header-title {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 46px;
	font-weight: 400;
	color: #fff;
	line-height: 1.1;
	margin: 0;
}

.archive-header-desc {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 22px;
	font-weight: 300;
	color: rgba(255,255,255,0.75);
	line-height: 1.6;
	margin: 10px 0 0;
}

/* ── Layout 2 colonne (identico a single) ── */
.archive-layout {
	max-width: 1500px;
	margin: 0 auto;
	padding: 56px 40px 80px;
	display: grid;
	grid-template-columns: 1fr 300px;
	gap: 48px;
	align-items: start;
}

.archive-main {
	min-width: 0;
}

/* ── Griglia card ── */
.archive-cards-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

/* Override dimensioni fisse Swiper — nelle card griglia sono fluid */
.archive-cards-grid .approfondimenti-card {
	width: 100%;
	height: 380px;
	cursor: default;
}

/* Il link copre tutta la card */
.approfondimenti-card-link {
	position: absolute;
	inset: 0;
	z-index: 1;
}

/* Categoria e stats devono stare sopra il link di copertura */
.archive-cards-grid .approfondimenti-card-content {
	z-index: 2;
}

.archive-cards-grid .approfondimenti-card-header {
	z-index: 2;
}

/* ── Paginazione numerata ── */
.archive-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 52px;
}

.archive-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 10px;
	border-radius: 8px;
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 15px;
	font-weight: 400;
	color: var(--color-sage-dark);
	background: var(--color-off-white);
	border: 1px solid var(--color-beige-warm);
	text-decoration: none;
	transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.archive-pagination .page-numbers:hover {
	background: var(--color-sage-mid);
	color: #fff;
	border-color: var(--color-sage-mid);
}

.archive-pagination .page-numbers.current {
	background: var(--color-sage-dark);
	color: #fff;
	border-color: var(--color-sage-dark);
	font-weight: 500;
	cursor: default;
}

.archive-pagination .page-numbers.dots {
	background: transparent;
	border-color: transparent;
	color: #aaa;
	cursor: default;
}

.archive-pagination .prev,
.archive-pagination .next {
	font-size: 18px;
	padding: 0 14px;
}

/* Stato vuoto */
.archive-empty {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 17px;
	color: #666;
	text-align: center;
	padding: 60px 0;
}

/* ── Responsive archivio ── */
@media (max-width: 900px) {
	.archive-layout {
		grid-template-columns: 1fr;
		padding: 36px 32px 60px;
	}

	.archive-layout .single-sidebar {
		position: static;
	}

	.archive-header {
		padding: 40px 32px;
	}

	.archive-header-title {
		font-size: 34px;
	}
}

@media (max-width: 900px) {
	.archive-cards-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 600px) {
	.archive-cards-grid {
		grid-template-columns: 1fr;
	}

	.archive-cards-grid .approfondimenti-card {
		height: 340px;
	}

	.archive-layout {
		padding: 24px 20px 48px;
	}

	.archive-header {
		padding: 32px 20px;
	}

	.archive-header-title {
		font-size: 28px;
	}
}

/*--------------------------------------------------------------
# Chi Siamo — Page Template
--------------------------------------------------------------*/

/* Sezione 1 — hero: altezza minima maggiore rispetto al blocco home */
.cs-hero-section {
	min-height: 600px;
}

.cs-hero-title {
	font-size: 42px !important;
}

/* ── Sezione 2: Scopri ──────────────────────────────────────── */
.cs-scopri {
	display: flex;
	width: 100%;
	background: var(--color-beige-warm);
	box-sizing: border-box;
	min-height: 560px;
	padding: 70px 75px;
}

.cs-scopri-content {
	flex: 0 0 50%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding-right: 60px;
	box-sizing: border-box;
}

.cs-scopri-inner {
	max-width: 650px;
	margin: 0 auto;
}

.cs-scopri-text {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 16px;
	font-weight: 300;
	color: var(--color-text-dark);
	line-height: 1.75;
	margin: 0 0 32px;
	opacity: 0.9;
}

.cs-scopri-text p { margin-bottom: 1.3em; }

.cs-scopri .chi-siamo-title {
	font-size: 44px;
	line-height: 1.2;
}

.cs-scopri-image {
	flex: 0 0 50%;
	overflow: hidden;
}

.cs-scopri-image img,
.cs-scopri-video-wrap video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* ── Sezione 3: Prendersi cura (Pattern B) ──────────────────── */
.cs-cura {
	position: relative;
	width: 100%;
	min-height: 800px;
	padding: 100px 0;
	background-size: cover;
	background-position: center;
	background-color: var(--color-sage-dark);
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: flex-end;
}

.cs-cura-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to right, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.05) 40%, rgba(0,0,0,0.50) 100%);
}

.cs-cura-content {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 730px;
	padding: 0 70px 0 40px;
	box-sizing: border-box;
	color: #fff;
	margin-right: 18%;
}

.cs-cura-title {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 38px;
	font-weight: 400;
	color: #fff;
	line-height: 1.15;
	margin: 0 0 24px;
}

.cs-cura-text {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 16px;
	font-weight: 300;
	color: rgba(255,255,255,0.9);
	line-height: 1.75;
	margin: 0 0 36px;
}

.cs-cura-text p {
	margin-bottom: 1.3em;
	color: #fff;
}

.cs-cura-text ul li {
	font-size: 19px;
}

/* ── Sezione 4: Quote + Foto ─────────────────────────────────── */
.cs-quote {
	width: 100%;
	background: var(--color-beige-warm);
	box-sizing: border-box;
	padding: 90px 40px;
}

.cs-quote-wrap {
	max-width: 1000px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	gap: 56px;
}

.cs-quote-image {
	flex: 0 0 300px;
	height: 380px;
	overflow: hidden;
}

.cs-quote-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top center;
	display: block;
}

.cs-quote-content {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	box-sizing: border-box;
}

.cs-quote-inner { max-width: 100%; }

.cs-quote-mark {
	font-family: Georgia, serif;
	font-size: 96px;
	font-weight: 700;
	color: var(--color-sage-mid);
	line-height: 0.75;
	margin-bottom: 16px;
	display: block;
	user-select: none;
}

.cs-quote-text {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 26px;
	font-weight: 300;
	font-style: italic;
	color: var(--color-sage-dark);
	line-height: 1.45;
	margin: 0 0 36px;
	border: none;
	padding: 0;
	background: none;
}

.cs-quote-body {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 16px;
	font-weight: 300;
	color: var(--color-text-dark);
	line-height: 1.75;
}

.cs-quote-body p { margin-bottom: 1.1em; }
.cs-quote-body ul { padding-left: 1.2em; margin-bottom: 1.1em; }
.cs-quote-body li { margin-bottom: 0.4em; }

/* ── Responsive ──────────────────────────────────────────────── */
@media (max-width: 900px) {
	.cs-hero-section { flex-direction: column; min-height: auto; }

	.cs-scopri { flex-direction: column; }
	.cs-scopri { padding: 0; flex-direction: column; }
	.cs-scopri-content, .cs-scopri-image { flex: none; width: 100%; }
	.cs-scopri-content { padding: 60px 40px; padding-right: 40px; }
	.cs-scopri-inner { max-width: 100%; }
	.cs-scopri-image { height: 380px; }

	.cs-cura { padding: 80px 0; }
	.cs-cura-content { width: 70%; padding: 0 40px; }
	.cs-cura-title { font-size: 30px; }

	.cs-quote { padding: 70px 24px; }
	.cs-quote-wrap { flex-direction: column-reverse; gap: 32px; }
	.cs-quote-image { flex: none; width: 100%; height: 360px; }
	.cs-quote-text { font-size: 22px; }
}

@media (max-width: 600px) {
	.cs-hero-title { font-size: 32px !important; }
	.cs-scopri-content { padding: 48px 24px; }
	.cs-cura { padding: 60px 0; }
	.cs-cura-content { width: 100%; padding: 0 24px; }
	.cs-cura-title { font-size: 26px; }
	.cs-quote { padding: 56px 24px; }
	.cs-quote-mark { font-size: 72px; }
	.cs-quote-text { font-size: 20px; }
}


/*--------------------------------------------------------------
# Contatti
---------------------------------------------------------------*/

/* Hero */
.contatti-hero {
	background: var(--color-off-white);
	padding: 90px 75px 70px;
}

.contatti-hero-inner {
	max-width: 1400px;
	margin: 0 auto;
}

.contatti-hero-title {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 60px;
	font-weight: 300;
	color: var(--color-sage-dark);
	margin: 10px 0 0;
	line-height: 1.1;
}

/* Sezione contenuto WP editor + immagine copertina */
.contatti-content-section {
	background: var(--color-beige-warm);
	padding: 80px 75px;
	box-sizing: border-box;
}

.contatti-content-inner {
	max-width: 1100px;
	margin: 0 auto;
	display: flex;
	gap: 60px;
	align-items: center;
}

.contatti-content-image {
	flex: 0 0 40%;
	overflow: hidden;
	border-radius: 14px;
	box-shadow: 0 10px 30px rgba(76, 111, 96, 0.12);
}

.contatti-content-image .contatti-thumb {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.contatti-content-text {
	flex: 1;
	min-width: 0;
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 18px;
	font-weight: 300;
	color: var(--color-text-dark);
	line-height: 1.8;
}

.contatti-content-text p { margin-bottom: 1.3em; }
.contatti-content-text h2 {
	font-size: 32px;
	font-weight: 400;
	color: var(--color-sage-dark);
	margin: 0 0 20px;
	line-height: 1.2;
}
.contatti-content-text h3 {
	font-size: 22px;
	font-weight: 400;
	color: var(--color-sage-dark);
	margin: 0 0 16px;
}

/* Layout a due colonne — card bianca centrata */
.contatti-layout {
	display: flex;
	width: 100%;
	max-width: 1100px;
	margin: 0 auto;
	background: transparent;
	padding: 80px 75px;
	box-sizing: border-box;
	gap: 60px;
	align-items: flex-start;
}

.contatti-layout > * {
	background: #fff;
	border-radius: 14px;
	box-shadow: 0 10px 30px rgba(76, 111, 96, 0.10);
	padding: 44px 40px;
	box-sizing: border-box;
}

/* Colonna sinistra — info */
.contatti-info {
	flex: 0 0 300px;
}

.contatti-studio {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 19px;
	font-weight: 500;
	color: var(--color-sage-dark);
	margin: 0 0 4px;
	line-height: 1.3;
}

.contatti-nome {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 18px;
	font-weight: 300;
	color: var(--color-sage-dark);
	margin: 0 0 16px;
}

.contatti-indirizzo {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 16px;
	font-weight: 300;
	color: #555;
	line-height: 1.7;
	margin: 0;
}

.contatti-separator {
	border: none;
	border-top: 1px solid var(--color-beige-mid);
	margin: 24px 0;
	width: 48px;
}

.contatti-label {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 14px;
	font-weight: 500;
	color: var(--color-sage-dark);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin: 0 0 4px;
}

.contatti-value {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 16px;
	font-weight: 300;
	color: #333;
	margin: 0 0 20px;
}

.contatti-value a {
	color: #333;
	text-decoration: none;
}

.contatti-value a:hover {
	color: var(--color-sage-mid);
}

/* Bottone WhatsApp */
.btn-whatsapp {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: #25D366;
	border-radius: 10px;
	color: #fff;
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.3px;
	padding: 12px 24px;
	margin-top: 6px;
	text-decoration: none;
	transition: filter 0.2s ease, transform 0.2s ease;
}

.btn-whatsapp:hover {
	filter: brightness(1.08);
	transform: translateY(-1px);
	color: #fff;
}

/* Colonna destra — form */
.contatti-form-wrap {
	flex: 1;
	min-width: 0;
	max-width: 700px;
}

/* CF7 form styling */
.contatti-form-wrap .wpcf7 {
	width: 100%;
}

.contatti-form-wrap .cf7-row {
	display: flex;
	gap: 16px;
	margin-bottom: 16px;
}

.contatti-form-wrap .cf7-col {
	flex: 1;
	min-width: 0;
}

.contatti-form-wrap .cf7-field {
	margin-bottom: 16px;
}

.contatti-form-wrap label {
	display: block;
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 13px;
	font-weight: 400;
	color: #444;
	margin-bottom: 6px;
}

.contatti-form-wrap input[type="text"],
.contatti-form-wrap input[type="email"],
.contatti-form-wrap input[type="tel"],
.contatti-form-wrap input[type="url"],
.contatti-form-wrap textarea,
.contatti-form-wrap select {
	width: 100%;
	padding: 12px 16px;
	border: 1px solid var(--color-beige-mid);
	border-radius: 6px;
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 15px;
	font-weight: 300;
	color: var(--color-text-dark);
	background: #fff;
	box-sizing: border-box;
	outline: none;
	transition: border-color 0.2s;
}

.contatti-form-wrap input:focus,
.contatti-form-wrap textarea:focus {
	border-color: var(--color-sage-mid);
}

.contatti-form-wrap textarea {
	min-height: 130px;
	resize: vertical;
}

/* Telefono con bandiera */
.contatti-form-wrap .cf7-tel-inner {
	position: relative;
	display: flex;
	align-items: center;
}

.contatti-form-wrap .cf7-flag {
	position: absolute;
	left: 14px;
	font-size: 18px;
	line-height: 1;
	pointer-events: none;
	z-index: 1;
}

.contatti-form-wrap .cf7-tel-inner input[type="tel"] {
	padding-left: 44px;
}

/* Privacy */
.contatti-form-wrap .cf7-privacy {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 13px;
	font-weight: 300;
	color: #555;
	line-height: 1.5;
	margin-bottom: 24px;
	border: 1px solid var(--color-beige-mid);
	border-radius: 6px;
	padding: 14px 16px;
}

.contatti-form-wrap .cf7-privacy .wpcf7-list-item {
	margin: 0;
}

.contatti-form-wrap .cf7-privacy input[type="checkbox"] {
	margin: 2px 0 0;
	flex-shrink: 0;
	accent-color: var(--color-sage-dark);
	width: 16px;
	height: 16px;
}

/* Submit */
.contatti-form-wrap input[type="submit"],
.contatti-form-wrap .wpcf7-submit {
	background: var(--color-sage-dark);
	color: #fff;
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.04em;
	border: none;
	border-radius: 6px;
	padding: 14px 40px;
	cursor: pointer;
	transition: background 0.2s;
	width: 100%;
}

.contatti-form-wrap input[type="submit"]:hover,
.contatti-form-wrap .wpcf7-submit:hover {
	background: var(--color-sage-dark);
}

/* Mappa */
.contatti-mappa {
	width: 100%;
	line-height: 0;
	padding: 0 75px 80px;
	background: transparent;
	box-sizing: border-box;
}

.contatti-mappa iframe {
	display: block;
	width: 100%;
	height: 450px;
	border: 0;
	border-radius: 14px;
	box-shadow: 0 10px 30px rgba(76, 111, 96, 0.10);
}

/* CF7 validation */
.contatti-form-wrap .wpcf7-not-valid-tip {
	font-size: 12px;
	color: var(--color-terra);
	margin-top: 4px;
	display: block;
}

.contatti-form-wrap .wpcf7-response-output {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 14px;
	padding: 12px 16px;
	border-radius: 6px;
	margin-top: 16px;
	border: none;
}

/* Responsive */
@media (max-width: 900px) {
	.contatti-hero { padding: 60px 40px 40px; }
	.contatti-hero-title { font-size: 40px; }

	.contatti-content-section { padding: 60px 40px; }
	.contatti-content-inner { flex-direction: column; gap: 40px; }
	.contatti-content-image { flex: none; width: 100%; }

	.contatti-layout {
		flex-direction: column;
		padding: 60px 40px;
		gap: 48px;
	}

	.contatti-info { flex: none; width: 100%; }
}

@media (max-width: 600px) {
	.contatti-hero { padding: 48px 24px 32px; }
	.contatti-hero-title { font-size: 32px; }
	.contatti-content-section { padding: 48px 24px; }

	.contatti-layout { padding: 48px 24px; gap: 40px; }

	.contatti-layout > * { padding: 32px 24px; }

	.contatti-mappa { padding: 0 24px 48px; }

	.contatti-form-wrap .cf7-row {
		flex-direction: column;
		gap: 0;
	}
}

/* ------------------------------------------------------------
   CTA fine articolo (blocco standard articoli blog)
------------------------------------------------------------ */
.cta-articolo {
	background: var(--color-beige-warm);
	border-radius: 12px;
	padding: 36px 32px;
	margin: 48px 0 8px;
	text-align: center;
}

.cta-articolo-title {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 22px;
	font-weight: 400;
	color: var(--color-sage-dark);
	line-height: 1.3em;
	margin: 0 0 12px;
}

.cta-articolo-text {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 16px;
	font-weight: 300;
	color: var(--color-text-mid);
	line-height: 1.6em;
	margin: 0 0 20px;
}

.cta-articolo a.btn-cta-articolo {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	background: var(--color-terra);
	border: 2px solid var(--color-terra);
	border-radius: 10px;
	color: #fff;
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 15px;
	font-weight: 400;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	padding: 14px 28px;
	text-decoration: none;
	transition: all 0.2s ease;
}

/* Icona calendario come nel bottone PRENOTA dell'header (il markup della CTA
   viene dal contenuto dell'articolo, quindi l'icona la aggiungiamo via CSS) */
.cta-articolo a.btn-cta-articolo::before {
	content: "";
	width: 15px;
	height: 15px;
	flex-shrink: 0;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E") center / contain no-repeat;
}

.cta-articolo a.btn-cta-articolo:hover {
	background: transparent;
	color: var(--color-terra);
}

@media (max-width: 600px) {
	.cta-articolo { padding: 28px 20px; }
}

/* ------------------------------------------------------------
   Fascia "Approfondimenti dal blog" sulle landing servizi
------------------------------------------------------------ */
.appo-landing-section {
	background: var(--color-off-white);
	padding: 72px 60px;
}

.appo-landing-inner {
	max-width: 1200px;
	margin: 0 auto;
}

.appo-landing-title {
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 48px;
	font-weight: 400;
	color: var(--color-sage-dark);
	text-align: center;
	margin: 0 0 52px;
}

.appo-landing-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}

.appo-landing-card {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	align-items: flex-start;
	min-height: 420px;
	background: var(--color-sage-dark);
	border-radius: 12px;
	overflow: hidden;
	padding: 20px;
	text-decoration: none;
}

.appo-landing-card-bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	transition: transform 0.4s ease;
}

.appo-landing-card:hover .appo-landing-card-bg {
	transform: scale(1.04);
}

.appo-landing-card-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to bottom,
		rgba(62, 74, 60, 0.58) 0%,
		rgba(62, 74, 60, 0.08) 32%,
		rgba(62, 74, 60, 0.08) 55%,
		rgba(62, 74, 60, 0.72) 100%
	);
}

.appo-landing-cat {
	position: relative;
	z-index: 2;
	display: inline-block;
	background: var(--color-sage-dark);
	color: #fff;
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 1px;
	text-transform: uppercase;
	padding: 6px 12px;
	border-radius: 9px;
	margin-bottom: 10px;
}

.appo-landing-card-title {
	position: relative;
	z-index: 2;
	font-family: "futura-pt", Arial, sans-serif;
	font-size: 22px;
	font-weight: 300;
	color: #fff;
	line-height: 1.3em;
	margin: 0;
}

.appo-landing-card:hover .appo-landing-card-title {
	text-decoration: underline;
}

@media (max-width: 900px) {
	.appo-landing-grid { grid-template-columns: repeat(2, 1fr); }
	.appo-landing-section { padding: 56px 24px; }
}

@media (max-width: 600px) {
	.appo-landing-grid { grid-template-columns: 1fr; }
	.appo-landing-title { font-size: 36px; }
	.appo-landing-card { min-height: 340px; }
}

/* ── Gerarchia titoli (PCRT 15/10/2026) ────────────────────────
   Tag cambiati per la SEO (un H1 sensato per pagina, niente salti H1→H3),
   aspetto identico a prima: queste regole compensano le differenze di tag. */
#masthead .site-branding-h1 { display: contents; }
p.hero-title { clear: both; }
h1.chi-siamo-pretitle { line-height: 26px; clear: none; }
p.archive-header-title { clear: both; }
h1.archive-header-desc { clear: none; }
.single-content h2.h3-look { font-size: 22px; line-height: 1.25; margin: 1.8em 0 0.5em; }
.single-content p.single-lead { clear: both; font-size: 22px; font-weight: 400; color: var(--color-sage-dark); line-height: 1.25; margin: 1.8em 0 0.5em; }

/* FAQ con più di 6 domande (PCRT 15/10/2026): linguette su più righe da 5,
   invece di schiacciarle e farle uscire dal contenitore. Con ≤6 domande nulla cambia. */
@media (min-width: 601px) {
	.faq-tabs--many { flex-wrap: wrap; }
	.faq-tabs--many .faq-tab { flex: 1 1 calc(20% - 12px); }
}

/* Introduzione delle categorie del blog (PCRT 15/10/2026): link leggibili sullo sfondo scuro */
.archive-header-desc a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.archive-header-desc a:hover { opacity: .85; }

/* Contatti (PCRT 15/10/2026): link «Indicazioni stradali» staccato dall'indirizzo e riconoscibile come link;
   link all'informativa nel consenso privacy del modulo */
.contatti-info .contatti-indicazioni { margin-top: 6px; }
.contatti-info .contatti-indicazioni a { text-decoration: underline; text-underline-offset: 3px; }
.contatti-form-wrap .cf7-privacy a { color: inherit; text-decoration: underline; }

/* Pulsante WhatsApp fisso (PCRT 16/10/2026): in basso a destra su tutte le pagine.
   Etichetta al passaggio del mouse (e una volta per visita, da sola); onda leggera all'arrivo.
   z-index 140: sopra i contenuti, sotto il pannello del menu mobile (150) e la lightbox dei reel. */
.wa-float {
	position: fixed;
	right: 22px;
	bottom: 22px;
	z-index: 140;
	display: block;
	text-decoration: none;
	-webkit-tap-highlight-color: transparent;
}
.wa-float-btn {
	position: relative;
	display: grid;
	place-items: center;
	width: 58px;
	height: 58px;
	border-radius: 50%;
	background: #25D366;
	color: #fff;
	box-shadow: 0 8px 22px rgba(44, 66, 48, .25), 0 2px 6px rgba(0, 0, 0, .12);
	transition: transform .25s ease, box-shadow .25s ease;
}
.wa-float-btn svg { width: 30px; height: 30px; }
.wa-float-btn::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	animation: wa-pulse 2.6s ease-out 1.2s 3;
}
@keyframes wa-pulse {
	0% { box-shadow: 0 0 0 0 rgba(37, 211, 102, .45); }
	75%, 100% { box-shadow: 0 0 0 16px rgba(37, 211, 102, 0); }
}
.wa-float-label {
	/* fuori dal flusso: l'area cliccabile resta solo il cerchio */
	position: absolute;
	right: calc(100% + 12px);
	top: 50%;
	background: var(--color-off-white);
	color: var(--color-sage-dark);
	font-size: 15px;
	line-height: 1;
	padding: 11px 16px;
	border-radius: 999px;
	box-shadow: 0 6px 18px rgba(44, 66, 48, .18);
	white-space: nowrap;
	opacity: 0;
	transform: translate(10px, -50%);
	pointer-events: none;
	transition: opacity .3s ease, transform .3s ease;
}
.wa-float:hover .wa-float-btn,
.wa-float:focus-visible .wa-float-btn {
	transform: translateY(-3px);
	box-shadow: 0 12px 26px rgba(44, 66, 48, .3), 0 3px 8px rgba(0, 0, 0, .14);
}
.wa-float:hover .wa-float-label,
.wa-float:focus-visible .wa-float-label,
.wa-float.is-peek .wa-float-label { opacity: 1; transform: translate(0, -50%); }
.wa-float:focus-visible { outline: none; }
.wa-float:focus-visible .wa-float-btn { outline: 3px solid var(--color-sage-dark); outline-offset: 3px; }
@media (max-width: 600px) {
	.wa-float { right: 16px; bottom: calc(16px + env(safe-area-inset-bottom)); }
	.wa-float-btn { width: 54px; height: 54px; }
	.wa-float-btn svg { width: 28px; height: 28px; }
	.wa-float-label { font-size: 14px; padding: 10px 14px; right: calc(100% + 10px); }
}
@media (prefers-reduced-motion: reduce) {
	.wa-float-btn,
	.wa-float-label { transition: none; }
	.wa-float-btn::after { animation: none; }
}
@media print { .wa-float { display: none; } }

/* Iubenda: pulsante delle preferenze cookie in basso a sinistra, perché a destra c'è WhatsApp */
body .iubenda-tp-btn.iubenda-tp-btn[data-tp-float][data-tp-float="bottom-right"] { right: auto !important; left: 16px !important; }
