/*
Theme Name: LuccaPix
Theme URI: https://www.luccapix.com/
Author: LuccaPix
Description: Tema a blocchi (FSE) su misura per LuccaPix, media platform di Lucca. Nessun page builder, nessuna dipendenza esterna: font self-hosted, form nativi, bilingue IT/EN senza plugin.
Version: 1.2.1
Requires at least: 6.7
Tested up to: 7.0
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: luccapix
Tags: full-site-editing, block-patterns, one-column, custom-colors, custom-menu, editor-style
*/

:root{
  /* Riserve dei token colore. Il Personalizza li ristampa dopo, con i valori
     scelti dal proprietario: qui servono solo perche' il foglio di stile
     regga anche da solo (editor, anteprime, PHP non caricato). */
  --lp-ink-rgb: 18,16,14;
  --lp-paper-rgb: 246,243,238;
  --lp-bright-rgb: 255,253,249;
  --lp-terra-rgb: 180,85,42;
  --lp-scrim-rgb: 10,9,8;
  --lp-error-rgb: 155,44,44;
  --lp-logo-h: 30px;

  --lp-gutter: 22px;
  --lp-header-h: 64px;
  --lp-ease: cubic-bezier(.2,.7,.2,1);
}
@media (min-width: 760px){ :root{ --lp-gutter: 40px; --lp-header-h: 72px; } }

*,*::before,*::after{ box-sizing: border-box; }
html{ -webkit-text-size-adjust: 100%; }
body{ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: hidden; }
img{ max-width: 100%; height: auto; }
:where(a){ text-decoration: none; color: inherit; }
:focus-visible{ outline: 2px solid var(--wp--preset--color--terracotta); outline-offset: 3px; }

