/* ==========================================================================
   GIOVANNI LEONE — CSS GLOBALE PER ELEMENTOR
   Caricato automaticamente dal plugin (solo sulla pagina del sito).
   Ogni regola è agganciata a classi "gl-" da assegnare nel campo
   Avanzate > Classi CSS dei contenitori/widget (il template le assegna già).
   ========================================================================== */


/* ---------- 1. Design tokens ---------- */
:root {
  --gl-ink: #0a0a0b;
  --gl-charcoal: #17171a;
  --gl-charcoal-soft: #232326;
  --gl-ivory: #faf8f4;
  --gl-ivory-dim: #f0ece3;
  --gl-stone: #a39c8f;
  --gl-stone-dark: #6b655a;
  --gl-gold: #c6a15b;
  --gl-gold-soft: #d9bd85;
  --gl-garnet: #6e1b23;
  --gl-display: "Oswald", "Arial Narrow", sans-serif;
  --gl-sans: "Barlow", ui-sans-serif, system-ui, sans-serif;
  --gl-ease: cubic-bezier(0.16, 1, 0.3, 1);
}

html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--gl-ink);
  color: var(--gl-ivory);
  font-family: var(--gl-sans);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
::selection { background: var(--gl-gold); color: var(--gl-ink); }
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: var(--gl-ink); }
::-webkit-scrollbar-thumb { background: var(--gl-charcoal-soft); border-radius: 999px; border: 2px solid var(--gl-ink); }
::-webkit-scrollbar-thumb:hover { background: var(--gl-stone-dark); }

/* Lenis (smooth scroll) — regole standard della libreria */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }

/* ---------- 2. Reset dei default di Elementor sulle nostre classi ---------- */
.e-con[class^="gl-"], .e-con[class*=" gl-"] {
  --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
  --margin-top: 0px; --margin-bottom: 0px;
  --gap: 0px; --row-gap: 0px; --column-gap: 0px;
  --border-radius: 0px;
  line-height: 1.5; /* come il preflight di Tailwind: stessa "strut" delle righe */
  /* il tema (es. Twenty Twenty-Five) può impostare peso/interlettera sul body: li riportiamo ai valori del sito */
  font-weight: 400; font-style: normal; letter-spacing: normal; text-transform: none;
}
/* Elementor mette 20px sotto ogni widget: li azzeriamo dentro i nostri contenitori */
.e-con[class^="gl-"] > .elementor-widget, .e-con[class*=" gl-"] > .elementor-widget { margin-bottom: 0 !important; }
:where(.elementor-widget[class^="gl-"], .elementor-widget[class*=" gl-"]) .elementor-widget-container { margin: 0; padding: 0; line-height: 1.5; font-family: var(--gl-sans); font-weight: 400; letter-spacing: normal; }
:where(.elementor-widget[class^="gl-"], .elementor-widget[class*=" gl-"]) .elementor-heading-title { margin: 0; padding: 0; }
:where(.elementor-widget[class^="gl-"], .elementor-widget[class*=" gl-"]) p { margin: 0; }

.gl-ico, .gl-ch-ico, .gl-initials, .gl-channel, .gl-quote, .gl-pcard-head, .gl-nav-cta, .gl-card-serv, .gl-pcard-panel-in { box-sizing: border-box; }

/* i temi moderni impostano text-wrap: pretty/balance: qui l'a-capo è quello normale del sito */
.e-con[class^="gl-"] :is(p, h3, blockquote, li), .e-con[class*=" gl-"] :is(p, h3, blockquote, li) { text-wrap: wrap; }

/* ---------- 3. Utilità tipografiche (stesso schema del sito React) ---------- */
/* .font-display del sito = Oswald 500, tracking -0.01em, ovunque */
.gl-h2 .elementor-heading-title,
.gl-h3 .elementor-heading-title {
  font-family: var(--gl-display) !important;
  font-weight: 500 !important;
  letter-spacing: -0.01em !important;
  color: var(--gl-ivory) !important;
  text-wrap: balance;
}
.gl-h2 .elementor-heading-title { font-size: 2.25rem !important; line-height: 1.25 !important; }
@media (min-width: 640px) { .gl-h2 .elementor-heading-title { font-size: 3rem !important; } }
.gl-gold { color: var(--gl-gold-soft) !important; }

