/*
Theme Name: Giulia Lascialfari
Theme URI: https://www.giulialascialfari.com
Author: Giulia Lascialfari
Description: Tema su misura per il sito di Giulia Lascialfari — Painting as a spatial experience. Pagine Opere, Contract, Mostre, Ricerca artistica, Esperienze e Bio; opere che entrano nella stanza allo scorrimento; testi in italiano, inglese e francese, compatibile con Polylang. Grafica ricavata dal catalogo ātmaspheres.
Version: 2.4.1
Requires at least: 6.3
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: giulia
*/

/* ==========================================================================
   1. Variabili (palette e caratteri dal catalogo)
   ========================================================================== */
:root {
	--gl-black: #111111;
	--gl-ink: #2B2B2B;
	--gl-gray: #5F5F5F;      /* testo secondario: 6.4:1 su bianco */
	--gl-gray-2: #A6A6A6;    /* testo secondario su nero */
	--gl-line: #E5E2DC;
	--gl-paper: #F7F6F3;     /* la carta del catalogo */
	--gl-wall: #EFEBE4;      /* parete neutra dietro le opere */
	--gl-white: #FFFFFF;
	--gl-yellow: #FCBD0D;    /* la pennellata gialla */
	--gl-yellow-ink: #8A6400;

	--gl-display: "Playfair Display", Georgia, "Times New Roman", serif;
	--gl-sans: "Nunito Sans", "Avenir Next", Avenir, system-ui, sans-serif;

	--gl-max: 1320px;
	--gl-gutter: clamp(20px, 4vw, 48px);
	--gl-space: clamp(80px, 10vw, 150px);
	--gl-header-h: 84px;
	--gl-ease: cubic-bezier(.22, .61, .36, 1);
}

/* ==========================================================================
   2. Base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--gl-white);
	color: var(--gl-black);
	font-family: var(--gl-sans);
	font-size: 17px;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration-color: var(--gl-yellow); text-decoration-thickness: 2px; text-underline-offset: 4px; }
a:hover { color: var(--gl-black); }
button { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--gl-black); outline-offset: 3px; box-shadow: 0 0 0 5px var(--gl-yellow); }
::selection { background: var(--gl-yellow); color: var(--gl-black); }
h1, h2, h3, h4 { margin: 0; }
p { margin: 0 0 1.1em; }
p:last-child { margin-bottom: 0; }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); white-space: nowrap;
}
.gl-skip {
	position: absolute; left: 16px; top: -60px; z-index: 100;
	background: var(--gl-black); color: var(--gl-white); padding: 12px 18px; text-decoration: none;
}
.gl-skip:focus { top: 16px; }

/* ==========================================================================
   3. Tipografia ricorrente
   ========================================================================== */
.gl-display {
	font-family: var(--gl-display);
	font-weight: 900;
	font-size: clamp(3.4rem, 10vw, 9rem);
	line-height: .95;
	letter-spacing: -.01em;
}
.gl-display--md { font-size: clamp(2.6rem, 6vw, 5.2rem); line-height: 1.02; }
.gl-h2 {
	font-family: var(--gl-display);
	font-weight: 900;
	font-size: clamp(2.2rem, 4.6vw, 3.9rem);
	line-height: 1.05;
	letter-spacing: -.005em;
}
.gl-kicker {
	display: inline-flex; align-items: center; gap: 12px;
	margin: 0 0 20px;
	font-size: 12px; font-weight: 800; letter-spacing: .2em; text-transform: uppercase;
	color: var(--gl-black);
}
.gl-kicker::before { content: ""; width: 28px; height: 3px; background: var(--gl-yellow); border-radius: 2px; }
.gl-lead { font-size: clamp(18px, 1.6vw, 20px); line-height: 1.7; color: var(--gl-ink); }
.gl-quote {
	position: relative; margin: 8px 0 0; padding: 8px 0 0 0;
	font-family: var(--gl-display); font-style: italic; font-size: clamp(20px, 2vw, 24px); line-height: 1.45;
}
.gl-quote::before {
	content: "“"; display: block; height: 40px;
	font-family: var(--gl-display); font-weight: 900; font-style: normal; font-size: 72px; line-height: 1; color: var(--gl-yellow);
}
.gl-prose { max-width: 62ch; }
.gl-prose--wide { max-width: 72ch; }
.gl-prose h2, .gl-prose h3 { font-family: var(--gl-display); font-weight: 900; margin: 1.6em 0 .5em; line-height: 1.15; }
.gl-prose blockquote { margin: 1.5em 0; font-family: var(--gl-display); font-style: italic; font-size: 1.35em; }
.gl-dropcap::first-letter {
	float: left; margin: 6px 12px 0 0;
	font-family: var(--gl-display); font-weight: 900; font-size: 5.2em; line-height: .8;
}

/* Link con sottolineatura gialla */
.gl-link {
	display: inline-flex; align-items: center; gap: 12px; min-height: 44px;
	font-size: 13px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; text-decoration: none;
	border-bottom: 3px solid var(--gl-yellow);
	transition: gap .3s var(--gl-ease);
}
.gl-link:hover { gap: 18px; }

/* Pulsanti */
.gl-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 52px; padding: 0 34px;
	background: var(--gl-black); color: var(--gl-white);
	font-size: 13px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; text-decoration: none;
	border: 2px solid var(--gl-black); border-radius: 0; cursor: pointer;
	transition: background .25s, color .25s, border-color .25s;
}
.gl-btn:hover { background: var(--gl-yellow); border-color: var(--gl-yellow); color: var(--gl-black); }
.gl-btn--big { min-height: 64px; padding: 0 56px; font-size: 14px; }
.gl-btn--yellow { background: var(--gl-yellow); border-color: var(--gl-yellow); color: var(--gl-black); }
.gl-btn--yellow:hover { background: var(--gl-black); border-color: var(--gl-black); color: var(--gl-white); }

/* La pennellata gialla del catalogo */
.gl-brush { position: absolute; width: clamp(110px, 14vw, 190px); height: auto; pointer-events: none; }
.gl-brush--photo { right: -36px; bottom: 28px; transform: rotate(-8deg); }

/* ==========================================================================
   4. Header
   ========================================================================== */
.gl-header {
	position: sticky; top: 0; z-index: 50;
	background: var(--gl-white);
	border-bottom: 1px solid var(--gl-line);
	transition: background .35s, border-color .35s, color .35s;
}
.gl-header__inner {
	max-width: var(--gl-max); margin: 0 auto; padding: 0 var(--gl-gutter);
	min-height: var(--gl-header-h);
	display: flex; align-items: center; justify-content: space-between; gap: 24px;
}
.gl-logo { display: flex; align-items: center; gap: 14px; text-decoration: none; color: inherit; }
.gl-logo__mark { width: auto; height: 46px; }
.gl-logo__light { display: none; }
.gl-logo__name { font-family: var(--gl-display); font-weight: 900; font-size: clamp(19px, 2vw, 24px); line-height: 1; letter-spacing: -.005em; }