.lp-visually-hidden{
  position:absolute!important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
.lp-eyebrow{
  font-size: var(--wp--preset--font-size--eyebrow); font-weight:600;
  letter-spacing:.28em; text-transform:uppercase; margin:0;
}
.lp-serif{
  font-family: var(--wp--preset--font-family--cormorant);
  font-style: italic; font-weight:400; line-height:1.4;
}

/* ---------- Testata fissa ---------- */
.lp-header{
  position:fixed; top:0; left:0; right:0; z-index:40;
  display:flex; align-items:center; justify-content:space-between;
  gap:20px; padding:20px var(--lp-gutter);
  color:var(--wp--preset--color--paper-bright);
}
.lp-header--ink{ color: var(--wp--preset--color--ink); }
.lp-header--ink .lp-logo{ color: var(--wp--preset--color--ink); }
.lp-logo{
  font-size:18px; font-weight:700; letter-spacing:.22em;
  text-transform:uppercase; color:var(--wp--preset--color--paper-bright); white-space:nowrap;
}
/* marchio come immagine: due varianti, una per i fondi scuri e una per la
   carta. Il CSS sceglie, cosi' il PHP non deve sapere dove sta la testata. */
.lp-logo--img a{ display:inline-flex; align-items:center; }
.lp-logo__img{ display:block; height:var(--lp-logo-h,30px); width:auto; }
.lp-logo__img--dark{ display:none; }
.lp-body--light .lp-header:not(.lp-header--forced-light) .lp-logo__img--light{ display:none; }
.lp-body--light .lp-header:not(.lp-header--forced-light) .lp-logo__img--dark{ display:block; }
.lp-header--ink .lp-logo__img--light{ display:none; }
.lp-header--ink .lp-logo__img--dark{ display:block; }
/* il pie' di pagina e' sempre scuro: li' vale la variante chiara */
.lp-footer .lp-logo__img--light{ display:block; }
.lp-footer .lp-logo__img--dark{ display:none; }
.lp-footer .lp-logo__img{ height:calc(var(--lp-logo-h,30px) * .8); }

.lp-nav{
  display:none; align-items:center; gap:30px;
  font-size:11.5px; font-weight:500; letter-spacing:.2em; text-transform:uppercase;
}
.lp-nav a{ opacity:.85; transition:opacity .2s; }
.lp-nav a:hover,.lp-nav a:focus-visible{ opacity:1; color:inherit; }
.lp-nav .lp-lang{ display:flex; align-items:center; gap:7px; opacity:.9; }
.lp-nav .lp-lang .sep{ opacity:.4; }
.lp-lang a[aria-current="true"]{ font-weight:700; opacity:1; }
.lp-lang a{ opacity:.55; }
.lp-burger{
  border:1px solid currentColor; background:transparent; color:inherit;
  padding:9px 14px; font-size:10.5px; font-weight:600; letter-spacing:.2em;
  text-transform:uppercase; cursor:pointer; line-height:1;
}
@media (min-width: 760px){
  .lp-nav{ display:flex; }
  .lp-burger{ display:none; }
}

/* menu mobile a tutto schermo */
.lp-menu{
  position:fixed; inset:0; z-index:50; background: var(--wp--preset--color--ink);
  color: var(--wp--preset--color--paper);
  display:flex; flex-direction:column; justify-content:center; gap:26px;
  padding:40px; overflow-y:auto;
}
.lp-menu[hidden]{ display:none; }
.lp-menu a{ font-size:clamp(26px,7vw,32px); font-weight:700; letter-spacing:-.01em; }
.lp-menu .lp-lang{ display:flex; gap:10px; align-items:center; margin-top:18px;
  font-size:13px; letter-spacing:.2em; }
.lp-menu .lp-lang a{ font-size:13px; font-weight:400; }
.lp-menu-close{
  position:absolute; top:16px; right:26px; border:none; background:transparent;
  font-size:30px; line-height:1; color:inherit; cursor:pointer; padding:6px 10px;
}
body.lp-menu-open{ overflow:hidden; }

/* ---------- La riga di carta in cima (corretta 2026-09-21) ----------
   La testata e' position:fixed, quindi il suo contenitore in flusso
   (<header class="wp-block-template-part">) e' alto ZERO. Il "block gap" che
   WordPress mette fra i blocchi di primo livello — `:where(.wp-site-blocks) > *
   { margin-block-start: var(--wp--preset--spacing--20) }`, cioe' 0.44rem —
   finiva quindi SOPRA al contenuto, lasciando vedere il fondo del body
   (--wp--preset--color--paper, #F6F3EE): una riga chiara in cima a OGNI pagina.
   Dopo una testata fissa non serve alcuno spazio. */
.wp-site-blocks > header:first-child + *{ margin-block-start: 0; }

/* ---------- Hero con slideshow ---------- */
.lp-hero{
  position:relative; min-height:100svh; display:flex; flex-direction:column;
  justify-content:center; overflow:hidden; background: var(--wp--preset--color--ink);
}
.lp-hero__slides{ position:absolute; inset:0; }
.lp-hero__slide{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; opacity:0; transition:opacity 3.4s ease-in-out;
}
.lp-hero__slide.is-active{ opacity:1; }
.lp-hero__scrim{
  position:absolute; inset:0;
  background:
    radial-gradient(58% 46% at 50% 50%, rgba(var(--lp-scrim-rgb),.62) 0%, rgba(var(--lp-scrim-rgb),.34) 55%, rgba(var(--lp-scrim-rgb),0) 100%),
    linear-gradient(180deg, rgba(var(--lp-scrim-rgb),.5) 0%, rgba(var(--lp-scrim-rgb),.32) 32%, rgba(var(--lp-scrim-rgb),.6) 74%, rgba(var(--lp-scrim-rgb),.86) 100%);
}
.lp-hero__inner{
  position:relative; z-index:2; flex:1;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; width:100%;
  padding: calc(var(--lp-header-h) + 48px) var(--lp-gutter) 44px;
  animation: lpRise .9s var(--lp-ease) both;
}
@media (min-width:1080px){ .lp-hero__inner{ padding-top:120px; padding-bottom:68px; } }
.lp-hero__inner > *{ max-width:100%; }
.lp-hero h1,.lp-hero h2{
  margin:0; font-size: var(--wp--preset--font-size--hero);
  line-height:1.15; font-weight:600; letter-spacing:-.015em;
  color:var(--wp--preset--color--paper-bright); text-wrap:balance; max-width:22ch;
  text-shadow:0 1px 3px rgba(0,0,0,.5), 0 4px 30px rgba(0,0,0,.55);
}
.lp-hero p{ color:rgba(var(--lp-bright-rgb),.95); }
.lp-hero .lp-serif{
  margin:14px 0 34px; font-size: var(--wp--preset--font-size--lead);
  max-width:34ch; text-shadow:0 1px 2px rgba(0,0,0,.45), 0 2px 22px rgba(0,0,0,.5);
}
.lp-hero__foot{
  position:relative; z-index:2; width:100%; max-width:1520px; margin:0 auto;
  padding:0 var(--lp-gutter) 26px; display:flex; justify-content:space-between; gap:16px;
  font-size:10.5px; letter-spacing:.22em; text-transform:uppercase;
  color:rgba(var(--lp-bright-rgb),.45);
}
@keyframes lpRise{ from{ opacity:0; transform:translateY(14px);} to{ opacity:1; transform:none; } }

/* ---------- Form guida (pillola) ---------- */
.lp-guide{ width:100%; max-width:470px; }
.lp-guide__row{
  display:flex; align-items:center; gap:8px; width:100%;
  background:rgba(var(--lp-bright-rgb),.95); backdrop-filter:blur(14px);
  border-radius:999px; padding:6px 6px 6px 22px;
  box-shadow:0 10px 40px rgba(0,0,0,.25);
}
.lp-guide__row input[type="email"]{
  flex:1; min-width:0; padding:12px 0; border:none; background:transparent;
  font:inherit; font-size:16px; color: var(--wp--preset--color--ink); outline:none;
}
.lp-guide__row input::placeholder{ color:rgba(var(--lp-ink-rgb),.35); }
.lp-guide__row button{
  flex:none; padding:13px 26px; border:none; border-radius:999px; cursor:pointer;
  background: var(--wp--preset--color--ink); color:var(--wp--preset--color--paper-bright);
  font:inherit; font-size:11.5px; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  transition:background .2s;
}
.lp-guide__row button:hover{ background: var(--wp--preset--color--terracotta); }
.lp-guide__micro{
  margin:18px 0 0; font-size:12px; line-height:1.55; max-width:44ch;
  color:rgba(var(--lp-bright-rgb),.78); text-shadow:0 1px 2px rgba(0,0,0,.5);
}
.lp-hero .lp-guide__micro{ margin-inline:auto; }
@media (max-width:480px){
  .lp-guide__row{ flex-direction:column; border-radius:22px; padding:14px; gap:12px; align-items:stretch; }
  .lp-guide__row input[type="email"]{ padding:10px 10px; text-align:center; }
  .lp-guide__row button{ width:100%; }
}

/* messaggi di esito dei form */
.lp-note{
  margin:0 0 20px; padding:14px 18px; border-left:3px solid; font-size:14px; line-height:1.55;
}
.lp-note--ok{ border-color: var(--wp--preset--color--terracotta); background:rgba(var(--lp-terra-rgb),.1); }
.lp-note--err{ border-color:rgb(var(--lp-error-rgb)); background:rgba(var(--lp-error-rgb),.1); }
.lp-hero .lp-note{ background:rgba(var(--lp-bright-rgb),.94); color: var(--wp--preset--color--ink);
  max-width:470px; border-radius:8px; }

/* ---------- Sezioni ---------- */
.lp-section{ padding: var(--wp--preset--spacing--50) var(--lp-gutter); }
.lp-section__inner{ max-width:1520px; margin:0 auto; }
.lp-rule{ display:flex; align-items:baseline; gap:18px; margin-bottom:46px; }
.lp-rule > span{ flex:1; height:1px; background: var(--wp--preset--color--ink-14); }
.lp-section--dark{ background: var(--wp--preset--color--ink); color: var(--wp--preset--color--paper); }
.lp-section--dark .lp-rule > span{ background: var(--wp--preset--color--paper-18); }

/* hero interno (Partners) */
.lp-pagehero{
  position:relative; min-height:74vh; display:flex; align-items:flex-end;
  overflow:hidden; background: var(--wp--preset--color--ink); color:var(--wp--preset--color--paper-bright);
}
.lp-pagehero__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.lp-pagehero__scrim{ position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(var(--lp-scrim-rgb),.5) 0%, rgba(var(--lp-scrim-rgb),.3) 38%, rgba(var(--lp-scrim-rgb),.88) 100%); }
.lp-pagehero__inner{
  position:relative; z-index:2; width:100%; max-width:1520px; margin:0 auto;
  padding: calc(var(--lp-header-h) + 48px) var(--lp-gutter) 62px;
}
.lp-pagehero h1{ margin:16px 0 0; max-width:22ch; color:var(--wp--preset--color--paper-bright); }
.lp-pagehero p{ margin:22px 0 0; max-width:62ch; font-size:17px; line-height:1.6;
  color:rgba(var(--lp-bright-rgb),.8); }