/* Etichetta di sezione: "03 — SERVIZI" */
.gl-kicker { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.5rem; }
.gl-kicker .gl-kicker-num { font-family: var(--gl-display); font-weight: 500; font-size: 0.875rem; line-height: 1.25rem; letter-spacing: -0.01em; color: var(--gl-gold); }
.gl-kicker .gl-kicker-line { display: block; width: 2.5rem; height: 1px; background: rgba(198,161,91,0.4); }
.gl-kicker .gl-kicker-label { font-family: var(--gl-sans); font-size: 0.75rem; line-height: 1rem; letter-spacing: 0.35em; text-transform: uppercase; color: var(--gl-stone); }

/* Layout comune a tutte le sezioni */
.gl-sec { width: 100%; padding-top: 7rem; padding-bottom: 7rem; }
@media (min-width: 768px) { .gl-sec { padding-top: 9rem; padding-bottom: 9rem; } }
.gl-bg-ink { background: var(--gl-ink); }
.gl-bg-charcoal { background: var(--gl-charcoal); }
.gl-wrap { width: 100%; max-width: 80rem; margin-left: auto; margin-right: auto; padding-left: 1.5rem; padding-right: 1.5rem; box-sizing: border-box; }
@media (min-width: 768px) { .gl-wrap { padding-left: 2.5rem; padding-right: 2.5rem; } }
.gl-wrap-5xl { max-width: 64rem; }

/* Grana (texture) — .grain del sito */
.gl-grain { position: relative; }
.gl-grain::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1;
  opacity: 0.035; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- 4. Entrate allo scroll (Reveal) ----------
   Tutto è nascosto SOLO se JS è attivo (classe gl-js su <html>): senza JS
   o dentro l'editor di Elementor i contenuti restano visibili. */
.gl-js .gl-reveal {
  opacity: 0; translate: 0 28px;
  transition: opacity 0.8s var(--gl-ease) var(--d, 0s), translate 0.8s var(--gl-ease) var(--d, 0s);
}
.gl-js .gl-reveal.gl-y12 { translate: 0 12px; transition-duration: 0.6s; }
.gl-js .gl-reveal.is-in { opacity: 1; translate: 0 0; }
.gl-js .gl-reveal-scale {
  opacity: 0; scale: 0.96;
  transition: opacity 0.7s var(--gl-ease) var(--d, 0s), scale 0.7s var(--gl-ease) var(--d, 0s);
}
.gl-js .gl-reveal-scale.is-in { opacity: 1; scale: 1; }
.gl-js .gl-reveal-fade { opacity: 0; transition: opacity 0.8s ease var(--d, 0s); }
.gl-js .gl-reveal-fade.is-in { opacity: 1; }
.gl-d1 { --d: 0.1s; } .gl-d2 { --d: 0.2s; } .gl-d3 { --d: 0.3s; }
.gl-d15 { --d: 0.15s; } .gl-d4 { --d: 0.4s; } .gl-d5 { --d: 0.5s; } .gl-d6 { --d: 0.6s; }

/* ---------- 5. Barra di avanzamento scroll ---------- */
.gl-progress {
  position: fixed; inset: 0 0 auto 0; z-index: 9999; height: 2px;
  transform-origin: left; transform: scaleX(0); pointer-events: none;
  background: linear-gradient(90deg, var(--gl-gold), var(--gl-gold-soft), var(--gl-gold));
}

