:root {
  --lux-abyss: #03131b;
  --lux-deep: #062837;
  --lux-ink: #0a1d29;
  --lux-paper: #f4f1ea;
  --lux-white: #ffffff;
  --lux-mist: rgba(244, 241, 234, 0.74);
  --lux-line: rgba(244, 241, 234, 0.16);
  --lux-gold: #c9a45c;
  --lux-tint: #0d2340;
  --lux-radius: 0px;
  scroll-behavior: smooth;
  --lux-max: min(1440px, calc(100vw - 56px));
  --lux-copy: min(1180px, calc(100vw - 56px));
  --lux-display: "Jost", "Helvetica Neue", Arial, sans-serif;
  --lux-editorial: "Jost", "Helvetica Neue", Arial, sans-serif;
  --lux-serif: "Cormorant Garamond", "Cormorant", Georgia, "Times New Roman", serif;
  /* Scala tipografica UNICA per tutto il sito */
  --lux-text: clamp(16px, 1.05vw, 19px);   /* corpo, come la hero */
  --lux-lead: clamp(19px, 1.5vw, 24px);    /* sottotitolo / lead */
  --lux-h2: clamp(32px, 3.9vw, 56px);      /* titolo di sezione */
  --lux-h3: clamp(21px, 1.6vw, 27px);      /* titolo di card */
}

body {
  background:
    radial-gradient(circle at 18% 0%, rgba(201, 164, 92, 0.10), transparent 34vw),
    linear-gradient(180deg, #020c12 0%, var(--lux-abyss) 100%);
  color: var(--lux-white);
  font-family: var(--lux-display);
  overflow-x: hidden;
}

html {
  overflow-x: hidden;
}

/* Il font sans del tema (Jost) deve vincere sul Poppins ereditato dal vecchio
   kit Elementor (`.elementor-kit-7`), così tutti gli elementi che ereditano
   il font sono coerenti su tutto il sito. */
body.elementor-kit-7,
body.elementor-kit-7 a {
  font-family: var(--lux-display);
}

.site-main {
  background: transparent;
}

.site-header {
  background: transparent;
  border-bottom: 1px solid transparent;
  left: 0;
  position: fixed;
  right: 0;
  top: 0;
  transition: background 320ms ease, border-color 320ms ease, backdrop-filter 320ms ease;
  z-index: 1000;
}

.site-header.is-scrolled {
  background: rgba(3, 19, 27, 0.82);
  backdrop-filter: blur(22px);
  border-bottom-color: var(--lux-line);
}

.site-header__inner {
  align-items: center;
  display: grid;
  gap: 28px;
  grid-template-columns: minmax(210px, 320px) 1fr;
  margin: 0 auto;
  max-width: var(--lux-max);
  min-height: 86px;
  padding: 10px 0;
}

.custom-logo,
.site-branding img {
  display: block;
  height: auto;
  max-width: min(280px, 40vw);
}

.site-logo-text {
  color: var(--lux-white);
  font-size: 24px;
  font-weight: 700;
  text-decoration: none;
}

.site-navigation {
  justify-self: end;
}

.primary-menu {
  align-items: center;
  display: flex;
  gap: clamp(18px, 2.4vw, 38px);
  list-style: none;
  margin: 0;
  padding: 0;
}

.primary-menu a {
  color: rgba(255, 255, 255, 0.9);
  display: inline-flex;
  font-size: 12px;
  font-weight: 500;
  gap: 6px;
  letter-spacing: 0.16em;
  padding: 28px 0;
  position: relative;
  text-decoration: none;
}

.primary-menu a::after {
  background: var(--lux-gold);
  bottom: 20px;
  content: "";
  height: 1px;
  left: 0;
  position: absolute;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 220ms ease;
  width: 100%;
}

.primary-menu a:hover::after,
.primary-menu a:focus::after,
.current-menu-item > a::after,
.current_page_item > a::after {
  transform: scaleX(1);
}

.menu-item-has-children {
  position: relative;
}

.sub-menu {
  background: rgba(244, 241, 234, 0.96);
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.28);
  left: 50%;
  list-style: none;
  margin: 0;
  min-width: 230px;
  opacity: 0;
  padding: 10px 0;
  pointer-events: none;
  position: absolute;
  top: 74px;
  transform: translate(-50%, 12px);
  transition: opacity 180ms ease, transform 180ms ease;
}

.menu-item-has-children:hover .sub-menu,
.menu-item-has-children:focus-within .sub-menu {
  opacity: 1;
  pointer-events: auto;
  transform: translate(-50%, 0);
}

.sub-menu a {
  color: #102130;
  display: block;
  font-size: 14px;
  padding: 13px 22px;
}

.sub-menu a::after {
  display: none;
}

.menu-toggle {
  display: none;
}

.lux-hero {
  display: grid;
  min-height: 100vh;
  overflow: hidden;
  place-items: center;
  position: relative;
}

.lux-hero__media {
  inset: 0;
  min-height: 100%;
  position: absolute;
}

.lux-hero__media::after {
  background:
    radial-gradient(circle at 74% 34%, rgba(201, 164, 92, 0.10), transparent 24vw),
    radial-gradient(ellipse at 50% 46%, rgba(3, 19, 27, 0.10), rgba(3, 19, 27, 0.52) 78%),
    linear-gradient(180deg, rgba(3, 19, 27, 0.28) 0%, rgba(3, 19, 27, 0.6) 72%, var(--lux-abyss) 100%);
  content: "";
  inset: 0;
  position: absolute;
  z-index: 2;
}

.lux-hero__media img {
  height: 100%;
  inset: 0;
  object-fit: cover;
  opacity: 0;
  position: absolute;
  transform: scale(1.04);
  transition: opacity 900ms ease, transform 5000ms ease;
  width: 100%;
  z-index: 1;
}

.lux-hero__media img.is-active {
  opacity: 1;
  transform: scale(1);
}

.lux-hero__content {
  isolation: isolate;
  margin: 0 auto;
  max-width: var(--lux-max);
  padding: clamp(70px, 8vw, 128px) 0;
  position: relative;
  text-align: center;
  width: 100%;
  z-index: 4;
}

.lux-hero__shade {
  background: linear-gradient(180deg, rgba(3, 19, 27, 0.34) 0%, transparent 34%, transparent 62%, rgba(3, 19, 27, 0.46) 100%);
  inset: 0;
  position: absolute;
  z-index: 3;
}

.lux-hero__compass {
  align-items: center;
  bottom: clamp(20px, 3vw, 40px);
  display: flex;
  flex-direction: column;
  gap: 12px;
  left: 50%;
  position: absolute;
  transform: translateX(-50%);
  z-index: 5;
}

.lux-hero__rose {
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 999px;
  color: rgba(255, 255, 255, 0.82);
  display: grid;
  font-size: 9px;
  height: 74px;
  letter-spacing: 0.18em;
  place-items: center;
  position: relative;
  text-transform: uppercase;
  width: 74px;
}

.lux-hero__rose::after {
  background: var(--lux-gold);
  border-radius: 999px;
  content: "";
  grid-area: 1 / 1;
  height: 4px;
  width: 4px;
}

.lux-hero__rose span {
  grid-area: 1 / 1;
}

.lux-hero__rose span:nth-child(1) {
  transform: translateY(-23px);
}

.lux-hero__rose span:nth-child(2) {
  transform: translateX(23px);
}

.lux-hero__rose span:nth-child(3) {
  transform: translateY(23px);
}

.lux-hero__rose span:nth-child(4) {
  transform: translateX(-23px);
}

.lux-hero__compass-label {
  color: rgba(255, 255, 255, 0.82);
  font-family: var(--lux-editorial);
  font-size: 15px;
  font-style: italic;
  letter-spacing: 0.05em;
}

.lux-hero__compass-line {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.55), transparent);
  height: clamp(34px, 5vw, 54px);
  width: 1px;
}

/* Rosa dei venti dorata (immagine) nell'hero condiviso */
.lux-hero__rose-img {
  height: 68px;
  object-fit: contain;
  width: 68px;
}

/* --- Hero HOME: immagine pulita, elementi in basso, rosa statica --- */
.lux-hero--home {
  place-items: end center;
}

.lux-hero--home .lux-hero__media::after {
  background: linear-gradient(180deg, transparent 40%, rgba(3, 19, 27, 0.5) 72%, var(--lux-abyss) 100%);
}

.lux-hero--home .lux-hero__content--home {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: clamp(14px, 1.6vw, 20px);
  padding-bottom: clamp(14px, 2vw, 28px);
  text-align: center;
}

/* La rosa dei venti scende vicino ai bottoni: niente margin ereditato, stacco minimo */
.lux-hero__content--home .lux-actions {
  margin-top: 0;
}

/* Bottone hero home: larghezza comoda, centrato (il glass viene dallo stile base) */
.lux-hero__content--home .lux-actions .lux-button {
  justify-content: center;
  min-width: 250px;
}

/* Il bottone glass compare dopo qualche secondo (fade + lieve salita) */
.lux-actions--delayed {
  animation: fb-hero-cta-in 900ms cubic-bezier(0.22, 1, 0.36, 1) 2.6s both;
}
@keyframes fb-hero-cta-in {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .lux-actions--delayed {
    animation: none;
  }
}

/* La punta sud della rosa cala dentro il varco tra i due bottoni (solo il corpo resta sopra) */
.lux-hero__content--home .lux-hero__rose-hero {
  position: relative;
  transform: translateY(52px);
  z-index: 1;
}

.lux-hero__rose-hero {
  filter: drop-shadow(0 14px 40px rgba(3, 19, 27, 0.5));
  height: clamp(112px, 12vw, 150px);
  object-fit: contain;
  width: clamp(112px, 12vw, 150px);
}

.lux-hero__scroll {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 10px;
  text-decoration: none;
}

.lux-button--ghost {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.5);
  color: var(--lux-white);
}

.lux-button--ghost:hover {
  border-color: var(--lux-white);
}

/* Copy dell'hero spostato in sezione sotto */
.lux-hero-copy {
  text-align: center;
}

.lux-hero-copy .lux-kicker {
  margin-bottom: 20px;
}

.lux-hero-copy h1 {
  color: var(--lux-white);
  font-family: var(--lux-display);
  font-size: var(--lux-h2);
  font-weight: 300;
  letter-spacing: clamp(0.005em, 0.05vw, 0.02em);
  line-height: 1.2;
  margin: 0 auto 28px;
  max-width: min(1280px, 94vw);
  text-transform: uppercase;
  text-wrap: balance;
}

.lux-hero-copy > p:not(.lux-kicker) {
  color: var(--lux-mist);
  font-family: var(--lux-editorial);
  font-size: clamp(18px, 1.4vw, 24px);
  line-height: 1.7;
  margin: 0 auto;
  max-width: 62ch;
}

/* --- Immagini di sfondo sezione, full-bleed e SFUMATE sopra/sotto (no overlay) --- */
.lux-media-bg {
  position: relative;
}

.lux-media-bg::before {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  content: "";
  bottom: -44px;
  top: -44px;
  left: 50%;
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 22%, #000 78%, transparent 100%);
  mask-image: linear-gradient(180deg, transparent 0%, #000 22%, #000 78%, transparent 100%);
  position: absolute;
  transform: translateX(-50%) translateY(var(--fb-par, 0px));
  width: 100vw;
  will-change: transform;
  z-index: 0;
}

.lux-media-bg > * {
  position: relative;
  z-index: 1;
}

.lux-media-bg--w1::before {
  background-image: url("/wp-content/uploads/2026/07/ChatGPT-Image-2-lug-2026-17_57_05-1.png");
}

.lux-media-bg--w2::before {
  background-image: url("/wp-content/uploads/2026/07/ChatGPT-Image-2-lug-2026-17_57_06-2.png");
}

.lux-media-bg--w3::before {
  background-image: url("/wp-content/uploads/2026/07/ChatGPT-Image-2-lug-2026-17_57_06-3.png");
}

/* Immagine yacht centrato come bg di sezioni a 2 colonne (lo yacht divide le colonne).
   Barca REALE del cliente. */
.lux-media-bg--yacht::before {
  background-image: url("/wp-content/uploads/2026/07/ChatGPT-Image-7-lug-2026-12_44_37.png");
}

.lux-eyebrow,
.lux-kicker {
  color: var(--lux-gold);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.24em;
  margin: 0 0 18px;
  text-transform: uppercase;
}

.lux-hero h1 {
  color: var(--lux-white);
  font-family: var(--lux-display);
  font-size: clamp(38px, 4vw, 64px);
  font-weight: 300;
  letter-spacing: clamp(0.005em, 0.05vw, 0.02em);
  line-height: 1.18;
  margin: 0 auto 28px;
  max-width: min(960px, 92vw);
  overflow-wrap: normal;
  text-transform: uppercase;
  text-wrap: balance;
}

.lux-hero p:not(.lux-eyebrow) {
  color: rgba(255, 255, 255, 0.82);
  font-family: var(--lux-editorial);
  font-size: clamp(17px, 1.1vw, 21px);
  font-weight: 400;
  letter-spacing: 0.045em;
  line-height: 1.7;
  margin-left: auto;
  margin-right: auto;
  max-width: 60ch;
}

.lux-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: center;
  margin-top: 38px;
}

.lux-button,
.lux-link {
  align-items: center;
  color: var(--lux-white);
  display: inline-flex;
  font-family: var(--lux-display);
  font-size: 13px;
  font-weight: 500;
  gap: 10px;
  letter-spacing: 0.08em;
  min-height: 46px;
  text-decoration: none;
  text-transform: uppercase;
}

.lux-button {
  background: rgba(255, 255, 255, 0.10);
  -webkit-backdrop-filter: blur(16px) saturate(130%);
  backdrop-filter: blur(16px) saturate(130%);
  border: 1px solid rgba(255, 255, 255, 0.34);
  border-radius: 0;
  box-shadow: 0 10px 34px rgba(2, 10, 18, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.3);
  color: var(--lux-white);
  padding: 0 30px;
}
.lux-button:hover {
  background: rgba(255, 255, 255, 0.18);
  border-color: rgba(255, 255, 255, 0.55);
  color: var(--lux-white);
}

.lux-button::after,
.lux-link::after {
  content: "→";
  font-size: 18px;
  line-height: 1;
  transition: transform 180ms ease;
}