.lp-pagehero .lp-eyebrow{ color:rgba(var(--lp-bright-rgb),.6); }

/* griglia statistiche */
.lp-stats{ display:grid; grid-template-columns:1fr; gap:1px;
  background: var(--wp--preset--color--ink-14); }
@media (min-width:760px){ .lp-stats{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1080px){ .lp-stats{ grid-template-columns:repeat(4,1fr); } }
.lp-stat{ background: var(--wp--preset--color--paper); padding:34px 26px 40px; }
.lp-stat__value{ font-size: var(--wp--preset--font-size--stat); font-weight:700;
  letter-spacing:-.03em; line-height:1; }
.lp-stat__label{ margin-top:14px; font-size:13px; line-height:1.5; max-width:22ch;
  color: var(--wp--preset--color--ink-60); }

/* righe servizi */
.lp-services{ display:grid; }
.lp-service{
  display:grid; grid-template-columns:1fr; gap:10px; align-items:start;
  padding:30px 0; border-top:1px solid var(--wp--preset--color--paper-18);
}
@media (min-width:1080px){
  .lp-service{ grid-template-columns:70px .9fr 1.4fr; gap:32px; }
}
.lp-service__num{ font-size:12px; letter-spacing:.1em; padding-top:6px;
  color:rgba(var(--lp-paper-rgb),.4); }
.lp-service h3{ margin:0; }
.lp-service p{ margin:5px 0 0; font-size:16px; line-height:1.62; max-width:58ch;
  color: var(--wp--preset--color--paper-66); }

/* settori */
.lp-sectors{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:34px 40px; }
.lp-sectors h3{ margin:0 0 10px; font-size:15px; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase; line-height:1.3; }
.lp-sectors p{ margin:0; font-size:14.5px; line-height:1.6;
  color: var(--wp--preset--color--ink-60); }

/* griglia lavori */
.lp-work{ display:grid; grid-template-columns:1fr; gap:14px; }
@media (min-width:760px){ .lp-work{ grid-template-columns:repeat(3,1fr); } }
.lp-work img{ width:100%; aspect-ratio:3/4; object-fit:cover; display:block; }
.lp-work__caption{ margin:16px 0 0; font-size:11px; letter-spacing:.2em;
  text-transform:uppercase; color: var(--wp--preset--color--ink-40); }

/* blocco CTA terracotta */
.lp-cta{ background: var(--wp--preset--color--terracotta); color:var(--wp--preset--color--paper-bright);
  padding: var(--wp--preset--spacing--60) var(--lp-gutter); }
.lp-cta__inner{ max-width:1520px; margin:0 auto; display:grid; gap:40px;
  grid-template-columns:1fr; align-items:end; }
@media (min-width:1080px){ .lp-cta__inner{ grid-template-columns:1.3fr .7fr; } }
.lp-cta h2{ margin:0; letter-spacing:-.025em; line-height:.98; }
.lp-cta p{ margin:20px 0 0; max-width:48ch; font-size:17px; line-height:1.6;
  color:rgba(var(--lp-bright-rgb),.85); }
.lp-cta__btn{
  justify-self:start; padding:20px 38px; background:var(--wp--preset--color--paper-bright);
  color: var(--wp--preset--color--ink);
  font-size:12px; font-weight:600; letter-spacing:.18em; text-transform:uppercase;
  transition:background .2s,color .2s;
}
.lp-cta__btn:hover{ background: var(--wp--preset--color--ink); color:var(--wp--preset--color--paper-bright); }

/* ---------- Contatti ---------- */
.lp-contact{ display:grid; grid-template-columns:1fr; min-height:100svh; }
@media (min-width:1080px){ .lp-contact{ grid-template-columns:.95fr 1.05fr; } }
.lp-contact__photo{ position:relative; background: var(--wp--preset--color--ink);
  overflow:hidden; min-height:46vh; }
@media (min-width:1080px){ .lp-contact__photo{ min-height:auto; } }
.lp-contact__photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.lp-contact__photo .scrim{ position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(var(--lp-scrim-rgb),.45), rgba(var(--lp-scrim-rgb),.1)); }
.lp-contact__place{ position:absolute; left:40px; bottom:40px; font-size:11px;
  letter-spacing:.22em; text-transform:uppercase; color:rgba(var(--lp-bright-rgb),.7); }