/* ---------- 6. Navbar ---------- */
.gl-nav {
  position: fixed; inset: 0 0 auto 0; z-index: 50;
  background: transparent; border-bottom: 1px solid transparent;
  opacity: 0; pointer-events: none;
  transition: opacity 0.5s, background-color 0.5s, border-color 0.5s;
}
.gl-nav.is-scrolled {
  opacity: 1; pointer-events: auto;
  background: rgba(10,10,11,0.85); border-bottom-color: rgba(250,248,244,0.1);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
}
.gl-nav-inner { max-width: 80rem; margin: 0 auto; padding: 1.25rem 1.5rem; display: flex; align-items: center; justify-content: space-between; box-sizing: border-box; }
@media (min-width: 768px) { .gl-nav-inner { padding-left: 2.5rem; padding-right: 2.5rem; } }
.gl-logo { font-family: var(--gl-display); font-weight: 500; font-size: 1.25rem; line-height: 1.75rem; letter-spacing: -0.01em; color: var(--gl-ivory); text-decoration: none; }
.gl-nav-links { display: none; align-items: center; gap: 2.5rem; list-style: none; margin: 0; padding: 0; }
.gl-nav-links a { position: relative; display: inline-block; padding-bottom: 0.375rem; font-family: var(--gl-sans); font-size: 0.75rem; line-height: 1rem; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(250,248,244,0.7); text-decoration: none; transition: color 0.3s; }
.gl-nav-links a:hover, .gl-nav-links a.is-active { color: var(--gl-gold); }
.gl-nav-links a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 1px; background: var(--gl-gold); transform: scaleX(0); transform-origin: left; transition: transform 0.4s var(--gl-ease); }
.gl-nav-links a.is-active::after { transform: scaleX(1); }
.gl-nav-cta { display: none; border: 1px solid rgba(198,161,91,0.5); border-radius: 999px; padding: 0.5rem 1.25rem; font-family: var(--gl-sans); font-size: 0.75rem; line-height: 1rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gl-gold); text-decoration: none; transition: background-color 0.3s, color 0.3s; will-change: transform; }
.gl-nav-cta:hover { background: var(--gl-gold); color: var(--gl-ink); }
.gl-burger, .gl-menu-close { background: none; border: 0; padding: 0; color: var(--gl-ivory); cursor: pointer; display: inline-flex; }
@media (min-width: 768px) {
  .gl-nav-links { display: flex; }
  .gl-nav-cta { display: inline-block; }
  .gl-burger { display: none; }
  .gl-menu { display: none !important; }
}
/* Menu mobile: è un FRATELLO dell'header, mai figlio (backdrop-filter sul
   genitore romperebbe position:fixed del menu) */
.gl-menu { position: fixed; inset: 0; z-index: 51; display: flex; flex-direction: column; background: rgba(10,10,11,0.98); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); opacity: 0; pointer-events: none; transition: opacity 0.35s; }
.gl-menu.is-open { opacity: 1; pointer-events: auto; }
.gl-menu-top { display: flex; align-items: center; justify-content: space-between; padding: 1.25rem 1.5rem; }
.gl-menu ul { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2rem; list-style: none; margin: 0; padding: 0; }
.gl-menu li { opacity: 0; transform: translateY(16px); transition: opacity 0.5s, transform 0.5s; }
.gl-menu.is-open li { opacity: 1; transform: none; }
.gl-menu.is-open li:nth-child(1) { transition-delay: 0s; } .gl-menu.is-open li:nth-child(2) { transition-delay: 0.08s; }
.gl-menu.is-open li:nth-child(3) { transition-delay: 0.16s; } .gl-menu.is-open li:nth-child(4) { transition-delay: 0.24s; }
.gl-menu.is-open li:nth-child(5) { transition-delay: 0.32s; }
.gl-menu li a { font-family: var(--gl-display); font-weight: 500; font-size: 1.875rem; line-height: 2.25rem; letter-spacing: -0.01em; color: var(--gl-ivory); text-decoration: none; transition: color 0.3s; }
.gl-menu li a:hover { color: var(--gl-gold); }