.gl-header__right { display: flex; align-items: center; gap: 24px; }
.gl-nav__list { list-style: none; margin: 0; padding: 0; display: flex; gap: clamp(16px, 1.9vw, 30px); }
.gl-nav__list a {
	display: inline-flex; align-items: center; min-height: 44px;
	font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; text-decoration: none; white-space: nowrap;
	background: linear-gradient(var(--gl-yellow), var(--gl-yellow)) left calc(50% + 14px) / 0 3px no-repeat;
	transition: background-size .3s var(--gl-ease);
}
.gl-nav__list a:hover,
.gl-nav__list .current-menu-item > a,
.gl-nav__list a[aria-current="page"] { background-size: 100% 3px; }

/* Home: header trasparente sopra l'immagine iniziale */
.gl-has-hero .gl-header { position: fixed; left: 0; right: 0; background: transparent; border-color: transparent; color: var(--gl-white); }
.gl-has-hero .gl-header .gl-logo__light { display: block; }
.gl-has-hero .gl-header .gl-logo__dark { display: none; }
.gl-has-hero .gl-header.is-scrolled { background: var(--gl-white); border-color: var(--gl-line); color: var(--gl-black); }
.gl-has-hero .gl-header.is-scrolled .gl-logo__light { display: none; }
.gl-has-hero .gl-header.is-scrolled .gl-logo__dark { display: block; }
.admin-bar .gl-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .gl-header { top: 46px; } }

/* Menu mobile */
.gl-burger { display: none; width: 48px; height: 48px; padding: 0; background: none; border: 0; cursor: pointer; position: relative; z-index: 60; }
.gl-burger__lines, .gl-burger__lines::before, .gl-burger__lines::after {
	position: absolute; left: 12px; width: 24px; height: 2px; background: currentColor; content: "";
	transition: transform .3s var(--gl-ease), opacity .2s;
}
.gl-burger__lines { top: 23px; }
.gl-burger__lines::before { left: 0; top: -7px; }
.gl-burger__lines::after { left: 0; top: 7px; }
.gl-burger[aria-expanded="true"] .gl-burger__lines { background: transparent; }
.gl-burger[aria-expanded="true"] .gl-burger__lines::before { transform: translateY(7px) rotate(45deg); background: var(--gl-white); }
.gl-burger[aria-expanded="true"] .gl-burger__lines::after { transform: translateY(-7px) rotate(-45deg); background: var(--gl-white); }

@media (max-width: 1180px) {
	:root { --gl-header-h: 72px; }
	.gl-logo__mark { height: 38px; }
	.gl-burger { display: block; }
	.gl-nav {
		position: fixed; inset: 0; z-index: 55;
		background: var(--gl-black); color: var(--gl-white);
		display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 40px; padding: 96px var(--gl-gutter) 48px; overflow-y: auto;
		opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s;
	}
	.gl-nav.is-open { opacity: 1; visibility: visible; }
	.gl-nav__list { flex-direction: column; gap: 12px; }
	.gl-nav__list a {
		font-family: var(--gl-display); font-weight: 900; font-size: clamp(30px, 7vw, 44px); letter-spacing: 0; text-transform: none; white-space: normal;
		background-position: left bottom 6px;
	}
	body.gl-menu-open { overflow: hidden; }
	body.gl-menu-open .gl-burger { color: var(--gl-white); }
}

/* ==========================================================================
   5. Etichetta verticale di sezione (come nel catalogo)
   ========================================================================== */
.gl-section {
	max-width: var(--gl-max); margin: 0 auto;
	padding: var(--gl-space) var(--gl-gutter);
	display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 0 clamp(24px, 4vw, 64px);
}
.gl-section--prose { display: block; max-width: 980px; }
.gl-vlabel {
	writing-mode: vertical-rl; transform: rotate(180deg);
	display: flex; align-items: center; gap: 18px; align-self: start;
	position: sticky; top: calc(var(--gl-header-h) + 32px);
	white-space: nowrap;
}
.gl-vlabel__num { font-size: 12px; font-weight: 800; letter-spacing: .1em; }
.gl-vlabel__text { font-family: var(--gl-display); font-weight: 900; font-size: 34px; line-height: 1; }
.gl-vlabel__sub { font-size: 12px; font-weight: 700; letter-spacing: .08em; color: var(--gl-gray); }

@media (max-width: 820px) {
	.gl-section { grid-template-columns: minmax(0, 1fr); }
	.gl-vlabel { writing-mode: horizontal-tb; transform: none; position: static; margin-bottom: 28px; flex-wrap: wrap; gap: 10px 14px; white-space: normal; }
	.gl-vlabel__text { font-size: 26px; }
}

/* ==========================================================================
   6. Home — immagine iniziale
   ========================================================================== */
.gl-hero {
	position: relative; min-height: 560px; height: 100vh; height: 100svh;
	display: flex; align-items: flex-end; overflow: hidden;
	background: var(--gl-black); color: var(--gl-white);
}
.gl-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 60% 35%; }
.gl-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(17,17,17,.72) 0%, rgba(17,17,17,.2) 45%, rgba(17,17,17,.25) 100%); }
.gl-hero__content {
	position: relative; z-index: 1; width: 100%; max-width: var(--gl-max); margin: 0 auto;
	padding: 0 var(--gl-gutter) clamp(56px, 9vh, 110px);
}
.gl-hero__kicker { margin: 0 0 18px; font-size: 12px; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; color: var(--gl-white); }
.gl-hero__title { font-family: var(--gl-display); font-weight: 900; font-size: clamp(3.2rem, 10vw, 9.5rem); line-height: .92; letter-spacing: -.01em; }
.gl-hero__tagline { margin: 18px 0 0; font-size: clamp(18px, 2.2vw, 28px); font-weight: 700; color: rgba(255,255,255,.86); }
.gl-hero__cue {
	position: absolute; z-index: 1; right: var(--gl-gutter); bottom: clamp(56px, 9vh, 110px);
	display: flex; flex-direction: column; align-items: center; gap: 10px; min-width: 44px;
	font-size: 11px; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; text-decoration: none; color: var(--gl-white);
}
.gl-hero__cue svg { animation: gl-bob 2s ease-in-out infinite; }
@keyframes gl-bob { 50% { transform: translateY(6px); } }
@media (max-width: 640px) { .gl-hero__cue { display: none; } }