.lp-contact__body{ padding:calc(var(--lp-header-h) + 32px) var(--lp-gutter) 72px;
  display:flex; flex-direction:column; justify-content:center; }
@media (min-width:1080px){ .lp-contact__body{ padding:150px 8vw 90px; } }
.lp-contact__body h1{ margin:0; letter-spacing:-.025em; line-height:.98; }
.lp-contact__body .lp-serif{ margin:18px 0 44px; font-size:22px;
  color: var(--wp--preset--color--ink-60); max-width:40ch; }
.lp-contact__meta{ margin:34px 0 0; font-size:13px; color:rgba(var(--lp-ink-rgb),.5); }
.lp-contact__meta a{ text-decoration:underline; text-underline-offset:3px; }

/* form contatti */
.lp-form{ display:grid; grid-template-columns:1fr; gap:18px; max-width:640px; }
@media (min-width:760px){ .lp-form{ grid-template-columns:1fr 1fr; } }
.lp-field{ display:grid; gap:8px; }
.lp-field--wide{ grid-column:1/-1; }
.lp-field > span{ font-size:10.5px; font-weight:600; letter-spacing:.2em;
  text-transform:uppercase; color:rgba(var(--lp-ink-rgb),.5); }
.lp-field input,.lp-field textarea{
  padding:13px 0; border:none; border-bottom:1px solid rgba(var(--lp-ink-rgb),.25);
  background:transparent; outline:none; font:inherit; font-size:16px;
  color: var(--wp--preset--color--ink); border-radius:0;
}
.lp-field textarea{ resize:vertical; min-height:96px; }
.lp-field input:focus,.lp-field textarea:focus{ border-color: var(--wp--preset--color--terracotta); }
.lp-form button[type="submit"]{
  grid-column:1/-1; justify-self:start; margin-top:12px; padding:19px 44px;
  border:none; background: var(--wp--preset--color--ink); color:var(--wp--preset--color--paper-bright); cursor:pointer;
  font:inherit; font-size:12px; font-weight:600; letter-spacing:.18em; text-transform:uppercase;
  transition:background .2s;
}
.lp-form button[type="submit"]:hover{ background: var(--wp--preset--color--terracotta); }
.lp-hp{ position:absolute!important; left:-9999px; width:1px; height:1px; overflow:hidden; }