/* ---------- 7. HERO ---------- */
.gl-hero { position: relative; min-height: 100vh; display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden; background: var(--gl-ink); }
.gl-hero-photo, .gl-hero-cutout { position: absolute !important; inset: 0; width: 100%; height: 100%; }
.gl-hero-photo { z-index: 0; } .gl-hero-cutout { z-index: 20; }
.gl-hero-photo .elementor-widget-container, .gl-hero-cutout .elementor-widget-container { position: absolute; inset: 0; }
.gl-hero-photo img, .gl-hero-cutout img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 50% 15%; }
/* il nome vive tra foto (z0) e ritaglio (z20): la testa lo copre */
.gl-hero-name { position: absolute !important; left: 0; right: 0; width: 100%; z-index: 10; pointer-events: none; top: var(--gl-name-top, 8%); }
.gl-hero-name .elementor-heading-title {
  display: block; text-align: center; white-space: nowrap; text-transform: uppercase;
  font-family: var(--gl-display) !important; font-weight: 500 !important; letter-spacing: -0.01em !important; line-height: 0.92 !important;
  font-size: clamp(3rem, 13.4vw, 16.5rem) !important;
  background: linear-gradient(180deg, color-mix(in srgb, #faf8f4 55%, #0a0a0b 45%) 0%, color-mix(in srgb, #faf8f4 18%, #0a0a0b 82%) 100%) !important;
  -webkit-background-clip: text !important; background-clip: text !important; color: transparent !important;
}
.gl-hero-overlay { position: absolute !important; inset: 0; width: 100%; height: 100%; z-index: 30; pointer-events: none;
  background:
    linear-gradient(180deg, rgba(10,10,11,0.4) 0%, rgba(10,10,11,0.02) 16%, rgba(10,10,11,0.05) 52%, rgba(10,10,11,0.7) 86%, rgba(10,10,11,0.94) 100%),
    linear-gradient(90deg, rgba(10,10,11,0.1) 0%, transparent 18%, transparent 82%, rgba(10,10,11,0.1) 100%); }
.gl-scroll-cue { position: absolute !important; z-index: 40; bottom: 1.5rem; left: 50%; right: auto; width: auto; transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; gap: 0.5rem; color: rgba(250,248,244,0.4); text-decoration: none; }
.gl-scroll-cue .gl-cue-label { font-family: var(--gl-sans); font-size: 10px; line-height: 1rem; letter-spacing: 0.3em; text-transform: uppercase; }
.gl-scroll-cue .gl-cue-arrow { display: inline-flex; animation: gl-bounce 1.8s ease-in-out infinite; }
@keyframes gl-bounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(6px); } }
@keyframes gl-hero-in { from { opacity: 0; transform: scale(1.06); } to { opacity: 1; transform: none; } }
@keyframes gl-fade-in { from { opacity: 0; } to { opacity: 1; } }
.gl-js .gl-hero-photo, .gl-js .gl-hero-cutout { animation: gl-hero-in 1.6s var(--gl-ease) both; }
.gl-js .gl-hero-name { animation: gl-fade-in 1s var(--gl-ease) 0.3s both; }
.gl-js .gl-scroll-cue { animation: gl-fade-in 0.8s ease 1.2s both; }

/* ---------- 8. Striscia scorrevole ---------- */
.gl-marquee { overflow: hidden; border-top: 1px solid rgba(250,248,244,0.1); border-bottom: 1px solid rgba(250,248,244,0.1); background: rgba(23,23,26,0.4); padding: 3rem 0; }
@media (min-width: 768px) { .gl-marquee { padding: 4rem 0; } }
.gl-marquee-track { display: flex !important; flex-direction: row !important; align-items: center; width: max-content !important; max-width: none !important; flex-wrap: nowrap !important;
  animation: gl-marquee var(--gl-marquee-duration, 30s) linear infinite; will-change: transform; }
.gl-marquee-track > * { flex: 0 0 auto; padding-right: 8rem; }
.gl-marquee:hover .gl-marquee-track { animation-play-state: paused; }
@keyframes gl-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.gl-marquee-phrase { display: block; white-space: nowrap; font-family: var(--gl-display); font-weight: 500; letter-spacing: -0.01em; font-size: 1.875rem; line-height: 2.25rem; color: rgba(250,248,244,0.45); transition: color 0.5s; }
.gl-marquee-phrase em { font-style: normal; color: var(--gl-gold-soft); }
.gl-marquee-phrase:hover { color: var(--gl-gold); }
@media (min-width: 640px) { .gl-marquee-phrase { font-size: 3rem; line-height: 1; } }
@media (min-width: 768px) { .gl-marquee-phrase { font-size: 3.75rem; } }

/* ---------- 9. Chi sono ---------- */
.gl-chisono-grid { display: grid !important; grid-template-columns: 1fr; gap: 4rem; align-items: center; }
.gl-chisono-text { order: 2; } .gl-chisono-media { order: 1; }
@media (min-width: 1024px) {
  .gl-chisono-grid { grid-template-columns: 1fr 1fr; gap: 6rem; }
  .gl-chisono-text { order: 1; } .gl-chisono-media { order: 2; }
}
.gl-body { margin-top: 2rem; }
.gl-body p { font-family: var(--gl-sans); font-size: 1rem; line-height: 1.625; color: rgba(250,248,244,0.7); margin: 0 0 1.25rem; }
.gl-body p:last-child { margin-bottom: 0; }
@media (min-width: 640px) { .gl-body p { font-size: 1.125rem; } }