/* ==========================================================================
   7. Home — bio
   ========================================================================== */
.gl-bio-home__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(40px, 6vw, 96px); align-items: center; }
.gl-bio-home__photo { position: relative; margin: 0; }
.gl-bio-home__photo img[data-gl-img] { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; object-position: 50% 20%; }
.gl-bio-home__text .gl-h2 { margin-bottom: 28px; }
.gl-bio-home__text .gl-lead { margin-bottom: 28px; }
.gl-bio-home__text .gl-quote { margin-bottom: 36px; }
@media (max-width: 900px) {
	.gl-bio-home__grid { grid-template-columns: minmax(0, 1fr); }
	.gl-bio-home__photo { max-width: 460px; }
	.gl-brush--photo { right: -12px; }
}

/* ==========================================================================
   8. Home — opere nella stanza
   ========================================================================== */
.gl-works { background: var(--gl-paper); }
.gl-works__intro { padding-bottom: clamp(48px, 6vw, 80px); }
.gl-works__head { max-width: 860px; }
.gl-works__head .gl-h2 { margin-bottom: 24px; }
.gl-works__cta { display: flex; flex-direction: column; align-items: center; gap: 24px; padding: clamp(56px, 7vw, 96px) var(--gl-gutter) var(--gl-space); }

/* Senza animazione (nessun JS o "riduci movimento"): le stanze una sotto l'altra */
.gl-scrolly__stage { max-width: var(--gl-max); margin: 0 auto; padding: 0 var(--gl-gutter); display: grid; gap: 48px; }
.gl-room { position: relative; margin: 0; overflow: hidden; background: var(--gl-wall); }
.gl-room__img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.gl-room__flat { display: none; }
.gl-room__caption {
	display: flex; flex-direction: column; gap: 2px;
	padding: 18px 22px; background: var(--gl-white);
}
.gl-room__count { font-size: 11px; font-weight: 800; letter-spacing: .2em; color: var(--gl-gray); }
.gl-room__title { font-family: var(--gl-display); font-weight: 900; font-size: 24px; line-height: 1.2; }
.gl-room__lead { font-family: var(--gl-display); font-style: italic; font-size: 17px; color: var(--gl-ink); }
.gl-scrolly__progress, .gl-scrolly__hint { display: none; }

/* Con animazione: la stanza resta ferma e il quadro "entra" mentre scorri */
.gl-motion .gl-scrolly { position: relative; height: calc(var(--n, 4) * 150vh + 30vh); }
.gl-motion .gl-scrolly__stage {
	position: sticky; top: 0; height: 100vh; height: 100svh; max-width: none; padding: 0;
	display: block; overflow: hidden; background: var(--gl-wall);
}
.gl-motion .gl-room { position: absolute; inset: 0; opacity: 0; visibility: hidden; background: var(--gl-wall); }
.gl-motion .gl-room.is-active { opacity: 1; visibility: visible; }
.gl-motion .gl-room__img {
	position: absolute; left: 0; top: 0; max-width: none; aspect-ratio: auto;
	transform-origin: 0 0; will-change: transform;
}
.gl-motion .gl-room__flat {
	position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
	background: var(--gl-wall); will-change: opacity;
	padding: calc(var(--gl-header-h) + 24px) var(--gl-gutter) 120px;
}
.gl-motion .gl-room__flat img {
	max-width: min(86%, 1100px); max-height: 100%; width: auto; height: auto; object-fit: contain;
	box-shadow: 0 30px 60px -20px rgba(17,17,17,.35), 0 8px 16px rgba(17,17,17,.12);
}
.gl-motion .gl-room__caption {
	position: absolute; left: var(--gl-gutter); bottom: clamp(24px, 5vh, 48px); z-index: 2;
	max-width: min(420px, calc(100% - 2 * var(--gl-gutter)));
	box-shadow: 0 12px 30px -12px rgba(17,17,17,.3);
}
.gl-motion .gl-scrolly__progress {
	position: absolute; right: var(--gl-gutter); top: 50%; transform: translateY(-50%); z-index: 3;
	display: flex; flex-direction: column; gap: 10px;
}
.gl-scrolly__progress span { display: block; width: 6px; height: 6px; border-radius: 3px; background: rgba(17,17,17,.3); transition: height .35s var(--gl-ease), background .35s; }
.gl-scrolly__progress span.is-active { height: 30px; background: var(--gl-yellow); box-shadow: 0 0 0 1px rgba(17,17,17,.15); }
.gl-motion .gl-scrolly__hint {
	display: block; position: absolute; left: 50%; bottom: clamp(24px, 5vh, 48px); transform: translateX(-50%); z-index: 2;
	margin: 0; padding: 8px 16px; background: rgba(255,255,255,.92);
	font-size: 11px; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; white-space: nowrap;
	transition: opacity .4s;
}
.gl-scrolly.is-started .gl-scrolly__hint { opacity: 0; }
@media (max-width: 720px) {
	.gl-motion .gl-scrolly__hint { display: none; }
	.gl-motion .gl-room__caption { right: var(--gl-gutter); }
	.gl-motion .gl-room__flat { padding-bottom: 160px; }
	.gl-motion .gl-room__flat img { max-width: 100%; }
}

/* ==========================================================================
   9. Home — experience (due colonne)
   ========================================================================== */
.gl-xp-home__head { max-width: 760px; margin-bottom: clamp(48px, 6vw, 80px); }
.gl-xp-home__head .gl-h2 { margin-bottom: 20px; }
.gl-xp-home__cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(32px, 5vw, 72px); }
.gl-xp-card { display: flex; flex-direction: column; gap: 18px; text-decoration: none; color: inherit; }
.gl-xp-card__img { display: block; overflow: hidden; background: var(--gl-wall); aspect-ratio: 4 / 5; }
.gl-xp-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--gl-ease); }
.gl-xp-card:hover .gl-xp-card__img img { transform: scale(1.04); }
.gl-xp-card__title { font-family: var(--gl-display); font-weight: 900; font-size: clamp(32px, 3.4vw, 48px); line-height: 1.05; margin-top: 8px; }
.gl-xp-card__text { font-size: 18px; color: var(--gl-ink); max-width: 46ch; }
.gl-xp-card__more {
	align-self: flex-start; display: inline-flex; align-items: center; gap: 12px; min-height: 44px;
	font-size: 13px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase;
	border-bottom: 3px solid var(--gl-yellow); transition: gap .3s var(--gl-ease);
}
.gl-xp-card:hover .gl-xp-card__more { gap: 18px; }
@media (max-width: 760px) { .gl-xp-home__cols { grid-template-columns: minmax(0, 1fr); } }

