/* ==========================================================================
   Hotel Gioan — stile del tema
   Identità: nero + ambra Gioan (#f0ad1e), fiocco di neve del logo come segno,
   evidenziatore ambra sulle parole chiave, angoli morbidi, calore familiare.
   ========================================================================== */

:root {
	--g-nero: var(--wp--preset--color--nero, #111);
	--g-antracite: var(--wp--preset--color--antracite, #1d1c1a);
	--g-ambra: var(--wp--preset--color--ambra, #f0ad1e);
	--g-ambra-chiaro: var(--wp--preset--color--ambra-chiaro, #fbe6b3);
	--g-crema: var(--wp--preset--color--crema, #faf6ee);
	--g-bianco: #fff;
	--g-grigio: var(--wp--preset--color--grigio, #5c574e);
	--g-linea: rgba(17, 17, 17, 0.12);
	--g-linea-chiara: rgba(255, 255, 255, 0.14);
	--g-display: var(--wp--preset--font-family--display);
	--g-radius: 22px;
	--g-radius-s: 14px;
	--g-section: clamp(4rem, 9vw, 8rem);
	--g-header-h: 84px;
	--g-ease: cubic-bezier(.2, .7, .2, 1);
	--g-fiocco: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-50 -50 100 100' fill='none' stroke='%23000' stroke-width='5' stroke-linecap='round'%3E%3Cg id='a'%3E%3Cpath d='M0-6V-44M0-30l-10-10M0-30l10-10M0-17l-7-7M0-17l7-7'/%3E%3C/g%3E%3Cuse href='%23a' transform='rotate(60)'/%3E%3Cuse href='%23a' transform='rotate(120)'/%3E%3Cuse href='%23a' transform='rotate(180)'/%3E%3Cuse href='%23a' transform='rotate(240)'/%3E%3Cuse href='%23a' transform='rotate(300)'/%3E%3Ccircle r='6'/%3E%3C/svg%3E");
}

html { scroll-behavior: smooth; scroll-padding-top: calc(var(--g-header-h) + 16px); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: hidden; }
img { height: auto; }
::selection { background: var(--g-ambra); color: var(--g-nero); }
:where(a, button, summary):focus-visible { outline: 3px solid var(--g-ambra); outline-offset: 3px; border-radius: 4px; }

/* Evidenziatore ambra: nell'editor basta selezionare una parola e usare "Evidenzia" */
mark,
:where(h1, h2, h3, .g-footer__claim) mark {
	background: linear-gradient(transparent 12%, var(--g-ambra) 12%, var(--g-ambra) 88%, transparent 88%) !important;
	color: var(--g-nero) !important;
	padding: 0 .12em;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}
.is-dark mark, .g-hero mark, .g-pagehead mark { background: none !important; color: var(--g-ambra) !important; padding: 0; }

h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }

/* ---------- Occhiello: segno distintivo con fiocco di neve ---------- */
.is-style-occhiello {
	display: inline-flex !important;
	align-items: center;
	gap: .6em;
	font-family: var(--wp--preset--font-family--testo) !important;
	font-size: .8rem !important;
	font-weight: 700 !important;
	letter-spacing: .16em !important;
	text-transform: uppercase;
	line-height: 1.3 !important;
	color: inherit;
	margin-bottom: 0;
}
.is-style-occhiello::before {
	content: "";
	flex: none;
	width: 1.15em;
	height: 1.15em;
	background: var(--g-ambra);
	-webkit-mask: var(--g-fiocco) center / contain no-repeat;
	mask: var(--g-fiocco) center / contain no-repeat;
}
.g-footer .is-style-occhiello { color: rgba(255, 255, 255, .62); }

.is-style-lead { font-size: var(--wp--preset--font-size--medio) !important; line-height: 1.5; }

/* ---------- Bottoni ---------- */
.wp-element-button, .wp-block-button__link {
	transition: transform .25s var(--g-ease), background-color .25s, color .25s, box-shadow .25s;
	text-decoration: none !important;
	display: inline-flex;
	align-items: center;
	gap: .55em;
}
.wp-block-button__link:hover { transform: translateY(-2px); box-shadow: 0 10px 24px -10px rgba(240, 173, 30, .8); }
.wp-block-button:not(.g-call) .wp-block-button__link::after { content: "→"; transition: transform .25s var(--g-ease); }
.wp-block-button:not(.g-call) .wp-block-button__link:hover::after { transform: translateX(4px); }
.is-style-contorno-chiaro .wp-block-button__link { background: transparent !important; color: #fff !important; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .55); }
.is-style-contorno-chiaro .wp-block-button__link:hover { box-shadow: inset 0 0 0 1.5px #fff; }
.is-style-nero .wp-block-button__link { background: var(--g-nero) !important; color: #fff !important; }
.is-style-nero .wp-block-button__link:hover { box-shadow: 0 10px 24px -10px rgba(0, 0, 0, .6); }

/* ==========================================================================
   Header
   ========================================================================== */
.g-header-wrap { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 50; }
.g-header {
	background: rgba(17, 17, 17, .96);
	backdrop-filter: saturate(140%) blur(10px);
	color: #fff;
	border-bottom: 1px solid var(--g-linea-chiara);
	transition: box-shadow .3s;
}
.g-header.is-scrolled { box-shadow: 0 10px 30px -18px rgba(0, 0, 0, .9); }
.g-header__bar {
	max-width: 1560px;
	margin: 0 auto;
	min-height: var(--g-header-h);
	gap: 1.5rem;
	padding: 0 clamp(1rem, 3vw, 2rem);
}
.g-header__logo img { width: clamp(140px, 14vw, 178px) !important; }
.g-nav { margin-left: auto; }
.g-nav .wp-block-navigation__container { gap: clamp(1rem, 2vw, 2rem); }
.g-nav .wp-block-navigation-item__content {
	font-weight: 600;
	font-size: .97rem;
	text-decoration: none;
	padding: .4em 0;
	position: relative;
}
.g-nav .wp-block-navigation-item__content::after {
	content: "";
	position: absolute; left: 0; right: 0; bottom: -2px;
	height: 3px; border-radius: 3px;
	background: var(--g-ambra);
	transform: scaleX(0); transform-origin: left;
	transition: transform .3s var(--g-ease);
}
.g-nav .wp-block-navigation-item__content:hover::after,
.g-nav .current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1); }
.g-nav .wp-block-navigation__responsive-container-open svg,
.g-nav .wp-block-navigation__responsive-container-close svg { width: 30px; height: 30px; }
.g-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--g-nero) !important;
	color: #fff !important;
	padding: 2rem clamp(1.25rem, 6vw, 3rem);
}
.g-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: .4rem; }
.g-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-family: var(--g-display);
	font-size: clamp(1.9rem, 8vw, 2.6rem);
	font-weight: 800;
	letter-spacing: -.02em;
}
.g-header__cta { flex: none; }
.g-call .wp-block-button__link {
	flex-direction: column;
	align-items: flex-start;
	gap: 0;
	line-height: 1.15;
	padding: .55em 1.25em .6em 3.1em;
	position: relative;
	font-size: 1.02rem;
	white-space: nowrap;
}
.g-call .wp-block-button__link::before {
	content: "Per prenotazioni";
	font-size: .66rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	opacity: .72;
}
.g-call .wp-block-button__link::after {
	content: "";
	position: absolute; left: 1.05em; top: 50%;
	width: 1.35em; height: 1.35em;
	transform: translateY(-50%);
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%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'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E") center / contain no-repeat;
}
@media (max-width: 781px) {
	:root { --g-header-h: 68px; }
	.g-header__bar { gap: .75rem; }
	.g-call .wp-block-button__link { padding: 0; width: 46px; height: 46px; font-size: 0; justify-content: center; }
	.g-call .wp-block-button__link::before { display: none; }
	.g-call .wp-block-button__link::after { left: 50%; transform: translate(-50%, -50%); width: 20px; height: 20px; }
	.g-header__cta { order: 2; }
	.g-nav { order: 3; margin-left: 0; }
	.g-header__logo { margin-right: auto; }
}

/* ==========================================================================
   Sezioni generiche
   ========================================================================== */
.g-content > .alignfull:first-child { margin-top: 0; }
.g-main, .g-content { margin-block: 0 !important; }
.g-content > * + * { margin-block-start: 0; }
.g-section {
	padding-block: var(--g-section);
	position: relative;
	isolation: isolate;
}
.g-section.is-dark { background: var(--g-nero); color: #fff; }
.g-section.is-antracite { background: var(--g-antracite); color: #fff; }
.g-section.is-ambra { background: var(--g-ambra); color: var(--g-nero); }
.g-section.is-bianco { background: #fff; }
.g-section.is-dark .is-style-lead, .g-section.is-antracite .is-style-lead { color: rgba(255, 255, 255, .86); }
.g-section.is-dark p:not(.is-style-occhiello):not(.g-stat__num), .g-section.is-antracite p:not(.is-style-occhiello):not(.g-stat__num) { color: rgba(255, 255, 255, .78); }
.g-section:not(.is-dark):not(.is-antracite) p:not(.is-style-lead):not(.is-style-occhiello):not(.g-stat__num) { color: var(--g-grigio); }
.g-section.has-fiocco::after {
	content: "";
	position: absolute; z-index: -1;
	right: -8vw; top: 50%;
	width: min(62vw, 760px); aspect-ratio: 1;
	transform: translateY(-50%) rotate(8deg);
	background: currentColor;
	opacity: .045;
	-webkit-mask: var(--g-fiocco) center / contain no-repeat;
	mask: var(--g-fiocco) center / contain no-repeat;
	pointer-events: none;
}
.g-section.is-dark.has-fiocco::after { background: var(--g-ambra); opacity: .07; }

.g-head { margin-bottom: clamp(2rem, 5vw, 3.5rem); }
.g-head > * + * { margin-top: 1rem; }
.g-head h2 { margin-top: .9rem; }
.g-head .is-style-lead { max-width: 46ch; }

/* Intro a due colonne */
.g-split { gap: clamp(2rem, 6vw, 6rem) !important; align-items: flex-start; }
.g-split h2 { font-size: var(--wp--preset--font-size--titolo); }
.g-split .wp-block-column > * + * { margin-top: 1.25rem; }
.g-split .wp-block-buttons { margin-top: 2rem; }

/* ==========================================================================
   HERO (home) — copertina con foto modificabile
   ========================================================================== */
.g-hero.wp-block-cover {
	min-height: min(92vh, 920px) !important;
	padding: 0 clamp(1rem, 4vw, 2.5rem) clamp(7rem, 14vw, 9.5rem);
	align-items: flex-end;
	color: #fff;
}
.g-hero .wp-block-cover__background {
	background: linear-gradient(180deg, rgba(17, 17, 17, .25) 0%, rgba(17, 17, 17, .05) 35%, rgba(17, 17, 17, .78) 100%) !important;
	opacity: 1 !important;
}
.g-hero .wp-block-cover__image-background { animation: g-kenburns 22s ease-out both; }
@keyframes g-kenburns { from { transform: scale(1.08); } to { transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .g-hero .wp-block-cover__image-background { animation: none; } }
.g-hero .wp-block-cover__inner-container { width: 100%; max-width: var(--wp--style--global--wide-size, 1440px); margin-inline: auto; }
.g-hero h1 {
	font-size: var(--wp--preset--font-size--enorme);
	line-height: .95;
	letter-spacing: -.035em;
	max-width: 13ch;
	margin-top: 1.1rem;
	text-shadow: 0 2px 30px rgba(0, 0, 0, .25);
}
.g-hero .is-style-lead { max-width: 44ch; margin-top: 1.4rem; color: rgba(255, 255, 255, .9); }
.g-hero .wp-block-buttons { margin-top: 2.2rem; }
.g-hero__badge {
	position: absolute !important;
	right: clamp(1rem, 5vw, 4rem);
	top: clamp(1.5rem, 7vw, 4.5rem);
	width: clamp(104px, 11vw, 140px);
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--g-ambra);
	color: var(--g-nero);
	display: grid !important;
	place-content: center;
	text-align: center;
	font-family: var(--g-display);
	font-weight: 800;
	font-size: clamp(.8rem, 1.1vw, .95rem) !important;
	line-height: 1.05 !important;
	letter-spacing: -.01em;
	transform: rotate(-10deg);
	box-shadow: 0 18px 40px -16px rgba(0, 0, 0, .6);
	margin: 0 !important;
}
.g-hero__badge strong { display: block; font-size: 2.1em; letter-spacing: -.04em; }
.g-hero__badge::before {
	content: "";
	position: absolute; inset: 7px;
	border-radius: 50%;
	border: 1.5px dashed rgba(17, 17, 17, .45);
}

/* Barra dati rapidi sotto l'hero */
.g-facts {
	position: relative;
	z-index: 3;
	margin-top: calc(-1 * clamp(4.5rem, 9vw, 5.5rem)) !important;
}
.g-facts__grid {
	background: #fff;
	border-radius: var(--g-radius);
	box-shadow: 0 30px 60px -36px rgba(17, 17, 17, .45);
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0 !important;
	overflow: hidden;
}
.g-fact { padding: clamp(1.1rem, 2.5vw, 1.8rem) clamp(1rem, 2.5vw, 2rem); border-left: 1px solid var(--g-linea); margin: 0 !important; }
.g-fact:first-child { border-left: 0; }
.g-fact > * { margin: 0 !important; }
.g-fact__num { font-family: var(--g-display); font-weight: 800; font-size: clamp(1.7rem, 3.3vw, 2.6rem) !important; line-height: 1; letter-spacing: -.03em; }
.g-fact__num small, .g-stat__num small { font-size: .45em; letter-spacing: 0; margin-left: .15em; color: var(--g-ambra); }
.g-fact__label { font-size: .9rem !important; color: var(--g-grigio); margin-top: .35rem !important; }
@media (max-width: 781px) {
	.g-facts__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.g-fact:nth-child(3) { border-left: 0; }
	.g-fact:nth-child(n+3) { border-top: 1px solid var(--g-linea); }
}

/* ==========================================================================
   Testata pagine interne
   ========================================================================== */
.g-pagehead.wp-block-cover {
	min-height: clamp(380px, 62vh, 620px) !important;
	padding: clamp(5rem, 10vw, 7rem) clamp(1rem, 4vw, 2.5rem) clamp(3rem, 6vw, 4.5rem);
	align-items: flex-end;
	color: #fff;
}
.g-pagehead .wp-block-cover__background {
	background: linear-gradient(180deg, rgba(17, 17, 17, .15), rgba(17, 17, 17, .78)) !important;
	opacity: 1 !important;
}
.g-pagehead .wp-block-cover__inner-container { max-width: var(--wp--style--global--wide-size, 1440px); width: 100%; margin-inline: auto; }
.g-pagehead h1 { font-size: var(--wp--preset--font-size--titolo); max-width: 16ch; margin-top: .9rem; }
.g-pagehead .is-style-lead { max-width: 52ch; color: rgba(255, 255, 255, .9); margin-top: 1.2rem; }
.g-pagehead--plain {
	background: var(--g-nero);
	color: #fff;
	padding: clamp(4rem, 9vw, 7rem) clamp(1rem, 4vw, 2.5rem) clamp(3rem, 6vw, 4.5rem) !important;
}
.g-pagehead--plain > * { max-width: var(--wp--style--global--wide-size, 1440px) !important; margin-inline: auto !important; }
.g-pagehead--plain h1 { margin-top: .75rem; }
.g-404 { min-height: 70vh; display: flex; flex-direction: column; justify-content: center; }
.g-404 .wp-block-buttons { margin-top: 2rem; }

/* Briciole di pane */
.g-breadcrumb { font-size: .85rem; margin-bottom: 1.2rem; }
.g-breadcrumb ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .25rem .5rem; }
.g-breadcrumb li { display: inline-flex; align-items: center; gap: .5rem; color: rgba(255, 255, 255, .7); }
.g-breadcrumb li + li::before { content: "/"; opacity: .5; }
.g-breadcrumb a { color: #fff; text-decoration: none; }
.g-breadcrumb a:hover { color: var(--g-ambra); }

/* ==========================================================================
   Numeri (sezione scura)
   ========================================================================== */
.g-stats { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 !important; border-top: 1px solid var(--g-linea-chiara); }
.g-stat { padding: 2rem 1.5rem 0 0; margin: 0 !important; }
.g-stat + .g-stat { padding-left: 1.5rem; border-left: 1px solid var(--g-linea-chiara); }
.g-stat > * { margin: 0 !important; }
.g-stat__num { font-family: var(--g-display); font-weight: 800; font-size: clamp(2.8rem, 6vw, 5rem) !important; line-height: .9; letter-spacing: -.04em; color: var(--g-ambra); }
.g-stat__label { margin-top: .75rem !important; font-size: .95rem; }
@media (max-width: 781px) {
	.g-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.g-stat:nth-child(3) { padding-left: 0; border-left: 0; }
	.g-stat:nth-child(n+3) { padding-top: 2rem; }
}

/* ==========================================================================
   Card (camere, esperienze)
   ========================================================================== */
.g-cards { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.75rem) !important; }
.g-cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.g-card {
	background: #fff;
	border-radius: var(--g-radius);
	overflow: hidden;
	margin: 0 !important;
	display: flex;
	flex-direction: column;
	box-shadow: 0 1px 0 var(--g-linea);
	transition: transform .4s var(--g-ease), box-shadow .4s var(--g-ease);
}
.is-dark .g-card { background: var(--g-antracite); }
.g-card:hover { transform: translateY(-6px); box-shadow: 0 28px 50px -30px rgba(17, 17, 17, .5); }
.g-card .wp-block-image { margin: 0 !important; overflow: hidden; aspect-ratio: 4 / 3.3; }
.g-card .wp-block-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--g-ease); }
.g-card:hover .wp-block-image img { transform: scale(1.05); }
.g-card__body { padding: clamp(1.3rem, 2.5vw, 1.9rem); margin: 0 !important; flex: 1; }
.g-card__body > * + * { margin-top: .7rem; }
.g-card__body h3 { font-size: clamp(1.45rem, 2.2vw, 1.85rem); }
.g-card__tag {
	display: inline-block !important;
	font-size: .75rem !important;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	background: var(--g-ambra-chiaro);
	color: var(--g-nero) !important;
	border-radius: 999px;
	padding: .35em .9em;
}
@media (max-width: 960px) { .g-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .g-cards, .g-cards--2 { grid-template-columns: 1fr; } }

/* ==========================================================================
   Foto + testo (ristorante, family)
   ========================================================================== */
.g-feature { gap: clamp(2rem, 6vw, 5.5rem) !important; align-items: center !important; }
.g-feature .wp-block-image { margin: 0; position: relative; }
.g-feature .wp-block-image img { width: 100%; aspect-ratio: 4 / 4.4; object-fit: cover; border-radius: var(--g-radius); }
.g-feature__img--stack { position: relative; }
.g-feature .wp-block-column > * + * { margin-top: 1.15rem; }
.g-feature .wp-block-buttons { margin-top: 2rem; }
.g-feature.is-reversed { flex-direction: row-reverse; }
.g-feature__img .wp-block-image::after {
	content: "";
	position: absolute;
	width: clamp(70px, 9vw, 110px); aspect-ratio: 1;
	right: -18px; bottom: -18px;
	background: var(--g-ambra);
	-webkit-mask: var(--g-fiocco) center / contain no-repeat;
	mask: var(--g-fiocco) center / contain no-repeat;
}
@media (max-width: 781px) { .g-feature.is-reversed { flex-direction: column; } }

/* Lista "momenti" (colazione, pranzo...) */
.g-moments { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 !important; border-top: 1px solid var(--g-linea); }
.is-dark .g-moments { border-color: var(--g-linea-chiara); }
.g-moment { padding: 1.8rem 1.8rem 1.8rem 0; border-bottom: 1px solid var(--g-linea); margin: 0 !important; }
.is-dark .g-moment { border-color: var(--g-linea-chiara); }
.g-moment:nth-child(even) { padding-left: 1.8rem; border-left: 1px solid var(--g-linea); }
.is-dark .g-moment:nth-child(even) { border-color: var(--g-linea-chiara); }
.g-moment > * + * { margin-top: .6rem; }
.g-moment h3 { font-size: clamp(1.4rem, 2vw, 1.75rem); display: flex; align-items: baseline; gap: .6rem; }
.g-moment h3::before { content: counter(g-moment, decimal-leading-zero); counter-increment: g-moment; font-family: var(--wp--preset--font-family--testo); font-size: .8rem; font-weight: 700; color: var(--g-ambra); letter-spacing: .08em; }
.g-moments { counter-reset: g-moment; }
@media (max-width: 781px) {
	.g-moments { grid-template-columns: 1fr; }
	.g-moment:nth-child(even) { padding-left: 0; border-left: 0; }
}

/* ==========================================================================
   Servizi con icone
   ========================================================================== */
.g-services { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)); gap: clamp(.75rem, 1.5vw, 1rem) !important; }
.g-service {
	margin: 0 !important;
	background: #fff;
	border-radius: var(--g-radius-s);
	padding: 1.25rem 1.25rem 1.25rem 4.2rem;
	position: relative;
	font-weight: 700;
	line-height: 1.3;
	min-height: 4.5rem;
	display: flex !important;
	align-items: center;
	color: var(--g-nero) !important;
	transition: background-color .25s, transform .25s var(--g-ease);
}
.g-service:hover { background: var(--g-ambra-chiaro); transform: translateY(-3px); }
.g-service::before {
	content: "";
	position: absolute; left: 1.1rem; top: 50%;
	width: 2.2rem; height: 2.2rem;
	transform: translateY(-50%);
	border-radius: 50%;
	background: var(--g-ambra);
}
.g-service::after {
	content: "";
	position: absolute; left: 1.55rem; top: 50%;
	width: 1.3rem; height: 1.3rem;
	transform: translateY(-50%);
	background: var(--g-nero);
	-webkit-mask: var(--g-ico, var(--g-fiocco)) center / contain no-repeat;
	mask: var(--g-ico, var(--g-fiocco)) center / contain no-repeat;
}
.g-ico-ristorante { --g-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 3v8M4 3v5a2 2 0 0 0 4 0V3M6 11v10M17 21V3c-2.5 1.5-3.5 4-3.5 8h3.5'/%3E%3C/svg%3E"); }
.g-ico-bar { --g-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16l-8 9zM12 13v7M8 20h8M15 7.5 18 4'/%3E%3C/svg%3E"); }
.g-ico-ascensore { --g-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='3' width='16' height='18' rx='2'/%3E%3Cpath d='m9 9 2-2 2 2M9 15l2 2 2-2M16 7v10'/%3E%3C/svg%3E"); }
.g-ico-lettura { --g-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M12 6c-2-1.5-5-2-8-2v14c3 0 6 .5 8 2 2-1.5 5-2 8-2V4c-3 0-6 .5-8 2zM12 6v14'/%3E%3C/svg%3E"); }
.g-ico-parcheggio { --g-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='4'/%3E%3Cpath d='M9.5 17V7h3.5a3 3 0 0 1 0 6H9.5'/%3E%3C/svg%3E"); }
.g-ico-tv { --g-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='6' width='18' height='13' rx='2'/%3E%3Cpath d='m8 2 4 4 4-4'/%3E%3C/svg%3E"); }
.g-ico-accessibile { --g-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='4' r='1.6'/%3E%3Cpath d='M11 7v6h5l2.5 6M11 9.5H7.5M8 11.2a5 5 0 1 0 6.7 6.6'/%3E%3C/svg%3E"); }
.g-ico-cortile { --g-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2 6 10h3l-4 6h14l-4-6h3zM12 16v6'/%3E%3C/svg%3E"); }
.g-ico-gruppi { --g-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.2'/%3E%3Cpath d='M3 20c0-3.5 2.7-6 6-6s6 2.5 6 6M16 4.8a3.2 3.2 0 0 1 0 6.4M18 14.3c1.8.8 3 2.9 3 5.7'/%3E%3C/svg%3E"); }
.g-ico-salone { --g-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6c3 1.5 6 1.5 9 0v6a4.5 4.5 0 0 1-9 0zM12 9c3 1.5 6 1.5 9 0v6a4.5 4.5 0 0 1-9 0'/%3E%3Cpath d='M6 11h.01M9 11h.01M15.5 17a2 2 0 0 1 3 0'/%3E%3C/svg%3E"); }
.g-ico-animali { --g-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cellipse cx='6' cy='10' rx='2' ry='2.6'/%3E%3Cellipse cx='10' cy='5.5' rx='2' ry='2.6'/%3E%3Cellipse cx='14.5' cy='5.5' rx='2' ry='2.6'/%3E%3Cellipse cx='18.5' cy='10' rx='2' ry='2.6'/%3E%3Cpath d='M12.2 11.5c-2.6 0-5.2 4.3-5.2 6.4 0 1.7 1.4 2.4 2.7 2.4 1 0 1.6-.6 2.5-.6s1.5.6 2.5.6c1.3 0 2.7-.7 2.7-2.4 0-2.1-2.6-6.4-5.2-6.4z'/%3E%3C/svg%3E"); }
.g-ico-sci { --g-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='15' cy='4' r='1.8'/%3E%3Cpath d='m3 15 17 6M8 9l4-2 3 3-3 3 2 4M15 10l3 1'/%3E%3C/svg%3E"); }

/* ==========================================================================
   Galleria
   ========================================================================== */
.g-gallery.wp-block-gallery { gap: clamp(.5rem, 1vw, .9rem) !important; }
.g-gallery.wp-block-gallery .wp-block-image { border-radius: var(--g-radius-s); overflow: hidden; }
.g-gallery.wp-block-gallery .wp-block-image img { aspect-ratio: 4 / 3.3; object-fit: cover; transition: transform .8s var(--g-ease); }
.g-gallery.wp-block-gallery .wp-block-image:hover img { transform: scale(1.04); }
@media (min-width: 782px) {
	.g-gallery.wp-block-gallery.columns-3 .wp-block-image:first-child { grid-row: span 2; }
}

/* Immagine arrotondata */
.is-style-arrotondata img, .wp-block-post-featured-image.is-style-arrotondata img { border-radius: var(--g-radius); }

/* ==========================================================================
   FAQ (blocco Dettagli)
   ========================================================================== */
.g-faq { border-top: 1px solid var(--g-linea); }
.is-dark .g-faq { border-color: var(--g-linea-chiara); }
.g-faq .wp-block-details { border-bottom: 1px solid var(--g-linea); padding: 0; margin: 0 !important; }
.is-dark .g-faq .wp-block-details { border-color: var(--g-linea-chiara); }
.g-faq summary {
	list-style: none;
	cursor: pointer;
	padding: 1.4rem 3.5rem 1.4rem 0;
	font-family: var(--g-display);
	font-weight: 700;
	font-size: clamp(1.1rem, 1.8vw, 1.35rem);
	line-height: 1.3;
	position: relative;
}
.g-faq summary::-webkit-details-marker { display: none; }
.g-faq summary::after {
	content: "+";
	position: absolute; right: 0; top: 50%;
	width: 2.3rem; height: 2.3rem;
	transform: translateY(-50%);
	border-radius: 50%;
	display: grid; place-items: center;
	background: var(--g-ambra);
	color: var(--g-nero);
	font-family: var(--wp--preset--font-family--testo);
	font-size: 1.4rem; font-weight: 500;
	transition: transform .3s var(--g-ease);
}
.g-faq details[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.g-faq details > :not(summary) { margin: 0 0 1.5rem; max-width: 70ch; }

/* ==========================================================================
   Fascia CTA ambra
   ========================================================================== */
.g-band { text-align: left; overflow: hidden; }
.g-band h2 { font-size: var(--wp--preset--font-size--enorme); line-height: .95; letter-spacing: -.035em; max-width: 14ch; }
.g-band .is-style-lead { max-width: 48ch; margin-top: 1.4rem; }
.g-band .wp-block-buttons { margin-top: 2.2rem; }
.g-band.has-fiocco::after { opacity: .12 !important; background: var(--g-nero) !important; }

/* ==========================================================================
   Contatti + mappa
   ========================================================================== */
.g-contact { gap: clamp(2rem, 5vw, 4rem) !important; align-items: stretch !important; }
.g-route { counter-reset: g-step; list-style: none; padding: 0; margin: 1.5rem 0 0; }
.g-route li { counter-increment: g-step; position: relative; padding: 0 0 1.25rem 3rem; }
.g-route li::before {
	content: counter(g-step);
	position: absolute; left: 0; top: -.1rem;
	width: 2rem; height: 2rem;
	border-radius: 50%;
	display: grid; place-items: center;
	background: var(--g-ambra); color: var(--g-nero);
	font-weight: 800; font-size: .9rem;
}
.g-route li:not(:last-child)::after { content: ""; position: absolute; left: calc(1rem - 1px); top: 2.1rem; bottom: .2rem; width: 2px; background: var(--g-linea); }

/* Blocco contatti (dati da "Dati Hotel") */
.g-contatti { font-style: normal; display: grid; gap: .9rem; }
.g-contatti__row { display: flex; gap: .8rem; align-items: flex-start; margin: 0; line-height: 1.45; }
.g-contatti__row svg { flex: none; width: 1.15rem; height: 1.15rem; margin-top: .18rem; color: var(--g-ambra); }
.g-contatti a { text-decoration: none; }
.g-contatti a:hover { color: var(--g-ambra); text-decoration: underline; }
.g-contatti__label { display: block; font-size: .78rem; text-transform: uppercase; letter-spacing: .1em; opacity: .6; }
.g-section:not(.is-dark) .g-contatti { color: var(--g-nero); }

/* Mappa con consenso (carica Google Maps solo al clic) */
.g-mappa {
	position: relative;
	border-radius: var(--g-radius);
	overflow: hidden;
	min-height: 420px;
	height: 100%;
	background: var(--g-antracite);
	color: #fff;
}
.g-mappa iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.g-mappa__placeholder {
	position: absolute; inset: 0;
	display: flex; flex-direction: column; justify-content: flex-end; gap: 1rem;
	padding: clamp(1.5rem, 4vw, 2.5rem);
	background:
		radial-gradient(circle at 70% 35%, rgba(240, 173, 30, .35), transparent 45%),
		repeating-radial-gradient(circle at 70% 35%, transparent 0 26px, rgba(255, 255, 255, .06) 26px 27px),
		var(--g-antracite);
}
.g-mappa__pin {
	position: absolute; left: 70%; top: 35%;
	width: 54px; height: 54px;
	transform: translate(-50%, -100%);
	background: var(--g-ambra);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%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'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E") center / contain no-repeat;
	animation: g-pin 2.4s ease-in-out infinite;
}
@keyframes g-pin { 50% { transform: translate(-50%, -110%); } }
@media (prefers-reduced-motion: reduce) { .g-mappa__pin { animation: none; } }
.g-mappa__title { font-family: var(--g-display); font-weight: 800; font-size: clamp(1.5rem, 2.6vw, 2rem); line-height: 1.1; margin: 0; }
.g-mappa__text { margin: 0; color: rgba(255, 255, 255, .75); font-size: .95rem; max-width: 42ch; }
.g-mappa__actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.g-mappa__btn {
	appearance: none; border: 0; cursor: pointer;
	font: inherit; font-weight: 700;
	border-radius: 999px;
	padding: .85em 1.4em;
	background: var(--g-ambra); color: var(--g-nero);
	text-decoration: none;
}
.g-mappa__btn--ghost { background: transparent; color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .5); }

/* Social */
.g-social { display: flex; gap: .6rem; list-style: none; padding: 0; margin: 1.5rem 0 0; }
.g-social a {
	width: 42px; height: 42px;
	border-radius: 50%;
	display: grid; place-items: center;
	box-shadow: inset 0 0 0 1.5px var(--g-linea-chiara);
	color: #fff;
	transition: background-color .25s, color .25s;
}
.g-social a:hover { background: var(--g-ambra); color: var(--g-nero); box-shadow: none; }
.g-social svg { width: 18px; height: 18px; }

/* ==========================================================================
   Footer
   ========================================================================== */
.g-footer {
	background: var(--g-nero);
	color: rgba(255, 255, 255, .82);
	padding: clamp(4rem, 8vw, 6.5rem) clamp(1rem, 4vw, 2.5rem) 2rem !important;
	margin-top: 0 !important;
	position: relative;
	overflow: hidden;
}
.g-footer::before {
	content: "";
	position: absolute;
	right: -120px; top: -120px;
	width: 520px; aspect-ratio: 1;
	background: var(--g-ambra);
	opacity: .06;
	-webkit-mask: var(--g-fiocco) center / contain no-repeat;
	mask: var(--g-fiocco) center / contain no-repeat;
}
.g-footer a { color: #fff; text-decoration: none; }
.g-footer a:hover { color: var(--g-ambra); }
.g-footer__claim { color: #fff; font-size: var(--wp--preset--font-size--titolo); margin-top: .9rem !important; max-width: 14ch; }
.g-footer__claim mark { background: none !important; color: var(--g-ambra) !important; padding: 0; }
.g-footer__cols { margin-top: clamp(3rem, 6vw, 4.5rem) !important; padding-top: clamp(2rem, 4vw, 3rem); border-top: 1px solid var(--g-linea-chiara); gap: clamp(2rem, 4vw, 3rem) !important; }
.g-footer__cols h3 { margin-bottom: 1.2rem; }
.g-footer__about { font-size: .95rem; margin-top: 1.4rem; max-width: 36ch; }
.g-footer__nav .wp-block-navigation__container { gap: .55rem !important; }
.g-footer__nav .wp-block-navigation-item__content { font-weight: 600; }
.g-footer__links { list-style: none; padding: 0; margin: 0; display: grid; gap: .55rem; font-weight: 600; }
.g-legale {
	margin-top: clamp(3rem, 6vw, 4rem) !important;
	padding-top: 1.5rem;
	border-top: 1px solid var(--g-linea-chiara);
	display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1.5rem;
	font-size: .82rem;
	color: rgba(255, 255, 255, .55);
}
.g-legale p { margin: 0; }
.g-legale nav { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; }
.g-legale a { color: rgba(255, 255, 255, .75); }

/* ==========================================================================
   Testi lunghi (privacy, articoli)
   ========================================================================== */
.g-prose { padding-block: clamp(3rem, 6vw, 5rem); }
.g-prose h2 { font-size: var(--wp--preset--font-size--grande); margin-top: 2.5rem; }
.g-prose h3 { font-size: var(--wp--preset--font-size--medio); margin-top: 2rem; }
.g-prose a { color: var(--g-nero); text-decoration-color: var(--g-ambra); text-decoration-thickness: 2px; text-underline-offset: 3px; }

/* Novità */
.g-news__grid { gap: clamp(1.25rem, 2.5vw, 2rem) !important; }
.g-news__grid .wp-block-post-featured-image img { border-radius: var(--g-radius-s); }
.g-news__grid .wp-block-post-title { font-size: 1.4rem; margin-top: .4rem; }
.g-news__grid .wp-block-post-title a { text-decoration: none; }

/* ==========================================================================
   Animazioni di comparsa (attivate da gioan.js, rispettano "riduci movimento")
   ========================================================================== */
.g-js .g-reveal { opacity: 0; transform: translateY(28px); transition: opacity .9s var(--g-ease), transform .9s var(--g-ease); }
.g-js .g-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .g-js .g-reveal { opacity: 1; transform: none; transition: none; } }
.editor-styles-wrapper .g-reveal { opacity: 1 !important; transform: none !important; }

/* Editor: la barra fissa non deve coprire i contenuti */
.editor-styles-wrapper .g-header-wrap { position: relative; top: 0; }

/* Momenti impilati in una colonna (home, ristorante) */
.g-moments.is-stacked { grid-template-columns: 1fr; margin-top: 1.5rem !important; }
.g-moments.is-stacked .g-moment { padding: 1.4rem 0; border-left: 0 !important; }
.g-moments.is-stacked .g-moment:nth-child(even) { padding-left: 0; }
.g-feature .wp-block-image img { border-radius: var(--g-radius); }
.g-feature > .wp-block-column:first-child { position: relative; }
.g-feature > .wp-block-column:first-child .wp-block-image::after {
	content: "";
	position: absolute;
	width: clamp(64px, 8vw, 104px); aspect-ratio: 1;
	right: -16px; bottom: -16px;
	background: var(--g-ambra);
	-webkit-mask: var(--g-fiocco) center / contain no-repeat;
	mask: var(--g-fiocco) center / contain no-repeat;
}
.g-feature.is-reversed > .wp-block-column:first-child .wp-block-image::after { right: auto; left: -16px; }
.g-section > .alignwide > .wp-block-buttons { margin-top: 2.5rem; }
.g-pagehead .g-breadcrumb + .is-style-occhiello { margin-top: 0; }
.g-contact .g-contatti { margin-top: 2rem; padding-top: 2rem; border-top: 1px solid var(--g-linea); }
.g-contact .wp-block-column > * + * { margin-top: 1.1rem; }
.g-split .wp-block-column:first-child .g-head { margin-bottom: 0; }

/* Nessuno spazio tra header, contenuto e footer */
.wp-site-blocks > * + * { margin-block-start: 0 !important; }
.wp-site-blocks { padding-top: 0; }
@media (min-width: 782px) { .g-footer__cols > .wp-block-column:nth-child(2) { flex-basis: 30% !important; flex-grow: 0; } }
.is-bianco .g-service, .is-bianco .g-card { background: var(--g-crema); }
.is-bianco .g-service:hover { background: var(--g-ambra-chiaro); }
@media (max-width: 781px) {
	.g-hero.wp-block-cover { padding-top: 2rem; }
	.g-hero__badge { position: relative !important; right: auto; top: auto; width: 82px; margin: 0 0 1.25rem !important; font-size: .7rem !important; }
}

/* ==========================================================================
   Mappa: testi sempre leggibili (prima ereditavano il grigio delle sezioni chiare)
   ========================================================================== */
.g-section .g-mappa .g-mappa__title { color: #fff !important; }
.g-section .g-mappa .g-mappa__text { color: rgba(255, 255, 255, .88) !important; }
.g-mappa__placeholder {
	background:
		linear-gradient(180deg, rgba(29, 28, 26, 0) 35%, rgba(17, 17, 17, .92) 100%),
		radial-gradient(circle at 70% 35%, rgba(240, 173, 30, .35), transparent 45%),
		repeating-radial-gradient(circle at 70% 35%, transparent 0 26px, rgba(255, 255, 255, .06) 26px 27px),
		var(--g-antracite);
}
.g-mappa__note { margin: 0; font-size: .8rem; color: rgba(255, 255, 255, .72) !important; max-width: 48ch; }
.g-mappa__note a { color: #fff; }
.g-mappa__btn:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }

/* ==========================================================================
   Accessibilità
   ========================================================================== */
.screen-reader-text, .g-sr {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute !important; word-wrap: normal !important;
}
.skip-link.screen-reader-text:focus {
	clip: auto; clip-path: none; width: auto; height: auto; margin: 0;
	top: 8px; left: 8px; z-index: 100000;
	background: var(--g-ambra); color: var(--g-nero);
	padding: .9rem 1.4rem; border-radius: 999px; font-weight: 700; text-decoration: none;
}
/* Link nei testi riconoscibili non solo dal colore */
.g-section p a:not(.wp-element-button), .g-faq a, .g-prose a { text-decoration: underline; text-underline-offset: 3px; }
/* Grigio testo un filo più scuro: contrasto ≥ 7:1 su crema e bianco */
:root { --g-grigio: #4d4840; }
/* Focus ben visibile anche su sfondi ambra */
.is-ambra :where(a, button):focus-visible, .g-call a:focus-visible { outline-color: var(--g-nero); }
/* Target touch minimi 44px */
.g-nav .wp-block-navigation-item__content, .g-footer__nav .wp-block-navigation-item__content, .g-footer__links a, .g-legale a { display: inline-block; min-height: 44px; line-height: 44px; }
.g-footer__nav .wp-block-navigation__container, .g-footer__links { gap: 0 !important; }
.g-legale a { min-height: 32px; line-height: 32px; }
/* Comparsa animata: mai contenuti invisibili se si stampa o si naviga da tastiera */
.g-js .g-reveal:focus-within { opacity: 1; transform: none; }
@media print { .g-js .g-reveal { opacity: 1 !important; transform: none !important; } .g-header-wrap { position: static; } }
/* Alto contrasto di Windows */
@media (forced-colors: active) {
	mark { forced-color-adjust: none; }
	.is-style-occhiello::before, .g-service::after, .g-call .wp-block-button__link::after { forced-color-adjust: auto; background: CanvasText; }
}

/* ==========================================================================
   Banner cookie (CookieAdmin) con i colori Gioan
   ========================================================================== */
#cookieadmin_re_consent, .cookieadmin_re_consent { background: var(--g-nero) !important; box-shadow: 0 0 0 2px var(--g-ambra) !important; }
#cookieadmin_re_consent svg, .cookieadmin_re_consent svg, #cookieadmin_re_consent img { filter: none; }
[class*="cookieadmin"] :where(button, a):focus-visible { outline: 3px solid var(--g-ambra) !important; outline-offset: 2px; }
/* Ambra scuro per testi piccoli su fondo chiaro (contrasto AA) */
.g-fact__num small { color: #8a5a00; }

/* ==========================================================================
   Hero e testate: tutto allineato a sinistra sulla stessa griglia larga
   ========================================================================== */
.g-hero .wp-block-cover__inner-container > *,
.g-pagehead .wp-block-cover__inner-container > * {
	margin-left: 0 !important;
	margin-right: auto !important;
}
.g-hero .wp-block-cover__inner-container > :not(h1):not(.is-style-lead) { max-width: none !important; }
.g-hero h1 { max-width: 15ch !important; font-size: clamp(2.8rem, 6.4vw, 6.2rem); }
.g-hero .is-style-lead { max-width: 46ch !important; }
.g-pagehead h1 { max-width: 18ch !important; }
.g-pagehead .is-style-lead { max-width: 56ch !important; }
.g-hero.wp-block-cover { padding-bottom: clamp(3.5rem, 8vw, 6rem); min-height: min(88vh, 860px) !important; }

/* ==========================================================================
   Segnavia: le distanze come i cartelli gialli dei sentieri di montagna
   ========================================================================== */
.g-segnavia {
	position: relative;
	display: flex !important;
	flex-direction: column;
	gap: .65rem !important;
	max-width: 470px;
	margin-top: clamp(2rem, 4vw, 3rem) !important;
	padding: 0 0 3.5rem 0;
}
/* Palo */
.g-segnavia::before {
	content: "";
	position: absolute;
	left: 50%; top: -14px; bottom: 0;
	width: 12px;
	transform: translateX(-50%);
	border-radius: 6px 6px 2px 2px;
	background: linear-gradient(90deg, #2a2926, #6d6a64 45%, #3a3935);
	z-index: 0;
}
/* Base del palo */
.g-segnavia::after {
	content: "";
	position: absolute; left: 50%; bottom: -4px;
	width: 70px; height: 8px;
	transform: translateX(-50%);
	border-radius: 50%;
	background: radial-gradient(ellipse, rgba(17, 17, 17, .25), transparent 70%);
}
.g-cartello {
	position: relative;
	z-index: 1;
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin: 0 !important;
	padding: .8rem 2.6rem .8rem 1.3rem;
	background: var(--g-ambra);
	color: var(--g-nero) !important;
	font-weight: 700;
	font-size: 1rem !important;
	line-height: 1.2;
	clip-path: polygon(0 0, calc(100% - 26px) 0, 100% 50%, calc(100% - 26px) 100%, 0 100%);
	filter: drop-shadow(0 6px 10px rgba(17, 17, 17, .18));
	transform-origin: 50% 50%;
	transition: transform .5s var(--g-ease);
	/* viti di fissaggio sul palo */
	background-image:
		radial-gradient(circle at 50% 50%, rgba(17, 17, 17, .55) 0 2.5px, transparent 3px);
	background-size: 12px 12px;
	background-repeat: no-repeat;
	background-position: calc(50% - 0px) 50%;
}
.g-cartello strong {
	font-family: var(--g-display);
	font-weight: 800;
	font-size: 1.45rem;
	letter-spacing: -.02em;
	white-space: nowrap;
}
.g-cartello:nth-child(even) {
	padding: .8rem 1.3rem .8rem 2.6rem;
	clip-path: polygon(26px 0, 100% 0, 100% 100%, 26px 100%, 0 50%);
	flex-direction: row-reverse;
	margin-left: 1.6rem !important;
}
.g-cartello:nth-child(odd):not(.g-cartello--luogo) { margin-right: 1.6rem !important; }
.g-cartello:nth-child(2) { transform: rotate(-1.2deg); }
.g-cartello:nth-child(3) { transform: rotate(1deg); }
.g-cartello:nth-child(4) { transform: rotate(-.6deg); }
.g-cartello:nth-child(5) { transform: rotate(1.3deg); }
.g-segnavia:hover .g-cartello:not(.g-cartello--luogo) { transform: rotate(0); }
/* Targa bianca della località, in cima al palo */
.g-cartello--luogo {
	justify-content: center;
	align-self: center;
	min-width: 62%;
	padding: .65rem 1.4rem;
	background-color: #fff;
	clip-path: none;
	border-radius: 6px;
	box-shadow: inset 0 0 0 2px var(--g-nero);
	font-family: var(--g-display);
	font-weight: 800;
	font-size: 1.05rem !important;
	text-transform: uppercase;
	letter-spacing: .04em;
	background-image: none;
}
.is-dark .g-cartello--luogo { box-shadow: none; }
@media (prefers-reduced-motion: reduce) { .g-cartello { transform: none !important; transition: none; } }
@media (max-width: 781px) { .g-segnavia { max-width: 100%; } .g-cartello strong { font-size: 1.25rem; } }
@media (forced-colors: active) { .g-cartello { border: 2px solid CanvasText; clip-path: none; } }

/* ==========================================================================
   Selettore lingua IT / EN
   ========================================================================== */
.g-lingua ul { list-style: none; margin: 0; padding: 3px; display: flex; gap: 2px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--g-linea-chiara); }
.g-lingua li { margin: 0; }
.g-lingua a, .g-lingua [aria-current] {
	display: grid; place-items: center;
	min-width: 40px; height: 34px; padding: 0 .55rem;
	border-radius: 999px;
	font-size: .78rem; font-weight: 800; letter-spacing: .08em;
	text-decoration: none; color: rgba(255, 255, 255, .78);
}
.g-lingua a:hover { color: var(--g-ambra); }
.g-lingua [aria-current] { background: #fff; color: var(--g-nero); }
.g-header__bar .g-lingua { flex: none; }
@media (max-width: 781px) { .g-header__bar .g-lingua { order: 1; margin-left: auto; } .g-header__logo { margin-right: 0; } }

/* Etichetta del pulsante prenotazioni in inglese */
.lang-en .g-call .wp-block-button__link::before { content: "Bookings"; }

/* Itinerari: due segnavia affiancati */
.g-itinerari .g-segnavia { max-width: 520px; }
.g-itinerari h3 { font-size: clamp(1.3rem, 2vw, 1.6rem); }
.g-section.is-dark .g-split h3 { color: #fff; }
@media (max-width: 781px) { .g-cartello { background-image: none; } }
/* Schermi medi (portatili piccoli, tablet orizzontali): menu su una sola riga. */
@media (min-width: 600px) and (max-width: 1240px) {
	.g-nav .wp-block-navigation__container { gap: .9rem; flex-wrap: nowrap; }
	.g-nav .wp-block-navigation-item__content { font-size: .9rem; white-space: nowrap; }
	.g-header .g-call .wp-block-button__link::before { display: none; }
}

/* =========================================================================
 * Mappa dei rifugi (blocco gioan/sentiero)
 * ====================================================================== */
.g-map { --g-map-r: 22px; margin-top: 2.5rem; }
.g-map__wrap { display: grid; gap: 1.5rem; }
.g-map__carta { position: relative; border-radius: var(--g-map-r); overflow: hidden; background: #e7e9d6; box-shadow: 0 1px 0 rgba(17,17,17,.04), 0 24px 60px -30px rgba(60,50,30,.45); }
.g-map__svg { display: block; width: 100%; height: auto; font-family: var(--wp--preset--font-family--testo); }
/* Base cartografica, toni morbidi. */
.g-map__torrenti { fill: none; stroke: #a9cdd4; stroke-width: .7; opacity: .75; }
.g-map__serio { fill: none; stroke: #8dbccb; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.g-map__laghi { fill: #b7d8e0; stroke: #9cc7d2; stroke-width: .8; }
.g-map__stradine { fill: none; stroke: #fffaf0; stroke-width: 1.1; opacity: .85; stroke-linecap: round; }
.g-map__strade-bordo { fill: none; stroke: #d6c9b2; stroke-width: 3.6; stroke-linecap: round; stroke-linejoin: round; }
.g-map__strade { fill: none; stroke: #fffdf7; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.g-map__impianti { fill: none; stroke: #7d7366; stroke-width: .9; stroke-dasharray: 5 2.5; opacity: .7; }
.g-map__cima path { fill: #8c8172; }
.g-map__cima text { font-size: 10px; font-weight: 600; fill: #6b6155; text-anchor: middle; paint-order: stroke; stroke: rgba(250,246,238,.85); stroke-width: 3px; stroke-linejoin: round; }
.g-map__cima .g-map__q { font-size: 9px; font-weight: 500; fill: #8c8172; }
.g-map__lago { font-size: 10px; font-style: italic; font-weight: 600; fill: #4f8a9a; text-anchor: middle; paint-order: stroke; stroke: rgba(255,255,255,.7); stroke-width: 3px; }
.g-map__paese circle { fill: #fffdf7; stroke: #6b6155; stroke-width: 1.4; }
.g-map__paese text { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; fill: #4d4840; text-anchor: middle; paint-order: stroke; stroke: rgba(250,246,238,.9); stroke-width: 3.5px; stroke-linejoin: round; }
.g-map__paese.is-hamlet text { font-size: 9px; font-weight: 600; }
/* Sentieri. */
.g-map__sent { cursor: pointer; transition: opacity .25s ease; }
.g-map__sent path { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.g-map__sent-bordo { stroke: #fff; stroke-width: 6.5; opacity: .9; }
.g-map__sent-linea { stroke: var(--c); stroke-width: 3.4; }
.g-map__sent-passi { stroke: #fff; stroke-width: 1.6; stroke-dasharray: .1 7; opacity: 0; }
.g-map__start { display: none; }
.g-map__start circle { fill: #fff; stroke: #111; stroke-width: 2; }
.g-map__start text { font-size: 11px; font-weight: 800; text-anchor: middle; fill: #111; }
.g-map[data-attiva]:not([data-attiva=""]) .g-map__sent:not(.is-on):not(.is-hover) { opacity: .28; }
.g-map__sent.is-hover .g-map__sent-linea { stroke-width: 4.6; }
.g-map__sent.is-on .g-map__sent-bordo { stroke-width: 10; }
.g-map__sent.is-on .g-map__sent-linea { stroke-width: 5.6; }
.g-map__sent.is-on .g-map__sent-passi { opacity: 1; animation: g-passi 1.2s linear infinite; }
.g-map__sent.is-on .g-map__start { display: block; }
@keyframes g-passi { to { stroke-dashoffset: -7.1; } }
/* Hotel e rifugi. */
.g-map__hotel circle { fill: #111; stroke: #f0ad1e; stroke-width: 3; }
.g-map__hotel text { font-size: 13px; font-weight: 800; fill: #111; paint-order: stroke; stroke: rgba(255,255,255,.9); stroke-width: 4px; stroke-linejoin: round; }
.g-map__rif { cursor: pointer; }
.g-map__s { transition: transform .2s ease; }
.g-map__rif-pin { fill: var(--c); stroke: #fff; stroke-width: 2.5; filter: drop-shadow(0 3px 4px rgba(40,30,10,.3)); }
.g-map__rif-n { font-size: 13px; font-weight: 800; text-anchor: middle; fill: #111; pointer-events: none; }
.g-map__rif[style*="#b3261e"] .g-map__rif-n { fill: #fff; }
.g-map__rif-tag rect { fill: rgba(255,255,255,.94); filter: drop-shadow(0 2px 3px rgba(40,30,10,.18)); }
.g-map__rif-tag text { font-size: 12px; font-weight: 700; fill: #111; }
.g-map__rif:hover .g-map__s, .g-map__rif.is-hover .g-map__s, .g-map__rif.is-on .g-map__s { transform: scale(1.15); }
.g-map__rif.is-on .g-map__rif-tag rect { fill: #111; }
.g-map__rif.is-on .g-map__rif-tag text { fill: #fff; }
.g-map__scala rect { fill: #4d4840; } .g-map__scala rect.is-meta { fill: #fffdf7; stroke: #4d4840; stroke-width: 1; }
.g-map__scala text, .g-map__nord text { font-size: 10px; font-weight: 700; fill: #4d4840; }
.g-map__nord circle { fill: rgba(255,253,247,.85); stroke: #cfc3ad; } .g-map__nord path { fill: #4d4840; } .g-map__nord text { text-anchor: middle; }
/* Pannello. */
.g-map__intro { font-size: .95rem; margin: 0 0 1rem; color: var(--g-grigio, #4d4840); }
.g-map__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.g-map__item { background: #fff; border-radius: 14px; border: 1px solid rgba(17,17,17,.07); transition: box-shadow .2s ease, border-color .2s ease; }
.g-map__item.is-hover, .g-map__item.is-on { border-color: var(--c); box-shadow: 0 10px 30px -18px rgba(60,50,30,.6); }
.g-map__h { margin: 0 !important; font-size: 1rem !important; }
.g-map__toggle { display: grid; grid-template-columns: 34px 1fr; gap: 0 .75rem; align-items: center; width: 100%; padding: .7rem .9rem; background: none; border: 0; text-align: left; cursor: pointer; font: inherit; color: inherit; min-height: 56px; }
.g-map__toggle:focus-visible { outline: 3px solid #111; outline-offset: 2px; border-radius: 14px; }
.g-map__n { grid-row: span 2; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50% 50% 50% 8px; background: var(--c); font-weight: 800; color: #111; }
.g-map__item[style*="#b3261e"] .g-map__n { color: #fff; }
.g-map__nome { font-weight: 800; font-size: 1rem; line-height: 1.2; }
.g-map__meta { font-size: .82rem; color: var(--g-grigio, #4d4840); }
.g-map__det { padding: 0 1rem 1rem; font-size: .9rem; line-height: 1.5; }
.g-map__det p { margin: .45rem 0; }
.g-map__foto { display: block; width: 100%; height: 150px; object-fit: cover; border-radius: 10px; margin-bottom: .6rem; }
.g-map__liv { display: inline-block; font-size: .7rem !important; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; padding: .2rem .6rem; border-radius: 99px; margin: 0 0 .5rem !important; }
.g-map__liv.is-facile { background: #fbe6b3; color: #111 !important; }
.g-map__liv.is-media { background: #f0ad1e; color: #111 !important; }
.g-map__liv.is-impegnativa { background: #b3261e; color: #fff !important; }
.g-map__det dl { display: grid; grid-template-columns: repeat(2, 1fr); gap: .4rem .9rem; margin: 0 0 .5rem; padding: .7rem .8rem; background: #faf6ee; border-radius: 10px; }
.g-map__det dt { font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; color: var(--g-grigio, #4d4840); }
.g-map__det dd { margin: 0; font-weight: 800; }
.g-map__azioni { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; margin-top: .8rem; }
.g-map__btn { display: inline-flex; align-items: center; gap: .45rem; min-height: 44px; padding: .55rem 1.1rem; border-radius: 99px; background: #111; color: #fff !important; font-weight: 700; font-size: .9rem; text-decoration: none; }
.g-map__btn::before { content: ""; width: 16px; height: 16px; background: #f0ad1e; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5 7 13 7 13s7-8 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%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'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5 7 13 7 13s7-8 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E") center/contain no-repeat; }
.g-map__btn:hover { background: #2b2924; }
.g-map__link { font-weight: 700; font-size: .9rem; color: #111; text-decoration-color: #f0ad1e; text-underline-offset: 3px; }
.g-map__piedi { font-weight: 700; color: #111; background: #fbe6b3; padding: .45rem .75rem; border-radius: 10px; margin: 0 !important; }
.g-map__piede { display: flex; flex-wrap: wrap; gap: .75rem 2rem; align-items: center; justify-content: space-between; margin-top: 1.25rem; }
.g-map__legenda { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; list-style: none; margin: 0; padding: 0; font-weight: 700; font-size: .88rem; }
.g-map__legenda li { display: flex; align-items: center; gap: .5rem; }
.g-map__legenda span { width: 30px; height: 6px; border-radius: 3px; }
.g-map__legenda span.is-p { width: 20px; height: 20px; border-radius: 50%; border: 2px solid #111; background: #fff; display: grid; place-items: center; font-size: .7rem; font-weight: 800; }
.g-map__nota { margin: 0; max-width: 80ch; font-size: .8rem; color: var(--g-grigio, #4d4840); }
.g-map__nota a { color: inherit; }

@media (min-width: 960px) {
	.g-map__wrap { grid-template-columns: minmax(0, 1fr) 360px; align-items: start; }
	.g-map__pannello { position: relative; max-height: min(780px, calc(100vh - 140px)); overflow: auto; padding-right: 4px; overscroll-behavior: contain; }
}
@media (max-width: 959px) {
	.g-map { --g-map-r: 16px; }
	.g-map__rif-tag, .g-map__cima text, .g-map__lago, .g-map__paese.is-hamlet, .g-map__hotel text { display: none; }
	.g-map__s { transform: scale(1.9); }
	.g-map__rif:hover .g-map__s, .g-map__rif.is-on .g-map__s { transform: scale(2.2); }
	.g-map__paese text { font-size: 22px; stroke-width: 6px; }
	.g-map__paese circle { r: 6px; }
	.g-map__sent-linea { stroke-width: 6; } .g-map__sent-bordo { stroke-width: 11; }
	.g-map__sent.is-on .g-map__sent-linea { stroke-width: 9; } .g-map__sent.is-on .g-map__sent-bordo { stroke-width: 15; }
	.g-map__scala text, .g-map__nord text { font-size: 20px; }
	.g-map__cima path { transform: scale(1.6); }
}
@media (prefers-reduced-motion: reduce) {
	.g-map__sent.is-on .g-map__sent-passi { animation: none; }
	.g-map__s, .g-map__sent, .g-map__item { transition: none; }
}
@media (max-width: 959px) {
	.g-map__wrap { gap: 1rem; }
	.g-map__carta { position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--g-header-h) + 8px); z-index: 3; }
	.g-map__item { scroll-margin-top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--g-header-h) + 16px + (100vw - 32px) * .87); }
}
/* Pannello rifugi: scorrimento moderno (barra sottile ambra, sfumature ai bordi). */
@media (min-width: 960px) {
	.g-map__wrap { grid-template-columns: minmax(0, 1fr) 350px; }
	.g-map__pannello {
		max-height: var(--g-map-h, 620px); padding: 0 10px 0 0; margin-right: -10px;
		scroll-behavior: smooth;
		--fade-top: 0px; --fade-bot: 0px;
		-webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 var(--fade-top), #000 calc(100% - var(--fade-bot)), transparent 100%);
		mask-image: linear-gradient(to bottom, transparent 0, #000 var(--fade-top), #000 calc(100% - var(--fade-bot)), transparent 100%);
	}
	.g-map__pannello.has-sopra { --fade-top: 28px; }
	.g-map__pannello.has-sotto { --fade-bot: 48px; }
	.g-map__pannello::-webkit-scrollbar { width: 6px; }
	.g-map__pannello::-webkit-scrollbar-track { background: transparent; margin: 6px 0; }
	.g-map__pannello::-webkit-scrollbar-thumb { background: rgba(240,173,30,.6); border-radius: 99px; }
	.g-map__pannello:hover::-webkit-scrollbar-thumb { background: #f0ad1e; }
}
@media (prefers-reduced-motion: reduce) { .g-map__pannello { scroll-behavior: auto; } }
@supports (-moz-appearance: none) { .g-map__pannello { scrollbar-width: thin; scrollbar-color: rgba(240,173,30,.85) transparent; } }
.g-map__pannello::-webkit-scrollbar-button { display: none; height: 0; }
/* Pulsante "Portami alla partenza": più compatto. */
.g-map__btn { box-sizing: border-box; min-height: 38px; padding: .4rem .95rem .4rem .8rem; font-size: .84rem; line-height: 1.2; gap: .4rem; }
.g-map__btn::before { width: 14px; height: 14px; }
.g-map__azioni { gap: .5rem .9rem; margin-top: .7rem; }
/* Sezioni con il segnavia: il testo a destra si allinea al fondo del cartello. */
@media (min-width: 782px) {
	.g-split:has(.g-segnavia) { align-items: flex-end !important; }
	.g-split:has(.g-segnavia) > .wp-block-column:not(:has(.g-segnavia)) { padding-bottom: 2.9rem; }
}