/* Cornice foto con angoli a L */
.gl-frame { position: relative; overflow: hidden; border: 1px solid rgba(198,161,91,0.25); border-radius: 2px; background: linear-gradient(135deg, var(--gl-charcoal), var(--gl-charcoal-soft), var(--gl-ink)); }
.gl-frame img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; transition: transform 0.7s ease-out; }
.gl-frame:hover img { transform: scale(1.05); }
.gl-frame::before { content: ""; position: absolute; inset: 1rem; z-index: 2; pointer-events: none;
  --c: rgba(198,161,91,0.5);
  background:
    linear-gradient(var(--c), var(--c)) top left / 1.5rem 1px no-repeat, linear-gradient(var(--c), var(--c)) top left / 1px 1.5rem no-repeat,
    linear-gradient(var(--c), var(--c)) top right / 1.5rem 1px no-repeat, linear-gradient(var(--c), var(--c)) top right / 1px 1.5rem no-repeat,
    linear-gradient(var(--c), var(--c)) bottom left / 1.5rem 1px no-repeat, linear-gradient(var(--c), var(--c)) bottom left / 1px 1.5rem no-repeat,
    linear-gradient(var(--c), var(--c)) bottom right / 1.5rem 1px no-repeat, linear-gradient(var(--c), var(--c)) bottom right / 1px 1.5rem no-repeat; }

/* ---------- 10. Percorso (timeline) ---------- */
.gl-percorso { position: relative; overflow: hidden; }
.gl-percorso::before { content: ""; position: absolute; right: -8rem; top: 33.333%; width: 24rem; height: 24rem; border-radius: 999px; background: rgba(198,161,91,0.05); filter: blur(64px); pointer-events: none; }
.gl-percorso .gl-wrap { position: relative; }
.gl-percorso .gl-h2 .elementor-heading-title { max-width: 42rem; }
.gl-timeline { position: relative; margin-top: 5rem; display: flex !important; flex-direction: column !important; gap: 4rem; }
.gl-timeline::before, .gl-timeline::after { content: ""; position: absolute; left: 7px; top: 0.5rem; bottom: 0.5rem; width: 1px; }
.gl-timeline::before { background: rgba(250,248,244,0.1); }
.gl-timeline::after { background: linear-gradient(180deg, var(--gl-gold), var(--gl-gold-soft), transparent); transform: scaleY(0); transform-origin: top; transition: transform 1.6s var(--gl-ease); }
.gl-timeline.is-in::after { transform: scaleY(1); }
html:not(.gl-js) .gl-timeline::after { transform: none; }
.gl-t-item { position: relative; padding-left: 2.5rem; }
.gl-t-item::before { content: ""; position: absolute; left: 0; top: 0.375rem; width: 1rem; height: 1rem; box-sizing: border-box; border-radius: 999px; border: 2px solid var(--gl-gold); background: var(--gl-ink); }
.gl-t-label p { font-family: var(--gl-sans); font-size: 0.75rem; line-height: 1rem; letter-spacing: 0.3em; text-transform: uppercase; color: var(--gl-stone); }
.gl-t-brand { margin-top: 0.5rem; }
.gl-t-brand .elementor-heading-title { font-family: var(--gl-display) !important; font-weight: 500 !important; letter-spacing: -0.01em !important; font-size: 1.875rem !important; line-height: 2.25rem !important; color: var(--gl-gold-soft) !important; }
.gl-t-role { margin-top: 0.25rem; }
.gl-t-role p { font-family: var(--gl-sans); font-size: 0.875rem; line-height: 1.25rem; letter-spacing: 0.15em; text-transform: uppercase; color: rgba(250,248,244,0.5); }
.gl-t-desc { margin-top: 1rem; max-width: 36rem !important; }
.gl-t-desc p { font-family: var(--gl-sans); font-size: 1rem; line-height: 1.625; color: rgba(250,248,244,0.65); }
@media (min-width: 640px) {
  .gl-timeline::before, .gl-timeline::after { left: 11px; }
  .gl-t-item { padding-left: 3.5rem; }
  .gl-t-item::before { width: 1.5rem; height: 1.5rem; }
  .gl-t-brand .elementor-heading-title { font-size: 2.25rem !important; line-height: 2.5rem !important; }
}