.lux-button:hover::after,
.lux-link:hover::after {
  transform: translateX(5px);
}

.lux-section {
  margin: 0 auto;
  max-width: var(--lux-copy);
  padding: clamp(84px, 9.5vw, 158px) 0;
}

.lux-voyage {
  align-items: end;
  display: grid;
  gap: clamp(34px, 6vw, 92px);
  grid-template-columns: 1.1fr 0.9fr;
}

.lux-voyage__intro h2,
.lux-company-logbook h2,
.lux-system-map h2,
.lux-portfolio-cta h2,
.lux-method h2 {
  color: var(--lux-white);
  font-family: var(--lux-display);
  font-size: clamp(34px, 4.4vw, 66px);
  font-weight: 300;
  letter-spacing: clamp(0.01em, 0.09vw, 0.045em);
  line-height: 1.18;
  margin: 0;
  text-transform: uppercase;
  text-wrap: balance;
}

.lux-voyage__note {
  color: var(--lux-mist);
  font-family: var(--lux-editorial);
  font-size: clamp(17px, 1.2vw, 22px);
  letter-spacing: 0.025em;
  line-height: 1.75;
  margin: 28px 0 0;
  max-width: 58ch;
}

.lux-voyage__stats {
  border-top: 1px solid var(--lux-line);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.lux-voyage__stats div {
  border-left: 1px solid var(--lux-line);
  padding: 28px 22px;
}

.lux-voyage__stats strong {
  color: var(--lux-gold);
  display: block;
  font-size: clamp(32px, 3.4vw, 54px);
  font-weight: 300;
  letter-spacing: 0.1em;
  line-height: 1;
  text-transform: uppercase;
}

.lux-voyage__stats span {
  color: var(--lux-mist);
  display: block;
  font-size: 12px;
  letter-spacing: 0.18em;
  margin-top: 12px;
  text-transform: uppercase;
}

/* --- Sezione "voyage" come BANDA BLU CHIARA (full-bleed) --- */
.lux-voyage.lux-section {
  background: var(--lux-tint);
  max-width: none;
  padding-block: clamp(64px, 8vw, 120px);
  padding-inline: max(24px, calc((100% - var(--lux-max)) / 2));
}

/* --- Banda editoriale pagine servizio (contenuti storici) --- BANDA CHIARA --- */
.lux-service-editorial.lux-section {
  background: var(--lux-paper);
  color: #102130;
  max-width: none;
  padding-inline: max(24px, calc((100% - var(--lux-max)) / 2));
}
.lux-service-editorial__inner {
  margin: 0 auto;
  max-width: 940px;
}
.lux-service-editorial .lux-kicker {
  color: rgba(16, 33, 48, 0.55);
}
.lux-service-editorial h2 {
  color: #102130;
  font-family: var(--lux-display);
  font-size: clamp(30px, 3.8vw, 56px);
  font-weight: 300;
  letter-spacing: clamp(0.01em, 0.08vw, 0.04em);
  line-height: 1.18;
  margin: 0 0 26px;
  text-transform: uppercase;
  text-wrap: balance;
}
.lux-service-editorial__lead {
  color: #102130;
  font-family: var(--lux-editorial);
  font-size: clamp(22px, 2vw, 34px);
  line-height: 1.4;
  margin: 0 0 30px;
  max-width: 40ch;
}
.lux-service-editorial p:not(.lux-kicker):not(.lux-service-editorial__lead) {
  color: rgba(16, 33, 48, 0.78);
  font-family: var(--lux-editorial);
  font-size: clamp(18px, 1.4vw, 25px);
  letter-spacing: 0.01em;
  line-height: 1.7;
  margin: 0 0 22px;
}
.lux-service-editorial p:last-child {
  margin-bottom: 0;
}

.lux-method {
  border-top: 1px solid var(--lux-line);
  display: grid;
  gap: clamp(30px, 3.6vw, 52px);
  max-width: var(--lux-max);
}

.lux-method__head {
  max-width: 760px;
}

.lux-method__grid {
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.lux-method article {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--lux-line);
  display: flex;
  flex-direction: column;
  padding: clamp(24px, 3vw, 42px);
}

.lux-method article span {
  color: var(--lux-gold);
  display: block;
  font-family: var(--lux-display);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0.3em;
  margin-bottom: clamp(34px, 5vw, 70px);
  text-transform: uppercase;
}

.lux-method article h3 {
  color: var(--lux-white);
  font-family: var(--lux-display);
  font-size: clamp(21px, 2vw, 32px);
  font-weight: 300;
  letter-spacing: 0.14em;
  line-height: 1.2;
  margin: 0 0 18px;
  text-transform: uppercase;
}

.lux-method article p,
.lux-portfolio-cta p,
.lux-form__intro,
.lux-contact__hint,
.case-study-detail-panel__intro {
  color: var(--lux-mist);
  font-family: var(--lux-editorial);
  font-size: clamp(16px, 1.08vw, 20px);
  letter-spacing: 0.025em;
  line-height: 1.75;
  margin: 0;
}

.lux-portfolio-cta p {
  max-width: 780px;
}

.lux-intro--magazine {
  max-width: var(--lux-max);
}

.lux-feature-strip {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(3, 1fr);
  margin: 0 auto;
  max-width: var(--lux-max);
}

.lux-feature-strip a {
  align-content: end;
  background:
    linear-gradient(180deg, rgba(3, 19, 27, 0.04) 30%, rgba(3, 19, 27, 0.86)),
    var(--bg) center / cover;
  border-radius: var(--lux-radius);
  color: var(--lux-white);
  display: grid;
  gap: 14px;
  min-height: 480px;
  overflow: hidden;
  padding: clamp(28px, 3vw, 46px);
  position: relative;
  text-decoration: none;
  transition: box-shadow 420ms ease, transform 420ms ease;
}

.lux-feature-strip a:hover {
  box-shadow: 0 28px 64px rgba(3, 19, 27, 0.5);
  transform: translateY(-5px);
}

.lux-feature-strip span {
  font-size: clamp(22px, 2.5vw, 38px);
  font-weight: 300;
  hyphens: none;
  letter-spacing: 0.045em;
  line-height: 1.12;
  text-transform: uppercase;
  word-break: normal;
}

.lux-feature-strip em {
  color: var(--lux-mist);
  font-family: var(--lux-editorial);
  font-size: 21px;
  font-style: normal;
  line-height: 1.5;
  max-width: 34ch;
}

.lux-intro {
  align-items: start;
  display: grid;
  gap: clamp(30px, 6vw, 92px);
  grid-template-columns: 0.82fr 1.18fr;
}

.lux-intro h2,
.lux-split h2,
.lux-section-head h2,
.lux-contact h2 {
  color: var(--lux-white);
  font-family: var(--lux-display);
  font-size: clamp(34px, 4.4vw, 66px);
  font-weight: 300;
  letter-spacing: clamp(0.01em, 0.09vw, 0.045em);
  line-height: 1.18;
  margin: 0;
  text-transform: uppercase;
  text-wrap: balance;
}

.lux-intro > p,
.lux-split p,
.lux-contact p {
  color: var(--lux-mist);
  font-family: var(--lux-editorial);
  font-size: clamp(18px, 1.5vw, 27px);
  letter-spacing: 0.025em;
  line-height: 1.65;
  margin: 0;
}

.lux-contact p.lux-contact__hint,
.lux-contact__form p.lux-form__intro {
  font-size: clamp(16px, 1.08vw, 20px);
  letter-spacing: 0.025em;
  line-height: 1.75;
}

.lux-band-title {
  background: var(--lux-tint);
  max-width: none;
  padding-block: clamp(56px, 8vw, 116px) clamp(28px, 3.5vw, 52px);
  padding-inline: max(24px, calc((100% - var(--lux-max)) / 2));
}

.lux-band-title .lux-section-head {
  margin-bottom: 0;
}

.lux-band-title h2 {
  color: var(--lux-white);
  font-family: var(--lux-display);
  font-size: clamp(30px, 4vw, 58px);
  font-weight: 300;
  letter-spacing: clamp(0.01em, 0.09vw, 0.045em);
  line-height: 1.14;
  margin: 0;
  text-transform: uppercase;
}

/* --- Griglia competenze a icone oro a filo (stile reference) --- SU FONDO SCURO
   (bg diverso dalla banda blu "Le nostre soluzioni" sopra; --paper resta avorio) --- */
.lux-capabilities {
  background: transparent;
  max-width: none;
  padding-inline: max(24px, calc((100% - var(--lux-max)) / 2));
}

.lux-capabilities__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin: 0 auto;
  max-width: var(--lux-max);
}

.lux-cap {
  border-left: 1px solid var(--lux-line);
  padding: 6px clamp(20px, 2.4vw, 42px);
}

.lux-cap:first-child {
  border-left: 0;
  padding-left: 0;
}

.lux-cap__icon {
  color: var(--lux-gold);
  display: block;
  margin-bottom: 26px;
  transition: transform 440ms cubic-bezier(0.22, 1, 0.36, 1);
}

.lux-cap:hover .lux-cap__icon {
  transform: translateY(-6px);
}

.lux-brand-tile {
  transition: transform 380ms ease;
}

.lux-brand-tile:hover {
  transform: translateY(-4px);
}

.lux-cap__icon svg {
  height: 42px;
  width: 42px;
}

.lux-cap h3 {
  color: var(--lux-white);
  font-family: var(--lux-display);
  font-size: clamp(18px, 1.4vw, 23px);
  font-weight: 300;
  letter-spacing: 0.07em;
  line-height: 1.25;
  margin: 0 0 14px;
  min-height: 2.5em;
  text-transform: uppercase;
}

.lux-cap p {
  color: var(--lux-mist);
  font-family: var(--lux-editorial);
  font-size: 16px;
  line-height: 1.7;
  margin: 0;
}

@media (max-width: 1024px) {
  .lux-capabilities__grid {
    grid-template-columns: repeat(2, 1fr);
    row-gap: clamp(36px, 5vw, 52px);
  }
  .lux-cap:nth-child(odd) {
    border-left: 0;
    padding-left: 0;
  }
  .lux-cap:nth-child(even) {
    padding-right: 0;
  }
  .lux-cap:nth-child(3),
  .lux-cap:nth-child(4) {
    border-top: 1px solid var(--lux-line);
    padding-top: clamp(36px, 5vw, 52px);
  }
}

@media (max-width: 640px) {
  .lux-capabilities__grid {
    grid-template-columns: 1fr;
    row-gap: 0;
  }
  .lux-cap,
  .lux-cap:nth-child(even) {
    border-left: 0;
    border-top: 1px solid var(--lux-line);
    padding: 34px 0;
  }
  .lux-cap:first-child {
    border-top: 0;
    padding-top: 0;
  }
}

/* --- Logbook Azienda come BANDA BLU CHIARA (full-bleed) --- */
.lux-company-logbook--tint {
  background: var(--lux-tint);
  max-width: none;
  padding-inline: max(24px, calc((100% - var(--lux-max)) / 2));
}

.lux-company-logbook--tint .lux-company-logbook__grid {
  margin-left: auto;
  margin-right: auto;
  max-width: var(--lux-max);
}

/* --- Variante AVORIO della griglia capabilities (icone oro su avorio) --- */
.lux-capabilities--paper {
  background: var(--lux-paper);
}

.lux-capabilities--paper .lux-section-head h2 {
  color: #102130;
}

.lux-capabilities--paper .lux-section-head .lux-kicker {
  color: rgba(16, 33, 48, 0.6);
}

.lux-capabilities--paper .lux-cap {
  border-color: rgba(16, 33, 48, 0.16);
}

.lux-capabilities--paper .lux-cap h3 {
  color: #102130;
}

.lux-capabilities--paper .lux-cap p {
  color: rgba(16, 33, 48, 0.72);
}

/* --- Raccordo sfumato tra bande di colore diverso e fondo scuro --- */
/* Le bande full-bleed (tint / avorio) dissolvono i bordi alto/basso nel fondo adiacente.
   La zona di dissolvenza vive dentro il padding della banda, quindi non tocca i contenuti. */
/* Solo le bande BLU/scure si raccordano sfumate. Le sezioni avorio restano nette.
   band-title + service-deck + capabilities formano una zona blu continua: niente
   sfumatura interna tra loro (esclusi dalla maschera). */