/* ---------- Piè di pagina ---------- */
.lp-footer{
  background: var(--wp--preset--color--ink); color:rgba(var(--lp-paper-rgb),.6);
  padding:40px var(--lp-gutter); display:flex; flex-wrap:wrap; gap:20px 40px;
  align-items:center; justify-content:space-between;
  font-size:11.5px; letter-spacing:.12em; text-transform:uppercase;
}
.lp-footer .lp-logo{ font-size:14px; color: var(--wp--preset--color--paper); }
.lp-footer nav{ display:flex; gap:22px; flex-wrap:wrap; }
.lp-footer nav.is-muted{ opacity:.7; }
.lp-footer__copy{ opacity:.6; text-transform:none; letter-spacing:.04em; }

/* ---------- Pagina di contenuto semplice ---------- */
.lp-page{ padding: calc(var(--lp-header-h) + 60px) var(--lp-gutter) var(--wp--preset--spacing--50); }
.lp-page__inner{ max-width:760px; margin:0 auto; }
.lp-page__inner h1{ font-size: var(--wp--preset--font-size--h2); margin:0 0 var(--wp--preset--spacing--30); }
.lp-page__inner :where(h2,h3){ margin-top: var(--wp--preset--spacing--30); }
.lp-page__inner :where(p,ul,ol){ font-size:17px; line-height:1.7; }

/* la testata fissa e' chiara su fondo scuro: sulle pagine chiare va scurita */
.lp-body--light .lp-header:not(.lp-header--forced-light){ color: var(--wp--preset--color--ink); }
.lp-body--light .lp-header:not(.lp-header--forced-light) .lp-logo{ color: var(--wp--preset--color--ink); }

/* ---------- Rispetto delle preferenze di movimento ---------- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important; animation-iteration-count:1!important;
    transition-duration:.001ms!important; scroll-behavior:auto!important;
  }
  .lp-hero__slide{ transition:none; }
}

/* =========================================================================
 * Adattamenti ai blocchi core usati nei pattern.
 * Le sezioni sono composte con blocchi Gutenberg normali (group, cover,
 * image, heading, paragraph) perche' restino modificabili dall'editor:
 * qui si toglie di mezzo la spaziatura automatica dei blocchi dove il
 * layout e' gia' deciso dalla griglia.
 * ====================================================================== */

/* I group usati come contenitori di layout non devono aggiungere margini. */
.lp-section, .lp-section__inner, .lp-stats, .lp-services, .lp-sectors,
.lp-work, .lp-cta__inner, .lp-contact, .lp-rule{ margin-block: 0; }