/* ---------- 11. Servizi ---------- */
.gl-serv-head { display: flex !important; flex-direction: column !important; align-items: flex-start; justify-content: space-between; gap: 1.5rem; }
@media (min-width: 768px) { .gl-serv-head { flex-direction: row !important; align-items: flex-end; } }
.gl-serv-head .gl-h2 .elementor-heading-title { max-width: 36rem; }
.gl-serv-intro { max-width: 24rem !important; }
.gl-serv-intro p { font-family: var(--gl-sans); font-size: 0.875rem; line-height: 1.625; color: rgba(250,248,244,0.55); }
.gl-serv-grid { margin-top: 4rem; display: grid !important; grid-template-columns: 1fr; gap: 1px; overflow: hidden; border: 1px solid rgba(250,248,244,0.1); border-radius: 2px; background: rgba(250,248,244,0.1); }
@media (min-width: 640px) { .gl-serv-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .gl-serv-grid { grid-template-columns: repeat(3, 1fr); } }
.gl-card-serv { position: relative; background: var(--gl-ink); padding: 2rem; transition: background-color 0.5s; transform-style: preserve-3d; will-change: transform; }
.gl-card-serv:hover { background: var(--gl-charcoal); }
.gl-card-serv .gl-ico { display: inline-flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; margin-bottom: 1.5rem; border-radius: 999px; border: 1px solid rgba(198,161,91,0.3); color: var(--gl-gold); transition: transform 0.5s var(--gl-ease); }
.gl-card-serv:hover .gl-ico { transform: rotate(-8deg) scale(1.08); }
.gl-card-serv h3 { margin: 0; font-family: var(--gl-display); font-weight: 500; letter-spacing: -0.01em; font-size: 1.25rem; line-height: 1.75rem; color: var(--gl-ivory); }
.gl-card-serv p { margin: 0.75rem 0 0; font-family: var(--gl-sans); font-size: 0.875rem; line-height: 1.625; color: rgba(250,248,244,0.55); }
.gl-card-serv .gl-line { position: absolute; left: 2rem; bottom: 0; height: 1px; width: 0; background: var(--gl-gold); transition: width 0.5s; }
.gl-card-serv:hover .gl-line { width: 2.5rem; }

/* Pannelli foto con parallax */
.gl-panels { margin-top: 6rem; display: grid !important; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width: 640px) { .gl-panels { grid-template-columns: repeat(3, 1fr); } }
.gl-panel { position: relative; aspect-ratio: 3 / 4; overflow: hidden; border: 1px solid rgba(250,248,244,0.1); border-radius: 2px; background: var(--gl-charcoal); will-change: translate; }
.gl-panel .elementor-widget-container { position: absolute; inset: 0; }
.gl-panel img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform 0.7s ease-out; }
.gl-panel:hover img { transform: scale(1.05); }
.gl-panel::before { content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none; background: linear-gradient(to top, rgba(10,10,11,0.4), transparent 60%); }
.gl-panel::after { content: ""; position: absolute; inset: 1rem; z-index: 3; pointer-events: none; --c: rgba(198,161,91,0.4);
  background:
    linear-gradient(var(--c), var(--c)) top left / 1.25rem 1px no-repeat, linear-gradient(var(--c), var(--c)) top left / 1px 1.25rem no-repeat,
    linear-gradient(var(--c), var(--c)) bottom right / 1.25rem 1px no-repeat, linear-gradient(var(--c), var(--c)) bottom right / 1px 1.25rem no-repeat; }