.lux-voyage.lux-section,
.lux-case-strip--light,
.lux-company-logbook--tint {
  --seam-h: clamp(44px, 5vw, 80px);
  -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 var(--seam-h), #000 calc(100% - var(--seam-h)), transparent 100%);
  mask-image: linear-gradient(180deg, transparent 0, #000 var(--seam-h), #000 calc(100% - var(--seam-h)), transparent 100%);
}

/* Zona blu "Le nostre soluzioni": sfuma SOLO in alto (entra dal buio dell'intro)
   e SOLO in basso (esce verso il fondo scuro delle competenze). Dentro resta piena. */
.lux-band-title {
  --seam-h: clamp(44px, 5vw, 80px);
  -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 var(--seam-h), #000 100%);
  mask-image: linear-gradient(180deg, transparent 0, #000 var(--seam-h), #000 100%);
}

.lux-service-deck {
  --seam-h: clamp(44px, 5vw, 80px);
  -webkit-mask-image: linear-gradient(180deg, #000 0, #000 calc(100% - var(--seam-h)), transparent 100%);
  mask-image: linear-gradient(180deg, #000 0, #000 calc(100% - var(--seam-h)), transparent 100%);
}

.lux-service-deck {
  align-items: stretch;
  background: var(--lux-tint);
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(3, 1fr);
  max-width: none;
  padding-block: 0 clamp(72px, 9vw, 140px);
  padding-inline: max(24px, calc((100% - var(--lux-max)) / 2));
}

.lux-service-card,
.lux-solution-panel,
.lux-case-card {
  color: inherit;
  overflow: hidden;
  position: relative;
  text-decoration: none;
}

.lux-service-card {
  background: var(--lux-abyss);
  border: 1px solid var(--lux-line);
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding: clamp(24px, 3vw, 42px);
  transform: translateY(var(--lift, 0));
}

.lux-service-card:nth-child(2) {
  --lift: 0;
}

.lux-service-card:nth-child(3) {
  --lift: 0;
}

.lux-service-card__index {
  color: rgba(201, 164, 92, 0.68);
  font-family: var(--lux-display);
  font-size: 38px;
  font-weight: 300;
  letter-spacing: 0.18em;
  line-height: 1;
  position: static;
  z-index: 2;
}

.lux-service-card img {
  aspect-ratio: 4 / 5.2;
  border-radius: var(--lux-radius);
  clip-path: none;
  height: auto;
  margin-bottom: 30px;
  margin-top: 0;
  object-fit: cover;
  transition: transform 420ms ease;
  width: 100%;
}

.lux-service-card:hover img {
  transform: scale(1.035);
}

/* Hover card coerente (bordo oro + ombra) */
.lux-service-card,
.lux-method article,
.lux-solution-panel {
  transition: background 360ms ease, border-color 360ms ease, box-shadow 360ms ease;
}

.lux-service-card:hover,
.lux-method article:hover,
.lux-solution-panel:hover {
  border-color: rgba(201, 164, 92, 0.5);
  box-shadow: 0 24px 58px rgba(3, 19, 27, 0.42);
}

.lux-service-card:hover {
  background: #08202c;
}

.lux-service-card .lux-link {
  color: var(--lux-gold);
  margin-top: auto;
  padding-top: 26px;
}

.lux-service-card .lux-link::after,
.lux-service-card:hover .lux-link {
  transition: transform 200ms ease;
}

.lux-service-card:hover .lux-link::after {
  transform: translateX(5px);
}

.lux-statement {
  background: var(--lux-paper);
  color: #102130;
}

.lux-statement--light {
  background: #f7f5ef;
}

.lux-statement__inner {
  align-items: center;
  display: grid;
  gap: clamp(34px, 6vw, 92px);
  grid-template-columns: 1fr 1fr;
  margin: 0 auto;
  max-width: var(--lux-max);
  padding: clamp(72px, 9vw, 140px) 0;
}

.lux-statement__copy h2 {
  color: #102130;
  font-family: var(--lux-display);
  font-size: clamp(34px, 4.3vw, 62px);
  font-weight: 300;
  letter-spacing: 0.04em;
  line-height: 1.16;
  margin: 0 0 26px;
  text-transform: uppercase;
  text-wrap: balance;
}

.lux-statement__copy p:not(.lux-kicker) {
  color: rgba(16, 33, 48, 0.76);
  font-family: var(--lux-editorial);
  font-size: clamp(20px, 1.6vw, 30px);
  line-height: 1.55;
}

.lux-statement figure {
  margin: 0;
}

.lux-statement img {
  aspect-ratio: 16 / 9;
  object-fit: cover;
  width: 100%;
}

.lux-service-card h3,
.lux-case-card span {
  color: var(--lux-white);
  display: block;
  font-family: var(--lux-display);
  font-size: clamp(20px, 1.55vw, 28px);
  font-weight: 300;
  letter-spacing: 0.05em;
  line-height: 1.22;
  margin: 0 0 18px;
  text-transform: uppercase;
}

.lux-service-card p {
  color: var(--lux-mist);
  font-size: 15px;
  line-height: 1.7;
  max-width: 36ch;
}

.lux-split {
  align-items: center;
  display: grid;
  gap: clamp(38px, 7vw, 112px);
  grid-template-columns: 1fr 1fr;
}

.lux-company-logbook {
  max-width: var(--lux-max);
}

.lux-company-logbook__grid {
  border-top: 1px solid var(--lux-line);
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 42px;
}

.lux-company-logbook__grid p {
  background: rgba(255, 255, 255, 0.035);
  color: var(--lux-mist);
  font-family: var(--lux-editorial);
  font-size: clamp(18px, 1.35vw, 24px);
  line-height: 1.7;
  margin: 0;
  padding: clamp(28px, 3vw, 44px);
}

.lux-competence-grid,
.lux-service-overview__cards {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(4, 1fr);
  max-width: var(--lux-max);
}

.lux-competence-grid article,
.lux-service-overview__cards article {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--lux-line);
  padding: clamp(24px, 3vw, 42px);
}

.lux-competence-grid span,
.lux-service-overview__cards span {
  color: var(--lux-white);
  display: block;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.18em;
  margin-bottom: 28px;
  text-transform: uppercase;
}

.lux-competence-grid p,
.lux-service-overview__cards p {
  color: var(--lux-mist);
  font-family: var(--lux-editorial);
  font-size: 19px;
  line-height: 1.62;
}

.lux-system-map,
.lux-service-overview {
  align-items: end;
  display: grid;
  gap: clamp(32px, 6vw, 86px);
  grid-template-columns: 0.9fr 1.1fr;
  max-width: var(--lux-max);
}

.lux-system-map > p,
.lux-service-overview__copy p:not(.lux-kicker) {
  color: var(--lux-mist);
  font-family: var(--lux-editorial);
  font-size: clamp(19px, 1.5vw, 27px);
  line-height: 1.65;
}

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

.lux-split--service {
  align-items: start;
  grid-template-columns: minmax(360px, 0.78fr) minmax(420px, 1.22fr);
}

.lux-split--service h2 {
  font-size: clamp(34px, 4vw, 62px);
  line-height: 1.2;
  max-width: 760px;
}

.lux-split--service > div:first-child {
  position: sticky;
  top: 130px;
}

.lux-split figure {
  margin: 0;
}

.lux-split figure img,
.lux-mini-gallery img {
  aspect-ratio: 4 / 3;
  height: auto;
  object-fit: cover;
  width: 100%;
}

.lux-mini-gallery {
  display: grid;
  gap: 16px;
  grid-template-columns: 1fr 1fr;
}

.lux-mini-gallery img:first-child {
  grid-column: 1 / -1;
}

.lux-navigation-tiles {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(3, 1fr);
  padding-top: 0;
}

.lux-navigation-tiles a {
  align-items: end;
  aspect-ratio: 1;
  background-position: center;
  background-size: cover;
  color: var(--lux-white);
  display: flex;
  font-family: var(--lux-display);
  font-size: clamp(22px, 2.3vw, 42px);
  font-weight: 300;
  letter-spacing: 0.13em;
  line-height: 1.2;
  padding: 30px;
  position: relative;
  text-decoration: none;
  text-transform: uppercase;
}

.lux-navigation-tiles a::before,
.lux-case-card::before {
  background: linear-gradient(180deg, rgba(3, 19, 27, 0) 26%, rgba(3, 19, 27, 0.5) 58%, rgba(3, 19, 27, 0.9) 84%, rgba(3, 19, 27, 0.96) 100%);
  content: "";
  inset: 0;
  position: absolute;
}

.lux-navigation-tiles span,
.lux-case-card span,
.lux-case-card em {
  position: relative;
  z-index: 1;
}

.lux-solution-board {
  display: grid;
  gap: 34px;
}

.lux-solution-panel {
  align-items: center;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--lux-line);
  display: grid;
  gap: clamp(24px, 5vw, 74px);
  grid-template-columns: minmax(300px, 0.74fr) 1fr;
  min-height: 520px;
  padding: 0;
}

.lux-solution-panel:nth-child(even) {
  grid-template-columns: 1fr minmax(300px, 0.74fr);
}

.lux-solution-panel:nth-child(even) img {
  order: 2;
}

.lux-solution-panel img {
  aspect-ratio: 1 / 1;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.lux-solution-panel > div {
  padding: clamp(28px, 5vw, 72px);
}

.lux-solution-panel h2 {
  color: var(--lux-white);
  font-family: var(--lux-display);
  font-size: clamp(32px, 4.2vw, 66px);
  font-weight: 300;
  letter-spacing: 0.04em;
  line-height: 1.16;
  margin: 0 0 18px;
  text-transform: uppercase;
  text-wrap: balance;
}

.lux-solution-panel p {
  color: var(--lux-mist);
  font-size: 18px;
  line-height: 1.7;
}

.lux-section-head {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0 auto clamp(46px, 5vw, 78px);
  max-width: 940px;
  text-align: center;
}

.lux-section-head .lux-link {
  margin-top: 8px;
}

/* Kicker "luxury" centrato con filetto oro (stile reference) */
.lux-section-head .lux-kicker,
.lux-method__head .lux-kicker,
.lux-portfolio-cta .lux-kicker,
.lux-hero-copy .lux-kicker {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 6px;
}

.lux-section-head .lux-kicker::before,
.lux-method__head .lux-kicker::before,
.lux-portfolio-cta .lux-kicker::before,
.lux-hero-copy .lux-kicker::before {
  background: var(--lux-gold);
  content: "";
  height: 1px;
  opacity: 0.7;
  width: 34px;
}

.lux-method__head {
  margin: 0 auto;
  max-width: 1000px;
  text-align: center;
}

/* Case-strip come BANDA BLU CHIARA (full-bleed) */
.lux-case-strip--light {
  background: var(--lux-tint);
  max-width: none;
  padding-inline: max(24px, calc((100% - var(--lux-max)) / 2));
}

/* Scroll orizzontali → marquee auto-scroll infinito, senza barra */
.lux-case-rail,
.lux-brand-track {
  max-width: 100%;
  overflow: hidden;
  width: 100%;
}

.lux-marquee__track {
  display: flex;
  width: max-content;
  animation: lux-marquee var(--marquee-duration, 50s) linear infinite;
  will-change: transform;
}

.lux-marquee__track > * {
  flex: 0 0 auto;
  margin-right: 18px;
}

.lux-case-rail .lux-marquee__track {
  --marquee-duration: 44s;
}

.lux-brand-track .lux-marquee__track {
  --marquee-duration: 62s;
}

.lux-case-rail:hover .lux-marquee__track,
.lux-brand-track:hover .lux-marquee__track {
  animation-play-state: paused;
}

.lux-case-card--rail {
  aspect-ratio: 3 / 2;
  width: clamp(240px, 26vw, 340px);
}
/* L'immagine riempie tutta la card rail (niente fascia vuota in basso) */
.lux-case-card--rail img {
  height: 100%;
  inset: 0;
  object-fit: cover;
  position: absolute;
  width: 100%;
}

.lux-brand-track .lux-marquee__track .lux-brand-tile {
  width: clamp(180px, 20vw, 240px);
}

@keyframes lux-marquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

/* Angoli morbidi su card e superfici */
.lux-service-card,
.lux-case-card,
.lux-brand-tile,
.lux-solution-panel,
.lux-method article,
.lux-competence-grid article,
.lux-service-overview__cards article,
.lux-company-logbook__grid p,
.lux-navigation-tiles a,
.lux-contact aside,
.lux-contact__form,
.lux-statement img,
.lux-split figure img,
.lux-mini-gallery img {
  border-radius: var(--lux-radius);
}

@media (prefers-reduced-motion: reduce) {
  .lux-marquee__track {
    animation: none;
  }
}

/* Griglia case study: flex-wrap con crescita dell'ultima riga -> nessuno spazio
   vuoto qualunque sia il numero di case study (dinamico da backend). */
.lux-case-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin: 0 auto;
  max-width: var(--lux-max);
}

.lux-case-card {
  background: var(--lux-ink);
  scroll-snap-align: start;
}

.lux-case-grid .lux-case-card {
  aspect-ratio: 3 / 2;
  flex: 1 1 calc((100% - 3 * 14px) / 4);
  min-width: 240px;
}

@media (max-width: 1100px) {
  .lux-case-grid .lux-case-card {
    flex-basis: calc((100% - 2 * 14px) / 3);
  }
}
@media (max-width: 760px) {
  .lux-case-grid .lux-case-card {
    flex-basis: calc((100% - 14px) / 2);
  }
}
@media (max-width: 460px) {
  .lux-case-grid .lux-case-card {
    flex-basis: 100%;
  }
}

.lux-case-card img {
  filter: saturate(0.96) contrast(1.02) brightness(1.12);
  height: 100%;
  object-fit: cover;
  opacity: 0.98;
  transition: transform 420ms ease;
  width: 100%;
}

.lux-case-card:hover img {
  transform: scale(1.04);
}

.lux-case-card span {
  bottom: 48px;
  left: 24px;
  margin: 0;
  position: absolute;
  right: 24px;
  text-shadow: 0 8px 28px rgba(0, 0, 0, 0.48);
}

.lux-case-card em {
  bottom: 22px;
  color: var(--lux-gold);
  font-size: 13px;
  font-style: normal;
  font-weight: 700;
  left: 24px;
  letter-spacing: 0.08em;
  position: absolute;
  text-transform: uppercase;
}

.lux-brand-wall {
  max-width: var(--lux-max);
}

.lux-brand-wall--full .lux-brand-track {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(4, 1fr);
  overflow: visible;
}

.lux-brand-tile {
  align-items: center;
  background: #ffffff;
  display: flex;
  justify-content: center;
  min-height: 190px;
  padding: 36px;
}

.lux-portfolio-cta {
  border-top: 1px solid var(--lux-line);
  display: grid;
  gap: 28px;
  justify-items: center;
  max-width: var(--lux-max);
  text-align: center;
}

.lux-brand-tile img {
  filter: none;
  max-height: 86px;
  object-fit: contain;
  width: 100%;
}

/* Contatti: form protagonista al centro, info in orizzontale SOTTO. */
.lux-contact {
  display: grid;
  gap: clamp(40px, 5vw, 76px);
  justify-items: center;
  max-width: var(--lux-max);
}

.lux-contact a {
  color: var(--lux-white);
}

.site-footer__map iframe {
  background: rgba(255, 255, 255, 0.12);
  border: 0;
  border-radius: 0;
  display: block;
  height: 260px;
  margin-top: 28px;
  width: 100%;
}

.site-footer__map::after {
  content: none;
}

.lux-contact__form {
  background: var(--lux-paper);
  border-radius: var(--lux-radius);
  color: #102130;
  max-width: 780px;
  padding: clamp(30px, 5vw, 68px);
  width: 100%;
}

/* Messaggi form leggibili sul fondo avorio; successo evidenziato con barretta oro */
.lux-contact__form .faserbiz-contact-message {
  border-left: 3px solid rgba(16, 33, 48, 0.28);
  color: #102130;
  padding-left: 14px;
}
.lux-contact__form .faserbiz-contact-message--ok {
  border-left-color: var(--lux-gold);
  color: #102130;
}

.lux-contact__form h2 {
  color: #102130;
  margin-bottom: 16px;
}

.lux-form__intro {
  color: rgba(11, 30, 42, 0.72);
  margin-bottom: 30px;
  max-width: 60ch;
}

/* --- Form nativo del tema --- */
.lux-form {
  display: grid;
  gap: 22px;
}

.lux-form input {
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(10, 29, 41, 0.36);
  border-radius: 0;
  color: #102130;
  font: inherit;
  min-height: 54px;
  padding: 0;
}

.lux-form .lux-button {
  border: 0;
  cursor: pointer;
  justify-self: start;
  margin-top: 12px;
}

/* --- Form Contact Form 7 (stessa estetica del form nativo) --- */
.lux-contact__form .wpcf7-form {
  display: grid;
  gap: 22px;
}
.lux-contact__form .lux-form__grid {
  display: grid;
  gap: 22px;
  grid-template-columns: 1fr 1fr;
}
.lux-contact__form .lux-field {
  display: block;
}
.lux-contact__form .wpcf7-form-control-wrap {
  display: block;
}
.lux-contact__form input.wpcf7-form-control,
.lux-contact__form textarea.wpcf7-form-control {
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(10, 29, 41, 0.36);
  border-radius: 0;
  color: #102130;
  font: inherit;
  min-height: 54px;
  padding: 0;
  width: 100%;
}
.lux-contact__form textarea.wpcf7-form-control {
  min-height: 118px;
  padding-top: 12px;
  resize: vertical;
}
.lux-contact__form .wpcf7-form-control::placeholder {
  color: rgba(10, 29, 41, 0.5);
}
.lux-contact__form .wpcf7-form-control:focus {
  border-bottom-color: var(--lux-gold);
  outline: none;
}
.lux-contact__form .lux-field--submit input.lux-button {
  background: rgba(255, 255, 255, 0.10);
  -webkit-backdrop-filter: blur(16px) saturate(130%);
  backdrop-filter: blur(16px) saturate(130%);
  border: 1px solid rgba(255, 255, 255, 0.34);
  border-radius: 0;
  box-shadow: 0 10px 34px rgba(2, 10, 18, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.3);
  color: var(--lux-white);
  cursor: pointer;
  font-family: var(--lux-display);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.08em;
  margin-top: 8px;
  min-height: 54px;
  padding: 0 40px;
  text-transform: uppercase;
  transition: transform 320ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 320ms ease, background 320ms ease, border-color 320ms ease;
  width: auto;
}
.lux-contact__form .lux-field--submit input.lux-button:hover {
  background: rgba(255, 255, 255, 0.18);
  border-color: rgba(255, 255, 255, 0.55);
  box-shadow: 0 14px 40px rgba(2, 10, 18, 0.4);
  transform: translateY(-2px);
}
/* messaggi di validazione CF7 leggibili sull'avorio */
.lux-contact__form .wpcf7-response-output {
  border-color: rgba(16, 33, 48, 0.3);
  color: #102130;
  font-size: 14px;
  margin: 0;
}
.lux-contact__form .wpcf7-not-valid-tip {
  color: #b23b2e;
  font-size: 13px;
}
.lux-contact__form .wpcf7-form.sent .wpcf7-response-output {
  border-color: var(--lux-gold);
}

/* reCAPTCHA v2: solo il widget Google, niente card grigia dietro (D2). */
.lux-contact__form .g-recaptcha,
.lux-form .g-recaptcha {
  margin-top: 4px;
}

/* --- Info di contatto in ORIZZONTALE, sotto il form (D1) --- */
.lux-contact__info {
  max-width: var(--lux-max);
  width: 100%;
}
.lux-contact__info-grid {
  border-bottom: 1px solid var(--lux-line);
  border-top: 1px solid var(--lux-line);
  display: grid;
  gap: clamp(20px, 3vw, 52px);
  grid-template-columns: repeat(3, 1fr);
  padding: clamp(26px, 3vw, 40px) 0;
}
.lux-contact__info-item .lux-kicker {
  color: var(--lux-gold);
  font-size: 14px;
  letter-spacing: 0.24em;
  line-height: 1.4;
  margin-bottom: 12px;
}
.lux-contact__info-value {
  color: var(--lux-white);
  line-height: 1.65;
  margin: 0;
}
.lux-contact__info-value a {
  color: var(--lux-white);
  text-decoration: none;
}
.lux-contact__info-value a:hover {
  color: var(--lux-gold);
}
.lux-contact__map {
  background: rgba(255, 255, 255, 0.12);
  border: 0;
  border-radius: var(--lux-radius);
  display: block;
  height: clamp(280px, 34vw, 380px);
  margin-top: clamp(24px, 3vw, 40px);
  width: 100%;
}

@media (max-width: 760px) {
  .lux-contact__info-grid {
    grid-template-columns: 1fr;
    gap: 22px;
  }
}

.site-footer {
  background: var(--lux-abyss);
  border-top: 1px solid var(--lux-line);
  color: var(--lux-white);
}

.site-footer__inner {
  display: grid;
  gap: clamp(26px, 4vw, 72px);
  grid-template-columns: 1.05fr 1fr 0.7fr 1.4fr;
  margin: 0 auto;
  max-width: var(--lux-max);
  padding: clamp(58px, 7vw, 96px) 0;
}

.site-footer__logo img {
  margin-bottom: 24px;
  max-width: 310px;
}

.site-footer h2 {
  color: rgba(255, 255, 255, 0.68);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.11em;
  margin: 0 0 24px;
  text-transform: uppercase;
}

.site-footer p,
.site-footer li,
.site-footer a {
  color: rgba(255, 255, 255, 0.78);
  font-size: 15px;
  line-height: 1.72;
  text-decoration: none;
}

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

.site-footer li + li {
  margin-top: 16px;
}

.site-footer__bottom {
  align-items: center;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  display: grid;
  gap: 20px;
  grid-template-columns: 0.5fr 1.5fr;
  margin: 0 auto;
  max-width: var(--lux-max);
  padding: 18px 0;
}

.site-footer__bottom p {
  font-size: 11px;
  line-height: 1.35;
  margin: 0;
}

.site-footer__funding {
  background: var(--lux-white);
  padding: 34px 20px;
  text-align: center;
}

.site-footer__funding img {
  max-width: min(760px, 88vw);
}

.case-study-single {
  background: var(--lux-abyss);
}

/* ---- HERO: split immagine + colonna testo (font veri del sito) ---- */
.case-study-hero {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(460px, 1.08fr);
  min-height: calc(100vh - 86px);
}

.case-study-hero__copy {
  align-items: center;
  background: var(--lux-paper);
  color: #102130;
  display: flex;
  font-family: var(--lux-editorial);
  justify-content: center;
  padding: clamp(48px, 7vw, 112px);
}

.case-study-hero__inner {
  max-width: 480px;
  width: 100%;
}

.case-study-hero__inner .lux-kicker {
  color: rgba(16, 33, 48, 0.55);
  margin-bottom: 22px;
}

.case-study-hero__inner h1 {
  color: #102130;
  font-family: var(--lux-serif);
  font-size: clamp(44px, 5.2vw, 84px);
  font-weight: 600;
  letter-spacing: 0.008em;
  line-height: 1.06;
  margin: 0 0 34px;
  text-transform: none;
  text-wrap: balance;
}

.case-study-meta {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(28px, 4vw, 52px);
  margin: 0 0 32px;
}

.case-study-meta div {
  display: block;
}

.case-study-meta dt {
  color: var(--lux-gold);
  font-family: var(--lux-display);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.2em;
  margin: 0 0 8px;
  text-transform: uppercase;
}

.case-study-meta dd {
  color: #102130;
  font-family: var(--lux-serif);
  font-size: clamp(24px, 2.2vw, 34px);
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1;
  margin: 0;
  text-transform: none;
}

.case-study-services {
  border-top: 1px solid rgba(16, 33, 48, 0.16);
  padding-top: 26px;
}

.case-study-services__label {
  color: var(--lux-gold);
  display: block;
  font-family: var(--lux-display);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.2em;
  margin-bottom: 10px;
  text-transform: uppercase;
}

.case-study-services p {
  color: rgba(16, 33, 48, 0.76);
  font-family: var(--lux-editorial);
  font-size: var(--lux-text);
  line-height: 1.7;
  margin: 0;
}

.case-study-hero__image img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

/* ---- DETAIL PANEL: header centrato + specifiche a filetti (no box) ---- */
.case-study-detail-panel {
  background: var(--lux-abyss);
  border: 0;
  display: block;
  margin: 0 auto;
  max-width: var(--lux-max);
  padding: clamp(64px, 8vw, 112px) 0;
}

.case-study-detail-panel__head {
  margin: 0 auto clamp(40px, 5vw, 64px);
  max-width: 780px;
  text-align: center;
}

.case-study-detail-panel h2 {
  color: var(--lux-white);
  font-family: var(--lux-serif);
  font-weight: 500;
  letter-spacing: 0.004em;
  line-height: 1.14;
  margin: 14px 0 0;
  text-transform: none;
}

.case-study-detail-panel__intro {
  color: var(--lux-mist);
  margin: 20px auto 0;
  max-width: 64ch;
}

.case-study-detail-panel__items {
  border-top: 1px solid var(--lux-line);
  display: grid;
  gap: 0;
  grid-template-columns: repeat(3, 1fr);
  margin: 0 auto;
  max-width: var(--lux-max);
}

.case-study-detail-panel__items article {
  background: transparent;
  border: 0;
  border-left: 1px solid var(--lux-line);
  padding: clamp(28px, 3vw, 46px) clamp(20px, 2.4vw, 40px) 0;
}

.case-study-detail-panel__items article:first-child {
  border-left: 0;
  padding-left: 0;
}

.case-study-detail-panel__items span {
  color: var(--lux-gold);
  display: block;
  font-family: var(--lux-display);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.2em;
  margin-bottom: 14px;
  text-transform: uppercase;
}

.case-study-detail-panel__items strong {
  color: var(--lux-white);
  display: block;
  font-family: var(--lux-serif);
  font-size: clamp(24px, 2.4vw, 34px);
  font-weight: 500;
  line-height: 1.25;
}

/* ---- GALLERY: card su sfondo effetto mare ---- */
.case-study-visit-gallery {
  margin: 0 auto;
  max-width: var(--lux-max);
  padding: clamp(72px, 8vw, 120px) 0;
}

.case-study-related {
  background: transparent;
  margin: 0 auto;
  max-width: var(--lux-max);
  padding: clamp(72px, 8vw, 120px) 0;
  text-align: center;
}

.case-study-visit-gallery h2,
.case-study-related h2 {
  color: var(--lux-white);
  font-family: var(--lux-serif);
  font-weight: 500;
  letter-spacing: 0.004em;
  line-height: 1.14;
  margin: 0 0 44px;
  text-align: center;
  text-transform: none;
}

.case-study-visit-gallery__grid {
  display: grid;
  gap: clamp(16px, 1.6vw, 24px);
  grid-template-columns: repeat(3, 1fr);
}

.case-study-visit-gallery__item {
  aspect-ratio: 4 / 3;
  border: 1px solid rgba(244, 241, 234, 0.14);
  border-radius: var(--lux-radius);
  box-shadow: 0 24px 60px -34px rgba(2, 12, 18, 0.9);
  display: block;
  overflow: hidden;
}

.case-study-visit-gallery__item.faser-gallery-reveal,
.case-study-visit-gallery__item.fb-reference-reveal,
.case-study-related__card.fb-reference-reveal {
  opacity: 1;
  transform: none;
}

.case-study-visit-gallery__item img {
  aspect-ratio: 4 / 3;
  display: block;
  height: 100%;
  object-fit: cover;
  transition: transform 600ms ease;
  width: 100%;
}

.case-study-visit-gallery__item:hover img {
  transform: scale(1.03);
}

/* ---- OTHER CASE HISTORY: card senza box di sfondo ---- */
.case-study-related__grid {
  display: grid;
  gap: clamp(16px, 1.6vw, 24px);
  grid-template-columns: repeat(3, 1fr);
}

.case-study-related__card {
  aspect-ratio: 3 / 2;
  background-position: center;
  background-size: cover;
  border-radius: var(--lux-radius);
  color: var(--lux-white);
  display: grid;
  font-size: 24px;
  font-weight: 700;
  overflow: hidden;
  place-items: end start;
  position: relative;
  text-decoration: none;
}

.case-study-related__card::before {
  background: linear-gradient(180deg, rgba(3, 19, 27, 0) 42%, rgba(3, 19, 27, 0.34) 60%, rgba(3, 19, 27, 0.78) 80%, rgba(3, 19, 27, 0.94) 100%);
  content: "";
  inset: 0;
  position: absolute;
  z-index: 1;
}

.case-study-related__card::after {
  display: none;
}

.case-study-related__card img {
  filter: saturate(0.98) contrast(1.02);
  height: 100%;
  inset: 0;
  object-fit: cover;
  opacity: 1;
  position: absolute;
  z-index: 0;
  width: 100%;
}

.case-study-related__card span {
  background: transparent;
  font-family: var(--lux-serif);
  font-weight: 600;
  padding: 24px;
  position: relative;
  z-index: 2;
}

.fb-lux-reveal {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity 760ms cubic-bezier(0.22, 1, 0.36, 1), transform 760ms cubic-bezier(0.22, 1, 0.36, 1);
}

.fb-lux-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .fb-lux-reveal,
  .fb-lux-reveal.is-visible {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

@media (max-width: 1024px) {
  .site-header__inner {
    grid-template-columns: 1fr auto;
  }

  .menu-toggle {
    align-items: center;
    background: transparent;
    border: 1px solid var(--lux-line);
    display: grid;
    height: 46px;
    padding: 10px;
    width: 46px;
  }

  .menu-toggle__bar {
    background: var(--lux-white);
    display: block;
    height: 2px;
    width: 22px;
  }

  .site-navigation {
    background: rgba(3, 19, 27, 0.98);
    border-top: 1px solid var(--lux-line);
    display: none;
    grid-column: 1 / -1;
    justify-self: stretch;
    padding: 18px 0;
  }

  .site-navigation.is-open {
    display: block;
  }

  .primary-menu {
    align-items: stretch;
    flex-direction: column;
    gap: 0;
  }

  .primary-menu a {
    padding: 15px 0;
  }

  .primary-menu .sub-menu {
    background: transparent;
    box-shadow: none;
    display: block;
    left: auto;
    min-width: 0;
    opacity: 1;
    padding: 0 0 0 18px;
    pointer-events: auto;
    position: static;
    transform: none;
  }

  .primary-menu .sub-menu a {
    color: rgba(255, 255, 255, 0.72);
  }

  .lux-hero,
  .case-study-hero {
    grid-template-columns: 1fr;
  }

  .lux-hero__media {
    min-height: 100%;
    order: initial;
  }

  .lux-hero__content {
    padding: 82px 28px 72px;
  }

  .lux-intro,
  .lux-voyage,
  .lux-statement__inner,
  .lux-split,
  .lux-company-logbook__grid,
  .lux-competence-grid,
  .lux-method,
  .lux-method__grid,
  .lux-system-map,
  .lux-service-overview,
  .lux-service-overview__cards,
  .lux-contact,
  .lux-solution-panel,
  .lux-solution-panel:nth-child(even),
  .site-footer__inner,
  .site-footer__bottom,
  .case-study-detail-panel,
  .case-study-detail-panel__items {
    grid-template-columns: 1fr;
  }

  .lux-feature-strip {
    grid-template-columns: 1fr;
  }

  .lux-solution-panel:nth-child(even) img {
    order: initial;
  }

  .lux-split--service > div:first-child {
    position: static;
  }

  .lux-service-deck,
  .lux-case-grid,
  .case-study-visit-gallery__grid,
  .case-study-related__grid,
  .lux-brand-wall--full .lux-brand-track,
  .lux-navigation-tiles {
    grid-template-columns: 1fr;
  }

  .lux-case-grid .lux-case-card:nth-child(n) {
    grid-column: auto;
  }

  .lux-service-card,
  .lux-service-card:nth-child(2),
  .lux-service-card:nth-child(3) {
    transform: none;
  }
}

@media (max-width: 640px) {
  :root {
    --lux-max: min(100vw - 28px, 1440px);
    --lux-copy: min(100vw - 28px, 1180px);
  }

  .site-header__inner {
    min-height: 72px;
  }

  .custom-logo,
  .site-branding img {
    max-width: 210px;
  }

  .lux-hero {
    min-height: calc(100vh - 72px);
  }

  .lux-hero__compass {
    display: none;
  }

  /* Bottoni impilati: la rosa punta da sopra il primo, senza entrarci dentro */
  .lux-hero__content--home .lux-hero__rose-hero {
    transform: translateY(12px);
  }

  .lux-hero h1 {
    font-size: clamp(28px, 8.4vw, 38px);
    letter-spacing: 0.065em;
    line-height: 1.28;
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .lux-split--service h2 {
    font-size: clamp(28px, 8.5vw, 42px);
  }

  .lux-intro h2,
  .lux-split h2,
  .lux-section-head h2,
  .lux-contact h2,
  .lux-solution-panel h2,
  .case-study-visit-gallery h2,
  .case-study-related h2 {
    letter-spacing: 0.09em;
  }

  .lux-hero p:not(.lux-eyebrow),
  .lux-intro > p,
  .lux-split p,
  .lux-contact p {
    font-size: 17px;
    letter-spacing: 0.015em;
    overflow-wrap: anywhere;
  }

  .lux-section {
    padding: 64px 0;
  }

  .lux-feature-strip a {
    min-height: 360px;
  }

  .lux-voyage__stats {
    grid-template-columns: 1fr;
  }

  .lux-service-card {
    min-height: 0;
  }

  .lux-case-card--rail {
    width: 76vw;
  }

  .lux-brand-track .lux-marquee__track .lux-brand-tile {
    width: 54vw;
  }

  .case-study-meta {
    display: grid;
  }
}

/* =========================================================
   RESTYLE REFERENCE — FASE 1: display SERIF (Cormorant)
   Titoli editoriali in serif, sentence case, tracking stretto.
   Label/kicker/bottoni/numeri restano Archivo (sans).
   ========================================================= */
.lux-hero h1,
.lux-hero-copy h1,
.lux-voyage__intro h2,
.lux-company-logbook h2,
.lux-system-map h2,
.lux-portfolio-cta h2,
.lux-method h2,
.lux-method article h3,
.lux-intro h2,
.lux-split h2,
.lux-section-head h2,
.lux-contact h2,
.lux-contact aside h2,
.lux-band-title h2,
.lux-statement__copy h2,
.lux-solution-panel h2,
.lux-service-editorial h2,
.lux-service-overview__copy h2,
.lux-service-card h3,
.lux-case-card span,
.case-study-hero__inner h1,
.case-study-detail-panel h2,
.case-study-visit-gallery h2,
.case-study-related h2 {
  font-family: var(--lux-serif);
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0.004em;
}

/* Hero e titoli-chiave: leggermente più corposi */
.lux-hero h1,
.lux-hero-copy h1,
.case-study-hero__inner h1 {
  font-weight: 600;
  letter-spacing: 0.006em;
  line-height: 1.1;
}

/* Lead editoriale in corsivo serif (stile "Refinement & Luxury") */
.lux-service-editorial__lead {
  font-family: var(--lux-serif);
  font-style: italic;
  font-weight: 500;
  letter-spacing: 0.01em;
}

/* =========================================================
   RESTYLE — Sezione "Competenza tecnica" (voyage) rifatta
   Layout editoriale centrato + riga stat con numeri serif oro.
   Banda con leggera profondità (glow oro) invece del piatto.
   ========================================================= */
.lux-voyage.lux-section {
  background:
    radial-gradient(130% 92% at 50% 0%, rgba(201, 164, 92, 0.08), transparent 60%),
    var(--lux-tint);
  display: block;
  text-align: center;
  max-width: none;
  padding-block: clamp(78px, 9vw, 132px);
  padding-inline: max(24px, calc((100% - var(--lux-max)) / 2));
}

.lux-voyage .lux-section-head {
  margin-bottom: clamp(26px, 3vw, 40px);
  max-width: 900px;
}

.lux-voyage__lead {
  color: var(--lux-mist);
  font-family: var(--lux-editorial);
  font-size: clamp(17px, 1.25vw, 22px);
  letter-spacing: 0.01em;
  line-height: 1.78;
  margin: 0 auto clamp(50px, 5.5vw, 84px);
  max-width: 60ch;
}

.lux-voyage__stats {
  border-top: 1px solid var(--lux-line);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: 0 auto;
  max-width: var(--lux-max);
}

.lux-voyage__stats div {
  border-left: 1px solid var(--lux-line);
  padding: clamp(30px, 3.4vw, 48px) 22px 0;
  text-align: center;
}

.lux-voyage__stats div:first-child {
  border-left: 0;
}

.lux-voyage__stats strong {
  color: var(--lux-gold);
  display: block;
  font-family: var(--lux-serif);
  font-size: clamp(46px, 4.8vw, 80px);
  font-weight: 500;
  letter-spacing: 0.012em;
  line-height: 1;
  text-transform: none;
}

.lux-voyage__stats span {
  color: var(--lux-mist);
  display: block;
  font-family: var(--lux-display);
  font-size: 11px;
  letter-spacing: 0.2em;
  margin-top: 16px;
  text-transform: uppercase;
}

@media (max-width: 720px) {
  .lux-voyage__stats {
    grid-template-columns: 1fr;
  }
  .lux-voyage__stats div {
    border-left: 0;
    border-top: 1px solid var(--lux-line);
    padding: clamp(26px, 6vw, 34px) 0 0;
  }
  .lux-voyage__stats div:first-child {
    border-top: 0;
    padding-top: 0;
  }
}

/* =========================================================
   RESTYLE FASE 3 — Quote band (manifesto + valori a icona oro)
   ========================================================= */
.lux-quote {
  max-width: var(--lux-max);
  text-align: center;
}

.lux-quote__inner {
  margin: 0 auto;
  max-width: min(1240px, 100%);
}

.lux-quote blockquote {
  margin: 0;
}

.lux-quote blockquote p {
  color: var(--lux-white);
  font-family: var(--lux-serif);
  font-size: clamp(24px, 2.8vw, 42px);
  font-style: italic;
  font-weight: 500;
  letter-spacing: 0.005em;
  line-height: 1.34;
  margin: 0 auto;
  max-width: none;
  text-wrap: balance;
}

.lux-quote blockquote p::before {
  color: var(--lux-gold);
  content: "\201C";
  margin-right: 0.04em;
}

.lux-quote blockquote p::after {
  color: var(--lux-gold);
  content: "\201D";
  margin-left: 0.04em;
}

.lux-quote cite {
  color: var(--lux-gold);
  display: block;
  font-family: var(--lux-display);
  font-size: 13px;
  font-style: normal;
  letter-spacing: 0.22em;
  margin-top: clamp(24px, 3vw, 42px);
  text-transform: uppercase;
}

.lux-quote__values {
  border-top: 1px solid var(--lux-line);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin: clamp(58px, 7vw, 104px) auto 0;
  max-width: var(--lux-max);
}

.lux-quote__values article {
  border-left: 1px solid var(--lux-line);
  padding: clamp(30px, 3.4vw, 48px) clamp(18px, 2vw, 30px) 0;
  text-align: center;
}

.lux-quote__values article:first-child {
  border-left: 0;
}

.lux-quote__icon {
  color: var(--lux-gold);
  display: inline-flex;
  margin-bottom: 20px;
  transition: transform 440ms cubic-bezier(0.22, 1, 0.36, 1);
}

.lux-quote__values article:hover .lux-quote__icon {
  transform: translateY(-6px);
}

.lux-quote__icon svg {
  height: 34px;
  width: 34px;
}

.lux-quote__values h3 {
  color: var(--lux-white);
  font-family: var(--lux-serif);
  font-size: clamp(21px, 1.7vw, 27px);
  font-weight: 500;
  letter-spacing: 0.01em;
  margin: 0 0 12px;
}

.lux-quote__values p {
  color: var(--lux-mist);
  font-family: var(--lux-editorial);
  font-size: 15px;
  line-height: 1.66;
  margin: 0;
}

@media (max-width: 900px) {
  .lux-quote__values {
    grid-template-columns: repeat(2, 1fr);
    row-gap: clamp(32px, 5vw, 46px);
  }
  .lux-quote__values article:nth-child(odd) {
    border-left: 0;
  }
  .lux-quote__values article:nth-child(n+3) {
    border-top: 1px solid var(--lux-line);
    padding-top: clamp(32px, 5vw, 46px);
  }
}

@media (max-width: 560px) {
  .lux-quote__values {
    grid-template-columns: 1fr;
    row-gap: 0;
  }
  .lux-quote__values article,
  .lux-quote__values article:nth-child(odd) {
    border-left: 0;
    border-top: 1px solid var(--lux-line);
    padding: 34px 0 0;
  }
  .lux-quote__values article:first-child {
    border-top: 0;
    padding-top: 0;
  }
}

/* =========================================================
   RESTYLE FASE 3 — Timeline "Dal 1984" (nodi su linea)
   ========================================================= */
/* "La nostra storia" è una sezione DIVERSA dal Logbook -> banda tint + sfumato */
.lux-timeline {
  background: var(--lux-tint);
  max-width: none;
  padding-inline: max(24px, calc((100% - var(--lux-max)) / 2));
  --seam-h: clamp(44px, 5vw, 80px);
  -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 var(--seam-h), #000 calc(100% - var(--seam-h)), transparent 100%);
  mask-image: linear-gradient(180deg, transparent 0, #000 var(--seam-h), #000 calc(100% - var(--seam-h)), transparent 100%);
}

.lux-timeline .lux-section-head,
.lux-timeline__track {
  margin-left: auto;
  margin-right: auto;
  max-width: var(--lux-max);
}

.lux-timeline .lux-section-head {
  max-width: 940px;
}

.lux-timeline__track {
  display: grid;
  gap: clamp(20px, 3vw, 44px);
  grid-template-columns: repeat(4, 1fr);
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
}

.lux-timeline__track::before {
  background: linear-gradient(90deg, transparent, rgba(201, 164, 92, 0.42) 12%, rgba(201, 164, 92, 0.42) 88%, transparent);
  content: "";
  height: 1px;
  left: 12.5%;
  position: absolute;
  right: 12.5%;
  top: 6px;
}

.lux-timeline__node {
  padding-top: 46px;
  position: relative;
  text-align: center;
}

.lux-timeline__dot {
  background: var(--lux-gold);
  border-radius: 999px;
  box-shadow: 0 0 0 5px rgba(201, 164, 92, 0.14);
  height: 13px;
  left: 50%;
  position: absolute;
  top: 0;
  transform: translateX(-50%);
  width: 13px;
}

.lux-timeline__marker {
  color: var(--lux-gold);
  display: block;
  font-family: var(--lux-serif);
  font-size: clamp(30px, 3vw, 48px);
  font-weight: 500;
  letter-spacing: 0.01em;
  line-height: 1;
  margin-bottom: 16px;
}

.lux-timeline__node p {
  color: var(--lux-mist);
  font-family: var(--lux-editorial);
  font-size: 15px;
  line-height: 1.66;
  margin: 0 auto;
  max-width: 27ch;
}

@media (max-width: 760px) {
  .lux-timeline__track {
    gap: 0;
    grid-template-columns: 1fr;
  }
  .lux-timeline__track::before {
    background: linear-gradient(180deg, rgba(201, 164, 92, 0.42), rgba(201, 164, 92, 0.14));
    bottom: 6px;
    height: auto;
    left: 6px;
    right: auto;
    top: 6px;
    width: 1px;
  }
  .lux-timeline__node {
    padding: 0 0 clamp(32px, 8vw, 46px) 34px;
    text-align: left;
  }
  .lux-timeline__node:last-child {
    padding-bottom: 0;
  }
  .lux-timeline__dot {
    left: 6px;
    top: 6px;
  }
  .lux-timeline__marker {
    margin-bottom: 10px;
  }
  .lux-timeline__node p {
    margin: 0;
    max-width: none;
  }
}

/* =========================================================
   RESTYLE — Brand wall: barca come SFONDO continuo; copy in alto
   e loghi in basso restano SOPRA l'immagine, con la nave nel
   varco centrale (header top / loghi bottom / nave in mezzo).
   ========================================================= */
.lux-brand-wall {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: clamp(840px, 55vw, 1030px);
  padding-block: clamp(52px, 5vw, 88px);
  position: relative;
}

.lux-brand-wall::before {
  background-image: url("/wp-content/uploads/2026/07/ChatGPT-Image-7-lug-2026-12_44_32.png");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  content: "";
  inset: 0;
  left: 50%;
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 9%, #000 91%, transparent 100%);
  mask-image: linear-gradient(180deg, transparent 0%, #000 9%, #000 91%, transparent 100%);
  position: absolute;
  transform: translateX(-50%);
  width: 100vw;
  z-index: 0;
}

.lux-brand-wall > * {
  position: relative;
  z-index: 1;
}

@media (max-width: 760px) {
  .lux-brand-wall {
    min-height: clamp(780px, 200vw, 940px);
  }
}

/* =========================================================
   NORMALIZZAZIONE TIPOGRAFICA — una sola scala su tutto il sito.
   Pretitolo (.lux-kicker) già unico. Qui: titoli sezione, titoli
   card, sottotitoli/lead e CORPO (grandezza hero) uniformi.
   ========================================================= */

/* Titoli di sezione -> stessa grandezza ovunque */
.lux-voyage__intro h2,
.lux-company-logbook h2,
.lux-logbook h2,
.lux-system-map h2,
.lux-portfolio-cta h2,
.lux-method h2,
.lux-intro h2,
.lux-split h2,
.lux-section-head h2,
.lux-contact h2,
.lux-contact aside h2,
.lux-band-title h2,
.lux-statement__copy h2,
.lux-solution-panel h2,
.lux-service-editorial h2,
.lux-service-overview__copy h2,
.case-study-detail-panel h2,
.case-study-visit-gallery h2,
.case-study-related h2 {
  font-size: var(--lux-h2);
}

/* Titoli di card -> stessa grandezza ovunque */
.lux-method article h3,
.lux-service-card h3,
.lux-cap h3,
.lux-quote__values h3,
.lux-case-card span {
  font-size: var(--lux-h3);
}

/* Solo lo statement editoriale "Dal 1984" è un display grande (a parte) */
.lux-service-editorial__lead {
  font-size: var(--lux-lead);
}

/* I paragrafi introduttivi (voyage, overview) sono CORPO come la hero */
.lux-voyage__lead,
.lux-service-overview__lead {
  font-size: var(--lux-text);
}

/* CORPO -> grandezza unica (come la hero) ovunque */
.lux-hero p:not(.lux-eyebrow),
.lux-hero-copy > p:not(.lux-kicker),
.lux-intro > p,
.lux-split p,
.lux-contact p,
.lux-contact p.lux-contact__hint,
.lux-contact__form p.lux-form__intro,
.lux-voyage__note,
.lux-system-map > p,
.lux-service-overview__copy p:not(.lux-kicker),
.lux-method article p,
.lux-portfolio-cta p,
.lux-form__intro,
.lux-contact__hint,
.case-study-detail-panel__intro,
.lux-competence-grid p,
.lux-service-overview__cards p,
.lux-cap p,
.lux-timeline__node p,
.lux-service-card p,
.lux-quote__values p,
.lux-solution-panel p,
.lux-company-logbook__grid p,
.lux-logbook__body p,
.lux-statement__copy p:not(.lux-kicker),
.lux-service-editorial p:not(.lux-kicker):not(.lux-service-editorial__lead) {
  font-size: var(--lux-text);
}

/* =========================================================
   RESTYLE — Logbook Azienda: editoriale 2 colonne su scuro,
   niente banda blu, niente card boxy, testo che scorre.
   ========================================================= */
.lux-logbook {
  align-items: center;
  display: grid;
  gap: clamp(30px, 5vw, 84px);
  grid-template-columns: 0.85fr 1.15fr;
  max-width: var(--lux-max);
}

.lux-logbook__head h2 {
  color: var(--lux-white);
  font-family: var(--lux-serif);
  font-weight: 500;
  letter-spacing: 0.004em;
  line-height: 1.16;
  margin: 0;
  text-transform: none;
}

.lux-logbook__body {
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 1.8vw, 26px);
}

.lux-logbook__body p {
  color: var(--lux-mist);
  font-family: var(--lux-editorial);
  letter-spacing: 0.01em;
  line-height: 1.78;
  margin: 0;
}

@media (max-width: 900px) {
  .lux-logbook {
    grid-template-columns: 1fr;
    gap: clamp(22px, 4vw, 38px);
  }
}

/* Split "Un team tecnico": immagine a sinistra, testo a destra,
   più spazio attorno alla barca (varco centrale ampio). */
.lux-split.lux-media-bg--yacht {
  gap: clamp(60px, 34vw, 480px);
  grid-template-columns: 0.9fr 1.1fr;
}
/* Immagine più verso sinistra, copy più verso destra (feedback cliente) */
.lux-split.lux-media-bg--yacht > figure {
  justify-self: start;
}
.lux-split.lux-media-bg--yacht > div {
  justify-self: end;
}

/* Testo dello split "Un team tecnico" più leggibile sul fondo acqua */
.lux-split.lux-media-bg--yacht p {
  color: rgba(244, 241, 234, 0.9);
}

/* Titolo split leggermente ridotto: sta su 2 righe senza invadere la barca */
.lux-split.lux-media-bg--yacht h2 {
  font-size: clamp(30px, 3.5vw, 48px);
}

@media (max-width: 1024px) {
  .lux-split.lux-media-bg--yacht {
    gap: clamp(28px, 5vw, 48px);
    grid-template-columns: 1fr;
  }
  /* Il concetto "barca che divide le colonne" vale solo a 2 colonne: su mobile
     (colonna singola) il testo finirebbe sullo scafo chiaro -> nascondo la barca
     e lascio il fondo scuro, testo pienamente leggibile. */
  .lux-media-bg--yacht::before {
    display: none;
  }
}

/* =========================================================
   LINE-BREAKING uniforme su tutto il sito.
   Titoli: bilanciati (righe di lunghezza simile, niente parola
   orfana). Corpo: "pretty" (evita l'ultima riga con una parola sola).
   ========================================================= */
.lux-hero h1,
.lux-hero-copy h1,
.lux-voyage__intro h2,
.lux-company-logbook h2,
.lux-logbook__head h2,
.lux-system-map h2,
.lux-portfolio-cta h2,
.lux-method h2,
.lux-intro h2,
.lux-split h2,
.lux-section-head h2,
.lux-contact h2,
.lux-band-title h2,
.lux-statement__copy h2,
.lux-solution-panel h2,
.lux-service-editorial h2,
.lux-service-overview__copy h2,
.lux-service-editorial__lead,
.case-study-hero__inner h1,
.case-study-detail-panel h2,
.case-study-visit-gallery h2,
.case-study-related h2 {
  text-wrap: balance;
}

.lux-hero p:not(.lux-eyebrow),
.lux-hero-copy > p:not(.lux-kicker),
.lux-intro > p,
.lux-split p,
.lux-contact p,
.lux-voyage__note,
.lux-voyage__lead,
.lux-system-map > p,
.lux-service-overview__copy p,
.lux-method article p,
.lux-portfolio-cta p,
.lux-cap p,
.lux-timeline__node p,
.lux-service-card p,
.lux-solution-panel p,
.lux-logbook__body p,
.lux-service-editorial p {
  text-wrap: pretty;
}

/* =========================================================
   RESTYLE PAGINE SERVIZIO (Yachting / Refitting / Pesca)
   ========================================================= */

/* Editorial "Dal 1984": statement grande a tutta larghezza */
.lux-service-editorial__inner {
  margin: 0 auto;
  max-width: var(--lux-max);
}
.lux-service-editorial__lead {
  color: #102130;
  font-size: clamp(26px, 3.3vw, 44px);
  line-height: 1.26;
  margin: 0;
  max-width: none;
}
.lux-service-editorial p:not(.lux-kicker):not(.lux-service-editorial__lead) {
  max-width: 68ch;
}

/* Overview: banda TINT, header centrato leggibile + lead + feature row a filetti */
.lux-service-overview {
  background: var(--lux-tint);
  display: block;
  max-width: none;
  padding-inline: max(24px, calc((100% - var(--lux-max)) / 2));
  text-align: center;
  --seam-h: clamp(44px, 5vw, 80px);
  -webkit-mask-image: linear-gradient(180deg, #000 0, #000 calc(100% - var(--seam-h)), transparent 100%);
  mask-image: linear-gradient(180deg, #000 0, #000 calc(100% - var(--seam-h)), transparent 100%);
}
/* Titolo overview su UNA sola riga (desktop); sotto i 768px va a capo naturale */
.lux-service-overview .lux-section-head h2 {
  font-size: var(--lux-h2);
}
.lux-service-overview__lead {
  color: var(--lux-mist);
  font-family: var(--lux-editorial);
  line-height: 1.7;
  margin: 0 auto clamp(46px, 5vw, 78px);
  max-width: 90ch;
}
.lux-service-overview__cards {
  border-top: 1px solid var(--lux-line);
  display: grid;
  gap: 0;
  grid-template-columns: repeat(3, 1fr);
  margin: 0 auto;
  max-width: var(--lux-max);
  text-align: left;
}
.lux-service-overview__cards article {
  background: transparent;
  border: 0;
  border-left: 1px solid var(--lux-line);
  padding: clamp(28px, 3vw, 44px) clamp(20px, 2.4vw, 40px) 0;
}
.lux-service-overview__cards article:first-child {
  border-left: 0;
  padding-left: 0;
}
.lux-service-overview__cards span {
  color: var(--lux-gold);
  display: block;
  font-family: var(--lux-display);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.16em;
  margin-bottom: 16px;
  text-transform: uppercase;
}

/* Gallery servizio: 3 card immagini uguali in riga su sfondo effetto mare */
.lux-service-gallery {
  max-width: var(--lux-max);
}
.lux-service-gallery__grid {
  display: grid;
  gap: clamp(16px, 1.6vw, 24px);
  grid-template-columns: repeat(3, 1fr);
}
.lux-service-gallery__grid figure {
  border: 1px solid rgba(244, 241, 234, 0.14);
  border-radius: var(--lux-radius);
  box-shadow: 0 24px 60px -34px rgba(2, 12, 18, 0.9);
  margin: 0;
  overflow: hidden;
}
.lux-service-gallery__grid img {
  aspect-ratio: 4 / 3;
  display: block;
  height: 100%;
  object-fit: cover;
  transition: transform 600ms ease;
  width: 100%;
}
.lux-service-gallery__grid figure:hover img {
  transform: scale(1.03);
}

@media (max-width: 760px) {
  .lux-service-gallery__grid {
    grid-template-columns: 1fr;
  }
  .lux-service-overview__cards {
    grid-template-columns: 1fr;
  }
  .lux-service-overview__cards article,
  .lux-service-overview__cards article:first-child {
    border-left: 0;
    border-top: 1px solid var(--lux-line);
    padding: 30px 0 0;
  }
  .lux-service-overview__cards article:first-child {
    border-top: 0;
    padding-top: 0;
  }
}

/* a-capo forzato solo da tablet largo/desktop in su (sotto va a capo naturale) */
@media (max-width: 768px) {
  br.lux-hide-mobile {
    display: none;
  }
}

/* Intro "Offriamo soluzioni a 360°": il paragrafo di destra si allinea al
   TITOLO (h2) e non al pretitolo, scalando dell'altezza del kicker. */
.lux-intro--magazine > p {
  margin-top: 52px;
}

@media (max-width: 1024px) {
  .lux-intro--magazine > p {
    margin-top: 0;
  }
}

/* Soluzioni: "Three areas / Un sistema di servizi..." e le card -> spazio moderato. */
.lux-system-map {
  padding-bottom: clamp(36px, 4vw, 62px);
}
.lux-solution-board {
  padding-top: clamp(20px, 2.6vw, 40px);
}

/* Hero "light" (Portfolio): overlay più leggero, immagine più visibile,
   il copy resta leggibile grazie allo shade. */
.lux-hero--light .lux-hero__media::after {
  background:
    radial-gradient(ellipse at 50% 44%, rgba(3, 19, 27, 0.04), rgba(3, 19, 27, 0.34) 82%),
    linear-gradient(180deg, rgba(3, 19, 27, 0.24) 0%, rgba(3, 19, 27, 0.16) 42%, rgba(3, 19, 27, 0.4) 74%, var(--lux-abyss) 100%);
}

/* Titolo card case study più leggibile sull'immagine (serif più pesante + ombra) */
.lux-case-card span {
  font-weight: 600;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.92), 0 1px 3px rgba(0, 0, 0, 0.9);
}
.lux-case-card em {
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.9), 0 1px 3px rgba(0, 0, 0, 0.85);
}

/* Bg scuro deciso dietro al copy delle case card: la fascia inferiore diventa
   navy pieno dove stanno titolo e "Scopri di più" -> leggibile su QUALSIASI immagine. */
.lux-case-card::before {
  background: linear-gradient(180deg, rgba(3, 19, 27, 0) 50%, rgba(3, 19, 27, 0.14) 64%, rgba(3, 19, 27, 0.45) 78%, rgba(3, 19, 27, 0.85) 90%, rgba(3, 19, 27, 0.96) 100%);
}
/* Stessa fascia navy piena dietro al titolo delle card correlate */
.case-study-related__card::before {
  background: linear-gradient(180deg, rgba(3, 19, 27, 0) 50%, rgba(3, 19, 27, 0.16) 64%, rgba(3, 19, 27, 0.5) 80%, rgba(3, 19, 27, 0.9) 94%, rgba(3, 19, 27, 0.97) 100%);
}
.case-study-related__card span {
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.9), 0 1px 3px rgba(0, 0, 0, 0.9);
}

/* Immagini case card: niente sovraesposizione, così il testo resta leggibile */
.lux-case-card img,
.case-study-related__card img {
  filter: saturate(0.98) contrast(1.03);
}

/* =========================================================
   BRAND WALL — con l'elenco completo dei marchi (32) la griglia
   resta 4 colonne su desktop, ma su tablet/mobile passa a 3/2
   colonne invece di 1 (che sarebbe una colonna troppo lunga).
   ========================================================= */
@media (max-width: 1024px) {
  .lux-brand-wall--full .lux-brand-track {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 640px) {
  .lux-brand-wall--full .lux-brand-track {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* =========================================================
   PAGINE LEGALI — Privacy Policy / Cookie Policy.
   Intestazione con padding-top che libera l'header fisso
   (titolo non più tagliato) + documento leggibile su scuro.
   ========================================================= */
.lux-legal-hero {
  margin: 0 auto;
  max-width: var(--lux-copy);
  padding: clamp(150px, 20vh, 240px) 0 clamp(28px, 4vw, 52px);
}
.lux-legal-hero__inner {
  border-bottom: 1px solid var(--lux-line);
  max-width: 860px;
  padding-bottom: clamp(24px, 3vw, 40px);
}
.lux-legal-hero h1 {
  color: var(--lux-white);
  font-family: var(--lux-serif);
  font-size: clamp(40px, 6vw, 76px);
  font-weight: 500;
  line-height: 1.04;
  margin: 14px 0 0;
  text-wrap: balance;
}
.lux-legal.lux-section {
  max-width: var(--lux-copy);
  padding-top: clamp(36px, 4vw, 60px);
}
.lux-legal__content {
  color: var(--lux-mist);
  font-family: var(--lux-editorial);
  margin: 0;
  max-width: 860px;
}
.lux-legal__content > * {
  margin: 0 0 18px;
}
.lux-legal__lead {
  color: var(--lux-white);
  font-size: var(--lux-lead);
  line-height: 1.55;
  margin-bottom: 34px;
}
.lux-legal__content h2 {
  color: var(--lux-white);
  font-family: var(--lux-display);
  font-size: clamp(22px, 2.2vw, 30px);
  font-weight: 500;
  letter-spacing: 0.01em;
  margin: 44px 0 14px;
}
.lux-legal__content h3 {
  color: var(--lux-white);
  font-family: var(--lux-display);
  font-size: clamp(18px, 1.5vw, 21px);
  font-weight: 600;
  margin: 26px 0 10px;
}
.lux-legal__content p,
.lux-legal__content li {
  font-size: var(--lux-text);
  line-height: 1.78;
}
.lux-legal__content ul {
  margin: 0 0 18px;
  padding-left: 1.25em;
}
.lux-legal__content li {
  margin-bottom: 8px;
}
.lux-legal__content a {
  color: var(--lux-gold);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.lux-legal__content strong {
  color: var(--lux-white);
}
.lux-legal__tablewrap {
  overflow-x: auto;
  margin: 8px 0 24px;
}
.lux-legal__table {
  border-collapse: collapse;
  min-width: 560px;
  width: 100%;
}
.lux-legal__table th,
.lux-legal__table td {
  border: 1px solid var(--lux-line);
  font-size: 15px;
  padding: 12px 14px;
  text-align: left;
  vertical-align: top;
}
.lux-legal__table th {
  color: var(--lux-white);
  font-family: var(--lux-display);
  font-weight: 600;
  letter-spacing: 0.02em;
}
.lux-legal__updated {
  color: rgba(244, 241, 234, 0.5);
  font-size: 14px;
  font-style: italic;
  margin-top: 34px;
}

/* Case study detail: quando le specifiche si impilano (<=1024px) i filetti
   verticali diventano orizzontali. */
@media (max-width: 1024px) {
  .case-study-detail-panel__items article {
    border-left: 0;
    border-top: 1px solid var(--lux-line);
    padding: 28px 0 0;
  }
  .case-study-detail-panel__items article:first-child {
    border-top: 0;
    padding-top: 0;
  }
}

/* =========================================================
   NEWS — listing articoli + newsletter + singolo articolo.
   ========================================================= */
.lux-news-hero .lux-legal-hero__inner {
  border-bottom: 0;
}
.lux-news.lux-section {
  max-width: var(--lux-max);
  padding-top: clamp(20px, 3vw, 44px);
}
.lux-news__grid {
  display: grid;
  gap: clamp(24px, 3vw, 40px);
  grid-template-columns: repeat(3, 1fr);
}
.lux-news-card {
  display: flex;
  flex-direction: column;
}
.lux-news-card__media {
  border-radius: var(--lux-radius);
  display: block;
  overflow: hidden;
}
.lux-news-card__media img {
  aspect-ratio: 3 / 2;
  display: block;
  height: 100%;
  object-fit: cover;
  transition: transform 600ms ease;
  width: 100%;
}
.lux-news-card__media:hover img {
  transform: scale(1.04);
}
.lux-news-card__body {
  padding-top: 22px;
}
.lux-news-card__title {
  font-family: var(--lux-serif);
  font-size: clamp(24px, 2vw, 30px);
  font-weight: 600;
  line-height: 1.12;
  margin: 0 0 12px;
}
.lux-news-card__title a {
  color: var(--lux-white);
  text-decoration: none;
}
.lux-news-card__title a:hover {
  color: var(--lux-gold);
}
.lux-news-card__excerpt {
  color: var(--lux-mist);
  font-family: var(--lux-editorial);
  font-size: var(--lux-text);
  line-height: 1.7;
  margin: 0 0 18px;
}

/* Newsletter */
.lux-newsletter {
  background: var(--lux-tint);
  margin-top: clamp(40px, 5vw, 80px);
  padding: clamp(56px, 7vw, 104px) max(24px, calc((100% - var(--lux-max)) / 2));
  --seam-h: clamp(44px, 5vw, 80px);
  -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 var(--seam-h), #000 100%);
  mask-image: linear-gradient(180deg, transparent 0, #000 var(--seam-h), #000 100%);
}
.lux-newsletter__inner {
  margin: 0 auto;
  max-width: 640px;
  text-align: center;
}
.lux-newsletter h2 {
  color: var(--lux-white);
  font-family: var(--lux-serif);
  font-size: var(--lux-h2);
  font-weight: 500;
  margin: 14px 0 16px;
}
.lux-newsletter__lead {
  color: var(--lux-mist);
  font-family: var(--lux-editorial);
  font-size: var(--lux-text);
  line-height: 1.7;
  margin: 0 auto clamp(28px, 3vw, 40px);
  max-width: 52ch;
}
.lux-newsletter__row {
  align-items: center;
  display: flex;
  gap: 14px;
  justify-content: center;
}
.lux-newsletter .wpcf7-form-control-wrap {
  flex: 1 1 auto;
  max-width: 380px;
}
.lux-newsletter input.wpcf7-email {
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(244, 241, 234, 0.4);
  color: var(--lux-white);
  font: inherit;
  min-height: 52px;
  padding: 0 4px;
  width: 100%;
}
.lux-newsletter input.wpcf7-email::placeholder {
  color: rgba(244, 241, 234, 0.5);
}
.lux-newsletter input.wpcf7-submit {
  cursor: pointer;
  flex: 0 0 auto;
}
.lux-newsletter .wpcf7-response-output {
  color: var(--lux-white);
  flex-basis: 100%;
  font-size: 14px;
  margin: 14px 0 0;
  text-align: center;
}

/* Singolo articolo News: header che libera l'header fisso + tipografia lux */
.content-shell,
.single .content-shell {
  background: transparent;
  color: var(--lux-white);
  margin: 0 auto;
  max-width: var(--lux-copy);
  padding: clamp(150px, 20vh, 240px) 0 clamp(64px, 8vw, 120px);
}
.entry--post {
  margin: 0 auto;
  max-width: 860px;
}
.entry--post .entry-header {
  margin-bottom: clamp(28px, 3vw, 44px);
}
.entry--post .entry-date {
  color: var(--lux-gold);
  display: block;
  font-family: var(--lux-display);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.18em;
  margin-bottom: 14px;
  text-transform: uppercase;
}
.entry--post .entry-title {
  color: var(--lux-white);
  font-family: var(--lux-serif);
  font-size: clamp(40px, 5vw, 72px);
  font-weight: 600;
  line-height: 1.05;
  margin: 0;
  text-wrap: balance;
}
.entry--post .entry-image {
  border-radius: var(--lux-radius);
  display: block;
  margin: 0 auto clamp(28px, 3vw, 44px);
  max-width: 860px;
  overflow: hidden;
}
.entry--post .entry-image img {
  display: block;
  width: 100%;
}
.entry--post .entry-content {
  color: var(--lux-mist);
  font-family: var(--lux-editorial);
}
.entry--post .entry-content p {
  font-size: var(--lux-lead);
  line-height: 1.7;
  margin: 0 0 20px;
}
.entry--post .related-posts {
  border-top: 1px solid var(--lux-line);
  margin: clamp(48px, 6vw, 84px) auto 0;
  max-width: 860px;
  padding-top: clamp(36px, 4vw, 60px);
}
.entry--post .related-posts h2 {
  color: var(--lux-white);
  font-family: var(--lux-serif);
  font-size: clamp(26px, 2.4vw, 36px);
  font-weight: 500;
  margin: 0 0 28px;
}
.entry--post .related-posts__grid {
  display: grid;
  gap: clamp(16px, 2vw, 24px);
  grid-template-columns: repeat(3, 1fr);
}
.entry--post .related-card {
  background: transparent;
}
.entry--post .related-card a {
  color: var(--lux-white);
  display: block;
  text-decoration: none;
}
.entry--post .related-card img {
  aspect-ratio: 3 / 2;
  border-radius: var(--lux-radius);
  display: block;
  margin-bottom: 12px;
  object-fit: cover;
  width: 100%;
}
.entry--post .related-card span {
  color: var(--lux-white);
  font-family: var(--lux-serif);
  font-size: 20px;
  font-weight: 600;
  padding: 12px 0 0;
}
.entry--post .related-card a:hover span {
  color: var(--lux-gold);
}

@media (max-width: 900px) {
  .lux-news__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 600px) {
  .lux-news__grid,
  .entry--post .related-posts__grid {
    grid-template-columns: 1fr;
  }
  .lux-newsletter__row {
    flex-direction: column;
  }
  .lux-newsletter .wpcf7-form-control-wrap {
    max-width: none;
    width: 100%;
  }
}

/* =========================================================
   Switcher lingua IT / EN nell'header.
   ========================================================= */
.lang-switch {
  align-items: center;
  display: flex;
  gap: 8px;
  margin-left: clamp(14px, 1.6vw, 28px);
}
.lang-switch__link {
  color: rgba(244, 241, 234, 0.6);
  font-family: var(--lux-display);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-decoration: none;
  transition: color 220ms ease;
}
.lang-switch__link:hover {
  color: var(--lux-white);
}
.lang-switch__link.is-active {
  color: var(--lux-gold);
}
.lang-switch__sep {
  color: rgba(244, 241, 234, 0.3);
  font-size: 12px;
}
@media (max-width: 1024px) {
  .lang-switch {
    justify-content: center;
    margin: 18px 0 0;
    width: 100%;
  }
}

/* =========================================================
   EDITORIALI SERVIZIO — rifiniture da feedback cliente.
   Pretitolo oro ovunque; Yachting (statement) centrato;
   Refitting/Pesca (article) testo a piena larghezza + lead
   di colore diverso.
   ========================================================= */
.lux-service-editorial .lux-kicker {
  color: var(--lux-gold);
}
/* Yachting: statement centrato */
.lux-service-editorial--statement .lux-service-editorial__inner {
  text-align: center;
}
.lux-service-editorial--statement .lux-service-editorial__lead {
  margin-left: auto;
  margin-right: auto;
}
/* Refitting / Pesca: editoriale a piena larghezza + lead colore diverso */
.lux-service-editorial--article .lux-service-editorial__lead {
  color: #96702a;
}
.lux-service-editorial--article p:not(.lux-kicker):not(.lux-service-editorial__lead) {
  max-width: none;
}

/* Overview servizio: meno spazio tra header (titolo) e lead. */
.lux-service-overview .lux-section-head {
  margin-bottom: clamp(18px, 2vw, 30px);
}

/* Hero Portfolio/Case studies: contenuto più in alto (feedback cliente). */
.lux-hero--light {
  align-items: start;
}
.lux-hero--light .lux-hero__content {
  padding-top: clamp(150px, 22vh, 300px);
}
@media (max-width: 1024px) {
  .lux-hero--light .lux-hero__content {
    padding-top: clamp(120px, 16vh, 200px);
  }
}

/* =========================================================
   Rifiniture da feedback: News (allineamento) + Contatti
   (modulo luxury su fondo mare) + newsletter (spaziatura).
   ========================================================= */
/* News: intestazione allineata alla griglia articoli */
.lux-news-hero {
  max-width: var(--lux-max);
}
.lux-news-hero .lux-legal-hero__inner {
  max-width: none;
}

/* Modulo Contatti: vero effetto vetro (glassmorphism) sopra il fondo mare */
.lux-contact__form {
  background: linear-gradient(150deg, rgba(38, 66, 86, 0.30), rgba(8, 22, 32, 0.20));
  -webkit-backdrop-filter: blur(34px) saturate(150%);
  backdrop-filter: blur(34px) saturate(150%);
  border: 1px solid rgba(255, 255, 255, 0.24);
  box-shadow: 0 30px 80px rgba(2, 10, 18, 0.55), inset 0 1px 0 rgba(255, 255, 255, 0.35), inset 0 0 60px rgba(255, 255, 255, 0.04);
  color: var(--lux-white);
  position: relative;
}
/* Ancora del bottone hero "Vai al modulo": offset per l'header fisso */
#contatto-form {
  scroll-margin-top: 112px;
}
@media (prefers-reduced-motion: reduce) {
  :root {
    scroll-behavior: auto;
  }
}
.lux-contact__form h2 {
  color: var(--lux-white);
}
.lux-contact__form .lux-form__intro {
  color: var(--lux-mist);
}
.lux-contact__form input.wpcf7-form-control,
.lux-contact__form textarea.wpcf7-form-control,
.lux-contact__form .lux-form input {
  border-bottom-color: rgba(244, 241, 234, 0.34);
  color: var(--lux-white);
}
.lux-contact__form .wpcf7-form-control::placeholder,
.lux-contact__form .lux-form input::placeholder {
  color: rgba(244, 241, 234, 0.5);
}
.lux-contact__form .wpcf7-form-control:focus {
  border-bottom-color: var(--lux-gold);
}
.lux-contact__form .wpcf7-response-output {
  border-color: var(--lux-line);
  color: var(--lux-mist);
}
.lux-contact__form .faserbiz-contact-message {
  border-left-color: rgba(244, 241, 234, 0.4);
  color: var(--lux-white);
}

/* Newsletter: bottone staccato dalla riga dell'email */
.lux-newsletter__row {
  align-items: center;
  flex-direction: column;
  gap: 26px;
}
.lux-newsletter .wpcf7-form-control-wrap {
  max-width: 420px;
  width: 100%;
}

/* =========================================================
   FIX stacking case card: l'immagine aveva opacity<1 e finiva
   SOPRA lo scrim, rendendo il testo illeggibile sulle foto chiare.
   Ordine corretto: immagine (0) < scrim scuro (1) < testo (2).
   ========================================================= */
.lux-case-card img,
.case-study-related__card img {
  inset: 0;
  opacity: 1;
  position: absolute;
  z-index: 0;
}
.lux-case-card::before,
.case-study-related__card::before {
  z-index: 1;
}
.lux-case-card span,
.lux-case-card em {
  position: absolute;
  z-index: 2;
}
.case-study-related__card span {
  position: relative;
  z-index: 2;
}

/* =========================================================
   MOTION — movimenti leggeri ed eleganti su tutto il sito.
   (Ken Burns hero, parallax fondali mare, reveal a cascata,
   micro-interazioni hover). Tutto neutralizzato con
   prefers-reduced-motion.
   ========================================================= */

/* Ken Burns lento e leggero sull'immagine hero attiva */
@keyframes fb-kenburns {
  from { transform: scale(1.05); }
  to   { transform: scale(1.13); }
}
.lux-hero__media img.is-active {
  animation: fb-kenburns 20s ease-out both;
}

/* Reveal allo scroll: curva più morbida (leggermente più lenta) */
.fb-lux-reveal {
  transition: opacity 900ms cubic-bezier(0.22, 1, 0.36, 1),
              transform 1000ms cubic-bezier(0.22, 1, 0.36, 1);
}
/* Le card/tessere entrano con un impercettibile "settle" (giù + micro scala) */
.fb-lux-reveal.fb-reveal-item {
  transform: translateY(32px) scale(0.984);
}
.fb-lux-reveal.fb-reveal-item.is-visible {
  transform: translateY(0) scale(1);
}

/* Micro-interazioni hover eleganti */
.lux-brand-tile {
  transition: transform 420ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 420ms ease;
}
.lux-brand-tile:hover {
  transform: translateY(-4px);
  box-shadow: 0 30px 60px -40px rgba(2, 12, 18, 0.55);
}
.lux-solution-panel img,
.lux-news-card__media img {
  transition: transform 760ms cubic-bezier(0.22, 1, 0.36, 1);
}
.lux-solution-panel:hover img {
  transform: scale(1.045);
}
.lux-navigation-tiles a {
  transition: transform 520ms cubic-bezier(0.22, 1, 0.36, 1);
}
.lux-navigation-tiles a:hover {
  transform: translateY(-5px);
}
.lux-button {
  transition: transform 320ms cubic-bezier(0.22, 1, 0.36, 1), background 320ms ease, color 320ms ease, border-color 320ms ease;
}
.lux-button:hover {
  transform: translateY(-2px);
}
/* La rosa dei venti dell'hero fluttua dolcemente */
@keyframes fb-float {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-7px); }
}
.lux-hero__rose-img,
.lux-hero__rose-hero {
  animation: fb-float 6s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  .lux-hero__media img.is-active,
  .lux-hero__rose-img,
  .lux-hero__rose-hero {
    animation: none;
  }
  .lux-media-bg::before {
    transform: translateX(-50%) !important;
  }
  .lux-brand-tile:hover,
  .lux-navigation-tiles a:hover,
  .lux-button:hover,
  .lux-solution-panel:hover img {
    transform: none;
  }
}

/* Rosa dei venti (grande) come unico elemento sotto "Naviga" nella hero home */
.lux-hero__rose-img--scroll {
  filter: drop-shadow(0 14px 40px rgba(3, 19, 27, 0.5));
  height: clamp(92px, 9vw, 120px);
  width: clamp(92px, 9vw, 120px);
}

/* Mobile: il titolo "Le nostre soluzioni" (band-title) e le card (service-deck)
   devono restare vicini. L'override .lux-section{padding:64px 0} li allontanava. */
@media (max-width: 640px) {
  .lux-band-title.lux-section {
    padding-bottom: clamp(20px, 5vw, 34px);
  }
  .lux-service-deck.lux-section {
    padding-top: 0;
  }
}

/* Nomi delle case card più in basso nella card (feedback cliente) */
.lux-case-card--rail span {
  bottom: 24px;
}
.lux-case-grid .lux-case-card span {
  bottom: 22px;
}


/* === Portfolio: filtri settore, tag, lightbox, back (2026-07) === */
.lux-case-filters{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;max-width:var(--lux-max,1240px);margin:0 auto 26px;padding:0 20px}
.lux-case-filter{-webkit-appearance:none;appearance:none;background:transparent;border:1px solid rgba(201,164,92,.5);color:var(--lux-white,#fff);cursor:pointer;font-family:var(--lux-sans,inherit);font-size:12px;letter-spacing:.18em;text-transform:uppercase;padding:12px 26px;transition:background .25s ease,color .25s ease,border-color .25s ease}
.lux-case-filter:hover{border-color:var(--lux-gold,#c9a45c)}
.lux-case-filter.is-active{background:var(--lux-gold,#c9a45c);border-color:var(--lux-gold,#c9a45c);color:#0b1a24}
.lux-case-card__tag{position:absolute;top:14px;left:14px;z-index:2;background:rgba(11,26,36,.74);color:#fff;font-family:var(--lux-sans,inherit);font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:6px 12px;line-height:1}
.lux-case-card__tag--refitting{background:rgba(201,164,92,.92);color:#0b1a24}
.lux-case-grid[data-active-filter="yachting"] .lux-case-card[data-sector="refitting"],
.lux-case-grid[data-active-filter="refitting"] .lux-case-card[data-sector="yachting"]{display:none}
.case-study-back{display:inline-flex;align-items:center;gap:8px;color:var(--lux-gold,#c9a45c);text-decoration:none;font-size:12px;letter-spacing:.16em;text-transform:uppercase;margin-bottom:22px;transition:opacity .2s ease}
.case-study-back:hover{opacity:.7}
.case-study-visit-gallery__item{cursor:zoom-in}
.fb-lightbox{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;background:rgba(4,12,18,.93);opacity:0;visibility:hidden;transition:opacity .28s ease}
.fb-lightbox.is-open{opacity:1;visibility:visible}
.fb-lightbox__img{max-width:92vw;max-height:84vh;object-fit:contain;box-shadow:0 30px 90px rgba(0,0,0,.5)}
.fb-lightbox__btn{position:absolute;background:transparent;border:0;color:#fff;cursor:pointer;line-height:1;padding:12px;opacity:.85;transition:opacity .2s ease}
.fb-lightbox__btn:hover{opacity:1}
.fb-lightbox__close{top:18px;right:22px;font-size:32px}
.fb-lightbox__prev{left:14px;top:50%;transform:translateY(-50%);font-size:46px}
.fb-lightbox__next{right:14px;top:50%;transform:translateY(-50%);font-size:46px}
.fb-lightbox__count{position:absolute;bottom:20px;left:0;right:0;text-align:center;color:rgba(255,255,255,.7);font-size:12px;letter-spacing:.14em}
@media(max-width:600px){.fb-lightbox__prev{left:0;font-size:34px}.fb-lightbox__next{right:0;font-size:34px}.fb-lightbox__close{font-size:28px}}

.primary-menu .current-menu-ancestor > a::after,.primary-menu .current-menu-parent > a::after{transform:scaleX(1)}




/* Fix: ultima card portfolio a tutta larghezza -> card come le altre, righe parziali centrate (2026-07) */
.lux-case-grid{justify-content:center}
.lux-case-grid .lux-case-card{flex-grow:0}

/* Hero copy piu' leggibile su foto chiare (2026-07): scrim morbido dietro al testo + ombra.
   Scoped alle hero cinematiche (azienda/soluzioni/yachting/refitting/pesca/marchi), esclusa la variante --light del Portfolio. */
.lux-hero--cinematic:not(.lux-hero--light) .lux-hero__content::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(1180px, 100%);
  height: min(620px, 94%);
  background: radial-gradient(ellipse at center, rgba(3, 19, 27, 0.58) 0%, rgba(3, 19, 27, 0.4) 42%, rgba(3, 19, 27, 0) 72%);
  pointer-events: none;
}
.lux-hero--cinematic:not(.lux-hero--light) .lux-hero__content h1,
.lux-hero--cinematic:not(.lux-hero--light) .lux-hero__content p:not(.lux-eyebrow) {
  text-shadow: 0 1px 16px rgba(3, 19, 27, 0.55);
}
.lux-hero--cinematic:not(.lux-hero--light) .lux-hero__content .lux-eyebrow {
  text-shadow: 0 1px 10px rgba(3, 19, 27, 0.5);
}


/* Rating di legalità AGCM: card su Azienda + badge footer (2026-07) */
.lux-rating__card{display:flex;align-items:center;gap:clamp(28px,4vw,56px);max-width:1000px;margin:0 auto;padding:clamp(30px,4vw,54px);background:linear-gradient(180deg,rgba(9,26,36,.92),rgba(4,15,22,.95));border:1px solid rgba(201,164,92,.38)}
.lux-rating__badge{flex:0 0 auto;display:grid;place-items:center;width:clamp(118px,14vw,168px);height:clamp(118px,14vw,168px);border:1px solid rgba(201,164,92,.5);border-radius:999px;background:radial-gradient(circle at 50% 42%,rgba(201,164,92,.16),transparent 70%)}
.lux-rating__stars{color:var(--lux-gold,#c9a45c);font-size:clamp(54px,7vw,78px);line-height:1;font-family:var(--lux-display,serif)}
.lux-rating__stars sup{font-size:.46em;top:-.55em;letter-spacing:.03em}
.lux-rating__body{flex:1 1 auto}
.lux-rating__card .lux-kicker{margin-bottom:12px}
.lux-rating__card h2{color:var(--lux-white,#fff);font-family:var(--lux-display,serif);font-weight:300;font-size:clamp(26px,2.4vw,36px);margin:0 0 16px;letter-spacing:.01em}
.lux-rating__card p{color:rgba(255,255,255,.82);font-family:var(--lux-editorial,inherit);line-height:1.7;margin:0 0 14px}
.lux-rating__meta{font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.lux-rating__card .lux-button{margin-top:10px}
@media(max-width:720px){.lux-rating__card{flex-direction:column;text-align:center}}
.site-footer__rating{display:inline-flex;align-items:center;gap:8px;margin-top:14px;font-size:12px;letter-spacing:.06em;color:rgba(255,255,255,.72)}
.site-footer__rating strong{color:var(--lux-gold,#c9a45c);font-weight:600;font-size:14px}

/* Rating AGCM: sempre visibile, indipendente dal reveal allo scroll (fix 2026-07-28) */
.lux-rating.fb-lux-reveal{opacity:1 !important;transform:none !important}


/* ===== Modifiche 2026-07-28 (banner cookie / team img / rating bg / footer chip) ===== */

/* 1) Banner cookie: il logo non deve sbordare sul titolo "Gestisci Consenso" */
.cmplz-cookiebanner .cmplz-logo{overflow:hidden}
.cmplz-cookiebanner .cmplz-logo img,
.cmplz-cookiebanner .cmplz-logo img.custom-logo{max-width:100%;height:auto;display:block}

/* 2) Sezione team "Un team tecnico": immagine piu' grande SOLO desktop (>1024) */
@media (min-width:1025px){
  .lux-split.lux-media-bg--yacht{gap:clamp(48px,16vw,240px);grid-template-columns:1.05fr 1fr}
}

/* 3) Footer: badge rating come chip (pillola) */
.site-footer__rating{padding:7px 16px;border:1px solid rgba(201,164,92,.42);border-radius:999px;background:rgba(201,164,92,.07)}

/* 4) Sezione rating: SEZIONE VERA a tutta larghezza (full-bleed), BLU SCURO,
      contenuti direttamente sullo sfondo (niente card) e stella SENZA cerchio */
.lux-rating{max-width:none;width:auto;margin-left:0;margin-right:0;padding-left:clamp(24px,4vw,40px);padding-right:clamp(24px,4vw,40px);background:linear-gradient(180deg,rgba(8,27,46,0) 0%,rgba(8,27,46,1) 220px)}
.lux-rating__card{background:none;box-shadow:none;border:0;padding:0;max-width:1000px;margin:0 auto}
.lux-rating__badge{background:none;border:0;border-radius:0;width:auto;height:auto}
.lux-rating__stars{font-size:clamp(72px,10vw,116px)}
.lux-rating__card h2{color:var(--lux-white,#fff)}
.lux-rating__card p{color:rgba(255,255,255,.82)}
.lux-rating__meta{color:rgba(255,255,255,.55)}
.lux-rating__card .lux-kicker{color:rgba(201,164,92,.9)}


/* Social nel footer (2026-07-28) */
.site-footer__social{display:flex;gap:14px;margin-top:18px}
.site-footer__social a{display:inline-flex;width:38px;height:38px;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.18);border-radius:999px;color:rgba(255,255,255,.75);transition:color .25s ease,border-color .25s ease,transform .25s ease}
.site-footer__social a:hover{color:var(--lux-gold,#c9a45c);border-color:rgba(201,164,92,.6);transform:translateY(-2px)}
.site-footer__social svg{width:18px;height:18px}


/* Tap target: social footer a 44px (2026-07-28) */
.site-footer__social a{width:44px;height:44px}


/* Sezione team: immagine leggermente piu' a sinistra, copy piu' a destra (solo desktop, 2026-07-28) */
@media (min-width:1025px){
  .lux-split.lux-media-bg--yacht > figure{transform:translateX(clamp(-95px, calc(104px - 10vw), 0px))}
  .lux-split.lux-media-bg--yacht > div{transform:translateX(clamp(0px, calc(10vw - 104px), 95px))}
}


/* A capo tipografici (2026-07-28): bilanciamento titoli + wrapping paragrafi */
h1, h2, h3, .lux-eyebrow, .lux-kicker { text-wrap: balance; }
p { text-wrap: pretty; }


/* Contrasto AA: kicker/eyebrow oro su sezioni CHIARE -> bronzo scuro leggibile (2026-07-28) */
.lux-statement .lux-kicker,
.lux-statement .lux-eyebrow,
.lux-capabilities--paper .lux-kicker,
.lux-capabilities--paper .lux-eyebrow,
.lux-service-editorial .lux-kicker,
.lux-service-editorial .lux-eyebrow { color: #7d5f22; }