/* ==========================================================================
   10. Testata delle pagine interne
   ========================================================================== */
.gl-page-head { padding-top: clamp(64px, 8vw, 120px); }
.gl-page-head__body .gl-display { margin-bottom: 18px; }
.gl-page-head__note { font-family: var(--gl-display); font-style: italic; font-size: 20px; color: var(--gl-gray); margin-bottom: 36px; }
.gl-page-head .gl-prose { font-size: 19px; color: var(--gl-ink); }
.gl-simple-head { margin-bottom: 40px; }
.gl-anchors { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 36px; }
.gl-anchors a {
	display: inline-flex; align-items: center; min-height: 44px; padding: 0 22px;
	border: 2px solid var(--gl-black); text-decoration: none;
	font-size: 13px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase;
}
.gl-anchors a:hover { background: var(--gl-yellow); border-color: var(--gl-yellow); }

/* ==========================================================================
   11. Opere — galleria
   ========================================================================== */
.gl-gallery-wrap { max-width: var(--gl-max); margin: 0 auto; padding: 0 var(--gl-gutter) var(--gl-space); }
.gl-filters { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 40px; }
.gl-filters button {
	min-height: 44px; padding: 0 20px; cursor: pointer;
	background: var(--gl-white); border: 2px solid var(--gl-black);
	font-size: 12px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase;
}
.gl-filters button[aria-pressed="true"] { background: var(--gl-black); color: var(--gl-white); }
.gl-gallery { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 56px 32px; }
.gl-gallery__item[hidden] { display: none; }
.gl-card { all: unset; display: flex; flex-direction: column; gap: 6px; width: 100%; cursor: pointer; }
.gl-card:focus-visible { outline: 2px solid var(--gl-black); outline-offset: 6px; }
.gl-card__img { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--gl-wall); margin-bottom: 14px; }
.gl-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--gl-ease), opacity .5s; }
.gl-card__room { position: absolute; inset: 0; opacity: 0; }
.gl-card:hover .gl-card__room, .gl-card:focus-visible .gl-card__room { opacity: 1; }
.gl-card:hover .gl-card__img img:first-child { transform: scale(1.03); }
.gl-card__badge {
	position: absolute; left: 12px; bottom: 12px; padding: 6px 10px;
	background: var(--gl-white); font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase;
}
.gl-card__title { font-family: var(--gl-display); font-weight: 900; font-size: 24px; line-height: 1.2; }
.gl-card__meta { font-size: 14px; color: var(--gl-gray); }

/* Contract */
.gl-contract { background: var(--gl-yellow); color: var(--gl-black); }
.gl-contract__inner { max-width: var(--gl-max); margin: 0 auto; padding: var(--gl-space) var(--gl-gutter); }
.gl-contract__head { max-width: 820px; margin-bottom: clamp(48px, 6vw, 80px); }
.gl-contract__head .gl-h2 { margin-bottom: 24px; }
.gl-contract .gl-kicker::before { background: var(--gl-black); }
.gl-contract .gl-lead { color: var(--gl-black); }
.gl-contract .gl-btn:hover { background: var(--gl-white); border-color: var(--gl-black); color: var(--gl-black); }
.gl-contract__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 32px; margin-bottom: 56px; }
.gl-contract__grid > div { border-top: 2px solid var(--gl-black); padding-top: 20px; }
.gl-contract__grid h3 { font-family: var(--gl-display); font-weight: 900; font-size: 24px; line-height: 1.15; margin-bottom: 12px; }
.gl-contract__grid p { font-size: 16px; }
@media (max-width: 1000px) { .gl-contract__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .gl-contract__grid { grid-template-columns: minmax(0, 1fr); } }

/* Scheda opera (finestra) */
.gl-lightbox {
	width: min(1240px, calc(100% - 32px)); max-height: calc(100% - 32px); padding: 0; border: 0;
	background: var(--gl-white); color: var(--gl-black);
}
.gl-lightbox::backdrop { background: rgba(17,17,17,.86); }
.gl-lightbox__inner { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); }
.gl-lightbox__close {
	position: absolute; top: 12px; right: 12px; z-index: 2; width: 48px; height: 48px;
	display: flex; align-items: center; justify-content: center;
	background: var(--gl-white); border: 0; cursor: pointer;
}
.gl-lightbox__media { position: relative; background: var(--gl-wall); display: flex; align-items: center; justify-content: center; min-height: 360px; }
.gl-lightbox__media img { width: 100%; height: 100%; max-height: 82vh; object-fit: contain; }
.gl-lightbox__media img.is-room { object-fit: cover; }
.gl-lightbox__switch { position: absolute; left: 16px; bottom: 16px; display: flex; gap: 0; background: var(--gl-white); box-shadow: 0 6px 18px -8px rgba(17,17,17,.4); }
.gl-lightbox__switch button {
	min-height: 44px; padding: 0 16px; border: 0; background: none; cursor: pointer;
	font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase;
}
.gl-lightbox__switch button[aria-pressed="true"] { background: var(--gl-black); color: var(--gl-white); }
.gl-lightbox__text { padding: clamp(32px, 4vw, 56px); overflow: auto; max-height: calc(100vh - 32px); }
.gl-lightbox__title { font-family: var(--gl-display); font-weight: 900; font-size: clamp(30px, 3vw, 42px); line-height: 1.1; margin-bottom: 14px; }
.gl-lightbox__lead { font-family: var(--gl-display); font-style: italic; font-size: 21px; line-height: 1.45; }
.gl-specs { display: grid; grid-template-columns: 130px minmax(0, 1fr); margin: 28px 0 32px; }
.gl-specs dt, .gl-specs dd { margin: 0; padding: 12px 0; border-top: 1px solid var(--gl-line); }
.gl-specs dt { font-size: 11px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; padding-top: 15px; }
.gl-specs dd { font-size: 15px; }
@media (max-width: 860px) {
	.gl-lightbox__inner { grid-template-columns: minmax(0, 1fr); }
	.gl-lightbox__media img { max-height: 55vh; }
	.gl-lightbox__text { max-height: none; }
	.gl-lightbox { overflow: auto; }
}

/* ==========================================================================
   12. Esperienze
   ========================================================================== */