/* ---------- 12. Network ---------- */
.gl-net-head { max-width: 42rem !important; }
.gl-net-lead { margin-top: 1.75rem; }
.gl-net-lead p { font-family: var(--gl-sans); font-size: 1rem; line-height: 1.625; color: rgba(250,248,244,0.65); }
@media (min-width: 640px) { .gl-net-lead p { font-size: 1.125rem; } }
.gl-pcards { margin-top: 3.5rem; display: grid !important; grid-template-columns: 1fr; gap: 1.5rem; align-items: start; }
@media (min-width: 640px) { .gl-pcards { grid-template-columns: repeat(3, 1fr); } }
.gl-pcard { border: 1px solid rgba(250,248,244,0.1); border-radius: 2px; background: rgba(10,10,11,0.4); overflow: hidden; transition: border-color 0.5s; }
.gl-pcard:hover { border-color: rgba(198,161,91,0.4); }
.gl-pcard-img { position: relative; width: 100%; flex: 0 0 auto; overflow: hidden; aspect-ratio: 4 / 5; background: linear-gradient(135deg, var(--gl-charcoal), var(--gl-ink)); }
.gl-pcard-img .elementor-widget-container { position: absolute; inset: 0; }
.gl-pcard-img img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform 0.7s ease-out; }
.gl-pcard:hover .gl-pcard-img img { transform: scale(1.05); }
.gl-pcard-head { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; width: 100%; padding: 1.5rem; box-sizing: border-box; background: none; border: 0; text-align: left; cursor: pointer; color: var(--gl-ivory); font: inherit; }
.gl-pcard-head .gl-pcard-title { font-family: var(--gl-display); font-weight: 500; letter-spacing: -0.01em; font-size: 1.125rem; line-height: 1.75rem; color: var(--gl-ivory); }
.gl-pcard-head svg { flex: 0 0 auto; color: rgba(198,161,91,0.6); transition: transform 0.3s; }
.gl-pcard.is-open .gl-pcard-head svg { transform: rotate(180deg); }
.gl-js .gl-pcard-panel { height: 0; opacity: 0; overflow: hidden; transition: height 0.35s var(--gl-ease), opacity 0.35s var(--gl-ease); }
.gl-js .gl-pcard.is-open .gl-pcard-panel { opacity: 1; }
.gl-pcard-panel-in { border-top: 1px solid rgba(250,248,244,0.1); padding: 1rem 1.5rem 1.5rem; }
.gl-pcard-name { font-family: var(--gl-sans); font-size: 0.75rem; line-height: 1rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--gl-gold-soft); margin: 0; }
.gl-pcard-desc { margin: 0.5rem 0 0; font-family: var(--gl-sans); font-size: 0.875rem; line-height: 1.625; color: rgba(250,248,244,0.65); }
.gl-pcard-panel-in .gl-pcard-desc:first-child { margin-top: 0; }
.gl-pcard-events { list-style: none; margin: 1rem 0 0; padding: 0; display: flex; flex-direction: column; gap: 0.375rem; }
.gl-pcard-events li { display: flex; align-items: center; gap: 0.5rem; font-family: var(--gl-sans); font-size: 0.875rem; line-height: 1.25rem; color: rgba(250,248,244,0.7); }
.gl-pcard-events li::before { content: ""; width: 4px; height: 4px; flex: 0 0 auto; border-radius: 999px; background: rgba(198,161,91,0.6); }

/* Recensioni */
.gl-quotes { margin-top: 3.5rem; display: grid !important; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width: 1024px) { .gl-quotes { grid-template-columns: repeat(3, 1fr); } }
.gl-quote { margin: 0; display: flex; flex-direction: column; height: 100%; box-sizing: border-box; padding: 2rem; border: 1px solid rgba(250,248,244,0.1); border-radius: 2px; background: rgba(10,10,11,0.4); transition: border-color 0.5s; }
.gl-quote:hover { border-color: rgba(198,161,91,0.4); }
.gl-quote svg { margin-bottom: 1.25rem; color: rgba(198,161,91,0.6); flex: 0 0 auto; }
.gl-quote blockquote { margin: 0; flex: 1; font-family: var(--gl-sans); font-size: 1rem; line-height: 1.625; color: rgba(250,248,244,0.8); }
.gl-quote .gl-initials { margin-top: 1.5rem; display: flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border: 1px solid rgba(198,161,91,0.4); border-radius: 999px; font-family: var(--gl-display); font-weight: 500; font-size: 0.875rem; line-height: 1.25rem; letter-spacing: 0.05em; color: var(--gl-gold); }
.gl-quotes .elementor-widget-html, .gl-quotes .elementor-widget-container { height: 100%; }