.lp-stats > *, .lp-sectors > *, .lp-work > *,
.lp-services > *, .lp-cta__inner > *{ margin-block: 0; }

.lp-stat > * + *, .lp-sector > * + *, .lp-service > * + *{ margin-block-start: 0; }

/* Il filetto orizzontale accanto all'occhiello: CSS, non un blocco vuoto. */
.lp-rule{ display:flex; align-items:baseline; gap:18px; margin-bottom:46px; }
.lp-rule > *{ margin:0; }
.lp-rule::after{
  content:""; flex:1; height:1px; background: var(--wp--preset--color--ink-14);
}
.lp-section--dark .lp-rule::after{ background: var(--wp--preset--color--paper-18); }

/* Hero interno costruito con core/cover. */
.wp-block-cover.lp-pagehero{
  min-height:74vh; padding:0; align-items:flex-end; justify-content:flex-start;
}
.wp-block-cover.lp-pagehero .wp-block-cover__inner-container{
  width:100%; max-width:1520px; margin:0 auto;
  padding: calc(var(--lp-header-h) + 48px) var(--lp-gutter) 62px;
  color:var(--wp--preset--color--paper-bright);
}
.lp-pagehero .wp-block-cover__background{
  background-image: linear-gradient(180deg, rgba(var(--lp-scrim-rgb),.5) 0%, rgba(var(--lp-scrim-rgb),.3) 38%, rgba(var(--lp-scrim-rgb),.88) 100%);
  opacity:1;
}
.lp-pagehero h1{ margin:16px 0 0; max-width:22ch; color:var(--wp--preset--color--paper-bright);
  font-size: var(--wp--preset--font-size--h1); }
.lp-pagehero p:not(.lp-eyebrow){ margin:22px 0 0; max-width:62ch; font-size:17px;
  line-height:1.6; color:rgba(var(--lp-bright-rgb),.8); }
.lp-pagehero .lp-eyebrow{ color:rgba(var(--lp-bright-rgb),.6); }

/* Le tre foto dei lavori sono blocchi core/image: sostituibili dall'editor. */
.lp-work figure{ margin:0; }
.lp-work figure img{ width:100%; aspect-ratio:3/4; object-fit:cover; display:block; }
.lp-work figure:has(img[src=""]),
.lp-work figure:not(:has(img)){
  aspect-ratio:3/4; background:rgba(var(--lp-ink-rgb),.08);
  display:flex; align-items:center; justify-content:center;
}

/* Colonna di sinistra dei contatti costruita con core/cover. */
.wp-block-cover.lp-contact__photo{ padding:0; min-height:46vh; align-items:flex-end; }
@media (min-width:1080px){ .wp-block-cover.lp-contact__photo{ min-height:100%; } }
.lp-contact__photo .wp-block-cover__inner-container{ width:100%; padding:40px; }
.lp-contact__photo .lp-contact__place{ margin:0; position:static; }

/* Blocco CTA. */
.lp-cta__text > * { margin-block:0; }
.lp-cta__text h2 + p{ margin-top:20px; }
.lp-cta__btn-wrap{ margin:0; justify-self:start; }
@media (min-width:1080px){ .lp-cta__btn-wrap{ justify-self:end; } }
.lp-cta__btn-wrap .lp-cta__btn{ display:inline-block; }

/* Voci di navigazione: nel markup sono paragrafi, per restare modificabili. */
.lp-nav p, .lp-menu__items p{ margin:0; }
.lp-menu__items{ display:flex; flex-direction:column; gap:26px; }
.lp-menu__items p{ font-size:clamp(26px,7vw,32px); font-weight:700; letter-spacing:-.01em; }
.lp-menu__items .lp-lang{ font-size:13px; font-weight:400; letter-spacing:.2em; }
.lp-menu__items .lp-lang a, .lp-menu__items .lp-lang span{ font-size:13px; font-weight:400; }

/* La testata e' un group: niente spaziatura fra i suoi figli. */
.lp-header > *{ margin-block:0; }
.lp-footer > *{ margin-block:0; }
.lp-footer nav p{ margin:0; }

/* L'occhiello di sezione e' un h2 per la gerarchia dei titoli, ma
   visivamente resta una piccola etichetta maiuscola. */
h2.lp-eyebrow{
  font-size: var(--wp--preset--font-size--eyebrow);
  font-weight:600; letter-spacing:.28em; text-transform:uppercase;
  line-height:1.3; margin:0;
}