.gl-xp-block {
	max-width: var(--gl-max); margin: 0 auto; padding: clamp(48px, 6vw, 96px) var(--gl-gutter);
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 6vw, 96px); align-items: center;
	scroll-margin-top: var(--gl-header-h);
}
.gl-xp-block--retreat .gl-xp-block__img { order: 2; }
.gl-xp-block__img { overflow: hidden; background: var(--gl-wall); aspect-ratio: 4 / 5; }
.gl-xp-block__img img { width: 100%; height: 100%; object-fit: cover; }
.gl-xp-block__num { display: block; font-family: var(--gl-display); font-weight: 900; font-size: clamp(56px, 7vw, 96px); line-height: 1; color: var(--gl-yellow); margin-bottom: 8px; }
.gl-xp-block__text .gl-h2 { margin-bottom: 24px; }
.gl-xp-block__text .gl-lead { margin-bottom: 36px; }
@media (max-width: 820px) {
	.gl-xp-block { grid-template-columns: minmax(0, 1fr); }
	.gl-xp-block--retreat .gl-xp-block__img { order: 0; }
}

/* ==========================================================================
   13. Bio
   ========================================================================== */
.gl-bio {
	max-width: var(--gl-max); margin: 0 auto; padding: 0 var(--gl-gutter) var(--gl-space);
	display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(40px, 6vw, 96px); align-items: start;
}
.gl-bio__photo { position: relative; margin: 0; position: sticky; top: calc(var(--gl-header-h) + 32px); }
.gl-bio__photo img[data-gl-img] { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; object-position: 50% 20%; }
.gl-bio__text { font-size: 18px; color: var(--gl-ink); }
@media (max-width: 900px) {
	.gl-bio { grid-template-columns: minmax(0, 1fr); }
	.gl-bio__photo { position: relative; top: auto; max-width: 460px; }
}
.gl-band { background: var(--gl-black); color: var(--gl-white); padding: clamp(72px, 9vw, 130px) var(--gl-gutter); text-align: center; }
.gl-band blockquote { margin: 0 auto; max-width: 980px; font-family: var(--gl-display); font-weight: 900; font-size: clamp(28px, 4.2vw, 56px); line-height: 1.15; }
.gl-band blockquote::after { content: ""; display: block; width: 72px; height: 4px; margin: 36px auto 0; background: var(--gl-yellow); }
.gl-facts { display: block; }
.gl-facts__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 32px; }
.gl-fact { border-top: 2px solid var(--gl-black); padding-top: 20px; }
.gl-fact h2, .gl-fact h3 { font-family: var(--gl-sans); font-size: 12px; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; margin-bottom: 16px; }
.gl-fact ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.gl-fact li { font-family: var(--gl-display); font-size: 20px; line-height: 1.35; }
@media (max-width: 1000px) { .gl-facts__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .gl-facts__grid { grid-template-columns: minmax(0, 1fr); } }
.gl-strip { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) minmax(0, 1fr); gap: 8px; }
.gl-strip img { width: 100%; height: clamp(260px, 34vw, 520px); object-fit: cover; }
@media (max-width: 700px) { .gl-strip { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .gl-strip img:nth-child(2) { grid-column: 1 / -1; order: -1; } }
.gl-bio-cta { display: flex; justify-content: center; }

/* ==========================================================================
   14. Opera singola, elenchi, 404
   ========================================================================== */
.gl-opera {
	max-width: var(--gl-max); margin: 0 auto; padding: clamp(48px, 6vw, 96px) var(--gl-gutter);
	display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: clamp(32px, 5vw, 80px); align-items: start;
}
.gl-opera__media { background: var(--gl-wall); padding: clamp(16px, 3vw, 48px); }
.gl-opera__img { width: 100%; height: auto; box-shadow: 0 30px 60px -20px rgba(17,17,17,.35); }
.gl-opera__text .gl-h2 { margin-bottom: 16px; }
.gl-opera__rooms { max-width: var(--gl-max); margin: 0 auto; padding: 0 var(--gl-gutter) var(--gl-space); display: grid; gap: 16px; }
.gl-opera__rooms img { width: 100%; }
@media (max-width: 860px) { .gl-opera { grid-template-columns: minmax(0, 1fr); } }
.gl-single-img { margin: 0 0 40px; }
.gl-postlist { list-style: none; margin: 0; padding: 0; display: grid; gap: 32px; }
.gl-postlist a { font-family: var(--gl-display); font-weight: 900; font-size: 28px; text-decoration: none; }
.gl-404 { text-align: center; }
.gl-404 .gl-lead { margin: 16px 0 32px; }

/* ==========================================================================
   15. Footer (compatto)
   ========================================================================== */
.gl-footer { background: var(--gl-black); color: var(--gl-white); font-size: 15px; }
.gl-footer a { color: var(--gl-white); text-decoration: none; }
.gl-footer a:hover { color: var(--gl-yellow); }
.gl-footer__inner {
	max-width: var(--gl-max); margin: 0 auto; padding: 32px var(--gl-gutter) 24px;
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 40px;
}
.gl-footer__brand { display: inline-flex; align-items: center; gap: 12px; }
.gl-footer__brand .gl-logo__mark { height: 34px; width: auto; }
.gl-footer__name { font-family: var(--gl-display); font-weight: 900; font-size: 19px; line-height: 1; }
.gl-footer__contact { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 24px; font-size: 14px; color: var(--gl-gray-2); }
.gl-footer__contact a { color: var(--gl-white); }
.gl-footer__social { list-style: none; margin: 0; padding: 0; display: flex; gap: 4px; }
.gl-footer__social a { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; }
.gl-footer__bottom {
	max-width: var(--gl-max); margin: 0 auto; padding: 16px var(--gl-gutter) 22px;
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 24px;
	border-top: 1px solid #2A2A2A; font-size: 12px; color: var(--gl-gray-2);
}
.gl-footer__legal { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 20px; }
.gl-footer__legal a, .gl-footer__prefs { color: var(--gl-gray-2); font-size: 12px; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: #555; }
.gl-footer__prefs { background: none; border: 0; padding: 0; cursor: pointer; min-height: 32px; }
.gl-footer__legal a:hover, .gl-footer__prefs:hover { color: var(--gl-yellow); }
.gl-footer__hint { font-size: 12px; color: #8A8A8A; }
@media (max-width: 640px) {
	.gl-footer__inner { flex-direction: column; align-items: flex-start; }
	.gl-footer__contact { flex-direction: column; align-items: flex-start; }
}


/* ==========================================================================
   16. Comparsa al passaggio (solo con movimento attivo)
   ========================================================================== */
.gl-motion .gl-reveal { opacity: 0; transform: translateY(28px); transition: opacity .9s var(--gl-ease), transform .9s var(--gl-ease); }
.gl-motion .gl-reveal.is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation: none !important; transition: none !important; }
}

/* ==========================================================================
   17. Blocchi WordPress
   ========================================================================== */
.alignwide { max-width: 1100px; }
.alignfull { width: 100vw; margin-left: calc(50% - 50vw); }
.wp-block-image figcaption, .wp-caption-text { font-size: 14px; color: var(--gl-gray); }
.has-giallo-background-color { background-color: var(--gl-yellow); }
.has-giallo-color { color: var(--gl-yellow-ink); }
.has-nero-background-color { background-color: var(--gl-black); }
.has-nero-color { color: var(--gl-black); }
.has-carta-background-color { background-color: var(--gl-paper); }
.has-grigio-color { color: var(--gl-gray); }
.has-bianco-color { color: var(--gl-white); }
.has-bianco-background-color { background-color: var(--gl-white); }

/* ==========================================================================
   18. Versione 2 — lingue, Contract, Mostre, Ricerca, Esperienze
   ========================================================================== */

/* Selettore lingua */
.gl-lang { display: flex; align-items: center; gap: 2px; }
.gl-lang a {
	display: inline-flex; align-items: center; justify-content: center; min-width: 40px; min-height: 40px; padding: 0 6px;
	font-size: 11px; font-weight: 800; letter-spacing: .12em; text-decoration: none; color: inherit; opacity: .62;
}
.gl-lang a:hover { opacity: 1; }
.gl-lang a[aria-current="true"] { opacity: 1; text-decoration: underline; text-decoration-color: var(--gl-yellow); text-decoration-thickness: 3px; text-underline-offset: 6px; }
.gl-lang--nav { display: none; }
.gl-lang--foot { margin-left: -6px; }
@media (max-width: 420px) { .gl-logo__name { font-size: 17px; } }

.gl-vlabel { gap: 14px; }
.gl-page-head__lead { margin-top: 28px; }

/* Opere: segnaposto e galleria */
.gl-phgrid { list-style: none; margin: 0; padding: 0; columns: 3 280px; column-gap: 32px; }
.gl-phgrid li { break-inside: avoid; margin: 0 0 56px; display: flex; flex-direction: column; gap: 6px; }
.gl-ph {
	aspect-ratio: var(--r, 4 / 5); max-width: 100%; margin-bottom: 14px;
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px;
	background: linear-gradient(140deg, #F4F1EC 0%, #E9E4DB 100%);
	box-shadow: inset 0 0 0 1px rgba(17,17,17,.06), 0 22px 34px -22px rgba(17,17,17,.4);
	color: var(--gl-gray);
}
.gl-ph img { width: 72px; height: auto; opacity: .9; }
.gl-ph span { font-size: 11px; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
.gl-card__img--free { aspect-ratio: auto; background: none; }
.gl-card__img--free img { height: auto; }
.gl-opband { background: var(--gl-paper); }
.gl-opband__inner {
	max-width: var(--gl-max); margin: 0 auto; padding: clamp(56px, 7vw, 96px) var(--gl-gutter);
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 48px;
}
.gl-opband p { margin: 0; max-width: 30ch; font-family: var(--gl-display); font-weight: 900; font-size: clamp(26px, 3vw, 38px); line-height: 1.15; }

/* Contract: collezioni */
.gl-ct-coll { max-width: var(--gl-max); margin: 0 auto; padding: 0 var(--gl-gutter) clamp(72px, 9vw, 120px); }
.gl-ct-coll__head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 24px 64px; align-items: end; margin-bottom: 48px; }
.gl-ct-coll__head h2 { font-family: var(--gl-display); font-weight: 900; font-size: clamp(44px, 6vw, 84px); line-height: .95; letter-spacing: -.01em; }
.gl-ct-coll__head > p { margin: 0; color: var(--gl-ink); font-size: 17px; }
.gl-ct-coll__note { font-family: var(--gl-display); font-style: italic; color: var(--gl-gray); margin: 10px 0 0 !important; font-size: 18px; }
.gl-ct-coll--series { border-top: 1px solid var(--gl-line); padding-top: clamp(72px, 9vw, 120px); }
@media (max-width: 820px) { .gl-ct-coll__head { grid-template-columns: minmax(0, 1fr); } }
.gl-ctgrid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 56px 28px; }
@media (max-width: 1000px) { .gl-ctgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .gl-ctgrid { grid-template-columns: minmax(0, 1fr); } }
.gl-ctgrid .gl-card__img { aspect-ratio: 4 / 3; }
.gl-card__flat { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 9%; background: var(--gl-wall); opacity: 0; transition: opacity .5s; }
.gl-card__flat img { width: auto !important; height: auto !important; max-width: 100%; max-height: 100%; box-shadow: 0 20px 34px -16px rgba(17,17,17,.4); }
.gl-card:hover .gl-card__flat, .gl-card:focus-visible .gl-card__flat { opacity: 1; }
.gl-card:hover .gl-card__img > img:first-of-type { transform: scale(1.03); }
.gl-card__lead { font-family: var(--gl-display); font-style: italic; font-size: 17px; line-height: 1.4; color: var(--gl-ink); }

/* Contract: processo, servizi, richiesta */
.gl-process { background: var(--gl-black); color: var(--gl-white); }
.gl-process .gl-kicker { color: var(--gl-white); }
.gl-process__inner {
	max-width: var(--gl-max); margin: 0 auto; padding: var(--gl-space) var(--gl-gutter);
	display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: clamp(40px, 6vw, 96px); align-items: center;
}
.gl-process__img { margin: 0; }
.gl-process__img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: 50% 20%; }
@media (max-width: 860px) { .gl-process__inner { grid-template-columns: minmax(0, 1fr); } }
.gl-steps { list-style: none; margin: 40px 0 0; padding: 0; display: grid; gap: 0; counter-reset: none; }
.gl-steps li { display: grid; grid-template-columns: 64px minmax(0, 1fr); align-items: baseline; gap: 16px; padding: 18px 0; border-top: 1px solid rgba(255,255,255,.18); font-size: 19px; }
.gl-steps li:last-child { border-bottom: 1px solid rgba(255,255,255,.18); }
.gl-steps__n { font-family: var(--gl-display); font-weight: 900; font-size: 28px; color: var(--gl-yellow); line-height: 1; }
.gl-steps--row { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 28px; }
.gl-steps--row li { grid-template-columns: minmax(0, 1fr); gap: 14px; border-bottom: 0 !important; border-top: 2px solid var(--gl-black); padding: 22px 0 0; font-size: 17px; }
.gl-steps--row .gl-steps__n { color: var(--gl-black); font-size: 40px; }
@media (max-width: 860px) { .gl-steps--row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 24px; } }
@media (max-width: 480px) { .gl-steps--row { grid-template-columns: minmax(0, 1fr); } }