/* ---------- 13. Contatti ---------- */
.gl-contatti { position: relative; overflow: hidden; }
.gl-contatti::before { content: ""; position: absolute; left: 50%; top: 0; width: 40rem; height: 24rem; transform: translateX(-50%); border-radius: 999px; background: rgba(198,161,91,0.06); filter: blur(64px); pointer-events: none; }
.gl-contatti .gl-wrap { position: relative; z-index: 2; }
.gl-contatti-grid { display: grid !important; grid-template-columns: 1fr; gap: 4rem; align-items: center; }
@media (min-width: 1024px) { .gl-contatti-grid { grid-template-columns: 1fr 1fr; gap: 6rem; } }
.gl-contatti-lead { margin-top: 1.75rem; max-width: 28rem !important; }
.gl-contatti-lead p { font-family: var(--gl-sans); font-size: 1rem; line-height: 1.625; color: rgba(250,248,244,0.65); }
@media (min-width: 640px) { .gl-contatti-lead p { font-size: 1.125rem; } }
.gl-channels { display: flex !important; flex-direction: column !important; gap: 1rem; }
.gl-channel { display: flex; align-items: center; gap: 1.25rem; padding: 1.5rem; border: 1px solid rgba(250,248,244,0.1); border-radius: 2px; background: rgba(23,23,26,0.4); text-decoration: none; transition: border-color 0.5s; }
.gl-channel:hover { border-color: rgba(198,161,91,0.4); }
.gl-channel .gl-ch-ico { display: flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 3rem; height: 3rem; border: 1px solid rgba(250,248,244,0.2); border-radius: 999px; color: rgba(250,248,244,0.8); transition: border-color 0.3s, color 0.3s; }
.gl-channel:hover .gl-ch-ico { border-color: var(--gl-gold); color: var(--gl-gold); }
.gl-channel .gl-ch-txt { flex: 1; min-width: 0; }
.gl-channel .gl-ch-label { display: block; font-family: var(--gl-sans); font-size: 11px; line-height: 1rem; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(250,248,244,0.4); }
.gl-channel .gl-ch-value { display: block; margin-top: 0.25rem; word-break: normal; overflow-wrap: anywhere; font-family: var(--gl-display); font-weight: 500; letter-spacing: -0.01em; font-size: 1rem; line-height: 1.5rem; color: var(--gl-ivory); transition: color 0.3s; }
@media (min-width: 640px) { .gl-channel .gl-ch-value { font-size: 1.25rem; line-height: 1.75rem; } }
.gl-channel:hover .gl-ch-value { color: var(--gl-gold-soft); }
.gl-channel .gl-ch-arrow { flex: 0 0 auto; color: rgba(250,248,244,0.3); transition: transform 0.5s, color 0.5s; }
.gl-channel:hover .gl-ch-arrow { transform: translate(2px, -2px); color: var(--gl-gold); }

/* ---------- 14. Footer ---------- */
.gl-footer { border-top: 1px solid rgba(250,248,244,0.1); background: var(--gl-ink); padding: 2rem 0; }
.gl-footer-row { display: flex !important; flex-direction: column !important; align-items: center; justify-content: space-between; gap: 1rem; text-align: center; }
@media (min-width: 640px) { .gl-footer-row { flex-direction: row !important; text-align: left; } }
.gl-footer-row p { margin: 0; font-family: var(--gl-sans); font-size: 0.75rem; line-height: 1rem; color: rgba(250,248,244,0.4); }
.gl-footer-row a { color: inherit; text-decoration: none; transition: color 0.3s; }
.gl-footer-row a:hover { color: rgba(250,248,244,0.7); }
.gl-footer-row .gl-dim { color: rgba(250,248,244,0.25); }
.gl-footer-row .gl-dim a { color: inherit; }
.gl-footer-row .gl-strong { color: rgba(250,248,244,0.6); }

/* ---------- 15. Movimento ridotto ---------- */
@media (prefers-reduced-motion: reduce) {
  .gl-js .gl-reveal, .gl-js .gl-reveal-scale, .gl-js .gl-reveal-fade { opacity: 1 !important; translate: none !important; scale: none !important; transition: none !important; }
  .gl-js .gl-hero-photo, .gl-js .gl-hero-cutout, .gl-js .gl-hero-name, .gl-js .gl-scroll-cue { animation: none !important; }
  .gl-marquee-track, .gl-scroll-cue .gl-cue-arrow { animation: none !important; }
  .gl-timeline::after { transform: none !important; transition: none !important; }
  .gl-panel { translate: none !important; }
}

/* ---------- 16. Integrazione WordPress (plugin) ---------- */
html body.gl-page { margin: 0; background: var(--gl-ink); color: var(--gl-ivory); font-family: var(--gl-sans); }
body.gl-page.admin-bar .gl-nav { top: 32px; }
@media (max-width: 782px) { body.gl-page.admin-bar .gl-nav { top: 46px; } }
body.gl-page .elementor { overflow-x: clip; }
