/* Direzione editoriale ripresa dal riferimento Wix: campi ampi, tipografia protagonista. */
:root { --wix-blue:#405f70; --wix-paper:#f7f1eb; --wix-sand:#d8ba89; --wix-line:#b9cad2; --wix-pad:clamp(28px,7.4vw,150px); }
body { background:var(--wix-paper); color:var(--wix-blue); }
.site-header { width:100%; max-width:none; height:78px; padding:0 clamp(28px,5vw,92px); border-color:rgba(64,95,112,.12); background:rgba(247,241,235,.94); }
.brand,.navigation,.navigation a { color:var(--wix-blue); }
.nav-contact { border-color:var(--wix-blue); }
.hero { width:100%; min-height:min(72vh, 720px); max-width:none; padding:62px clamp(28px,5vw,92px) 60px; background:#dce2e6; }
.hero h1 { max-width:760px; margin:20px 0 15px; font-size:clamp(62px,6.8vw,108px); color:var(--wix-blue); }
.hero-practice { position:relative; z-index:1; max-width:660px; margin:0; color:#294a5b; font-family:var(--sans); font-size:clamp(14px,1.35vw,20px); font-weight:600; line-height:1.25; letter-spacing:.095em; text-transform:uppercase; }
.hero-direction { position:relative; z-index:1; margin:0 0 22px; color:var(--wix-blue); font-family:var(--serif); font-size:clamp(28px,2.75vw,46px); line-height:1.04; letter-spacing:-.025em; }
.hero-copy { max-width:610px; color:#294a5b; font-size:18px; font-weight:500; text-shadow:0 1px 13px rgba(253,248,245,.72); }
.hero .text-link { margin-top:12px; padding:17px 29px; border:0; background:#94cde6; color:#fdf9f4; }

/* La hero diventa una soglia illustrata: la lettura rimane sul testo, il paesaggio si apre a destra. */
.hero { background:#e8e2d8; }
.hero-photo img {
  object-position:center;
  filter:saturate(.52) brightness(1.13) contrast(.76) blur(.2px);
}
.hero-photo::after {
  background:linear-gradient(90deg, rgba(247,241,235,.80) 0%, rgba(247,241,235,.60) 36%, rgba(247,241,235,.24) 68%, rgba(247,241,235,.12) 100%);
}
.section { width:100%; max-width:none; padding:150px var(--wix-pad); border:0; }
.section-label,.eyebrow { display:none; }
h2,h3,h4,.prose p,.three-columns p,.cards p,.steps p { color:var(--wix-blue)!important; }
h2 { font-size:clamp(58px,6.4vw,104px); }
.editorial-word { display:none; }

/* I testi introduttivi diventano pagine ariose, con grandi immagini laterali. */
.intro { display:grid; grid-template-columns:1.05fr .95fr; column-gap:7vw; align-items:stretch; min-height:760px; background:var(--wix-paper); }
.intro::after { content:""; grid-column:1; grid-row:1 / span 3; min-height:680px; background:linear-gradient(rgba(240,223,218,.16),rgba(54,77,91,.12)),url("assets/images/hero-mare-tramonto.jpg") center / cover; }
.intro .analysis-intro { grid-column:2; display:block; align-self:center; }
.intro .prose { max-width:760px; }
.intro .prose p,
.intro .intro-lead {
  margin-bottom:30px;
  color:var(--wix-blue)!important;
  font-size:clamp(20px,1.85vw,29px)!important;
  line-height:1.55;
}
.intro blockquote { grid-column:1; width:100%; margin:48px 0 0; }

.analysis-section { background:var(--wix-paper); text-align:center; }
.analysis-section > .prose { max-width:1560px; margin:auto; }
.analysis-section > .prose p { max-width:1480px; margin:0 auto 48px; font-size:clamp(19px,2vw,31px); line-height:1.72; }
.analysis-section .philosophy-quote { text-align:left; }
.why { margin-top:150px!important; text-align:center; }
.why h3 { font-size:clamp(54px,5.8vw,92px); margin-bottom:84px; color:var(--wix-blue); }
.analysis-section .three-columns { gap:42px; border:0; text-align:left; }
.analysis-section .lens-card { min-height:560px; padding:48px!important; border:2px solid var(--wix-blue)!important; border-radius:26px; background:transparent; transform:none!important; }
.lens-icon { height:130px; max-width:135px; }
.concept-line {
  margin-top:92px;
  margin-right:clamp(24px, 7vw, 132px);
  margin-left:auto;
  width:fit-content;
  max-width:82%;
  text-align:right;
  font-size:clamp(34px, 4.4vw, 58px);
}

.analysis-section { padding-bottom:clamp(52px, 5vw, 86px); }
.journey { padding-top:clamp(76px, 6vw, 112px); }

/* Le citazioni diventano sezioni, non nuvole. */
blockquote { width:100%; max-width:none; margin:0; padding:clamp(80px,10vw,155px) clamp(28px,8vw,170px); border:0; text-align:center; }
blockquote::before { display:none; }
blockquote::after { inset:0; background:var(--wix-sand); }
blockquote p { max-width:1700px; margin:0 auto 20px; font-size:clamp(42px,5.7vw,94px); line-height:1.05; color:var(--wix-blue); }
blockquote cite { color:var(--wix-blue); font-size:13px; }
.intro blockquote,.analysis-section .philosophy-quote,.approach .quote-right,.journey blockquote { margin-left:calc(0px - var(--wix-pad)); margin-right:calc(0px - var(--wix-pad)); width:calc(100% + var(--wix-pad) + var(--wix-pad)); }

/* Le citazioni diventano fasce-soglia: stessa palette, scala più raccolta. */
blockquote {
  min-height:0;
  padding:clamp(52px, 6.5vw, 96px) clamp(28px, 8vw, 170px) clamp(48px, 5.7vw, 82px);
}
blockquote p {
  max-width:1320px;
  font-size:clamp(32px, 3.85vw, 64px);
  line-height:1.12;
}
blockquote cite { margin-top:22px; }
.intro { grid-template-rows:minmax(680px, auto) auto; }
.intro::after { grid-row:1; }
.intro .analysis-intro { grid-row:1; }
.intro blockquote { grid-column:1 / -1; grid-row:2; margin-top:0; }

.approach { display:block; padding-bottom:0; }
.approach-layout { grid-template-columns:1.12fr .88fr; gap:7vw; align-items:stretch; }
.approach-layout .prose { max-width:760px; display:block; }
.approach-layout .prose > p {
  font-family:var(--serif);
  font-size:clamp(20px, 1.72vw, 29px)!important;
  line-height:1.42;
  letter-spacing:-.025em;
  margin-bottom:clamp(25px, 2.35vw, 40px);
}
.approach-layout .aperture { min-height:720px; }
.approach .editorial-word--trasformazione { display:block; color:rgba(64,95,112,.12); }

.journey { background:var(--wix-paper); text-align:center; }
.journey .prose { max-width:1400px; margin:auto; }
.journey .lead { color:var(--wix-blue)!important; font-size:clamp(20px,2vw,31px)!important; }
.steps { margin-top:150px; border-color:var(--wix-line); text-align:left; }
.steps li,.steps li:nth-child(2) { grid-template-columns:12% 1fr; margin-left:0; padding:60px 0; border-color:var(--wix-line); }
.step-icon { float:right; margin:0 0 0 34px; }

.audience { text-align:center; background:var(--wix-paper); }
.audience .prose { max-width:1020px; margin:auto; }
.audience .prose p { font-size:clamp(18px,1.75vw,28px); }
.audience .cards { gap:62px; margin-top:100px; }
.audience-card { min-height:600px!important; padding:0 0 36px!important; border:0!important; background:transparent!important; transform:none!important; }
.audience-icon { height:290px; margin-bottom:40px; }
.audience-card h3 { font-family:var(--serif); font-size:clamp(36px,3.4vw,62px); text-transform:none; letter-spacing:-.04em; }
.audience-card p { max-width:500px; margin:auto; font-size:18px; }

/* Una tavola d'atlante molto leggera: accompagna senza trasformarsi in decorazione. */
.audience {
  position:relative;
  isolation:isolate;
  overflow:hidden;
}
.audience > :not(.audience-atlas) { position:relative; z-index:1; }
.audience-atlas {
  position:absolute!important;
  z-index:0!important;
  width:clamp(900px, 76vw, 1260px);
  height:auto;
  top:112px;
  right:0;
  margin:0;
  pointer-events:none;
  opacity:.16;
  mix-blend-mode:multiply;
  transform:rotate(-3deg);
}
.audience-atlas img { display:block; width:100%; height:auto; }

/* I semicerchi delle card diventano piccoli campi orbitali, in continuità con gli atlanti. */
.lens-card::before,
.audience-card::before {
  --orbit-wash:rgba(216,186,137,.30);
  --orbit-line:rgba(64,95,112,.25);
  --orbit-point:rgba(64,95,112,.42);
  width:260px;
  height:260px;
  right:-132px;
  bottom:-132px;
  border-radius:50%;
  z-index:0;
  opacity:1;
  background:
    radial-gradient(circle at 32% 30%, var(--orbit-point) 0 3px, transparent 3.8px),
    radial-gradient(ellipse at 50% 50%, transparent 0 28%, var(--orbit-line) 28.5% 29.2%, transparent 30%),
    radial-gradient(ellipse at 48% 50%, transparent 0 46%, var(--orbit-line) 46.5% 47.2%, transparent 48%),
    radial-gradient(ellipse at 51% 49%, transparent 0 66%, var(--orbit-line) 66.5% 67.2%, transparent 68%),
    radial-gradient(circle at 42% 47%, var(--orbit-wash) 0 7px, transparent 7.8px),
    radial-gradient(circle at 50% 50%, var(--orbit-wash) 0 100%);
}
.lens-card > *,
.audience-card > * { position:relative; z-index:1; }
.lens-card:nth-child(1)::before,
.audience-card:nth-child(1)::before { --orbit-wash:rgba(224,184,176,.34); --orbit-line:rgba(116,79,77,.25); --orbit-point:rgba(116,79,77,.42); }
.lens-card:nth-child(2)::before,
.audience-card:nth-child(2)::before { --orbit-wash:rgba(173,199,201,.34); --orbit-line:rgba(57,91,101,.27); --orbit-point:rgba(57,91,101,.44); }
.lens-card:nth-child(3)::before,
.audience-card:nth-child(3)::before { --orbit-wash:rgba(220,193,145,.34); --orbit-line:rgba(117,87,49,.24); --orbit-point:rgba(117,87,49,.42); }
.lens-card:hover::before,.lens-card:focus-visible::before,.lens-card.is-active::before,
.audience-card:hover::before,.audience-card:focus-visible::before,.audience-card.is-active::before {
  transform:scale(1.13);
  opacity:1;
}

@media (max-width:760px) {
  .lens-card::before,
  .audience-card::before { width:210px; height:210px; right:-108px; bottom:-108px; }
}

@media (max-width:760px) {
  .site-header { padding:0 22px; }.hero { padding:58px 24px; min-height:590px; }.hero h1 { font-size:clamp(54px,14.5vw,74px); margin:16px 0 13px; }.hero-practice { font-size:13px; line-height:1.3; }.hero-direction { margin-bottom:18px; font-size:30px; }
  .section { padding:92px 24px; }.intro { display:flex; flex-direction:column; min-height:0; }.intro::after { display:block; order:1; min-height:340px; margin:58px -24px 0; }.intro .analysis-intro { display:block; order:2; }.intro blockquote { order:3; margin-top:54px; }
  h2 { font-size:clamp(48px,13vw,64px); }.analysis-section > .prose p { font-size:18px; }.why { margin-top:92px!important; }.why h3 { font-size:48px; margin-bottom:48px; }
  .analysis-section .lens-card { min-height:0; border-width:1px!important; border-radius:18px; }.approach-layout { grid-template-columns:1fr; }.approach-layout .prose { display:block; }.approach-layout .aperture { min-height:410px; }.steps { margin-top:80px; }.steps li,.steps li:nth-child(2) { grid-template-columns:1fr; }.step-icon { float:none; }
  .audience .cards { gap:64px; }.audience-card { min-height:0!important; }.audience-icon { height:220px; }.audience-card h3 { font-size:46px; }
  .audience-atlas { display:none; }
  blockquote { padding:76px 25px; } blockquote p { font-size:42px; }.intro blockquote,.analysis-section .philosophy-quote,.approach .quote-right,.journey blockquote { margin-left:-24px; margin-right:-24px; width:calc(100% + 48px); }
}

@media (max-width:760px) {
  blockquote { padding:54px 25px 50px; }
  blockquote p { font-size:34px; line-height:1.15; }
}

/* Un'unica firma per tutte le citazioni, ripresa dalla fascia di Màdera. */
blockquote::after { background:#d8ba89!important; }
blockquote p,
blockquote cite { color:#405f70!important; }
blockquote p { font-family:var(--serif); font-weight:400; }

/* “Perché si chiama così?”: proporzioni e respiro del riferimento Wix. */
.analysis-section .three-columns { gap:62px; max-width:1720px; margin-left:auto; margin-right:auto; }
.analysis-section .lens-card {
  min-height:590px;
  padding:50px 50px 54px!important;
  border:1.5px solid var(--wix-blue)!important;
  border-radius:26px;
  background:transparent;
}
.analysis-section .lens-card > span:not(.lens-icon) { display:none; }
.analysis-section .lens-icon {
  width:72px;
  height:72px;
  margin:0 0 52px;
  box-shadow:none;
}
.analysis-section .lens-icon img { display:block; width:100%; height:100%; object-fit:cover; }
.analysis-section .lens-card h4 {
  margin:0 0 42px;
  font-size:clamp(39px, 3.3vw, 58px);
  line-height:1.03;
  letter-spacing:-.045em;
}
.analysis-section .lens-card p {
  font-size:clamp(17px, 1.32vw, 22px);
  line-height:1.5;
}

@media (max-width:760px) {
  .analysis-section .three-columns { gap:30px; border:0; }
  .analysis-section .lens-card { min-height:0; padding:32px 28px 36px!important; border:1px solid var(--wix-blue)!important; border-radius:20px; }
  .analysis-section .lens-card:last-child { border:1px solid var(--wix-blue)!important; }
  .analysis-section .lens-icon { width:62px; height:62px; margin-bottom:32px; }
  .analysis-section .lens-card h4 { font-size:40px; margin-bottom:26px; }
  .analysis-section .lens-card p { font-size:17px; }
}

/* Le tre fasi del percorso assumono una presenza più piena e diretta. */
.journey .steps { max-width:1720px; margin-left:auto; margin-right:auto; }
.journey .steps li,
.journey .steps li:nth-child(2) {
  grid-template-columns:170px minmax(0, 1fr);
  min-height:320px;
  padding:56px 0;
}
.journey .steps > li > span {
  align-self:center;
  color:#94cde6;
  font-family:var(--serif);
  font-size:clamp(64px, 6.4vw, 112px);
  letter-spacing:-.07em;
  line-height:.8;
}
.journey .steps li > div {
  display:grid;
  grid-template-columns:minmax(0, 1fr) 220px;
  column-gap:8vw;
  align-items:center;
}
.journey .steps h3 {
  grid-column:1;
  margin:0 0 22px;
  font-size:clamp(42px, 4.1vw, 70px);
  line-height:1;
}
.journey .steps p {
  grid-column:1;
  max-width:850px;
  margin:0;
  font-size:clamp(18px, 1.45vw, 24px);
  line-height:1.54;
}
.journey .step-icon {
  grid-column:2;
  grid-row:1 / span 2;
  float:none;
  width:190px;
  height:190px;
  margin:0;
  justify-self:end;
  align-self:center;
  box-shadow:inset 0 0 34px rgba(77,73,67,.12), 0 18px 38px rgba(111,94,83,.10);
}
.journey .step-icon svg { width:126px; height:126px; }
.journey .step-icon img { display:block; width:100%; height:100%; object-fit:cover; }

@media (max-width:760px) {
  .journey .steps li,
  .journey .steps li:nth-child(2) { grid-template-columns:1fr; min-height:0; padding:46px 0; }
  .journey .steps > li > span { font-size:68px; margin-bottom:26px; }
  .journey .steps li > div { grid-template-columns:1fr; }
  .journey .steps h3 { font-size:46px; margin-bottom:18px; }
  .journey .steps p { font-size:18px; }
  .journey .step-icon { grid-column:1; grid-row:auto; justify-self:start; width:112px; height:112px; margin:0 0 28px; }
  .journey .step-icon svg { width:74px; height:74px; }
  .journey .step-icon img { width:100%; height:100%; }
}

/* Citazioni-soglia: più raccolte, mantenendo la loro presenza editoriale. */
blockquote {
  padding: clamp(38px, 4.6vw, 68px) clamp(28px, 8vw, 170px) clamp(36px, 4.3vw, 62px);
}

blockquote p {
  max-width: 1180px;
  /* Ogg è il riferimento Wix; i fallback mantengono un disegno più aperto. */
  font-family: Ogg, "Iowan Old Style", Baskerville, "Times New Roman", serif;
  font-size: clamp(40px, 4.35vw, 72px);
  line-height: 1.16;
  letter-spacing: -.018em;
}

blockquote cite {
  margin-top: 17px;
}

/* La fascia di Epicuro chiude il testo con un vero respiro, senza invaderlo. */
.analysis-section .philosophy-quote {
  display: block;
  clear: both;
  position: relative;
  z-index: 0;
  padding-top: clamp(27px, 3.1vw, 42px);
  padding-bottom: clamp(25px, 2.9vw, 39px);
  text-align: center;
}

.analysis-section .philosophy-quote::after { inset: 0!important; }

.analysis-section .philosophy-quote p {
  max-width: 930px;
  font-size: clamp(37px, 3.8vw, 62px);
}

@media (max-width:760px) {
  blockquote {
    padding: 42px 25px 39px;
  }

  blockquote p {
    font-size: 38px;
    line-height: 1.18;
  }

  blockquote cite {
    margin-top: 15px;
  }

  .analysis-section .philosophy-quote {
    padding-top: 29px;
    padding-bottom: 27px;
  }

  .analysis-section .philosophy-quote p {
    font-size: 35px;
  }
}

/* Un solo ritmo per le fasce che segnano il passaggio tra le sezioni. */
:root { --quote-threshold-gap: clamp(68px, 6vw, 104px); }

.intro blockquote,
.analysis-section .philosophy-quote,
.approach .quote-right,
.journey blockquote {
  margin-top: var(--quote-threshold-gap);
}

/* Candiani resta una soglia riflessiva, più raccolta per la lunghezza del testo. */
.candiani-quote {
  margin-top: var(--quote-threshold-gap);
  padding-top: clamp(42px, 5vw, 72px);
  padding-bottom: clamp(40px, 4.7vw, 68px);
}

.candiani-quote p {
  max-width: 1240px;
  font-size: clamp(30px, 3.3vw, 54px);
  line-height: 1.18;
}

/* Le fasce si appoggiano al margine finale della sezione: il respiro
   successivo è affidato unicamente alla sezione che segue. */
.intro,
.approach,
.journey {
  padding-bottom: 0;
}

.analysis-section .why {
  margin-top: clamp(72px, 6vw, 108px)!important;
}

@media (max-width:760px) {
  :root { --quote-threshold-gap: 58px; }
  .analysis-section .why { margin-top: 78px!important; }
  .concept-line { margin-right:0; max-width:100%; }
  .candiani-quote p { font-size: 33px; }
}

/* Una chiusura laterale per la firma concettuale: entra piano da destra. */
.concept-line--exit.reveal {
  opacity:0;
  transform:translateX(120px);
  transition:opacity 900ms ease, transform 1100ms cubic-bezier(.18,.72,.22,1);
}

.concept-line--exit.reveal.is-visible {
  opacity:1;
  transform:translateX(0);
}

/* La feritoia: materia e luce, senza richiamare il paesaggio marino. */
.approach-layout .aperture {
  background:#ded8cc;
}

.approach-layout .aperture::before {
  background:linear-gradient(180deg, rgba(250,247,240,.08), rgba(49,72,84,.10));
}

.approach-layout .aperture img {
  object-position:center;
  filter:saturate(.62) brightness(1.06) contrast(.84);
}

/* Mantiene la fenditura e la pianta interamente nell’inquadratura. */
.approach-layout {
  align-items:start;
}

.approach-layout .aperture {
  min-height:0;
  aspect-ratio:2 / 3;
}

/* Titolo-soglia, poi immagine e testo in equilibrio. */
.approach-layout {
  grid-template-columns:minmax(280px, .78fr) minmax(0, 1.12fr);
  grid-template-areas:
    "heading heading"
    "image copy";
  column-gap:clamp(46px, 7vw, 120px);
  row-gap:clamp(46px, 5vw, 82px);
  align-items:start;
}

.approach-heading { grid-area:heading; max-width:900px; }
.approach-heading h2 { margin:0; }
.approach-layout .aperture { grid-area:image; width:100%; margin:0; }
.approach-copy { grid-area:copy; max-width:780px!important; padding-top:4px; }

/* Mappa di relazioni: un segno laterale, quasi da atlante, dietro la lettura. */
.analysis-atlas {
  position:absolute!important;
  z-index:0!important;
  top:8px;
  right:auto;
  left:7vw;
  width:clamp(680px, 72vw, 1180px);
  margin:0;
  opacity:.34;
  pointer-events:none;
  mix-blend-mode:multiply;
  transform:rotate(-6deg);
}

.analysis-atlas img {
  display:block;
  width:100%;
  height:auto;
}

/* Carta-orbita del percorso: tracce in movimento, più percepite che illustrate. */
.journey-atlas {
  position:absolute!important;
  z-index:0!important;
  top:38px;
  right:-7vw;
  bottom:48px;
  left:-5vw;
  width:auto;
  margin:0;
  opacity:.3;
  pointer-events:none;
  mix-blend-mode:multiply;
  transform:rotate(-3deg);
}

.journey-atlas img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:72% 88%;
}

@media (max-width:760px) {
  .concept-line--exit.reveal { transform:translateX(52px); }
  .analysis-atlas { display:none; }
  .journey-atlas { display:none; }
  .approach-layout {
    grid-template-columns:1fr;
    grid-template-areas:"heading" "image" "copy";
    gap:42px;
  }
  .approach-layout .aperture { aspect-ratio:auto; min-height:410px; }
}

/* I quarti di cerchio già presenti diventano minuti frammenti di carta-orbita. */
.lens-card::before,
.audience-card::before {
  --orbit-wash:rgba(216,186,137,.52);
  --orbit-line:rgba(64,95,112,.38);
  --orbit-point:rgba(64,95,112,.62);
  width:170px;
  height:170px;
  right:-72px;
  bottom:-84px;
  z-index:0;
  opacity:.62;
  background:
    radial-gradient(circle at 33% 31%, var(--orbit-point) 0 2.5px, transparent 3.2px),
    radial-gradient(ellipse at 48% 51%, transparent 0 30%, var(--orbit-line) 30.7% 31.6%, transparent 32.5%),
    radial-gradient(ellipse at 48% 51%, transparent 0 52%, var(--orbit-line) 52.7% 53.6%, transparent 54.5%),
    radial-gradient(circle at 50% 50%, var(--orbit-wash) 0 100%);
}
.lens-card:nth-child(1)::before,
.audience-card:nth-child(1)::before { --orbit-wash:rgba(224,184,176,.58); --orbit-line:rgba(116,79,77,.38); --orbit-point:rgba(116,79,77,.62); }
.lens-card:nth-child(2)::before,
.audience-card:nth-child(2)::before { --orbit-wash:rgba(173,199,201,.58); --orbit-line:rgba(57,91,101,.42); --orbit-point:rgba(57,91,101,.65); }
.lens-card:nth-child(3)::before,
.audience-card:nth-child(3)::before { --orbit-wash:rgba(220,193,145,.58); --orbit-line:rgba(117,87,49,.38); --orbit-point:rgba(117,87,49,.62); }

/* Forma ampia, con i segni collocati nel quarto realmente visibile. */
.lens-card::before,
.audience-card::before {
  width:260px!important;
  height:260px!important;
  right:-132px!important;
  bottom:-132px!important;
  opacity:.52!important;
  background:
    radial-gradient(circle at 29% 27%, var(--orbit-point) 0 3.5px, transparent 4.4px),
    radial-gradient(ellipse 78px 58px at 37% 38%, transparent 0 62%, var(--orbit-line) 63% 65%, transparent 66%),
    radial-gradient(ellipse 118px 91px at 41% 43%, transparent 0 66%, var(--orbit-line) 67% 68.5%, transparent 69.5%),
    radial-gradient(ellipse 155px 126px at 44% 46%, transparent 0 72%, var(--orbit-line) 73% 74.4%, transparent 75.5%),
    radial-gradient(circle at 50% 50%, var(--orbit-wash) 0 100%)!important;
}
.lens-card:hover::before,.lens-card:focus-visible::before,.lens-card.is-active::before,
.audience-card:hover::before,.audience-card:focus-visible::before,.audience-card.is-active::before {
  transform:scale(2.25)!important;
  opacity:.62!important;
}

@media (max-width:760px) {
  .lens-card::before,
  .audience-card::before { width:220px!important; height:220px!important; right:-112px!important; bottom:-112px!important; }
}

/* Curve più liquide: tra orbite imperfette e onde di un oceano celeste. */
.approach-layout .aperture img {
  content: url("assets/images/ferita-feritoia-tavola-radicata.png");
  object-position: center;
  filter: saturate(.78) brightness(.98) contrast(.9) !important;
}

.lens-card::before,
.audience-card::before {
  --orbit-line:rgba(64,95,112,.20);
  --orbit-point:rgba(64,95,112,.36);
  opacity:.44!important;
  background:
    radial-gradient(circle at 31% 29%, var(--orbit-point) 0 2px, transparent 2.8px),
    radial-gradient(ellipse 92px 43px at 37% 39%, transparent 0 67%, var(--orbit-line) 68% 69%, transparent 70%),
    radial-gradient(ellipse 142px 63px at 42% 44%, transparent 0 69%, var(--orbit-line) 70% 71%, transparent 72%),
    radial-gradient(ellipse 188px 89px at 46% 48%, transparent 0 72%, var(--orbit-line) 73% 74%, transparent 75%),
    radial-gradient(ellipse 226px 115px at 50% 53%, transparent 0 75%, var(--orbit-line) 76% 77%, transparent 78%),
    radial-gradient(circle at 50% 50%, var(--orbit-wash) 0 100%)!important;
}
.lens-card:nth-child(1)::before,
.audience-card:nth-child(1)::before { --orbit-line:rgba(116,79,77,.20); --orbit-point:rgba(116,79,77,.36); }
.lens-card:nth-child(2)::before,
.audience-card:nth-child(2)::before { --orbit-line:rgba(57,91,101,.22); --orbit-point:rgba(57,91,101,.38); }
.lens-card:nth-child(3)::before,
.audience-card:nth-child(3)::before { --orbit-line:rgba(117,87,49,.20); --orbit-point:rgba(117,87,49,.36); }
.lens-card:hover::before,.lens-card:focus-visible::before,.lens-card.is-active::before,
.audience-card:hover::before,.audience-card:focus-visible::before,.audience-card.is-active::before { opacity:.54!important; }

/* Una tavola d'erbario come carta disallineata sotto il racconto biografico. */
.bio {
  position:relative;
  isolation:isolate;
  overflow:hidden;
}
.bio > :not(.bio-atlas) { position:relative; z-index:1; }
.bio-atlas {
  position:absolute!important;
  z-index:0!important;
  top:clamp(130px, 9vw, 175px);
  left:-9vw;
  width:clamp(1060px, 112vw, 1800px);
  margin:0;
  pointer-events:none;
  opacity:.27;
  mix-blend-mode:multiply;
  transform:rotate(-3.1deg);
}
.bio-atlas img { display:block; width:100%; height:auto; }
.bio::after {
  content:"";
  position:absolute;
  z-index:0;
  top:clamp(225px, 15vw, 305px);
  left:clamp(16px, 5vw, 105px);
  width:clamp(265px, 27vw, 455px);
  height:clamp(175px, 16vw, 265px);
  pointer-events:none;
  opacity:.48;
  mix-blend-mode:multiply;
  background:
    radial-gradient(circle at 66% 45%, rgba(72,100,114,.44) 0 2.2px, transparent 3.3px),
    radial-gradient(circle at 36% 66%, rgba(183,142,89,.34) 0 1.6px, transparent 2.6px),
    radial-gradient(ellipse 36% 34% at 50% 52%, transparent 0 72%, rgba(79,109,123,.24) 73% 74.2%, transparent 75.4%),
    radial-gradient(ellipse 52% 47% at 52% 53%, transparent 0 75%, rgba(79,109,123,.19) 76% 77.2%, transparent 78.4%),
    radial-gradient(ellipse 67% 59% at 54% 54%, transparent 0 78%, rgba(183,142,89,.18) 79% 80.1%, transparent 81.3%),
    radial-gradient(circle at 55% 54%, rgba(205,220,223,.19) 0 19%, transparent 50%);
  transform:rotate(-10deg);
}
@media (max-width:760px) {
  .bio-atlas { display:none; }
  .bio::after { display:none; }
}

/* Ritratto: presenza calda, con un taglio raccolto e senza enfasi sullo sfondo. */
.bio-image-space img {
  content:url("assets/images/foto-sito-sorriso-editoriale.png");
  object-position:50% 37%;
  filter:saturate(.68) brightness(1.04) contrast(.9)!important;
}
.bio-narrative { align-items:start; }
.bio-image-space {
  align-self:start;
  min-height:0!important;
  aspect-ratio:3 / 4;
}

/* Socrate chiude il capitolo biografico prima dell'apertura sul lavoro di oggi. */
.bio .socrate-quote {
  width:calc(100% + var(--wix-pad) + var(--wix-pad));
  margin:clamp(66px, 7vw, 112px) calc(0px - var(--wix-pad)) clamp(76px, 7vw, 122px);
  padding-top:clamp(42px, 5vw, 70px);
  padding-bottom:clamp(40px, 4.8vw, 66px);
}

.bio .socrate-quote p {
  max-width:980px;
  font-size:clamp(34px, 3.55vw, 58px);
}

@media (max-width:760px) {
  .bio .socrate-quote {
    width:calc(100% + 48px);
    margin:58px -24px 64px;
  }
.bio .socrate-quote p { font-size:34px; }
}

/* Bio: una sola narrazione in tre movimenti, senza trasformarla in un CV. */
.bio { padding-bottom:clamp(120px, 11vw, 190px); }
.bio-opening,
.bio-entry,
.bio-movement { max-width:1040px; margin-left:auto; margin-right:auto; }
.bio-opening { padding-top:clamp(8px, 1.5vw, 26px); }
.bio-opening h2 { margin-bottom:clamp(34px,4vw,62px); }
.bio-lead { max-width:760px; font-family:var(--serif); font-size:clamp(24px,2.3vw,37px)!important; line-height:1.35!important; }
.bio-entry { display:grid; grid-template-columns:minmax(270px,.78fr) minmax(0,1.08fr); gap:clamp(42px,7vw,104px); align-items:start; margin-top:clamp(74px,8vw,130px); }
.bio-image-space { width:100%; margin:0; aspect-ratio:3 / 4; }
.bio-image-space img { display:block; width:100%; height:100%; object-fit:cover; object-position:50% 37%; }
.bio-entry .prose,
.bio-movement { max-width:720px; }
.bio-entry .prose p,
.bio-movement p { font-size:clamp(19px,1.52vw,25px)!important; line-height:1.58; margin:0 0 28px; }
.bio-movement { margin-top:clamp(88px,9vw,145px); }
.bio-movement--last { margin-top:clamp(88px,9vw,145px); }
.bio-movement em { font-style:italic; color:var(--wix-blue); }
.bio .socrate-quote { margin-top:clamp(86px,9vw,142px); margin-bottom:0; }

/* Ricerca: stessa pagina editoriale, ritmo più consultabile e senza card. */
.research { background:var(--wix-paper); }
.research-intro,.research-block { max-width:930px; margin:0 auto; }
.research-intro { margin-bottom:clamp(76px,8vw,122px); }
.research-intro h2 { margin-bottom:clamp(38px,4vw,64px); }
.research-intro p { font-family:var(--serif); font-size:clamp(23px,2.15vw,34px)!important; line-height:1.42; }
.research-block { padding-top:clamp(54px,6vw,92px); border-top:1px solid rgba(64,95,112,.28); }
.research-block + .research-block { margin-top:clamp(68px,7vw,110px); }
.research-block h3 { font-family:var(--serif); font-weight:400; font-size:clamp(40px,4.3vw,67px); letter-spacing:-.025em; margin:0 0 36px; color:var(--wix-blue); }
.research-block > p,.research-detail p,.research-detail li { font-size:clamp(18px,1.38vw,23px); line-height:1.55; color:var(--wix-blue); }
.research-block > p { margin:0 0 24px; }
.research-list article { padding:25px 0 27px; border-top:1px solid rgba(64,95,112,.18); }
.research-list h4 { margin:0 0 8px; color:var(--wix-blue); font-family:var(--serif); font-size:clamp(19px,1.65vw,26px); line-height:1.25; font-weight:400; }
.research-list article p { margin:0; color:var(--wix-blue); font-size:clamp(16px,1.22vw,20px); line-height:1.45; }
.research-toggle { display:inline-flex; margin-top:34px; padding:0 0 7px; border:0; border-bottom:1px solid currentColor; background:transparent; color:var(--wix-blue); font:600 14px/1.2 var(--sans); letter-spacing:.055em; cursor:pointer; }
.research-toggle:hover,.research-toggle:focus-visible { color:#8b6334; outline:2px solid rgba(64,95,112,.38); outline-offset:7px; }
.research-detail { margin-top:36px; padding:32px 0 0; border-top:1px solid rgba(64,95,112,.18); }
.research-detail ul { margin:0; padding-left:1.2em; }
.research-detail li { padding-left:.35em; margin-bottom:16px; }
.research-detail h4 { margin:36px 0 18px; font-size:clamp(19px,1.65vw,26px); }
.research-detail p { margin:0 0 21px; }
.academic-entry { margin:0 0 clamp(32px,3.7vw,50px); }
.research #academic-detail { border-top:0; }
.academic-entry:last-child { margin-bottom:0; }
.academic-entry--recognitions { margin-top:clamp(48px,5.1vw,72px); }
.academic-entry p { margin:0; }
.academic-entry .academic-label {
  margin-bottom:9px;
  color:var(--wix-blue);
  font-family:var(--sans);
  font-size:clamp(19px,1.5vw,24px);
  font-weight:600;
  line-height:1.25;
  letter-spacing:.025em;
}
.academic-entry .academic-course {
  margin-bottom:0;
  font-size:clamp(16px,1.16vw,19px)!important;
  line-height:1.45;
}
.academic-entry .academic-description {
  margin-bottom:0;
  font-size:clamp(16px,1.16vw,19px)!important;
  line-height:1.45;
}
.academic-entry .academic-title {
  margin-bottom:9px;
  font-family:var(--serif);
  font-size:clamp(18px,1.42vw,23px);
  line-height:1.28;
}
.academic-entry .academic-title span { font-style:normal; }
.academic-entry .academic-detail {
  margin-bottom:0;
  font-size:clamp(14px,1.02vw,17px)!important;
  line-height:1.45;
}
.academic-entry .academic-label a {
  color:inherit;
  text-decoration-color:rgba(64,95,112,.45);
  text-decoration-thickness:1px;
  text-underline-offset:.16em;
}
.academic-entry .academic-label a:hover,
.academic-entry .academic-label a:focus-visible { color:#8b6334; }
.academic-subheading {
  margin:clamp(48px,5vw,70px) 0 20px!important;
  font-family:var(--serif)!important;
  font-size:clamp(24px,2vw,32px)!important;
  font-weight:400!important;
  line-height:1.15!important;
}
.academic-award {
  margin:0 0 12px!important;
  font-family:var(--sans)!important;
  font-size:clamp(14px,1.02vw,17px)!important;
  font-weight:600!important;
  line-height:1.42!important;
}

/* Nella prima parte della ricerca è la tipografia, non il bordo, a ordinare il passo. */
.research .research-block:not(.research-list) {
  border-top:0;
  padding-top:0;
}
@media (max-width:760px) {
  .bio-entry { grid-template-columns:1fr; gap:42px; margin-top:62px; }
  .bio-image-space { max-width:460px; }
  .bio-entry .prose p,.bio-movement p { font-size:19px!important; line-height:1.55; }
  .bio-movement { margin-top:76px; }
  .research-intro { margin-bottom:68px; }
  .research-block + .research-block { margin-top:64px; }
  .research-block > p,.research-detail p,.research-detail li { font-size:18px; }
  .academic-entry { margin-bottom:36px; }
  .academic-entry .academic-label { font-size:20px; }
  .academic-entry .academic-course { font-size:17px!important; }
  .academic-entry .academic-description { font-size:17px!important; }
  .academic-entry .academic-title { font-size:19px; }
  .academic-entry .academic-detail { font-size:16px!important; }
  .academic-subheading { font-size:26px!important; }
  .academic-award { font-size:16px!important; }
}

/* Ultima calibrazione: le citazioni scandiscono, ma non rallentano il flusso. */
blockquote {
  padding:clamp(30px, 3.7vw, 54px) clamp(28px, 8vw, 170px) clamp(28px, 3.5vw, 50px);
}
blockquote p {
  font-size:clamp(29px, 3.25vw, 52px);
  line-height:1.16;
}
blockquote cite { margin-top:13px; }

/* La bio rimane ampia nei suoi tre movimenti, ma più continua nel passo. */
.bio-entry .prose p,
.bio-movement p {
  font-size:clamp(18px, 1.38vw, 23px)!important;
  line-height:1.53;
  margin-bottom:21px;
}
.bio-movement,
.bio-movement--last { margin-top:clamp(72px, 7.2vw, 118px); }
.bio .socrate-quote { margin-top:clamp(70px, 7vw, 108px); }

@media (max-width:760px) {
  blockquote { padding:31px 25px 29px; }
  blockquote p { font-size:29px; line-height:1.17; }
  .bio-entry .prose p,
  .bio-movement p { font-size:18px!important; line-height:1.52; margin-bottom:20px; }
  .bio-movement,
  .bio-movement--last { margin-top:64px; }
  .bio .socrate-quote { margin-top:64px; }
}

/* Bio in due sezioni: la prima si chiude con il percorso a Philo, la seconda
   riprende il filo del lavoro con un respiro editoriale, mai promozionale. */
.bio { padding-bottom:0; }
.work-method {
  background:var(--wix-paper);
  padding-top:clamp(132px, 11vw, 184px);
  padding-bottom:clamp(38px, 3.6vw, 54px);
}
.work-method__inner {
  max-width:1040px;
  margin:0 auto;
  display:block;
}
.work-method__inner h2 {
  max-width:540px;
  margin:0 0 clamp(34px, 4vw, 58px);
  font-size:clamp(54px, 5.2vw, 84px);
  line-height:1;
}
.work-method__movement {
  max-width:720px;
  margin-left:auto;
}
.work-method__inner p {
  margin:0 0 21px;
  color:var(--wix-blue);
  font-size:clamp(18px, 1.38vw, 23px)!important;
  line-height:1.53;
}
.work-method__inner p:last-child { margin-bottom:0; }

/* Apertura della bio: il titolo introduce direttamente ritratto e racconto. */
.bio-opening h2 { margin-bottom:0; }
.bio-entry { margin-top:clamp(30px, 3.6vw, 56px); }

@media (max-width:760px) {
  .bio-entry { margin-top:36px; }
  .work-method { padding-top:92px; padding-bottom:36px; }
  .work-method__inner { display:block; max-width:720px; }
  .work-method__inner h2 {
    max-width:none;
    margin:0 0 35px;
    font-size:clamp(42px, 11vw, 52px);
    line-height:1;
  }
  .work-method__inner p {
    margin-bottom:20px;
    font-size:18px!important;
    line-height:1.52;
  }
}

/* Ricerca: una scansione più raccolta, senza perdere il respiro editoriale. */
.research {
  padding-top:clamp(104px, 9vw, 144px);
  padding-bottom:clamp(108px, 9vw, 148px);
}
.research-intro { margin-bottom:clamp(56px, 5.7vw, 82px); }
.research-intro h2 { margin-bottom:clamp(27px, 2.8vw, 42px); }
.research-block + .research-block { margin-top:clamp(50px, 5.4vw, 76px); }
.research-block h3 { margin-bottom:clamp(25px, 2.8vw, 34px); }
.research-block > p { margin-bottom:18px; }
.academic-entry { margin-bottom:clamp(24px, 2.7vw, 36px); }
.research-toggle { margin-top:27px; }
.research-detail { margin-top:28px; padding-top:27px; }
.academic-subheading { margin:clamp(38px, 4vw, 52px) 0 17px!important; }
.academic-award { margin-bottom:9px!important; }

@media (max-width:760px) {
  .research {
    padding-top:76px;
    padding-bottom:78px;
  }
  .research-intro { margin-bottom:48px; }
  .research-intro h2 {
    margin-bottom:26px;
    font-size:clamp(42px, 11vw, 50px);
  }
  .research-intro p {
    font-size:23px!important;
    line-height:1.4;
  }
  .research-block + .research-block { margin-top:48px; }
  .research-block h3 {
    margin-bottom:26px;
    font-size:clamp(37px, 10vw, 46px);
  }
  .research-block > p {
    margin-bottom:18px;
    font-size:17px;
    line-height:1.5;
  }
  .academic-entry { margin-bottom:28px; }
  .academic-entry .academic-label {
    font-size:18px;
    line-height:1.28;
  }
  .academic-entry .academic-title {
    margin-bottom:7px;
    font-size:18px;
  }
  .academic-entry .academic-description {
    font-size:16px!important;
    line-height:1.42;
  }
  .academic-entry .academic-detail { font-size:15px!important; }
  .research-toggle { margin-top:24px; }
  .research-detail {
    margin-top:26px;
    padding-top:24px;
  }
  .academic-subheading {
    margin:38px 0 16px!important;
    font-size:23px!important;
  }
.academic-award {
    margin-bottom:9px!important;
    font-size:15px!important;
  }
}

/* Il modo di accompagnare: i tre movimenti sono affidati soltanto al ritmo. */
.work-method__movement + .work-method__movement {
  margin-top:clamp(34px, 3.6vw, 50px);
}
.work-method__movement p {
  margin:0;
}
.work-method__movement p:last-child { margin-bottom:0; }
.work-method {
  position:relative;
  isolation:isolate;
  overflow:hidden;
}
.work-method__inner { position:relative; z-index:1; }
.work-method__atlas {
  position:absolute;
  z-index:0;
  width:clamp(560px, 48vw, 760px);
  right:clamp(-8px, 1.8vw, 30px);
  bottom:clamp(42px, 4vw, 64px);
  margin:0;
  opacity:.19;
  mix-blend-mode:multiply;
  pointer-events:none;
  transform:rotate(4deg);
}
.work-method__atlas img { display:block; width:100%; height:auto; }

@media (max-width:760px) {
  .work-method__movement + .work-method__movement { margin-top:34px; }
  .work-method__movement p { margin-bottom:0; }
  .work-method__atlas {
    width:440px;
    right:-122px;
    bottom:92px;
    opacity:.13;
  }
}

/* Socrate: una soglia piena ma proporzionata alle altre fasce-citazione. */
.socrate-quote,
.epicuro-quote {
  width:100%;
  max-width:none;
  margin:0;
  padding:clamp(36px, 4.4vw, 60px) clamp(28px, 8vw, 170px) clamp(34px, 4.1vw, 56px);
}
.socrate-quote p,
.epicuro-quote p {
  max-width:1180px;
  font-size:clamp(36px, 4vw, 64px);
  line-height:1.14;
}
.socrate-quote + .work-method {
  padding-top:clamp(82px, 7vw, 116px);
}
.epicuro-quote + .research {
  padding-top:clamp(82px, 7vw, 116px);
}

@media (max-width:760px) {
  .socrate-quote,
  .epicuro-quote {
    padding:38px 25px 35px;
  }
  .socrate-quote p,
  .epicuro-quote p { font-size:35px; }
  .socrate-quote + .work-method { padding-top:72px; }
  .epicuro-quote + .research { padding-top:72px; }
}

/* Ricerca, pubblicazioni e incontri: presenza editoriale più discreta del percorso principale. */
.research {
  padding-top:clamp(82px, 7vw, 112px);
  padding-bottom:clamp(88px, 7.4vw, 118px);
}
.research-intro,
.research-block { max-width:820px; }
.research-intro { margin-bottom:clamp(44px, 4.6vw, 64px); }
.research-intro h2 {
  margin-bottom:clamp(23px, 2.2vw, 32px);
  font-size:clamp(48px, 4.7vw, 74px);
}
.research-intro p {
  font-size:clamp(20px, 1.65vw, 27px)!important;
  line-height:1.43;
}
.research-block + .research-block { margin-top:clamp(42px, 4.2vw, 60px); }
.research-block h3 {
  margin-bottom:23px;
  font-size:clamp(34px, 3.25vw, 50px);
}
.research-block > p,
.research-detail p,
.research-detail li {
  font-size:clamp(16px, 1.18vw, 19px);
  line-height:1.52;
}
.research-block > p { margin-bottom:16px; }
.research-opening {
  padding-top:0;
  border-top:0;
}
.research-opening h2 {
  margin:0 0 clamp(23px, 2.2vw, 32px);
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(48px, 4.7vw, 74px);
  letter-spacing:-.025em;
  line-height:1.05;
  color:var(--wix-blue);
}
.research-opening > p { margin-bottom:16px; }
.research-list article { padding:19px 0 21px; }
.research-list h4,
.research-detail h4 { font-size:clamp(18px, 1.38vw, 22px); }
.research-list article p { font-size:clamp(15px, 1.08vw, 17px); }
.academic-entry { margin-bottom:clamp(20px, 2.1vw, 29px); }
.academic-entry .academic-label { font-size:clamp(17px, 1.23vw, 20px); }
.academic-entry .academic-course,
.academic-entry .academic-description { font-size:clamp(15px, 1.04vw, 17px)!important; }
.academic-entry .academic-title { font-size:clamp(17px, 1.22vw, 20px); }
.academic-entry .academic-detail { font-size:clamp(14px, .96vw, 16px)!important; }
.academic-subheading { font-size:clamp(22px, 1.7vw, 27px)!important; }
.academic-award { font-size:clamp(13px, .94vw, 15px)!important; }
.research-list .meeting-title {
  margin:0 0 5px!important;
  color:var(--wix-blue)!important;
  font-family:var(--serif)!important;
  font-size:clamp(17px, 1.26vw, 20px)!important;
  line-height:1.28!important;
}
.research-meetings article h4 { font-weight:600; }

@media (max-width:760px) {
  .research { padding-top:68px; padding-bottom:70px; }
  .research-intro { margin-bottom:40px; }
  .research-intro h2 {
    margin-bottom:22px;
    font-size:clamp(40px, 10.5vw, 47px);
  }
  .research-intro p { font-size:20px!important; }
  .research-block + .research-block { margin-top:40px; }
  .research-block h3 {
    margin-bottom:21px;
    font-size:clamp(32px, 9vw, 40px);
  }
  .research-block > p,
  .research-detail p,
  .research-detail li { font-size:16px; }
  .research-block > p { margin-bottom:15px; }
  .research-opening h2 {
    margin-bottom:22px;
    font-size:clamp(40px, 10.5vw, 47px);
  }
  .academic-entry { margin-bottom:23px; }
  .academic-entry .academic-label { font-size:17px; }
  .academic-entry .academic-course,
  .academic-entry .academic-description { font-size:15px!important; }
  .academic-entry .academic-title { font-size:17px; }
  .academic-entry .academic-detail { font-size:14px!important; }
  .academic-subheading { font-size:21px!important; }
  .academic-award { font-size:14px!important; }
  .research-list .meeting-title { font-size:17px!important; }
}

/* Accordions: stessa scala raccolta del percorso formativo. */
#publications-detail,
#meetings-detail {
  margin-top:24px;
  padding-top:23px;
}
#publications-detail > p,
#publications-detail > article,
#meetings-detail > article {
  margin:0 0 17px;
  padding:0 0 17px;
  border-bottom:1px solid rgba(64,95,112,.14);
}
#publications-detail > p,
#publications-detail article p,
#meetings-detail article p {
  margin:0;
  font-size:clamp(14px,1.04vw,17px);
  line-height:1.45;
}
#publications-detail article h4 {
  margin:0 0 6px;
  font-size:clamp(17px,1.22vw,20px);
  line-height:1.28;
}
#meetings-detail article h4 {
  margin:0 0 5px;
  font-family:var(--sans);
  font-size:clamp(14px,.96vw,16px);
  font-weight:600;
  line-height:1.35;
}
#meetings-detail .meeting-title {
  margin:0 0 5px!important;
  font-size:clamp(17px,1.22vw,20px)!important;
}
#academic-detail > .academic-detail {
  margin:2px 0 0;
  font-size:clamp(12px,.85vw,14px)!important;
  line-height:1.4;
  opacity:.82;
}
.research-publications > article {
  margin:0 0 17px;
  padding:0 0 17px;
  border-bottom:1px solid rgba(64,95,112,.14);
}
.research-publications > article h4 {
  margin:0 0 6px;
  font-size:clamp(17px,1.22vw,20px);
  line-height:1.28;
}
.research-publications > article p {
  margin:0;
  font-size:clamp(14px,1.04vw,17px);
  line-height:1.45;
}
.research-meetings > article {
  margin:0 0 17px;
  padding:0 0 17px;
  border-bottom:1px solid rgba(64,95,112,.14);
}
.research-meetings > article h4 {
  margin:0 0 5px;
  font-family:var(--sans);
  font-size:clamp(14px,.96vw,16px);
  font-weight:600;
  line-height:1.35;
}
.research-meetings > article .meeting-title {
  margin:0 0 5px!important;
  font-size:clamp(17px,1.22vw,20px)!important;
}
.research-meetings > article > p:last-child {
  margin:0;
  font-size:clamp(14px,1.04vw,17px);
  line-height:1.45;
}
/* I blocchi di approfondimento restano distinti, ma più raccolti. */
.research-opening + .research-publications,
.research-publications + .research-meetings,
.research-meetings + .research-block {
  margin-top:clamp(22px, 2.2vw, 32px);
  padding-top:clamp(28px, 3.2vw, 44px);
}
.research {
  position:relative;
  isolation:isolate;
  overflow:hidden;
}
.research > :not(.research-cosmic-atlas) {
  position:relative;
  z-index:1;
}
.research-cosmic-atlas {
  position:absolute;
  z-index:0;
  inset:0;
  margin:0;
  pointer-events:none;
}
.research-cosmic-atlas img {
  position:absolute;
  display:block;
  width:clamp(1180px,122vw,1900px);
  max-width:none;
  height:auto;
  opacity:.18;
  mix-blend-mode:multiply;
}
.research-cosmic-atlas img:first-child {
  top:14%;
  left:50%;
  transform:translateX(-50%) rotate(-2deg);
}
.research-cosmic-atlas img:last-child {
  right:50%;
  bottom:11%;
  transform:translateX(50%) scaleX(-1) rotate(-3deg);
  opacity:.14;
}

/* Rifiniture finali: la gerarchia resta leggera, ma più leggibile. */
.concept-line--exit span {
  display:inline-block;
  margin-left:.18em;
  font-size:.48em;
  letter-spacing:-.01em;
  vertical-align:baseline;
}

.audience-card p {
  font-size:clamp(20px,1.48vw,24px);
  line-height:1.48;
}

.research-opening > p {
  font-size:clamp(19px,1.45vw,23px);
  line-height:1.58;
}
.research-opening-atlas {
  width:min(100%, 930px);
  margin:clamp(22px,3vw,40px) auto 0;
  pointer-events:none;
}
.research-opening-atlas img {
  display:block;
  width:100%;
  height:auto;
  opacity:.42;
  mix-blend-mode:multiply;
}

/* La firma mantiene la propria palette, ma parla la stessa lingua delle fasce-citazione. */
.signature {
  min-height:0;
  padding:clamp(62px,7vw,104px) var(--wix-pad);
}
.signature p {
  max-width:1000px;
  font-size:clamp(34px,3.55vw,58px);
  line-height:1.14;
  letter-spacing:-.035em;
  font-style:normal;
}
.signature cite {
  margin-top:18px;
  color:rgba(248,245,239,.82);
  font-size:12px;
  letter-spacing:.12em;
}

/* Contatti: informazioni essenziali e un modulo sobrio, senza introdurre una nuova estetica. */
.contact {
  grid-template-columns:minmax(0,.8fr) minmax(240px,.9fr) minmax(280px,1.1fr);
  gap:clamp(36px,6vw,94px);
  align-items:start;
}
.contact-details {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
  padding-top:12px;
  color:var(--wix-blue);
  font-size:clamp(17px,1.25vw,20px);
  line-height:1.5;
}
.contact-details p { margin:0 0 8px; }
.contact-details a {
  color:inherit;
  text-decoration:none;
  border-bottom:1px solid rgba(64,95,112,.4);
}
.contact-form { display:grid; gap:17px; }
.contact-form label {
  display:grid;
  gap:7px;
  color:var(--wix-blue);
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.contact-form input,.contact-form textarea {
  width:100%;
  border:0;
  border-bottom:1px solid rgba(64,95,112,.42);
  border-radius:0;
  background:transparent;
  color:var(--wix-blue);
  padding:8px 0;
  font:400 17px/1.45 var(--sans);
  resize:vertical;
}
.contact-form input:focus,.contact-form textarea:focus {
  outline:0;
  border-bottom-color:var(--wix-blue);
  box-shadow:0 2px 0 rgba(64,95,112,.13);
}
.contact-form .button {
  justify-self:start;
  color:var(--wix-blue);
  cursor:pointer;
  background:none;
}

@media (max-width:760px) {
  .concept-line--exit span { font-size:.5em; }
  .audience-card p { font-size:19px; }
  .research-opening > p { font-size:18px; }
  .research-opening-atlas { margin-top:24px; }
  .research-opening-atlas img { opacity:.34; }
  .signature { padding:62px 24px; }
  .signature p { font-size:34px; }
  .signature cite { font-size:11px; }
  .contact { grid-template-columns:1fr; gap:30px; }
  .contact-details { padding-top:0; }
}

@media (max-width:760px) {
  #publications-detail,
  #meetings-detail {
    margin-top:22px;
    padding-top:21px;
  }
  #publications-detail > p,
  #publications-detail > article,
  #meetings-detail > article {
    margin-bottom:15px;
    padding-bottom:15px;
  }
  #publications-detail > p,
  #publications-detail article p,
  #meetings-detail article p { font-size:15px; }
  #publications-detail article h4,
  #meetings-detail .meeting-title { font-size:17px!important; }
  #meetings-detail article h4 { font-size:14px; }
  #academic-detail > .academic-detail { font-size:12px!important; }
  .research-publications > article h4 { font-size:17px; }
  .research-publications > article p { font-size:15px; }
  .research-meetings > article h4 { font-size:14px; }
  .research-meetings > article .meeting-title { font-size:17px!important; }
  .research-meetings > article > p:last-child { font-size:15px; }
  .research-opening + .research-publications,
  .research-publications + .research-meetings,
  .research-meetings + .research-block {
    margin-top:24px;
    padding-top:28px;
  }
  .research-cosmic-atlas img {
    width:920px;
    opacity:.16;
  }
  .research-cosmic-atlas img:first-child { top:10%; }
  .research-cosmic-atlas img:last-child {
    bottom:7%;
    opacity:.12;
  }
}

/* Rete cosmica: un filo diagonale attraverso il secondo movimento della bio. */
.bio-movement--cosmic {
  position:relative;
  isolation:isolate;
}
.bio-movement--cosmic > p {
  position:relative;
  z-index:1;
}
.bio-cosmic-network {
  position:absolute;
  z-index:0;
  top:12px;
  left:50%;
  width:clamp(1080px,142vw,1920px);
  max-width:none;
  margin:0;
  opacity:.18;
  mix-blend-mode:multiply;
  pointer-events:none;
  transform:translateX(-50%);
}
.bio-cosmic-network img {
  display:block;
  width:100%;
  height:auto;
}

@media (max-width:760px) {
  .bio-cosmic-network {
    top:28px;
    width:880px;
    opacity:.15;
  }
}

/* Allineamenti finali della pratica e della ricerca. */
.work-method__atlas {
  width:clamp(500px,42vw,680px);
  left:clamp(8px,3vw,54px);
  right:auto;
  bottom:clamp(38px,3vw,54px);
  transform:scaleX(-1) rotate(4deg);
}
.research-cosmic-atlas img:first-child { top:7%; }

/* La citazione conclusiva conserva il colore proprio, non una scala minore. */
.signature p { font-size:clamp(40px,4.1vw,66px); }
.signature cite { font-size:13px; }

/* I riferimenti di contatto seguono direttamente il titolo; il modulo resta accanto. */
.contact-heading { grid-column:1; grid-row:1; }
.contact-details { grid-column:1; grid-row:2; padding-top:0; }
.contact-form { grid-column:2 / span 2; grid-row:1 / span 2; }
.contact-form input,.contact-form textarea {
  border:1px solid rgba(64,95,112,.23);
  background:rgba(255,255,255,.78);
  padding:12px 14px;
}
.contact-form textarea { min-height:126px; }
.contact-form input:focus,.contact-form textarea:focus {
  border-color:rgba(64,95,112,.68);
  box-shadow:0 0 0 3px rgba(64,95,112,.10);
}

@media (max-width:760px) {
  .work-method__atlas {
    width:min(360px,calc(100% - 32px));
    left:16px;
    right:auto;
    bottom:34px;
    opacity:.16;
    transform:scaleX(-1) rotate(4deg);
  }
  .research-cosmic-atlas img:first-child { top:4%; }
  .signature p { font-size:40px; }
  .signature cite { font-size:12px; }
  .contact-heading,.contact-details,.contact-form {
    grid-column:1;
    grid-row:auto;
  }
  .contact-form textarea { min-height:118px; }
}

/* La firma conclusiva resta una fascia distinta, ma con la stessa scala delle citazioni. */
.signature p { font-size:clamp(44px,4.55vw,72px); }
.signature cite {
  display:block;
  width:100%;
  margin:22px 0 0;
  text-align:center;
}

/* La citazione e l'autore non devono più contendersi la stessa riga. */
.signature {
  flex-direction:column;
  gap:0;
}
.signature p {
  width:min(100%, 1540px);
  max-width:none;
  text-align:center;
}

/* Contatti: una colonna di orientamento, un modulo raccolto, una tavola laterale. */
.contact {
  grid-template-columns:minmax(230px,.72fr) minmax(300px,.94fr) minmax(220px,.7fr);
  gap:clamp(32px,4.2vw,68px);
  align-items:stretch;
}
.contact-info {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:clamp(48px,6vw,88px);
  padding-top:4px;
}
.contact-info .contact-heading,
.contact-info .contact-details {
  grid-column:auto;
  grid-row:auto;
}
.contact-info .contact-heading h2 {
  font-size:clamp(48px,4.45vw,70px);
  margin:0;
}
.contact-info .contact-details {
  font-size:clamp(16px,1.15vw,18px);
  line-height:1.52;
}
.contact-form {
  grid-column:2;
  grid-row:auto;
  align-self:start;
  width:100%;
}
.contact-atlas {
  grid-column:3;
  grid-row:auto;
  align-self:stretch;
  min-height:360px;
  margin:0;
  overflow:hidden;
  pointer-events:none;
}
.contact-atlas img {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center bottom;
  opacity:.74;
  mix-blend-mode:multiply;
}

@media (max-width:760px) {
  .contact { grid-template-columns:1fr; gap:34px; }
  .contact-info { gap:38px; }
  .contact-form,.contact-atlas { grid-column:1; grid-row:auto; }
  .contact-atlas { min-height:250px; max-width:330px; }
}

/* La tavola dei germogli entra come atlante trasparente, non come terza card. */
.contact {
  grid-template-columns:minmax(230px,.72fr) minmax(320px,1.1fr);
  position:relative;
  isolation:isolate;
  overflow:hidden;
}
.contact > :not(.contact-atlas) { position:relative; z-index:1; }
.contact-form {
  grid-column:2;
  grid-row:auto;
  max-width:560px;
  justify-self:start;
}
.contact-atlas {
  position:absolute!important;
  z-index:0!important;
  width:clamp(540px,43vw,700px);
  min-height:0;
  height:auto;
  top:clamp(-24px,-1vw,-8px);
  right:clamp(-84px,-4vw,-28px);
  margin:0;
  overflow:visible;
  opacity:.19;
  mix-blend-mode:multiply;
  transform:rotate(-3deg);
  pointer-events:none;
}
.contact-atlas img {
  width:100%;
  height:auto;
  object-fit:initial;
  object-position:initial;
  opacity:1;
  mix-blend-mode:normal;
}

@media (max-width:760px) {
  .contact { grid-template-columns:1fr; }
  .contact-form { grid-column:1; max-width:none; }
  .contact-atlas { display:none; }
}

/* Mobile: collegamenti essenziali sempre presenti, menu raccolto per le altre sezioni. */
.mobile-nav-links { display:none; }
.mobile-back-to-top { display:none; }

@media (max-width:760px) {
  .site-header { gap:6px; }
  .brand { flex:0 0 auto; }
  .mobile-nav-links {
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    margin-left:auto;
    min-width:0;
  }
  .mobile-nav-links a {
    display:inline-flex;
    align-items:center;
    min-height:44px;
    padding:0 2px;
    color:var(--wix-blue);
    font-size:10px;
    letter-spacing:.06em;
    line-height:1;
    text-decoration:none;
    text-transform:uppercase;
    white-space:nowrap;
  }
  .mobile-nav-links a:focus-visible,
  .mobile-nav-links a:hover { color:var(--wix-taupe); outline:none; }
  .nav-toggle {
    flex:0 0 44px;
    width:44px;
    min-height:44px;
    align-items:center;
    justify-content:center;
  }
  .navigation { z-index:2; }
  .navigation .nav-mobile-shortcut-exclude { display:none; }

  /* La griglia è a una colonna e ogni figlio può restringersi: nessuna riga
     del percorso, compresa Ricomposizione, mantiene una traslazione laterale. */
  .journey .steps,
  .journey .steps li,
  .journey .steps li > div {
    min-width:0;
    max-width:100%;
  }
  .journey .steps li,
  .journey .steps li:nth-child(2) {
    grid-template-columns:minmax(0,1fr);
    transform:none!important;
  }
  .journey .steps li > * { min-width:0; transform:none!important; }
  .journey .steps li > div {
    grid-template-columns:minmax(0,1fr)!important;
    width:100%;
  }
  .journey .steps h3,
  .journey .steps p { min-width:0; width:auto; }
  .journey .steps li.is-active::before { opacity:0; transform:none; }
  .journey .steps p {
    max-width:100%;
    overflow-wrap:anywhere;
    hyphens:auto;
  }

  .mobile-back-to-top {
    position:fixed;
    z-index:2147483647;
    right:max(14px, env(safe-area-inset-right));
    bottom:max(18px, calc(env(safe-area-inset-bottom) + 12px));
    display:flex;
    align-items:center;
    justify-content:center;
    width:60px;
    height:60px;
    border:2px solid var(--wix-paper);
    border-radius:50%;
    background:var(--wix-blue);
    box-shadow:0 8px 22px rgba(40,63,76,.32);
    color:var(--wix-paper);
    font:500 31px/1 var(--sans);
    cursor:pointer;
    -webkit-tap-highlight-color:transparent;
  }
  .mobile-back-to-top.back-to-top--hidden {
    display:none;
  }
  .mobile-back-to-top:focus-visible { outline:3px solid var(--wix-sand); outline-offset:3px; }
}

@media (max-width:360px) {
  .mobile-nav-links { gap:6px; }
  .mobile-nav-links a { font-size:9px; letter-spacing:.035em; }
  .nav-toggle { flex-basis:40px; width:40px; }
}