.gl-services { display: block; }
.gl-services__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 48px; }
.gl-services__grid > div { border-top: 2px solid var(--gl-black); padding-top: 22px; font-size: 16px; color: var(--gl-ink); }
.gl-services__title { font-family: var(--gl-display); font-weight: 900; font-size: 24px; line-height: 1.2; color: var(--gl-black); margin-bottom: 14px; }
@media (max-width: 900px) { .gl-services__grid { grid-template-columns: minmax(0, 1fr); } }
.gl-dash { list-style: none; margin: 0 0 24px; padding: 0; display: grid; gap: 10px; }
.gl-dash li { position: relative; padding-left: 22px; }
.gl-dash li::before { content: ""; position: absolute; left: 0; top: .78em; width: 12px; height: 3px; background: var(--gl-yellow); border-radius: 2px; }

.gl-cta-band { background: var(--gl-paper); }
.gl-cta-band__inner {
	max-width: var(--gl-max); margin: 0 auto; padding: clamp(72px, 9vw, 120px) var(--gl-gutter);
	display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 32px 64px; align-items: end;
}
.gl-cta-band .gl-h2 { margin-bottom: 20px; }
.gl-cta-band__actions { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.gl-cta-band__mail { margin: 0; font-size: 15px; color: var(--gl-ink); }
.gl-cta-band__mail span { font-weight: 800; user-select: all; }
.gl-btn--yellow:hover { background: var(--gl-black); border-color: var(--gl-black); color: var(--gl-white); }
@media (max-width: 860px) { .gl-cta-band__inner { grid-template-columns: minmax(0, 1fr); } }

/* Mostre */
.gl-show { max-width: var(--gl-max); margin: 0 auto; padding: 0 var(--gl-gutter) clamp(72px, 9vw, 120px); display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(40px, 6vw, 96px); align-items: start; }
.gl-show__img { position: relative; margin: 0; }
.gl-show__img img[data-gl-img] { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; object-position: 30% 30%; }
.gl-show__title { font-family: var(--gl-display); font-weight: 900; font-size: clamp(64px, 10vw, 150px); line-height: .88; letter-spacing: -.015em; margin: 6px 0 32px; }
.gl-show__title em { display: block; font-weight: 400; font-style: italic; }
.gl-show__facts { margin: 0; padding: 18px 0 0; border-top: 2px solid var(--gl-black); display: grid; gap: 4px; max-width: 460px; }
.gl-show__facts dd { margin: 0; font-size: 15px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.gl-show__text { color: var(--gl-ink); font-size: 18px; max-width: 46ch; margin: 22px 0 36px; }
.gl-show__second { width: min(100%, 360px); aspect-ratio: 3 / 4; object-fit: cover; }
@media (max-width: 900px) { .gl-show { grid-template-columns: minmax(0, 1fr); } .gl-show__img { max-width: 460px; } }
.gl-facts--show { padding-top: 0; }
.gl-facts__title { margin-bottom: 32px; }
.gl-timeline { list-style: none; margin: 0; padding: 0; max-width: 860px; }
.gl-timeline li { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 20px; padding: 18px 0; border-top: 1px solid var(--gl-line); font-family: var(--gl-display); font-size: 21px; line-height: 1.35; }
.gl-timeline li > span:first-child { font-family: var(--gl-sans); font-size: 13px; font-weight: 800; letter-spacing: .14em; padding-top: 6px; }

/* Ricerca artistica */
.gl-research { max-width: var(--gl-max); margin: 0 auto; padding: 0 var(--gl-gutter) var(--gl-space); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.gl-rpanel { min-height: 34rem; padding: clamp(32px, 4vw, 56px); display: flex; flex-direction: column; justify-content: space-between; gap: 40px; scroll-margin-top: var(--gl-header-h); }
.gl-rpanel--dark { background: var(--gl-black); color: var(--gl-white); }
.gl-rpanel--yellow { background: var(--gl-yellow); color: var(--gl-black); }
.gl-rpanel--dark .gl-kicker { color: var(--gl-white); }
.gl-rpanel--yellow .gl-kicker::before { background: var(--gl-black); }
.gl-rpanel h2 { font-family: var(--gl-display); font-weight: 900; font-size: clamp(44px, 6.2vw, 92px); line-height: .9; letter-spacing: -.015em; }
.gl-rpanel > p { margin: 0; max-width: 40ch; font-size: 17px; }
.gl-rpanel--dark > p { color: #D0D0D0; }
@media (max-width: 760px) { .gl-research { grid-template-columns: minmax(0, 1fr); } .gl-rpanel { min-height: 24rem; } }

/* Esperienze */
.gl-xphero { position: relative; min-height: 520px; height: 88vh; height: 88svh; display: flex; align-items: flex-end; overflow: hidden; background: #3B2A1A; color: var(--gl-white); }
.gl-xphero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gl-xphero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(30,20,10,.7) 0%, rgba(30,20,10,.15) 55%, rgba(30,20,10,.3) 100%); }
.gl-xphero__content { position: relative; z-index: 1; width: 100%; max-width: var(--gl-max); margin: 0 auto; padding: 0 var(--gl-gutter) clamp(48px, 8vh, 96px); }
.gl-xphero__title { font-family: var(--gl-display); font-weight: 900; font-size: clamp(3rem, 8.5vw, 8rem); line-height: .92; letter-spacing: -.01em; max-width: 12ch; }
.gl-xphero__place { margin: 14px 0 0; font-family: var(--gl-display); font-style: italic; font-size: clamp(24px, 3vw, 40px); color: var(--gl-yellow); }
.gl-xpintro__grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 32px 64px; align-items: start; }
.gl-xpintro__nav { grid-column: 2; margin-top: 48px; }
@media (max-width: 900px) { .gl-xpintro__grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 820px) { .gl-xpintro__nav { grid-column: 1; } }
.gl-xpgroup { scroll-margin-top: var(--gl-header-h); padding: clamp(64px, 8vw, 110px) 0; border-top: 1px solid var(--gl-line); }
.gl-xpgroup--paper { background: var(--gl-paper); border-top: 0; }
.gl-xpgroup__head { max-width: var(--gl-max); margin: 0 auto clamp(40px, 5vw, 64px); padding: 0 var(--gl-gutter); display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 12px 40px; }
.gl-xpgroup__title { font-family: var(--gl-display); font-weight: 900; font-size: clamp(44px, 6vw, 84px); line-height: .95; }
.gl-xpgroup__head p { margin: 0; max-width: 44ch; font-size: 18px; color: var(--gl-ink); }
.gl-exp {
	max-width: var(--gl-max); margin: 0 auto; padding: 0 var(--gl-gutter);
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(36px, 5vw, 80px); align-items: start;
}
.gl-exp + .gl-exp { margin-top: clamp(72px, 9vw, 130px); }
.gl-exp--flip .gl-exp__media { order: 2; }
.gl-exp__media { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .55fr); gap: 12px; align-items: end; }
.gl-exp__img { grid-column: 1 / -1; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.gl-exp__img2 { grid-column: 2; width: 100%; aspect-ratio: 3 / 4; object-fit: cover; margin-top: -30%; border: 8px solid var(--gl-white); position: relative; }
.gl-xpgroup--paper .gl-exp__img2 { border-color: var(--gl-paper); }
.gl-exp__title { font-family: var(--gl-display); font-weight: 900; font-size: clamp(36px, 4vw, 56px); line-height: 1.02; }
.gl-exp__sub { font-family: var(--gl-display); font-style: italic; font-size: 21px; line-height: 1.4; margin: 12px 0 20px; }
.gl-exp__text { font-size: 17px; color: var(--gl-ink); }
.gl-exp__take { margin: 28px 0 8px; padding: 20px 22px; background: var(--gl-yellow); }
.gl-exp__take p { margin: 0; font-size: 16px; }
.gl-exp__label { margin: 28px 0 12px; font-size: 11px; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
.gl-exp__take .gl-exp__label { margin: 0 0 6px; }
.gl-specs--exp { grid-template-columns: 150px minmax(0, 1fr); margin: 24px 0 0; }
.gl-badge { display: inline-block; margin-left: 8px; padding: 3px 8px; background: var(--gl-black); color: var(--gl-white); font-size: 10px; letter-spacing: .16em; }
@media (max-width: 900px) {
	.gl-exp { grid-template-columns: minmax(0, 1fr); }
	.gl-exp--flip .gl-exp__media { order: 0; }
}
@media (max-width: 480px) { .gl-specs--exp { grid-template-columns: minmax(0, 1fr); } .gl-specs--exp dd { padding-top: 0; border-top: 0; } }
.gl-how { background: var(--gl-yellow); }
.gl-how__inner { max-width: var(--gl-max); margin: 0 auto; padding: clamp(72px, 9vw, 120px) var(--gl-gutter); }
.gl-how .gl-kicker::before { background: var(--gl-black); }
.gl-how .gl-steps { margin: 40px 0 48px; }
.gl-how .gl-cta-band__mail { color: var(--gl-black); }
.gl-how .gl-btn--yellow { background: var(--gl-black); border-color: var(--gl-black); color: var(--gl-white); }
.gl-how .gl-btn--yellow:hover { background: var(--gl-white); color: var(--gl-black); }


/* Selettore lingua compatto nell'header (menu a tendina) */
.gl-langdd { position: relative; }
.gl-langdd summary {
	list-style: none; display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 10px;
	font-size: 11px; font-weight: 800; letter-spacing: .14em; cursor: pointer; user-select: none;
	border: 1px solid currentColor; border-color: rgba(127,127,127,.45); border-radius: 999px;
}
.gl-langdd summary::-webkit-details-marker { display: none; }
.gl-langdd summary svg { transition: transform .2s; }
.gl-langdd[open] summary svg { transform: rotate(180deg); }
.gl-langdd summary:hover { border-color: currentColor; }
.gl-langdd__menu {
	position: absolute; right: 0; top: calc(100% + 8px); z-index: 80; min-width: 170px;
	list-style: none; margin: 0; padding: 6px; background: var(--gl-white); color: var(--gl-black);
	box-shadow: 0 14px 34px -12px rgba(17,17,17,.35); border: 1px solid var(--gl-line);
}
.gl-langdd__menu a { display: flex; align-items: center; gap: 12px; min-height: 40px; padding: 0 12px; font-size: 14px; color: var(--gl-black); text-decoration: none; }
.gl-langdd__menu a span { width: 22px; font-size: 11px; font-weight: 800; letter-spacing: .12em; color: var(--gl-gray); }
.gl-langdd__menu a:hover { background: var(--gl-paper); }
.gl-langdd__menu a[aria-current="true"] { font-weight: 700; }
.gl-langdd__menu a[aria-current="true"] span { color: var(--gl-black); text-decoration: underline; text-decoration-color: var(--gl-yellow); text-decoration-thickness: 3px; text-underline-offset: 5px; }
.gl-lang--nav { display: none !important; }
@media (max-width: 1180px) { .gl-header__right { gap: 10px; } }

/* Bio · ARTourism Company */
.gl-at { background: var(--gl-black); color: var(--gl-white); }
.gl-at__inner {
	max-width: var(--gl-max); margin: 0 auto; padding: var(--gl-space) var(--gl-gutter);
	display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 48px clamp(40px, 6vw, 96px); align-items: center;
}
.gl-at .gl-kicker { color: var(--gl-white); }
.gl-at .gl-h2 { margin-bottom: 14px; }
.gl-at__claim { font-family: var(--gl-display); font-style: italic; font-size: clamp(22px, 2.4vw, 30px); color: var(--gl-yellow); margin-bottom: 24px; }
.gl-at .gl-lead { color: #E2E2E2; }
.gl-at__vision { margin-top: 18px; font-size: 16px; color: var(--gl-gray-2); }
.gl-at__media { margin: 0; }
.gl-at__media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.gl-at__services { grid-column: 1 / -1; list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.gl-at__services li { border-top: 2px solid var(--gl-yellow); padding-top: 20px; }
.gl-at__num { display: block; font-family: var(--gl-display); font-weight: 900; font-size: 26px; color: var(--gl-yellow); margin-bottom: 8px; }
.gl-at__services h3 { font-family: var(--gl-display); font-weight: 900; font-size: 24px; line-height: 1.2; margin-bottom: 10px; }
.gl-at__services p { margin: 0; font-size: 16px; color: #CFCFCF; }
.gl-at__foot { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 40px; border-top: 1px solid #2A2A2A; padding-top: 32px; }
.gl-at__foot > p { margin: 0; font-size: 15px; color: var(--gl-gray-2); }
.gl-at__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; }
.gl-link--light { color: var(--gl-white); }
.gl-link--light:hover { color: var(--gl-yellow); }
@media (max-width: 900px) {
	.gl-at__inner { grid-template-columns: minmax(0, 1fr); }
	.gl-at__media { max-width: 460px; }
	.gl-at__services { grid-template-columns: minmax(0, 1fr); gap: 28px; }
}
