/* Section-specific styles — Warm editorial */

/* ── Hero ── */
.hero{
  min-height:100vh;min-height:100dvh;
  display:flex;align-items:center;justify-content:center;
  padding:calc(var(--nav-h) + var(--sp-5)) 0 var(--sp-5);
  position:relative;
  text-align:center;
  overflow:hidden;
  color:var(--bg);
  background:
    radial-gradient(120% 80% at 50% 0%, rgba(30,58,102,.45) 0%, transparent 60%),
    radial-gradient(80% 60% at 50% 110%, rgba(20,40,71,.6) 0%, transparent 70%),
    linear-gradient(180deg, #142847 0%, #1E3A66 50%, #142847 100%);
  isolation:isolate;
}
.hero.hero--no-video::before,
.hero.hero--no-video::after{display:none}
.hero__video{
  position:absolute;inset:0;z-index:-2;
  width:100%;height:100%;
  object-fit:cover;
  opacity:0;
  transition:opacity .6s ease-out;
  will-change:opacity;
  pointer-events:none;
}
.hero__video.is-ready{opacity:1}
@media (prefers-reduced-motion:reduce){
  .hero__video{display:none}
}
.hero::before{
  content:"";
  position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(180deg,rgba(20,17,15,.55) 0%,rgba(20,17,15,.5) 40%,rgba(20,17,15,.75) 100%);
  pointer-events:none;
}
.hero::after{
  content:"";
  position:absolute;inset:0;z-index:-1;
  background:radial-gradient(60% 50% at 50% 45%,transparent,rgba(20,17,15,.35));
  pointer-events:none;
}
.hero__inner{max-width:1000px;margin:0 auto;padding:0 var(--sp-3);position:relative;z-index:1}
.hero__eyebrow{
  display:inline-flex;align-items:center;gap:.6rem;
  margin-bottom:2rem;justify-content:center;
  color:rgba(247,245,240,.75);
  text-transform:uppercase;letter-spacing:var(--tr-eye);font-size:.6875rem;font-weight:500;
  font-family:var(--font-sans);
}
.hero__eyebrow::before{content:"";width:2rem;height:1px;background:rgba(247,245,240,.4)}
.hero__eyebrow::after{content:"";width:2rem;height:1px;background:rgba(247,245,240,.4)}
.hero__title{
  font-family:var(--font-display);
  font-size:clamp(2.4rem,6.2vw,4.75rem);
  font-weight:400;
  line-height:1.05;
  letter-spacing:var(--tr-tight);
  margin:0 0 1.5rem;
  color:var(--bg);
}
.hero__title em{
  font-style:italic;
  font-weight:400;
  color:var(--bg);
  background:none;
  -webkit-text-fill-color:currentColor;
}
.hero__sub{
  font-family:var(--font-sans);
  font-size:clamp(1rem,1.4vw,1.1875rem);
  color:rgba(247,245,240,.82);
  line-height:1.55;
  max-width:600px;margin:0 auto 2.75rem;
  font-weight:400;letter-spacing:var(--tr-normal);
}
.hero__sub--eye{
  display:inline-flex;align-items:center;gap:.75rem;justify-content:center;
  font-family:var(--font-sans);
  font-size:.75rem;font-weight:500;
  letter-spacing:var(--tr-eye);text-transform:uppercase;
  color:rgba(247,245,240,.78);
  max-width:none;width:auto;margin:0 auto 2.5rem;line-height:1.4;
  flex-wrap:wrap;
}
.hero__sub--eye::before,.hero__sub--eye::after{content:"";width:2rem;height:1px;background:rgba(247,245,240,.35);flex-shrink:0}
@media (max-width:520px){
  .hero__sub--eye{font-size:.6875rem;gap:.5rem}
  .hero__sub--eye::before,.hero__sub--eye::after{width:1.25rem}
}
.hero__ctas{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center;margin-bottom:var(--sp-5)}
.hero__ctas .btn{background:var(--accent);border-color:var(--accent);color:var(--bg)}
.hero__ctas .btn:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.hero__ctas .btn--ghost{background:transparent;color:var(--bg);border-color:rgba(247,245,240,.4)}
.hero__ctas .btn--ghost:hover{background:transparent;color:var(--bg);border-color:var(--bg)}
.hero__meta{
  display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4);
  max-width:760px;margin:0 auto;
  padding:var(--sp-4) 0 0;border-top:1px solid rgba(247,245,240,.18);
}
.hero__meta-item .k{font-family:var(--font-sans);font-size:.6875rem;color:rgba(247,245,240,.55);margin-bottom:.6rem;letter-spacing:var(--tr-eye);text-transform:uppercase;font-weight:500}
.hero__meta-item .v{font-family:var(--font-display);font-size:2.25rem;font-weight:400;letter-spacing:var(--tr-tight);line-height:1;color:var(--bg)}
.hero__meta-item .v em{font-style:italic;font-weight:400;color:var(--bg);background:none;-webkit-text-fill-color:currentColor}
.hero__scroll{
  position:absolute;bottom:1.75rem;left:50%;transform:translateX(-50%);
  font-family:var(--font-sans);
  font-size:.6875rem;letter-spacing:var(--tr-eye);text-transform:uppercase;
  color:rgba(247,245,240,.6);font-weight:500;
  display:flex;flex-direction:column;align-items:center;gap:.5rem;
  animation:scrollBounce 2.2s var(--ease) infinite;
}
.hero__scroll::after{
  content:"";width:1px;height:28px;background:linear-gradient(180deg,rgba(247,245,240,.6),transparent);
}
@keyframes scrollBounce{0%,100%{transform:translate(-50%,0);opacity:.6}50%{transform:translate(-50%,6px);opacity:1}}
@media (max-width:640px){.hero__meta{grid-template-columns:1fr;gap:var(--sp-3)}.hero__scroll{display:none}}

/* ── Marquee — hairlines, no fill ── */
.marquee{
  overflow:hidden;
  background:transparent;
  color:var(--ink);
  padding:1.5rem 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  position:relative;
}
.marquee__track{
  display:flex;gap:3rem;
  animation:marquee 55s linear infinite;
  white-space:nowrap;
  width:max-content;
}
.marquee__item{
  font-family:var(--font-display);
  font-size:clamp(1.75rem,3.5vw,2.75rem);
  font-weight:400;
  font-style:italic;
  letter-spacing:var(--tr-tight);
  display:inline-flex;align-items:center;gap:3rem;
  color:var(--ink-soft);
  transition:color var(--dur) var(--ease);
}
.marquee__item em{
  font-style:italic;
  color:var(--accent);
  background:none;
  -webkit-text-fill-color:currentColor;
}
.marquee__item::after{
  content:"·";font-size:1em;color:var(--muted);
  font-family:var(--font-display);
}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ── Trust bar ── */
.trust{
  padding:var(--sp-5) 0;
  border-bottom:1px solid var(--line);
}
.trust__label{
  text-align:center;font-size:.6875rem;color:var(--muted);
  font-weight:500;letter-spacing:var(--tr-eye);text-transform:uppercase;
  margin-bottom:1.75rem;
  font-family:var(--font-sans);
}
.trust__logos{
  display:flex;flex-wrap:wrap;justify-content:center;align-items:center;
  gap:1rem 0;
}
.trust__logos span{
  font-family:var(--font-sans);font-weight:500;font-size:.75rem;
  color:var(--ink-soft);letter-spacing:var(--tr-eye);
  text-transform:uppercase;
  padding:.5rem 1.5rem;
  border-right:1px solid var(--line);
  transition:color var(--dur) var(--ease);
}
.trust__logos span:last-child{border-right:0}
.trust__logos span:hover{color:var(--accent)}
@media (max-width:640px){
  .trust__logos span{border-right:0;padding:.35rem 1rem}
}

/* ── Stats — serif numerals with hairline underline ── */
.stats{
  display:grid;grid-template-columns:repeat(4,1fr);
  background:transparent;
  padding:var(--sp-4) 0;
  gap:var(--sp-4);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.stats__item{padding:var(--sp-2) var(--sp-2);text-align:left;position:relative}
.stats__item:not(:last-child)::after{
  content:"";position:absolute;right:0;top:15%;
  width:1px;height:70%;background:var(--line);
}
.stats__n{
  font-family:var(--font-display);
  font-size:clamp(2.5rem,5vw,3.75rem);
  font-weight:400;
  letter-spacing:var(--tr-tight);
  line-height:1;margin-bottom:.85rem;
  color:var(--ink);
  padding-bottom:.85rem;
  border-bottom:1px solid var(--line);
  display:inline-block;
}
.stats__l{font-size:.75rem;color:var(--muted);font-weight:500;letter-spacing:var(--tr-eye);text-transform:uppercase;font-family:var(--font-sans)}
@media (max-width:768px){
  .stats{grid-template-columns:repeat(2,1fr);gap:var(--sp-3)}
  .stats__item:nth-child(2)::after{display:none}
  .stats__n{font-size:2.5rem}
}
@media (max-width:480px){
  .stats{grid-template-columns:1fr}
  .stats__item::after{display:none!important}
}

/* ── About ── */
.about{display:grid;grid-template-columns:1fr;gap:var(--sp-5);align-items:start}
@media (min-width:960px){.about{grid-template-columns:1.1fr .9fr;gap:var(--sp-6)}}
.about__panel p{margin:0 0 1.25rem;color:#B8B0A6;font-size:1.0625rem;line-height:1.65;max-width:56ch}
.about__panel strong{color:var(--bg);font-weight:500}
.about__aside{
  display:flex;flex-direction:column;justify-content:center;gap:var(--sp-3);
  padding:var(--sp-5) var(--sp-4);
  background:transparent;
  border-left:1px solid rgba(247,245,240,.18);
  border-radius:0;
}
.about__quote{font-family:var(--font-display);font-size:1.75rem;line-height:1.3;font-weight:400;font-style:italic;color:var(--bg);letter-spacing:var(--tr-tight)}
.about__quote-lbl{font-family:var(--font-sans);font-size:.6875rem;color:var(--muted);font-weight:500;letter-spacing:var(--tr-eye);text-transform:uppercase}

/* ── Chi siamo v3 — filosofia sticky + capitoli editoriali ── */
.about3-top{max-width:none;margin:0 0 var(--sp-6);display:grid;gap:var(--sp-2);padding-bottom:var(--sp-5);border-bottom:1px solid rgba(247,245,240,.12)}
.about3-top__eye{margin-bottom:.25rem}
.about3-title{
  font-family:var(--font-display);font-weight:400;font-style:normal;
  font-size:clamp(3rem,7vw,6rem);line-height:.95;letter-spacing:var(--tr-tighter);
  color:var(--bg);margin:0;max-width:14ch;
}
.about3-title em{font-style:italic;color:rgba(247,245,240,.5)}
.about3-lead{font-family:var(--font-sans);font-size:clamp(1rem,1.2vw,1.125rem);line-height:1.65;color:rgba(247,245,240,.72);max-width:54ch;margin:var(--sp-2) 0 0}

.about3-grid{display:grid;grid-template-columns:1fr;gap:var(--sp-5);align-items:start}
@media (min-width:960px){.about3-grid{grid-template-columns:minmax(0,.95fr) minmax(0,1.2fr);gap:var(--sp-6)}}

/* aside sticky: quote + meta */
.about3-aside{
  position:relative;overflow:hidden;
  padding:var(--sp-5) var(--sp-4);
  background:linear-gradient(160deg,rgba(143,179,230,.06),rgba(247,245,240,.02));
  border:1px solid rgba(247,245,240,.1);
  border-radius:var(--radius-lg);
  display:flex;flex-direction:column;gap:var(--sp-3);
}
@media (min-width:960px){.about3-aside{position:sticky;top:calc(var(--nav-h) + 2rem);padding:var(--sp-6) var(--sp-5)}}
.about3-aside::after{
  content:"";position:absolute;inset:auto auto -40% -30%;width:90%;aspect-ratio:1;
  background:radial-gradient(circle,rgba(143,179,230,.14),transparent 60%);
  pointer-events:none;z-index:0;
}
.about3-mark{
  position:absolute;top:-2rem;right:-.5rem;z-index:0;pointer-events:none;
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:clamp(12rem,20vw,18rem);line-height:1;
  color:rgba(247,245,240,.05);
}
.about3-aside > *{position:relative;z-index:1}
.about3-aside__lbl{font-family:var(--font-sans);font-size:.6875rem;color:rgba(247,245,240,.6);font-weight:500;letter-spacing:var(--tr-eye);text-transform:uppercase}
.about3-aside__q{
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:clamp(1.625rem,2.6vw,2.125rem);line-height:1.2;
  color:var(--bg);margin:0;letter-spacing:var(--tr-tight);
}
.about3-aside__q em{color:rgba(247,245,240,.55);text-decoration:underline;text-decoration-color:rgba(143,179,230,.4);text-underline-offset:6px;text-decoration-thickness:1px}
.about3-aside__src{display:flex;flex-direction:column;gap:.25rem;padding-top:var(--sp-3);border-top:1px solid rgba(247,245,240,.12)}
.about3-aside__src .n{font-family:var(--font-display);font-size:1rem;font-style:italic;color:var(--bg);letter-spacing:var(--tr-tight)}
.about3-aside__src .r{font-family:var(--font-sans);font-size:.75rem;color:rgba(247,245,240,.55);letter-spacing:var(--tr-eye);text-transform:uppercase}
.about3-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-2);padding-top:var(--sp-3);border-top:1px solid rgba(247,245,240,.12)}
.about3-meta > div{display:flex;flex-direction:column;gap:.2rem;min-width:0}
.about3-meta .v{font-family:var(--font-display);font-style:italic;font-size:clamp(1.25rem,1.8vw,1.5rem);color:var(--bg);line-height:1;letter-spacing:var(--tr-tight)}
.about3-meta .l{font-family:var(--font-sans);font-size:.625rem;color:rgba(247,245,240,.55);font-weight:500;letter-spacing:var(--tr-eye);text-transform:uppercase;line-height:1.2}

/* chapters */
.about3-chapters{display:flex;flex-direction:column;gap:0}
.about3-chap{
  position:relative;
  padding:var(--sp-5) 0;
  border-bottom:1px solid rgba(247,245,240,.1);
  transition:padding .5s var(--ease-out);
}
.about3-chap:first-child{padding-top:0}
.about3-chap:last-child{border-bottom:0}
.about3-chap::before{
  content:"";position:absolute;left:0;top:0;width:0;height:1px;
  background:rgba(143,179,230,.5);transition:width .6s var(--ease-out);
}
.about3-chap:hover::before{width:60px}
.about3-chap__head{display:flex;align-items:baseline;gap:var(--sp-3);margin-bottom:var(--sp-2)}
.about3-chap__n{
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:clamp(2.75rem,5vw,4.25rem);line-height:.85;
  color:rgba(143,179,230,.65);
  letter-spacing:var(--tr-tight);
  min-width:2ch;
}
.about3-chap__eye{font-family:var(--font-sans);font-size:.6875rem;color:rgba(247,245,240,.55);font-weight:500;letter-spacing:var(--tr-eye);text-transform:uppercase}
.about3-chap__t{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(1.75rem,3vw,2.5rem);line-height:1.1;letter-spacing:var(--tr-tight);
  color:var(--bg);margin:0 0 var(--sp-2);
}
.about3-chap__t em{font-style:italic;color:rgba(143,179,230,.85)}
.about3-chap__p{font-family:var(--font-sans);font-size:1rem;line-height:1.65;color:rgba(247,245,240,.75);margin:0;max-width:56ch}

/* principi list */
.about3-principles{display:flex;flex-direction:column;gap:0;margin:var(--sp-2) 0 0;padding:0;list-style:none}
.about3-principles li{
  display:grid;grid-template-columns:minmax(140px,.4fr) 1fr;gap:var(--sp-3);
  padding:1rem 0;align-items:baseline;
  border-top:1px solid rgba(247,245,240,.1);
}
.about3-principles li:first-child{border-top:0;padding-top:.5rem}
.about3-principles__k{
  font-family:var(--font-display);font-style:italic;font-weight:400;
  color:var(--bg);font-size:1.25rem;letter-spacing:var(--tr-tight);line-height:1.1;
}
.about3-principles__v{font-family:var(--font-sans);font-size:.9375rem;color:rgba(247,245,240,.72);line-height:1.55}
@media (max-width:640px){
  .about3-principles li{grid-template-columns:1fr;gap:.35rem;padding:.85rem 0}
}

/* legacy about2 — keep for safety but hidden */
.about2-hero,.about2-body{display:none}

/* ── Chi siamo v2 — editorial asimmetrico (legacy) ── */
.about2-hero{
  display:grid;grid-template-columns:1fr;gap:var(--sp-4);
  padding-bottom:var(--sp-5);
  border-bottom:1px solid rgba(247,245,240,.12);
  margin-bottom:var(--sp-5);
  align-items:end;
}
@media (min-width:960px){.about2-hero{grid-template-columns:1.3fr 1fr;gap:var(--sp-6);padding-bottom:var(--sp-6);margin-bottom:var(--sp-6)}}
.about2-title{font-size:clamp(2.75rem,5.5vw,5rem);line-height:.98;margin:.75rem 0 0;color:var(--bg)}
.about2-title em{color:rgba(247,245,240,.55)}
.about2-intro{font-size:clamp(1rem,1.2vw,1.125rem);line-height:1.65;color:rgba(247,245,240,.75);max-width:42ch;margin:0 0 var(--sp-3);font-family:var(--font-sans)}
.about2-meta{display:flex;gap:var(--sp-4);padding-top:var(--sp-3);border-top:1px solid rgba(247,245,240,.12)}
.about2-meta__item{display:flex;flex-direction:column;gap:.25rem}
.about2-meta__item .v{font-family:var(--font-display);font-size:1.875rem;font-style:italic;font-weight:400;color:var(--bg);line-height:1;letter-spacing:var(--tr-tight)}
.about2-meta__item .l{font-family:var(--font-sans);font-size:.6875rem;color:rgba(247,245,240,.55);font-weight:500;letter-spacing:var(--tr-eye);text-transform:uppercase}

.about2-body{
  display:grid;grid-template-columns:1fr;gap:var(--sp-5);
  align-items:start;position:relative;
}
@media (min-width:960px){.about2-body{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:var(--sp-6)}}

.about2-chapters{display:flex;flex-direction:column;gap:var(--sp-5)}
.about2-chap{
  display:grid;grid-template-columns:auto 1fr;gap:var(--sp-4);
  align-items:start;position:relative;
  padding:var(--sp-3) 0;
}
@media (min-width:768px){.about2-chap{gap:var(--sp-5)}}
.about2-chap--offset{padding-left:0}
@media (min-width:960px){.about2-chap--offset{padding-left:var(--sp-6);transform:translateX(0)}}
.about2-chap__num{
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:clamp(3.5rem,6.5vw,5.5rem);line-height:.85;
  color:rgba(247,245,240,.18);
  letter-spacing:var(--tr-tight);
  min-width:2.5ch;
  transition:color .5s var(--ease-out);
}
.about2-chap:hover .about2-chap__num{color:rgba(247,245,240,.32)}
.about2-chap__inner{display:flex;flex-direction:column;gap:.85rem;padding-top:.5rem;min-width:0}
.about2-chap__eye{font-family:var(--font-sans);font-size:.6875rem;color:rgba(247,245,240,.55);font-weight:500;letter-spacing:var(--tr-eye);text-transform:uppercase}
.about2-chap__t{
  font-family:var(--font-display);
  font-size:clamp(1.5rem,2.4vw,2rem);
  font-weight:400;line-height:1.15;
  letter-spacing:var(--tr-tight);color:var(--bg);margin:0;
}
.about2-chap__t em{font-style:italic;color:rgba(247,245,240,.6)}
.about2-chap__inner p{margin:0;color:rgba(247,245,240,.72);font-size:1rem;line-height:1.65;max-width:52ch;font-family:var(--font-sans)}
.about2-chap__list{display:flex;flex-direction:column;gap:.9rem;margin:0;padding:0;list-style:none}
.about2-chap__list li{
  display:grid;grid-template-columns:minmax(120px,auto) 1fr;gap:1rem;
  padding:.85rem 0;border-bottom:1px solid rgba(247,245,240,.1);
  align-items:baseline;
}
.about2-chap__list li:last-child{border-bottom:0}
.about2-chap__list strong{
  font-family:var(--font-display);font-weight:400;font-style:italic;
  color:var(--bg);font-size:1.125rem;letter-spacing:var(--tr-tight);
}
.about2-chap__list span{color:rgba(247,245,240,.65);font-size:.9375rem;line-height:1.55;font-family:var(--font-sans)}

.about2-quote{
  display:flex;flex-direction:column;justify-content:center;gap:var(--sp-3);
  padding:var(--sp-5) var(--sp-4);
  background:rgba(247,245,240,.03);
  border:1px solid rgba(247,245,240,.1);
  border-radius:var(--radius-lg);
  position:relative;overflow:hidden;
}
@media (min-width:960px){.about2-quote{position:sticky;top:calc(var(--nav-h) + 2rem);padding:var(--sp-6) var(--sp-5)}}
.about2-quote__lbl{font-family:var(--font-sans);font-size:.6875rem;color:rgba(247,245,240,.55);font-weight:500;letter-spacing:var(--tr-eye);text-transform:uppercase;position:relative;z-index:2}
.about2-quote__txt{
  font-family:var(--font-display);
  font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.2;
  font-weight:400;font-style:italic;color:var(--bg);
  letter-spacing:var(--tr-tight);
  margin:0;position:relative;z-index:2;
}
.about2-quote__txt em{font-style:italic;color:rgba(247,245,240,.5);text-decoration:underline;text-decoration-color:rgba(247,245,240,.25);text-underline-offset:6px}
.about2-quote__src{font-family:var(--font-sans);font-size:.8125rem;color:rgba(247,245,240,.55);font-weight:400;letter-spacing:.02em;padding-top:var(--sp-3);border-top:1px solid rgba(247,245,240,.1);position:relative;z-index:2}
.about2-quote__mark{
  position:absolute;top:-1.5rem;right:-1rem;
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:clamp(10rem,18vw,16rem);line-height:1;
  color:rgba(247,245,240,.04);
  pointer-events:none;z-index:1;
}


/* ── Section heading block ── */
.s-head{max-width:720px;margin:0 auto var(--sp-5);text-align:center}
.s-head .eyebrow{justify-content:center;margin-bottom:1.25rem}
.s-head h2{font-size:var(--fs-2xl);margin:0 0 1.25rem}
.s-head p{color:var(--ink-soft);font-size:var(--fs-md);line-height:1.6;max-width:560px;margin:0 auto}
.section--dark .s-head p{color:#B8B0A6}
.s-head--left{text-align:left;margin-left:0;margin-right:0}
.s-head--left .eyebrow{justify-content:flex-start}

/* ── Services: Square grid 3×2, editorial cards ── */
.svc-cascade{
  display:grid;
  grid-template-columns:1fr;
  gap:var(--sp-3);
  position:relative;
}
@media (min-width:640px){.svc-cascade{grid-template-columns:repeat(2,1fr)}}
@media (min-width:960px){.svc-cascade{grid-template-columns:repeat(3,1fr);gap:var(--sp-3)}}

.svc-row{
  position:relative;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:var(--sp-4);
  display:flex;flex-direction:column;gap:.85rem;
  aspect-ratio:1/1;
  overflow:hidden;
  isolation:isolate;
  transition:border-color .45s var(--ease-out),box-shadow .45s var(--ease-out),transform .45s var(--ease-out);
}
@media (max-width:640px){.svc-row{aspect-ratio:auto;min-height:280px}}

/* Diagonal navy flood on hover — entra da basso-destra */
.svc-row::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:var(--navy);
  transform:translate(100%,100%);
  transition:transform .6s var(--ease-out);
}
.svc-row:hover{border-color:var(--navy);box-shadow:var(--sh-hover);transform:translateY(-3px)}
.svc-row:hover::before{transform:translate(0,0)}
.svc-row:hover .svc-row__num,
.svc-row:hover .svc-row__cat,
.svc-row:hover .svc-row__title,
.svc-row:hover .svc-row__title em,
.svc-row:hover .svc-row__desc,
.svc-row:hover .svc-row__link{color:var(--bg)}
.svc-row:hover .svc-row__cat{color:rgba(247,245,240,.7)}
.svc-row:hover .svc-row__desc{color:rgba(247,245,240,.82)}
.svc-row:hover .svc-row__num{opacity:.5}

/* Numero grande in alto-destra, decorativo */
.svc-row__num{
  position:absolute;top:var(--sp-3);right:var(--sp-3);
  font-family:var(--font-display);
  font-size:clamp(2.5rem,4.5vw,3.5rem);
  font-weight:400;line-height:.9;
  letter-spacing:var(--tr-tight);
  color:var(--navy);
  font-style:italic;
  opacity:.22;
  transition:opacity .4s var(--ease-out),color .4s var(--ease-out);
  pointer-events:none;
}

.svc-row__text{display:flex;flex-direction:column;gap:.6rem;min-width:0;flex:1}
.svc-row__cat{
  font-family:var(--font-sans);
  font-size:.6875rem;color:var(--muted);font-weight:500;
  letter-spacing:var(--tr-eye);text-transform:uppercase;
  transition:color .4s var(--ease-out);
}
.svc-row__cat::before{display:none}
.svc-row__title{
  font-family:var(--font-display);
  font-size:clamp(1.35rem,1.9vw,1.7rem);
  font-weight:400;line-height:1.12;
  letter-spacing:var(--tr-tight);
  margin:0;color:var(--ink);
  padding-right:3rem;
  transition:color .4s var(--ease-out);
}
.svc-row__title br{display:none}
.svc-row__title em{font-style:italic;font-weight:400;color:var(--navy);background:none;-webkit-text-fill-color:currentColor;transition:color .4s var(--ease-out)}
.svc-row__desc{
  font-size:.875rem;color:var(--ink-soft);line-height:1.55;margin:0;
  transition:color .4s var(--ease-out);
}
.svc-row__list{display:none}
.svc-row__link{
  font-family:var(--font-sans);
  font-size:.8125rem;color:var(--navy);font-weight:500;
  letter-spacing:.02em;
  display:inline-flex;align-items:center;gap:.4rem;
  padding:0;width:fit-content;border:0;
  margin-top:auto;
  transition:gap var(--dur-fast) var(--ease),color .4s var(--ease-out);
}
.svc-row__link::after{content:"→";font-size:1.15em;transition:transform var(--dur-fast) var(--ease)}
.svc-row:hover .svc-row__link{gap:.65rem}
.svc-row:hover .svc-row__link::after{transform:translateX(4px)}

.svc-row__visual,.svc-row__icon,.svc-row__badge,.svc-row__metric{display:none}

/* ── Pillars — editorial cards ── */
.pillars{display:grid;grid-template-columns:1fr;gap:0}
@media (min-width:768px){.pillars{grid-template-columns:repeat(3,1fr);gap:0}}
/* Pillars storytelling — alternate left/right, big metric overlay, no card-tiles */
.pillars--two{grid-template-columns:1fr;gap:clamp(4rem,7vw,7rem)}
@media (min-width:900px){
  .pillars--two{grid-template-columns:1fr;gap:clamp(5rem,9vw,9rem)}
}

.pillars--two .pillar--light{
  position:relative;
  background:transparent;
  border:0;border-radius:0;
  margin:0;padding:0;
  min-height:auto;overflow:visible;
  display:block;
  color:#1D1D1F;
  box-shadow:none;transition:none;
}
@media (min-width:900px){
  .pillars--two .pillar--light{padding:0 48% 0 0;min-height:380px}
  .pillars--two .pillar--light:nth-child(2){padding:0 0 0 48%}
}
.pillars--two .pillar--light:hover{transform:none;box-shadow:none}
.pillars--two .pillar--light::before{display:none}

/* Numero ghost gigante anchor — diverso per pilastro */
.pillars--two .pillar--light:nth-child(1)::after{content:"01"}
.pillars--two .pillar--light:nth-child(2)::after{content:"02"}
.pillar--light::after{
  position:absolute;top:-1.5rem;left:0;z-index:0;
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:clamp(8rem,14vw,15rem);line-height:.85;
  color:transparent;
  -webkit-text-stroke:1px rgba(29,29,31,.12);
  letter-spacing:-.05em;pointer-events:none;
}
@media (min-width:900px){
  .pillars--two .pillar--light:nth-child(2)::after{left:auto;right:0}
}

/* Wrapper interni — content + visual */
.pillar--light > *{position:relative;z-index:1}

/* Eyebrow Apple-blue */
.pillar--light .pillar__n{
  font-family:var(--font-sans);font-size:.875rem;font-weight:600;
  letter-spacing:-.005em;color:#1E3A66;
  text-transform:none;
  margin-bottom:1rem;display:block;
}
.pillar--light .pillar__n::before{display:none}

/* Title display ENORME */
.pillar--light .pillar__t{
  font-family:var(--font-display);font-weight:500;
  color:#1D1D1F;
  font-size:clamp(2.25rem,4.5vw,3.5rem);line-height:1;
  letter-spacing:-.03em;
  margin:0 0 1.25rem;max-width:18ch;
}
.pillar--light .pillar__t em{font-style:italic;font-weight:400;color:#86868B}

/* Description */
.pillar--light .pillar__d{
  color:#6E6E73;
  font-size:1.125rem;line-height:1.5;margin:0;max-width:42ch;
  font-weight:400;
}

/* Metric: visual block animato — gradient blob, mouse-tilt, drift */
.pillar--light .pillar__m{
  position:relative;
  margin:2.5rem 0 0;
  display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:.85rem;
  padding:clamp(2.4rem,3.5vw,3rem) clamp(2rem,3vw,3rem);
  border:0;border-radius:24px;
  background:linear-gradient(135deg,#FFFFFF 0%,#F5F5F7 100%);
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:clamp(3.5rem,7vw,6.5rem);line-height:.85;letter-spacing:-.05em;
  color:#1D1D1F;
  min-height:clamp(240px,30vw,340px);
  overflow:hidden;isolation:isolate;
  box-shadow:0 1px 2px rgba(0,0,0,.04),0 24px 50px -28px rgba(0,0,0,.16);
  transition:transform .6s var(--ease-out),box-shadow .6s var(--ease-out);
}
.pillar--light .pillar__m:hover{
  transform:translateY(-3px);
  box-shadow:0 1px 2px rgba(0,0,0,.04),0 36px 70px -32px rgba(30,58,102,.28);
}
/* gradient blob drifting */
.pillar--light .pillar__m::before{
  content:"";position:absolute;inset:-30% -10% auto auto;width:80%;aspect-ratio:1;
  background:radial-gradient(circle,rgba(30,58,102,.18) 0%,transparent 65%);
  filter:blur(20px);
  animation:pillarBlob 14s cubic-bezier(.4,0,.2,1) infinite alternate;
  pointer-events:none;z-index:0;
}
.pillars--two .pillar--light:nth-child(2) .pillar__m::before{
  inset:auto auto -30% -10%;
  background:radial-gradient(circle,rgba(41,151,255,.22) 0%,transparent 65%);
  animation-delay:-7s;
}
@keyframes pillarBlob{
  0%  {transform:translate(0,0) scale(1)}
  50% {transform:translate(-20%,15%) scale(1.15)}
  100%{transform:translate(15%,-10%) scale(.95)}
}
.pillar--light .pillar__m > *{position:relative;z-index:1}

@media (min-width:900px){
  .pillar--light .pillar__m{
    position:absolute;top:50%;right:0;width:46%;
    transform:translateY(-50%);margin:0;
  }
  .pillar--light .pillar__m:hover{transform:translateY(calc(-50% - 3px))}
  .pillars--two .pillar--light:nth-child(2) .pillar__m{
    right:auto;left:0;
  }
}
.pillar--light .pillar__m::after{display:none} /* niente più hairline strip che crea quadrato */
/* hairline a sx come anchor visivo */
.pillar--light .pillar__m::before{
  content:"";position:absolute;left:0;top:15%;bottom:15%;width:1px;
  background:linear-gradient(180deg,transparent,#1D1D1F 50%,transparent);
}
.pillar--light .pillar__m span{
  display:block;font-family:var(--font-sans);font-style:normal;font-weight:500;
  font-size:1.0625rem;letter-spacing:-.005em;text-transform:none;
  color:#6E6E73;max-width:30ch;line-height:1.45;
}


.pillar--navy{background:var(--navy);color:var(--bg);border:0;border-radius:var(--radius-lg);margin:0;padding:var(--sp-5) var(--sp-4);min-height:320px;overflow:hidden;position:relative}
.pillar--navy::before{content:"";position:absolute;inset:0;background:radial-gradient(70% 60% at 100% 0%,rgba(255,255,255,.06),transparent 60%);pointer-events:none}
.pillar--navy > *{position:relative;z-index:1}
.pillar--navy:hover{background:var(--navy-hover)}
.pillar--navy .pillar__n{color:rgba(247,245,240,.7);font-size:.75rem}
.pillar--navy .pillar__t{color:var(--bg);font-size:clamp(1.5rem,2.4vw,1.875rem);line-height:1.2}
.pillar--navy .pillar__d{color:#C8C0B5}
.pillar--navy .pillar__m{border-top-color:rgba(247,245,240,.2);color:var(--bg);font-style:italic;font-size:clamp(2rem,3.2vw,2.75rem)}
.pillar--navy .pillar__m span{color:rgba(247,245,240,.62);font-style:normal}
.pillar{
  background:transparent;
  border:1px solid var(--line);
  border-radius:0;
  padding:var(--sp-5) var(--sp-4);
  display:flex;flex-direction:column;gap:1.15rem;
  transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease);
  margin:-1px 0 0 -1px;
}
.pillar:first-child{margin-left:0}
@media (max-width:767px){.pillar{margin-left:0}}
.pillar:hover{background:var(--soft);border-color:var(--line-strong)}
.pillar__n{font-family:var(--font-sans);font-size:.6875rem;color:var(--muted);font-weight:500;letter-spacing:var(--tr-eye);text-transform:uppercase}
.pillar__t{font-family:var(--font-display);font-size:1.875rem;font-weight:400;line-height:1.15;letter-spacing:var(--tr-tight);color:var(--ink)}
.pillar__d{color:var(--ink-soft);font-size:.9375rem;line-height:1.6}
.pillar__m{
  margin-top:auto;padding-top:1.5rem;border-top:1px solid var(--line);
  font-family:var(--font-display);font-size:2.25rem;font-weight:400;
  letter-spacing:var(--tr-tight);line-height:1;
  display:flex;align-items:baseline;gap:.6rem;
  color:var(--accent);
}
.pillar__m span{font-size:.6875rem;color:var(--muted);font-weight:500;font-family:var(--font-sans);letter-spacing:var(--tr-eye);text-transform:uppercase}

/* ── Resources grid (dark section) ── */
.res{display:grid;grid-template-columns:1fr;gap:0}
@media (min-width:768px){.res{grid-template-columns:repeat(3,1fr)}}
.res__item{
  background:transparent;
  border:1px solid rgba(247,245,240,.15);
  border-radius:0;
  padding:var(--sp-5) var(--sp-4);
  display:flex;flex-direction:column;gap:1rem;
  color:var(--bg);transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease);
  min-height:320px;
  margin:-1px 0 0 -1px;
}
.res__item:hover{background:rgba(247,245,240,.03);border-color:rgba(247,245,240,.3)}
.res__eye{font-family:var(--font-sans);font-size:.6875rem;color:var(--muted);font-weight:500;letter-spacing:var(--tr-eye);text-transform:uppercase}
.res__t{font-family:var(--font-display);font-size:1.875rem;font-weight:400;line-height:1.15;letter-spacing:var(--tr-tight);margin:.35rem 0;color:var(--bg)}
.res__t em{font-style:italic;color:var(--bg);font-weight:400;background:none;-webkit-text-fill-color:currentColor}
.res__d{color:#B8B0A6;font-size:.9375rem;line-height:1.6}
.res__cta{
  margin-top:auto;font-family:var(--font-sans);font-size:.8125rem;font-weight:500;color:var(--bg);
  letter-spacing:.02em;
  display:inline-flex;align-items:center;gap:.4rem;
  padding-bottom:.4rem;border-bottom:1px solid rgba(247,245,240,.3);
  width:fit-content;
  transition:color var(--dur-fast),border-color var(--dur-fast);
}
.res__cta::after{content:"→";font-size:1em;transition:transform var(--dur-fast) var(--ease)}
.res__item:hover .res__cta{color:var(--accent);border-color:var(--accent)}
.res__item:hover .res__cta::after{transform:translateX(3px)}

/* ── Booking ── */
.booking__head{display:flex;justify-content:center;align-items:flex-end;gap:var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-4)}
.booking__modes{display:flex;gap:0;padding:0;background:transparent;border:1px solid rgba(247,245,240,.2);border-radius:6px;overflow:hidden}
.booking__modes button{padding:.7rem 1.4rem;font-family:var(--font-sans);font-size:.8125rem;font-weight:500;letter-spacing:.03em;color:#B8B0A6;background:transparent;transition:all var(--dur-fast)}
.booking__modes button.active{background:var(--bg);color:var(--navy);--ink:#1E3A66}
.bk-mode-tab{border-radius:0}
.booking__steps{display:flex;align-items:center;gap:.75rem;margin-bottom:var(--sp-5);flex-wrap:wrap;font-size:.75rem;letter-spacing:var(--tr-eye);text-transform:uppercase}
.bstep{display:flex;align-items:center;gap:.6rem;color:var(--muted);font-family:var(--font-sans);font-weight:500}
.bstep .n{width:26px;height:26px;border:1px solid rgba(247,245,240,.25);border-radius:50%;display:grid;place-items:center;font-size:.75rem;font-weight:500;letter-spacing:0}
.bstep.done{color:#B8B0A6}
.bstep.done .n{background:var(--accent);color:var(--bg);border-color:transparent}
.bstep.current{color:var(--bg)}
.bstep.current .n{border-color:var(--accent);color:var(--accent);background:transparent}
.bstep-sep{width:1.5rem;height:1px;background:rgba(247,245,240,.2)}

.bk-grid{display:grid;grid-template-columns:1fr;gap:var(--sp-5)}
@media (min-width:960px){.bk-grid{grid-template-columns:1fr 1fr}}
.dur-label{font-family:var(--font-sans);font-size:.6875rem;color:#B8B0A6;font-weight:500;margin:1.75rem 0 .85rem;letter-spacing:var(--tr-eye);text-transform:uppercase}
.dur-row{display:flex;gap:.5rem;margin-bottom:1.5rem}
.dur-btn{
  flex:1;padding:.85rem;
  background:transparent;
  border:1px solid rgba(247,245,240,.2);border-radius:6px;
  color:#B8B0A6;font-family:var(--font-sans);font-size:.85rem;font-weight:500;
  transition:all var(--dur-fast);
}
.dur-btn.active{background:var(--accent);border-color:var(--accent);color:var(--bg)}
.dur-btn:hover:not(.active){border-color:rgba(247,245,240,.5);color:var(--bg)}

.bk-note{padding:1.15rem 1.25rem;background:transparent;border:1px solid rgba(247,245,240,.15);border-radius:var(--radius);font-size:.8125rem;line-height:1.6;color:#B8B0A6;margin-bottom:1rem}
.bk-note strong{color:var(--bg);font-weight:500;display:block;margin-bottom:.35rem;letter-spacing:.02em}
.sel-date-lbl{font-family:var(--font-sans);font-size:.875rem;color:var(--bg);font-weight:500;margin-bottom:1rem}
.slots-title{font-family:var(--font-sans);font-size:.6875rem;color:#B8B0A6;font-weight:500;margin-bottom:.85rem;letter-spacing:var(--tr-eye);text-transform:uppercase}
.slots-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}
@media (max-width:480px){.slots-grid{grid-template-columns:repeat(3,1fr)}}
.slot-btn{
  padding:.75rem .3rem;
  background:transparent;border:1px solid rgba(247,245,240,.2);border-radius:6px;
  color:var(--bg);font-family:var(--font-sans);font-size:.85rem;font-weight:500;
  transition:all var(--dur-fast);line-height:1.3;
}
.slot-btn:hover:not(.taken){border-color:var(--bg)}
.slot-btn.sel{background:var(--accent);border-color:var(--accent);color:var(--bg)}
.slot-btn.taken{color:rgba(247,245,240,.2);border-color:rgba(247,245,240,.08);background:transparent;cursor:not-allowed;pointer-events:none}
.slot-empty{grid-column:1/-1;text-align:center;padding:1.75rem;color:var(--muted);font-size:.85rem;background:transparent;border:1px dashed rgba(247,245,240,.15);border-radius:var(--radius)}

.confirm-bar{display:none;align-items:center;justify-content:space-between;gap:1rem;padding:1.15rem 1.25rem;background:transparent;border:1px solid var(--accent);border-radius:var(--radius);margin-top:1.5rem}
.confirm-bar.show{display:flex;flex-wrap:wrap}
.confirm-sum{font-family:var(--font-sans);font-size:.9rem;color:var(--bg);line-height:1.5;font-weight:500}

/* Calendar */
.cal-wrap{background:transparent;border:1px solid rgba(247,245,240,.15);border-radius:var(--radius-lg);padding:1.75rem}
.cal-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}
.cal-month{font-family:var(--font-display);font-size:1.35rem;font-weight:400;color:var(--bg);text-transform:capitalize;letter-spacing:var(--tr-tight)}
.cal-arrow{width:32px;height:32px;border-radius:50%;background:transparent;border:1px solid rgba(247,245,240,.2);color:var(--bg);font-size:1rem;display:grid;place-items:center;transition:all var(--dur-fast)}
.cal-arrow:hover{border-color:var(--bg)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cal-dow{font-family:var(--font-sans);font-size:.6875rem;color:var(--muted);text-align:center;padding:.5rem 0;font-weight:500;text-transform:uppercase;letter-spacing:var(--tr-eye)}
.cal-day{aspect-ratio:1;display:grid;place-items:center;font-family:var(--font-sans);font-size:.85rem;color:rgba(247,245,240,.25);border-radius:var(--radius-xs);font-weight:500;transition:all var(--dur-fast)}
.cal-day.avail{color:var(--bg);cursor:pointer;background:transparent;border:1px solid rgba(247,245,240,.12)}
.cal-day.avail:hover{border-color:var(--bg)}
.cal-day.sel{background:var(--accent);color:var(--bg);border-color:var(--accent)}
.cal-day.today-d{outline:1px solid var(--accent);outline-offset:-1px}
.cal-legend{display:flex;gap:1.25rem;margin-top:1rem;flex-wrap:wrap;font-family:var(--font-sans);font-size:.75rem;color:#B8B0A6;letter-spacing:.02em}
.cal-legend span{display:flex;align-items:center;gap:.4rem}
.cal-legend i{width:10px;height:10px;display:block;border-radius:2px}
.cal-legend .av{background:transparent;border:1px solid rgba(247,245,240,.3)}
.cal-legend .ds{background:transparent;border:1px solid rgba(247,245,240,.1)}
.cal-legend .sl{background:var(--accent)}

/* Contact info list */
.c-list{display:flex;flex-direction:column;gap:1.5rem;margin:1.75rem 0}
.c-list li{display:flex;gap:1.15rem;align-items:flex-start}
.c-list svg{width:18px;height:18px;stroke:var(--accent);fill:none;stroke-width:1.5;flex-shrink:0;margin-top:.25rem}
.c-lbl{font-family:var(--font-sans);font-size:.6875rem;color:var(--muted);font-weight:500;margin-bottom:.35rem;letter-spacing:var(--tr-eye);text-transform:uppercase}
.c-val{font-family:var(--font-sans);font-size:.9375rem;color:var(--bg);line-height:1.5;font-weight:400}
.c-val a{color:inherit;transition:color var(--dur-fast);border-bottom:1px solid rgba(247,245,240,.25)}
.c-val a:hover{color:var(--accent);border-color:var(--accent)}

.onb{margin:var(--sp-4) 0;padding-top:var(--sp-4);border-top:1px solid rgba(247,245,240,.15)}
.onb__t{font-family:var(--font-sans);font-size:.6875rem;color:var(--muted);font-weight:500;margin-bottom:1.5rem;letter-spacing:var(--tr-eye);text-transform:uppercase}
.onb__step{display:flex;gap:1.15rem;padding:1rem 0;border-bottom:1px solid rgba(247,245,240,.08);align-items:flex-start}
.onb__step:last-child{border-bottom:0}
.onb__step .num{
  font-family:var(--font-display);
  width:auto;min-width:28px;height:auto;border-radius:0;
  background:transparent;color:var(--accent);
  display:inline-block;font-size:1.25rem;font-weight:400;
  flex-shrink:0;
  letter-spacing:0;
}
.onb__step p{margin:0;font-family:var(--font-sans);font-size:.9375rem;color:#D2CFC9;line-height:1.55}
.onb__step strong{color:var(--bg);font-weight:500}

/* ── Lead magnet ── */
.lm{display:grid;grid-template-columns:1fr;gap:var(--sp-5);align-items:start}
@media (min-width:960px){.lm{grid-template-columns:1.1fr 1fr;gap:var(--sp-6)}}
.lm__info{display:flex;flex-direction:column;gap:0}
.lm__lead{color:rgba(247,245,240,.82);max-width:48ch;font-size:1.0625rem;line-height:1.55;margin:0 0 var(--sp-4);font-family:var(--font-sans)}
.lm__toc{margin-top:var(--sp-2);padding-top:var(--sp-3);border-top:1px solid rgba(247,245,240,.15)}
.lm__toc-lbl{display:block;font-family:var(--font-sans);font-size:.6875rem;color:rgba(247,245,240,.6);font-weight:500;letter-spacing:var(--tr-eye);text-transform:uppercase;margin-bottom:var(--sp-2)}
.lm__toc-list{display:flex;flex-direction:column;gap:0;margin:0;padding:0;list-style:none;counter-reset:toc}
.lm__toc-list li{
  display:grid;grid-template-columns:auto 1fr;gap:var(--sp-3);
  padding:.95rem 0;border-bottom:1px solid rgba(247,245,240,.1);
  align-items:baseline;
  transition:padding .4s var(--ease-out);
}
.lm__toc-list li:last-child{border-bottom:0}
.lm__toc-list li:hover{padding-left:.5rem}
.lm__toc-n{
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:1.25rem;color:rgba(143,179,230,.75);letter-spacing:var(--tr-tight);
  min-width:2ch;line-height:1;
}
.lm__toc-list strong{display:block;font-family:var(--font-display);font-weight:400;font-style:normal;font-size:1.0625rem;color:var(--bg);line-height:1.3;letter-spacing:var(--tr-tight);margin-bottom:.25rem}
.lm__toc-list em{display:block;font-family:var(--font-sans);font-style:normal;font-size:.875rem;color:rgba(247,245,240,.65);line-height:1.5}
.lm__check{display:none}
.lm__card{background:var(--bg);color:#14110F;padding:var(--sp-4);border:1px solid #E6E1D8;border-radius:var(--radius-lg);box-shadow:none;--ink:#14110F;--ink-soft:#4A4540;--muted:#8A8178;--line:#E6E1D8;--line-strong:#C9C2B5;--accent:#1E3A66}
.lm__card *{color:inherit}
.lm__card .field label,.lm__card .lm__doc .s,.lm__card .lm__note{color:var(--muted)}
.lm__card .field input,.lm__card .field select,.lm__card .field textarea{color:var(--ink);border-bottom-color:var(--line-strong);background:transparent}
.lm__card .privacy{color:var(--muted)}
.lm__card .privacy a{color:var(--accent)}
.lm__card .btn{background:var(--accent);border-color:var(--accent);color:var(--bg)}
.lm__card .btn:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.lm__doc{display:flex;gap:1rem;align-items:center;padding-bottom:var(--sp-3);border-bottom:1px solid var(--line);margin-bottom:var(--sp-3)}
.lm__doc .icon{margin-bottom:0;flex-shrink:0}
.lm__doc .t{font-family:var(--font-display);font-size:1.375rem;font-weight:400;line-height:1.2;letter-spacing:var(--tr-tight);color:var(--ink)}
.lm__doc .s{font-family:var(--font-sans);font-size:.75rem;color:var(--muted);margin-top:.3rem;letter-spacing:var(--tr-eye);text-transform:uppercase}
.lm__note{font-family:var(--font-sans);font-size:.75rem;color:var(--muted);margin:.85rem 0 0;text-align:center;letter-spacing:.02em}
.lm__note a{color:var(--accent);text-decoration:underline}

/* ── FAQ ── */
.faq-grid{display:grid;grid-template-columns:1fr;gap:var(--sp-4)}
@media (min-width:960px){.faq-grid{grid-template-columns:1fr 1.7fr;gap:var(--sp-6)}}
.faq-side .lead{margin-bottom:1.5rem}

/* ── Map ── */
.map{display:grid;grid-template-columns:1fr;min-height:560px;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--sh-3)}
@media (min-width:960px){.map{grid-template-columns:.7fr 1.3fr;min-height:640px}}
.map__info{padding:var(--sp-5) var(--sp-4);background:var(--navy);color:var(--bg);display:flex;flex-direction:column;justify-content:center}
.map__info .c-val a{color:var(--bg);border-bottom-color:rgba(247,245,240,.3)}
.map__info .c-val a:hover{color:var(--accent);border-color:var(--accent)}
.map__info .c-list svg{stroke:var(--accent)}
.map__info .c-lbl{color:var(--muted)}
.map__embed{background:var(--soft);position:relative;height:100%;min-height:500px;cursor:pointer;display:grid;place-items:center;transition:background var(--dur);overflow:hidden;contain:size layout}
@media (min-width:960px){.map__embed{min-height:640px}}
.map__embed iframe{width:100%;height:100%;border:0;display:block}
.map__embed:hover{background:var(--soft-2)}
.map__ph{display:flex;flex-direction:column;align-items:center;gap:.85rem;color:var(--ink-soft)}
.map__ph svg{width:36px;height:36px;stroke:var(--accent);stroke-width:1.25;fill:none}
.map__ph .t{font-family:var(--font-display);font-size:1.35rem;font-weight:400;letter-spacing:var(--tr-tight)}
.map__ph .c{font-family:var(--font-sans);font-size:.75rem;color:var(--muted);letter-spacing:var(--tr-eye);text-transform:uppercase}

/* ── Page hero ── */
.page-hero{
  padding:calc(var(--nav-h) + var(--sp-6)) 0 var(--sp-5);
  text-align:center;
  position:relative;overflow:hidden;
  border-bottom:1px solid var(--line);
}
.page-hero::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(50% 50% at 50% 0%,rgba(10,25,47,.05),transparent 70%);
  pointer-events:none;z-index:-1;
}
.page-hero__crumbs{display:flex;gap:.5rem;font-family:var(--font-sans);font-size:.75rem;color:var(--muted);margin-bottom:1.5rem;justify-content:center;letter-spacing:var(--tr-eye);text-transform:uppercase}
.page-hero__crumbs a{transition:color var(--dur-fast)}
.page-hero__crumbs a:hover{color:var(--accent)}
.page-hero h1{font-family:var(--font-display);font-size:var(--fs-3xl);font-weight:400;line-height:1.05;letter-spacing:var(--tr-tight);margin:0 0 1.25rem}
.page-hero h1 em{
  font-style:italic;font-weight:400;
  color:var(--ink);
  background:none;
  -webkit-text-fill-color:currentColor;
}
.page-hero p{color:var(--ink-soft);font-size:var(--fs-md);max-width:600px;line-height:1.6;margin:0 auto}

/* ── News filters + slider ── */
.news-filters{display:flex;gap:0;overflow-x:auto;padding:0;margin:0 auto var(--sp-4);scrollbar-width:none;background:transparent;border-bottom:1px solid var(--line);width:fit-content;max-width:100%}
.news-filters::-webkit-scrollbar{display:none}
.nf-btn{
  padding:.75rem 1.15rem .85rem;
  background:transparent;border:0;
  font-family:var(--font-sans);font-size:.75rem;font-weight:500;color:var(--muted);
  border-bottom:1px solid transparent;
  margin-bottom:-1px;
  white-space:nowrap;
  letter-spacing:var(--tr-eye);text-transform:uppercase;
  transition:all var(--dur-fast);
}
.nf-btn.active{background:transparent;color:var(--ink);border-bottom-color:var(--accent)}
.nf-btn:hover:not(.active){color:var(--ink)}

/* News band: drag-scroll come carosello 6 aree */
.slider-outer{
  overflow-x:auto;overflow-y:hidden;margin:0;padding:8px 4px 24px;
  scroll-snap-type:x proximity;scroll-behavior:smooth;
  scrollbar-width:none;cursor:grab;-webkit-overflow-scrolling:touch;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 1.5%,#000 98.5%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 1.5%,#000 98.5%,transparent 100%);
}
.slider-outer::-webkit-scrollbar{display:none}
.slider-track{display:flex;gap:1.1rem}
.n-card{
  flex:0 0 min(340px,82vw);
  scroll-snap-align:start;
  padding:2rem 1.9rem 1.7rem;
  background:#FFFFFF;
  border:1px solid var(--line);
  border-radius:24px 24px 6px 24px;          /* corner asimmetrico = homepage */
  box-shadow:0 1px 2px rgba(15,35,71,.04),inset 0 1px 0 rgba(255,255,255,.95);
  display:flex;flex-direction:column;gap:.85rem;
  min-height:300px;position:relative;
  transition:transform .55s cubic-bezier(.16,1,.3,1),
             box-shadow .55s cubic-bezier(.16,1,.3,1),
             border-color .55s cubic-bezier(.16,1,.3,1);
}
.n-card:hover{transform:translateY(-3px);border-color:var(--line-strong);box-shadow:0 30px 60px -28px rgba(15,35,71,.22)}
.n-tag{
  display:inline-flex;align-items:center;
  font-family:var(--font-sans);
  font-size:.64rem;font-weight:600;color:var(--ink);
  background:rgba(15,35,71,.06);border:1px solid rgba(15,35,71,.14);
  padding:.32rem .7rem;border-radius:999px;
  width:fit-content;
  letter-spacing:.14em;text-transform:uppercase;
}
.n-src{font-family:var(--font-sans);font-size:.7rem;font-weight:600;color:var(--ink-soft);letter-spacing:.1em;text-transform:uppercase}
.n-title{font-family:var(--font-display);font-weight:500;font-size:1.45rem;line-height:1.1;letter-spacing:-.025em;color:var(--ink)}
.n-desc{font-family:var(--font-sans);font-size:.9rem;color:var(--ink-soft);line-height:1.5;flex:1}
.n-meta{display:flex;justify-content:space-between;align-items:center;padding-top:1rem;border-top:1px solid var(--line);font-family:var(--font-sans);font-size:.78rem;color:var(--muted);letter-spacing:.02em}
.n-live{color:var(--ok);font-weight:600;display:inline-flex;align-items:center;gap:.35rem;text-transform:uppercase;letter-spacing:var(--tr-eye);font-size:.6875rem}
.n-live::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ok);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
.sl-dots{display:none}
.sl-count{font-family:var(--font-sans);font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.slider-controls{display:flex;justify-content:space-between;align-items:center;padding-top:var(--sp-3,1.5rem);gap:1rem;flex-wrap:wrap}
.sl-arrows{display:flex;gap:.5rem}
.sl-arrow{
  width:42px;height:42px;border-radius:50%;
  background:transparent;border:1px solid var(--line-strong);color:var(--ink);
  display:grid;place-items:center;
  font-size:1.1rem;font-weight:400;
  transition:all var(--dur-fast);
}
.sl-arrow:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.sl-dots{display:flex;gap:.5rem}
.sl-dot{width:6px;height:6px;border-radius:50%;background:var(--line-strong);cursor:pointer;transition:all var(--dur-fast)}
.sl-dot.active{background:var(--accent);transform:scale(1.3)}
.sl-count{font-family:var(--font-sans);font-size:.75rem;color:var(--muted);font-weight:500;letter-spacing:var(--tr-eye);text-transform:uppercase}

/* ── Bandi / scadenze ── */
.b-grid{display:grid;grid-template-columns:1fr;gap:var(--sp-3)}
@media (min-width:640px){.b-grid{grid-template-columns:1fr 1fr}}
@media (min-width:960px){.b-grid{grid-template-columns:repeat(3,1fr)}}
.b-card{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:var(--sp-4);
  display:flex;flex-direction:column;gap:.85rem;
  min-height:260px;
  box-shadow:none;
  transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease);
}
.b-card:hover{border-color:var(--ink);transform:translateY(-2px)}
.b-tag{
  display:inline-block;
  font-family:var(--font-sans);
  font-size:.6875rem;font-weight:500;color:var(--accent);
  background:transparent;border:1px solid var(--accent);
  padding:.25rem .65rem;border-radius:2px;
  width:fit-content;
  letter-spacing:var(--tr-eye);text-transform:uppercase;
}
.b-title{font-family:var(--font-display);font-size:1.375rem;font-weight:400;line-height:1.2;letter-spacing:var(--tr-tight);color:var(--ink)}
.b-desc{font-size:.9rem;color:var(--ink-soft);line-height:1.55;flex:1}
.b-meta{padding-top:.85rem;border-top:1px solid var(--line);font-family:var(--font-sans);font-size:.8125rem;color:var(--muted);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem}
.b-meta a{color:var(--accent);font-weight:500;border-bottom:1px solid var(--accent)}

.cal-section{display:flex;flex-direction:column;gap:var(--sp-4)}
.cal-quarter{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:none;
}
.cal-quarter-hd{padding:1.25rem var(--sp-4);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);background:var(--soft-2)}
.cal-quarter-hd h4{font-family:var(--font-display);font-size:1.375rem;font-weight:400;letter-spacing:var(--tr-tight)}
.cal-quarter-body{padding:var(--sp-3);display:grid;grid-template-columns:1fr;gap:.85rem}
@media (min-width:768px){.cal-quarter-body{grid-template-columns:repeat(3,1fr)}}
.cal-card{
  background:var(--bg);
  border:1px solid var(--line);
  border-left:2px solid var(--line-strong);
  border-radius:var(--radius);
  padding:1.15rem;
  display:flex;flex-direction:column;gap:.4rem;
  min-height:150px;
  transition:transform var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease);
}
.cal-card:hover{transform:translateY(-2px);border-color:var(--ink)}
.cal-card.urg-card{border-left-color:var(--err)}
.cal-card.med-card{border-left-color:var(--warn)}
.cal-card.ok-card{border-left-color:var(--ok)}
.cal-card.exp-card{border-left-color:var(--muted);opacity:.6;background:repeating-linear-gradient(135deg,transparent,transparent 8px,rgba(124,139,163,.05) 8px,rgba(124,139,163,.05) 16px)}
.cal-card.exp-card .ty{color:var(--err);font-weight:600}
.cal-card.exp-card .ti{text-decoration:line-through;text-decoration-color:rgba(124,139,163,.5)}
.cal-card .d{font-family:var(--font-display);font-size:1.5rem;font-weight:400;letter-spacing:var(--tr-tight);line-height:1}
.cal-card .ty{font-family:var(--font-sans);font-size:.6875rem;color:var(--muted);font-weight:500;text-transform:uppercase;letter-spacing:var(--tr-eye)}
.cal-card .ti{font-family:var(--font-sans);font-size:.9375rem;font-weight:600;line-height:1.35;color:var(--ink)}
.cal-card .de{font-size:.8125rem;color:var(--ink-soft);line-height:1.5;margin-top:auto}

.cal-leg{display:flex;flex-wrap:wrap;gap:1.5rem;margin-bottom:var(--sp-4);font-family:var(--font-sans);font-size:.75rem;color:var(--ink-soft);justify-content:center;letter-spacing:var(--tr-eye);text-transform:uppercase}
.cal-leg span{display:flex;align-items:center;gap:.5rem}
.cal-leg i{width:3px;height:14px;display:block;border-radius:1px}
.cal-leg .urg{background:var(--err)}
.cal-leg .med{background:var(--warn)}
.cal-leg .ok{background:var(--ok)}

/* ══ Chi siamo v4 — manifesto editoriale ══ */
.about4-hd{
  display:grid;gap:var(--sp-2);
  padding-bottom:var(--sp-5);margin-bottom:var(--sp-5);
  border-bottom:1px solid rgba(247,245,240,.12);
}
.about4-title{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(2.75rem,7vw,6rem);line-height:.98;letter-spacing:var(--tr-tighter);
  color:var(--bg);margin:.5rem 0 0;max-width:16ch;
}
.about4-title em{font-style:italic;color:rgba(143,179,230,.85)}
.about4-lead{
  font-family:var(--font-sans);font-size:clamp(1rem,1.2vw,1.125rem);
  line-height:1.65;color:rgba(247,245,240,.75);
  max-width:58ch;margin:var(--sp-3) 0 0;
}

/* meta strip */
.about4-meta{
  display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-3);
  padding:var(--sp-3) 0;margin-bottom:var(--sp-6);
  border-top:1px solid rgba(247,245,240,.12);
  border-bottom:1px solid rgba(247,245,240,.12);
}
.about4-meta > div{display:flex;flex-direction:column;gap:.3rem;min-width:0}
.about4-meta .v{
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:clamp(1.5rem,2.4vw,2rem);line-height:1;
  color:var(--bg);letter-spacing:var(--tr-tight);
}
.about4-meta .l{
  font-family:var(--font-sans);font-size:.6875rem;
  color:rgba(247,245,240,.55);font-weight:500;
  letter-spacing:var(--tr-eye);text-transform:uppercase;
}
@media (max-width:640px){
  .about4-meta{grid-template-columns:repeat(2,1fr);gap:var(--sp-2)}
}

/* acts — staircase editoriale asimmetrico */
.about4-acts{
  display:grid;grid-template-columns:repeat(12,1fr);
  column-gap:var(--sp-3);row-gap:var(--sp-6);
  margin-top:var(--sp-4);
}
.about4-act{
  position:relative;padding:var(--sp-4) 0;
  display:flex;flex-direction:column;gap:var(--sp-2);
  min-width:0;
}
/* staircase — discesa diagonale con sovrapposizione verticale */
.about4-act--a{grid-column:1 / span 8;padding-left:0}
.about4-act--b{grid-column:3 / span 9;padding-left:var(--sp-4)}
.about4-act--c{grid-column:5 / span 8;padding-left:var(--sp-5);margin-left:auto}
/* hairline verticale che connette visivamente il flusso */
.about4-act--b::before,
.about4-act--c::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:1px;
  background:linear-gradient(to bottom,rgba(143,179,230,.0),rgba(143,179,230,.35) 30%,rgba(143,179,230,.0));
}

/* numero drop-cap — alternato dx/sx, sovradimensionato, affiora dal bordo */
.about4-act__n{
  position:absolute;font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:clamp(6rem,13vw,11rem);line-height:.78;letter-spacing:-.04em;
  color:rgba(143,179,230,.14);
  pointer-events:none;user-select:none;
  z-index:0;
}
.about4-act--a .about4-act__n{top:-.35em;right:0}
.about4-act--b .about4-act__n{top:-.35em;left:-.25em}
.about4-act--c .about4-act__n{bottom:-.25em;right:-.1em}

.about4-act > *:not(.about4-act__n){position:relative;z-index:1}

.about4-act__eye{
  font-family:var(--font-sans);font-size:.6875rem;
  color:rgba(247,245,240,.55);font-weight:500;
  letter-spacing:var(--tr-eye);text-transform:uppercase;
}
.about4-act__t{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(1.85rem,3.4vw,2.875rem);line-height:1.06;
  letter-spacing:var(--tr-tight);color:var(--bg);margin:.1rem 0 .25rem;max-width:16ch;
}
.about4-act__t em{font-style:italic;color:rgba(143,179,230,.9)}
.about4-act__p{
  font-family:var(--font-sans);font-size:clamp(.95rem,1.05vw,1.05rem);
  line-height:1.7;color:rgba(247,245,240,.78);
  margin:0;max-width:58ch;
}
.about4-act__p strong{
  font-weight:500;color:var(--bg);
  font-family:var(--font-display);font-style:italic;font-size:1.15em;
  letter-spacing:var(--tr-tight);
}
.about4-sep{
  display:inline-block;margin:0 .55em;
  color:rgba(143,179,230,.5);font-weight:700;
  transform:translateY(-1px);
}

/* atto centrale — trattamento piu largo per enfasi */
.about4-act--b .about4-act__p{max-width:64ch}

@media (max-width:900px){
  .about4-acts{grid-template-columns:1fr;row-gap:var(--sp-5)}
  .about4-act--a,.about4-act--b,.about4-act--c{
    grid-column:1 / -1;padding-left:0;margin-left:0;
  }
  .about4-act--b,.about4-act--c{padding-left:var(--sp-3)}
  .about4-act--b::before,.about4-act--c::before{left:0}
  .about4-act__n{font-size:clamp(5rem,22vw,8rem)}
  .about4-act--a .about4-act__n{right:-.05em}
  .about4-act--b .about4-act__n{left:-.15em}
  .about4-act--c .about4-act__n{right:-.05em;bottom:auto;top:-.35em}
}

/* ══ Chi siamo v5 — split minimale (logo sx / testo dx) ══ */
.about5-split{
  display:grid;grid-template-columns:1fr;gap:var(--sp-5);align-items:center;
  max-width:1080px;margin:0 auto;
}
@media (min-width:900px){
  .about5-split{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:var(--sp-6)}
}

/* mark — logo plate con watermark serif */
.about5-mark{margin:0;display:flex;flex-direction:column;gap:var(--sp-2)}
.about5-mark__plate{
  position:relative;aspect-ratio:1/1;width:100%;max-width:420px;
  border:1px solid rgba(247,245,240,.14);
  border-radius:var(--radius-lg);overflow:hidden;
  background:
    radial-gradient(circle at 30% 20%,rgba(143,179,230,.10),transparent 55%),
    linear-gradient(160deg,rgba(247,245,240,.03),rgba(143,179,230,.04));
  display:flex;align-items:center;justify-content:center;
}
.about5-mark__plate::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(transparent 0,transparent calc(50% - .5px),rgba(247,245,240,.06) calc(50% - .5px),rgba(247,245,240,.06) 50%,transparent 50%),
    linear-gradient(90deg,transparent 0,transparent calc(50% - .5px),rgba(247,245,240,.06) calc(50% - .5px),rgba(247,245,240,.06) 50%,transparent 50%);
}
.about5-mark__wm{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:clamp(14rem,26vw,22rem);line-height:1;
  color:rgba(143,179,230,.08);letter-spacing:-.04em;
  user-select:none;pointer-events:none;z-index:0;
}
.about5-mark__logo{
  position:relative;z-index:1;
  width:clamp(80px,14vw,120px);height:auto;
  filter:brightness(0) invert(1);opacity:.92;
}
.about5-mark__cap{
  display:flex;justify-content:space-between;gap:var(--sp-3);
  font-family:var(--font-sans);font-size:.6875rem;
  color:rgba(247,245,240,.55);font-weight:500;
  letter-spacing:var(--tr-eye);text-transform:uppercase;
  padding-top:.5rem;
}

/* text column */
.about5-text{display:flex;flex-direction:column;gap:var(--sp-2);max-width:48ch}
.about5-title{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(2.5rem,5.2vw,4.25rem);line-height:1.02;
  letter-spacing:var(--tr-tighter);
  color:var(--bg);margin:.5rem 0 var(--sp-2);
}
.about5-title em{font-style:italic;color:rgba(143,179,230,.9)}
.about5-p{
  font-family:var(--font-sans);font-size:clamp(1rem,1.1vw,1.0625rem);
  line-height:1.7;color:rgba(247,245,240,.78);
  margin:0;max-width:52ch;
}
.about5-p + .about5-p{margin-top:.25rem}

.about5-link{
  display:inline-flex;align-items:center;gap:.7rem;
  margin-top:var(--sp-3);align-self:flex-start;
  font-family:var(--font-sans);font-size:.875rem;font-weight:500;
  color:rgba(143,179,230,.95);letter-spacing:var(--tr-tight);
  padding-bottom:.4rem;border-bottom:1px solid rgba(143,179,230,.3);
  transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease),gap var(--dur) var(--ease);
}
.about5-link svg{width:16px;height:16px;transition:transform var(--dur) var(--ease-out)}
.about5-link:hover{color:var(--bg);border-color:var(--bg);gap:1rem}
.about5-link:hover svg{transform:translateX(3px)}

/* ══ Chi siamo v6 — logo 3D dinamico (coin spin + parallax) ══ */
.about6-split{
  display:grid;grid-template-columns:1fr;gap:var(--sp-5);align-items:center;
  max-width:1160px;margin:0 auto;
}
@media (min-width:960px){
  .about6-split{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:var(--sp-6)}
}

.about6-3d{
  margin:0;position:relative;
  display:flex;flex-direction:column;gap:var(--sp-3);
  --coin-size:clamp(240px,32vw,420px);
}
.about6-scene{
  position:relative;width:100%;aspect-ratio:1/1;max-width:520px;
  perspective:1400px;perspective-origin:50% 40%;
  display:flex;align-items:center;justify-content:center;
  transform-style:preserve-3d;
}

/* halo glow */
.about6-halo{
  position:absolute;inset:14%;border-radius:50%;
  background:radial-gradient(circle,rgba(143,179,230,.32),transparent 65%);
  filter:blur(48px);
  transform:translateZ(-80px);
  animation:about6Pulse 6s ease-in-out infinite;
  pointer-events:none;
}
@keyframes about6Pulse{
  0%,100%{opacity:.7;transform:translateZ(-80px) scale(1)}
  50%{opacity:1;transform:translateZ(-80px) scale(1.1)}
}

/* tilt scene — parallax via CSS var */
.about6-scene{
  transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));
  transition:transform .3s cubic-bezier(.2,.9,.3,1);
}

/* logo 3D — no plate, just spinning logo */
.about6-logo3d{
  position:relative;width:var(--coin-size);height:var(--coin-size);
  transform-style:preserve-3d;
  animation:about6Spin 14s linear infinite;
  will-change:transform;
}
.about6-3d:hover .about6-logo3d{animation-duration:30s}
@keyframes about6Spin{
  0%  {transform:rotateY(0deg)   rotateX(6deg)}
  50% {transform:rotateY(180deg) rotateX(-6deg)}
  100%{transform:rotateY(360deg) rotateX(6deg)}
}

.about6-logo3d__face{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:contain;
  backface-visibility:hidden;-webkit-backface-visibility:hidden;
  filter:brightness(0) invert(1) drop-shadow(0 18px 36px rgba(0,0,0,.55)) drop-shadow(0 0 24px rgba(143,179,230,.35));
  user-select:none;-webkit-user-drag:none;
}
.about6-logo3d__face--back{transform:rotateY(180deg)}

/* floor shadow */
.about6-shadow{
  position:absolute;bottom:8%;left:25%;right:25%;height:18px;
  background:radial-gradient(ellipse at center,rgba(0,0,0,.55),transparent 70%);
  filter:blur(14px);
  transform:translateZ(-120px) rotateX(72deg);
  animation:about6ShadowPulse 14s linear infinite;
  pointer-events:none;
}
@keyframes about6ShadowPulse{
  0%,100%{opacity:.55;transform:translateZ(-120px) rotateX(72deg) scaleX(1)}
  50%{opacity:.3;transform:translateZ(-120px) rotateX(72deg) scaleX(.7)}
}

/* text column */
.about6-text{display:flex;flex-direction:column;gap:var(--sp-2);max-width:52ch}
.about6-title{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(2.5rem,5.2vw,4.5rem);line-height:1.02;
  letter-spacing:var(--tr-tighter);
  color:var(--bg);margin:.5rem 0 var(--sp-2);
}
.about6-title em{font-style:italic;color:rgba(143,179,230,.9)}
.about6-p{
  font-family:var(--font-sans);font-size:clamp(1rem,1.1vw,1.0625rem);
  line-height:1.7;color:rgba(247,245,240,.78);
  margin:0;max-width:54ch;
}
.about6-p + .about6-p{margin-top:.4rem}

.about6-link{
  display:inline-flex;align-items:center;gap:.7rem;
  margin-top:var(--sp-3);align-self:flex-start;
  font-family:var(--font-sans);font-size:.875rem;font-weight:500;
  color:rgba(143,179,230,.95);letter-spacing:var(--tr-tight);
  padding-bottom:.4rem;border-bottom:1px solid rgba(143,179,230,.3);
  transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease),gap var(--dur) var(--ease);
}
.about6-link svg{width:16px;height:16px;transition:transform var(--dur) var(--ease-out)}
.about6-link:hover{color:var(--bg);border-color:var(--bg);gap:1rem}
.about6-link:hover svg{transform:translateX(3px)}

@media (prefers-reduced-motion:reduce){
  .about6-coin,.about6-halo,.about6-shadow,.about6-coin__face--front::before{animation:none}
  .about6-coin{transform:rotateY(-18deg) rotateX(8deg)}
}

/* ══════════════════════════════════════════════════════
   Pagina Chi siamo (chi-siamo.html) — matter.com style
   ══════════════════════════════════════════════════════ */
.cs-page{padding-top:var(--nav-h)}

/* HERO */
.cs-hero{padding:clamp(5rem,10vw,9rem) 0 clamp(4rem,8vw,7rem)}
.cs-hero .container{display:flex;flex-direction:column;gap:var(--sp-3);max-width:980px}
.cs-hero__title{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(4.5rem,11vw,9.5rem);line-height:.92;
  letter-spacing:var(--tr-tighter);color:var(--ink);
  margin:.5rem 0 0;
}
.cs-dot{color:var(--accent);font-style:normal}
.cs-hero__sub{
  display:flex;flex-direction:column;gap:.15em;
  margin-top:var(--sp-3);
}
.cs-hero__sub p{
  font-family:var(--font-display);font-weight:400;font-style:italic;
  font-size:clamp(2rem,4vw,3.25rem);line-height:1.05;
  color:var(--ink-soft);margin:0;letter-spacing:var(--tr-tight);
}
.cs-bold{
  font-style:normal;font-family:var(--font-display);font-weight:400;
  color:var(--ink);
  border-bottom:2px solid var(--accent);
  padding-bottom:.05em;
}
.cs-hero__lead{
  font-family:var(--font-sans);font-size:clamp(1.0625rem,1.25vw,1.25rem);
  line-height:1.65;color:var(--ink-soft);
  max-width:62ch;margin-top:var(--sp-4);
}

/* BLOCCO standard */
.cs-block{padding:clamp(3.5rem,7vw,6rem) 0;border-top:1px solid var(--line)}
.cs-block--soft{background:var(--soft)}
.cs-block .container{max-width:980px}

.cs-section-hd{
  display:flex;flex-direction:column;gap:var(--sp-2);
  margin-bottom:var(--sp-5);max-width:64ch;
}
.cs-section-t{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(2.5rem,5.5vw,4.5rem);line-height:.98;
  letter-spacing:var(--tr-tighter);color:var(--ink);margin:.25rem 0 0;
}
.cs-section-p{
  font-family:var(--font-sans);font-size:clamp(1rem,1.15vw,1.125rem);
  line-height:1.65;color:var(--ink-soft);margin:var(--sp-2) 0 0;max-width:60ch;
}

/* RIGA filosofia (manifesto) */
.cs-row{
  display:grid;grid-template-columns:1fr;gap:var(--sp-3);
  padding-top:var(--sp-3);border-top:1px solid var(--line);
}
@media (min-width:768px){
  .cs-row{grid-template-columns:minmax(140px,.25fr) 1fr;gap:var(--sp-5)}
}
.cs-row__lbl{
  font-family:var(--font-sans);font-size:.6875rem;
  color:var(--muted);font-weight:500;
  letter-spacing:var(--tr-eye);text-transform:uppercase;
  padding-top:.6rem;
}
.cs-row__body{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0}
.cs-row__t{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(1.75rem,3vw,2.5rem);line-height:1.15;
  letter-spacing:var(--tr-tight);color:var(--ink);margin:0;
  max-width:24ch;
}
.cs-row__p{
  font-family:var(--font-sans);font-size:clamp(1rem,1.1vw,1.0625rem);
  line-height:1.7;color:var(--ink-soft);margin:0;max-width:62ch;
}

/* LISTA stile matter — name + role + description */
.cs-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}
.cs-list__item{
  display:grid;grid-template-columns:1fr;gap:.5rem;
  padding:var(--sp-4) 0;border-top:1px solid var(--line);
  align-items:baseline;
}
.cs-list__item:first-child{border-top:1px solid var(--ink-soft)}
.cs-list__item:last-child{border-bottom:1px solid var(--line)}
@media (min-width:768px){
  .cs-list__item{
    grid-template-columns:minmax(180px,.45fr) minmax(160px,.35fr) 1fr;
    gap:var(--sp-4);padding:var(--sp-4) 0;
  }
}
.cs-list__name{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.05;
  letter-spacing:var(--tr-tight);color:var(--ink);
}
.cs-list__role{
  font-family:var(--font-sans);font-size:.875rem;
  color:var(--ink-soft);font-weight:500;
  letter-spacing:var(--tr-tight);
}
.cs-list__d{
  font-family:var(--font-sans);font-size:.9375rem;
  line-height:1.6;color:var(--ink-soft);margin:0;max-width:48ch;
}

/* AREE — numerate */
.cs-areas{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:1fr;gap:0;
  border-top:1px solid var(--ink-soft);
}
@media (min-width:768px){.cs-areas{grid-template-columns:repeat(2,1fr);column-gap:var(--sp-5)}}
.cs-areas li{
  display:grid;grid-template-columns:auto 1fr;gap:var(--sp-3);
  padding:var(--sp-3) 0;align-items:baseline;
  border-bottom:1px solid var(--line);
}
.cs-areas .n{
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:1.5rem;color:var(--accent);
  letter-spacing:var(--tr-tight);min-width:2ch;line-height:1;
}
.cs-areas div{display:flex;flex-direction:column;gap:.25rem;min-width:0}
.cs-areas strong{
  font-family:var(--font-display);font-weight:400;font-size:1.375rem;
  color:var(--ink);letter-spacing:var(--tr-tight);line-height:1.1;
}
.cs-areas span{
  font-family:var(--font-sans);font-size:.8125rem;
  color:var(--muted);letter-spacing:var(--tr-tight);
}

/* TAGS — chi seguiamo */
.cs-tags{
  list-style:none;margin:0;padding:0;
  display:flex;flex-wrap:wrap;gap:.5rem;
}
.cs-tags li{
  font-family:var(--font-sans);font-size:.875rem;
  color:var(--ink);font-weight:500;letter-spacing:var(--tr-tight);
  padding:.55rem 1rem;
  border:1px solid var(--line-strong);border-radius:var(--radius-pill);
  background:var(--panel);
  transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease),color var(--dur) var(--ease);
}
.cs-tags li:hover{border-color:var(--ink);background:var(--ink);color:var(--bg)}

/* CTA finale */
.cs-cta{padding:clamp(5rem,10vw,9rem) 0;background:var(--ink);color:var(--bg)}
.cs-cta .container{max-width:880px}
.cs-cta__inner{display:flex;flex-direction:column;gap:var(--sp-3);align-items:flex-start}
.cs-cta .eyebrow{color:rgba(247,245,240,.6)}
.cs-cta__t{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(3rem,7vw,5.5rem);line-height:.98;
  letter-spacing:var(--tr-tighter);color:var(--bg);margin:.25rem 0 0;
}
.cs-cta__p{
  font-family:var(--font-sans);font-size:clamp(1.0625rem,1.2vw,1.1875rem);
  line-height:1.6;color:rgba(247,245,240,.78);margin:0;max-width:54ch;
}
.cs-cta__btns{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-3)}
.cs-cta .btn--ghost{color:var(--bg);border-color:rgba(247,245,240,.3)}
.cs-cta .btn--ghost:hover{color:var(--accent);border-color:var(--accent);background:transparent}

/* ══ Chi siamo (landing) — matter compact, su section--dark ══ */
.csx-hero{
  display:flex;flex-direction:column;gap:var(--sp-3);
  max-width:980px;margin:0 0 var(--sp-6);
  padding-bottom:var(--sp-5);border-bottom:1px solid rgba(247,245,240,.12);
}
.csx-title{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(4rem,10vw,8.5rem);line-height:.92;
  letter-spacing:var(--tr-tighter);color:var(--bg);
  margin:.5rem 0 0;
}
.csx-dot{color:rgba(143,179,230,.95);font-style:normal}
.csx-sub{display:flex;flex-direction:column;gap:.15em;margin-top:var(--sp-3)}
.csx-sub p{
  font-family:var(--font-display);font-weight:400;font-style:italic;
  font-size:clamp(1.75rem,3.6vw,2.875rem);line-height:1.05;
  color:rgba(247,245,240,.65);margin:0;letter-spacing:var(--tr-tight);
}
.csx-bold{
  font-style:normal;font-family:var(--font-display);font-weight:400;
  color:var(--bg);
  border-bottom:2px solid rgba(143,179,230,.85);
  padding-bottom:.05em;
}
.csx-lead{
  font-family:var(--font-sans);font-size:clamp(1rem,1.2vw,1.1875rem);
  line-height:1.65;color:rgba(247,245,240,.78);
  max-width:62ch;margin:var(--sp-3) 0 0;
}

/* blocchi: founder + collaborazioni */
.csx-block{
  display:grid;grid-template-columns:1fr;gap:var(--sp-3);
  padding:var(--sp-5) 0;border-top:1px solid rgba(247,245,240,.12);
  max-width:1080px;
}
@media (min-width:768px){
  .csx-block{grid-template-columns:minmax(180px,.25fr) 1fr;gap:var(--sp-5)}
}
.csx-block__lbl{
  font-family:var(--font-sans);font-size:.6875rem;
  color:rgba(247,245,240,.55);font-weight:500;
  letter-spacing:var(--tr-eye);text-transform:uppercase;
  padding-top:.4rem;
}
.csx-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}
.csx-list__item{
  display:grid;grid-template-columns:1fr;gap:.5rem;
  padding:var(--sp-3) 0;border-top:1px solid rgba(247,245,240,.1);
  align-items:baseline;
}
.csx-list__item:first-child{border-top:0;padding-top:0}
@media (min-width:768px){
  .csx-list__item{
    grid-template-columns:minmax(200px,.45fr) minmax(160px,.32fr) 1fr;
    gap:var(--sp-4);padding:var(--sp-4) 0;
  }
}
.csx-list__name{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.05;
  letter-spacing:var(--tr-tight);color:var(--bg);
}
.csx-list__role{
  font-family:var(--font-sans);font-size:.875rem;
  color:rgba(247,245,240,.68);font-weight:500;
  letter-spacing:var(--tr-tight);
}
.csx-list__d{
  font-family:var(--font-sans);font-size:.9375rem;
  line-height:1.6;color:rgba(247,245,240,.7);margin:0;max-width:48ch;
}

.csx-cta{
  display:inline-flex;align-items:center;gap:.7rem;
  margin-top:var(--sp-5);
  font-family:var(--font-sans);font-size:.9375rem;font-weight:500;
  color:rgba(143,179,230,.95);letter-spacing:var(--tr-tight);
  padding-bottom:.5rem;border-bottom:1px solid rgba(143,179,230,.4);
  transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease),gap var(--dur) var(--ease);
}
.csx-cta svg{width:18px;height:18px;transition:transform var(--dur) var(--ease-out)}
.csx-cta:hover{color:var(--bg);border-color:var(--bg);gap:1rem}
.csx-cta:hover svg{transform:translateX(3px)}

/* ══ Chi siamo (landing) — Vellin-style compatto ══ */
.vln-top{
  display:grid;grid-template-columns:1fr;gap:var(--sp-2);
  margin-bottom:var(--sp-4);align-items:start;
}
@media (min-width:900px){
  .vln-top{grid-template-columns:minmax(160px,.2fr) 1fr;gap:var(--sp-4)}
}
.vln-top__lbl{
  display:flex;flex-direction:row;align-items:flex-start;flex-wrap:wrap;
  gap:.35rem;
  font-family:var(--font-sans);font-size:.6875rem;
  color:var(--ink-soft);font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;
  padding-top:.3rem;
}
.vln-num{display:inline;color:var(--ink)}
.vln-swoosh{
  display:block;width:96px;height:12px;color:#1E3A66;
  margin-top:.25rem;flex-basis:100%;
  filter:drop-shadow(0 1px 0 rgba(156,204,46,.2));
}
.vln-top__head{display:flex;flex-direction:column;gap:.5rem;max-width:74ch}
.vln-h{
  font-family:var(--font-system);font-weight:500;
  font-size:clamp(1.0625rem,1.7vw,1.4375rem);line-height:1.4;
  letter-spacing:var(--tr-tight);color:var(--ink);margin:0;
}
.vln-em{
  position:relative;display:inline;
  font-family:var(--font-system);font-style:normal;font-weight:600;
  font-size:1em;line-height:1;color:var(--ink);
  letter-spacing:-.01em;padding:0 .05em;z-index:0;
}
.vln-em::before{
  content:"";position:absolute;left:-.05em;right:-.05em;bottom:.08em;
  height:.42em;z-index:-1;
  background:linear-gradient(90deg,rgba(143,179,230,.55),rgba(10,25,47,.32));
  transform:scaleX(0);transform-origin:left;
  transition:transform 1.1s cubic-bezier(.7,0,.3,1) .2s;
}
.vln-h.in .vln-em::before,
.rv.is-visible .vln-em::before{transform:scaleX(1)}
.vln-em.in::before{transform:scaleX(1)}
.vln-h--soft{color:var(--muted);font-weight:400}

/* scroll-reveal Apple-style — testo si illumina al scroll */
.vln-reveal{
  display:inline;
  background:linear-gradient(90deg,var(--ink) 0%,var(--ink) 50%,rgba(30,58,102,.22) 50%,rgba(30,58,102,.22) 100%);
  background-size:200% 100%;
  background-position:100% 0;
  -webkit-background-clip:text;background-clip:text;
  color:transparent;
  -webkit-text-fill-color:transparent;
  transition:background-position 1.4s cubic-bezier(.4,0,.2,1);
  will-change:background-position;
}
.vln-h--soft .vln-reveal{
  background:linear-gradient(90deg,var(--muted) 0%,var(--muted) 50%,rgba(138,129,120,.25) 50%,rgba(138,129,120,.25) 100%);
  background-size:200% 100%;background-position:100% 0;
  -webkit-background-clip:text;background-clip:text;
}
.vln-reveal.is-lit{background-position:0 0}

/* griglia foto + stats — 2-col, asimmetria editoriale */
.vln-grid{
  display:grid;grid-template-columns:1fr;gap:var(--sp-4);
  align-items:start;
  position:relative;
}
@media (min-width:900px){
  .vln-grid{
    grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
    column-gap:clamp(2.75rem,5.5vw,5.5rem);
    row-gap:var(--sp-4);
    align-items:stretch;
  }
}

/* photo — niente passe-partout, niente prop-styling: lastra editoriale pulita */
.vln-photo{
  position:relative;margin:0;
  display:flex;flex-direction:column;
  aspect-ratio:5/4;width:100%;
  background:var(--soft);
  isolation:isolate;
}
@media (min-width:900px){
  .vln-photo{aspect-ratio:4/5}
}
.vln-photo__inner{
  position:relative;flex:1 1 auto;
  width:100%;align-self:stretch;
  overflow:hidden;
  background:var(--soft);
  box-sizing:border-box;
}
.vln-photo img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;display:block;
  filter:saturate(.94) contrast(1.03);
  transition:transform 1.4s var(--ease-out),filter .6s var(--ease);
}
.vln-photo:hover img{transform:scale(1.025);filter:saturate(1) contrast(1.05)}
.vln-photo::after{
  content:"";position:absolute;inset:0;
  z-index:2;pointer-events:none;
  background:linear-gradient(180deg,transparent 55%,rgba(14,30,59,.55) 100%);
}
.vln-photo__cap{
  position:absolute;left:clamp(1rem,1.6vw,1.4rem);right:clamp(1rem,1.6vw,1.4rem);
  bottom:clamp(.85rem,1.4vw,1.2rem);z-index:3;
  display:flex;flex-direction:column;gap:.15rem;
}
.vln-photo__cap-name{
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:clamp(1.05rem,1.4vw,1.25rem);
  color:#fff;letter-spacing:var(--tr-tight);line-height:1.05;
  text-shadow:0 1px 12px rgba(0,0,0,.35);
}
.vln-photo__cap-loc{
  font-family:var(--font-sans);font-size:.62rem;font-weight:600;
  color:rgba(255,255,255,.82);letter-spacing:.22em;text-transform:uppercase;
  text-shadow:0 1px 8px rgba(0,0,0,.35);
}

/* lista bullet — Apple-style: lead in display + frase di servizio */
.vln-list{
  display:flex;flex-direction:column;
  height:100%;
  opacity:0;transform:translateY(8px);
  transition:opacity .9s var(--ease-out),transform .9s var(--ease-out);
}
.vln-list.in{opacity:1;transform:none}
.vln-list__head{
  display:grid;grid-template-columns:auto 1fr;align-items:center;
  gap:.85rem;
  padding-bottom:1.1rem;
}
.vln-list__kicker{
  font-family:var(--font-system);font-size:.7rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:var(--muted);
}
.vln-list__rule{height:1px;background:var(--line);display:block}

.vln-bullets{
  list-style:none;margin:0;padding:0;
  display:flex;flex-direction:column;
  flex:1;
}
.vln-bullets li{
  position:relative;
  padding:clamp(1.15rem,1.8vw,1.55rem) 0 clamp(1.15rem,1.8vw,1.55rem) clamp(1.6rem,2vw,2rem);
  border-top:1px solid var(--line);
  font-family:var(--font-system);font-size:clamp(.95rem,1vw,1.0625rem);
  line-height:1.55;color:var(--ink-soft);
  letter-spacing:-.005em;
}
.vln-bullets li:last-child{border-bottom:1px solid var(--line)}
.vln-bullets li::before{
  content:"";
  position:absolute;left:0;top:calc(clamp(1.15rem,1.8vw,1.55rem) + .58em);
  width:.65rem;height:1px;background:var(--ink);
  transition:width .5s var(--ease-out);
}
.vln-bullets li:hover::before{width:1.1rem}
.vln-bullets__lead{
  display:block;
  font-family:var(--font-system);font-weight:600;
  font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.05;
  letter-spacing:-.02em;color:var(--ink);
  margin-bottom:.45rem;
}
.vln-bullets li em{
  font-family:var(--font-system);font-style:normal;
  color:var(--ink);font-weight:600;
}

/* legacy classes (no-op se non usate altrove) */
.vln-stat__idx{display:none}
.vln-stat__lt{
  font-family:var(--font-sans);font-size:.78rem;
  color:var(--ink);font-weight:600;
  letter-spacing:.08em;line-height:1.2;
  text-transform:uppercase;
}
.vln-stat__lb{
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:1rem;color:var(--ink-soft);
  letter-spacing:var(--tr-tight);line-height:1.3;
}

/* CTA */
.vln-cta{
  display:inline-flex;align-items:center;gap:.7rem;
  margin-top:var(--sp-5);
  font-family:var(--font-sans);font-size:.9375rem;font-weight:500;
  color:var(--ink);letter-spacing:var(--tr-tight);
  padding-bottom:.5rem;
  background-image:linear-gradient(currentColor,currentColor);
  background-size:100% 1px;background-repeat:no-repeat;background-position:0 100%;
  transition:gap var(--dur) var(--ease),color var(--dur) var(--ease);
}
.vln-cta svg{width:18px;height:18px;transition:transform var(--dur) var(--ease-out)}
.vln-cta:hover{color:var(--accent);gap:1rem}
.vln-cta:hover svg{transform:translateX(4px)}

/* ══════════════════════════════════════════════════════
   Aree di consulenza — carosello card verticali
   ══════════════════════════════════════════════════════ */
.ar-section{padding:clamp(4rem,8vw,7rem) 0}
.ar-head{
  display:grid;grid-template-columns:1fr;gap:var(--sp-3);
  margin-bottom:var(--sp-5);align-items:end;
}
@media (min-width:900px){
  .ar-head{grid-template-columns:1fr auto;gap:var(--sp-5)}
}
.ar-head__text{display:flex;flex-direction:column;gap:.6rem;max-width:60ch}
.ar-title{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(2.25rem,4.4vw,3.75rem);line-height:1;
  letter-spacing:var(--tr-tighter);color:var(--ink);margin:.25rem 0 0;
}
.ar-title em{font-style:italic;color:var(--ink-soft)}
.ar-lead{
  font-family:var(--font-sans);font-size:clamp(.9375rem,1.05vw,1.0625rem);
  line-height:1.65;color:var(--ink-soft);margin:.5rem 0 0;max-width:54ch;
}

/* track scroll */
.ar-track-wrap{
  position:relative;
}
.ar-track{
  display:flex;gap:var(--sp-2);
  overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  scrollbar-width:none;
  padding:8px 4px 28px;
  scroll-padding-left:4px;
}
.ar-track::-webkit-scrollbar{display:none}

/* arrows — laterali, posizionati sui bordi del track */
.ar-arrow{
  width:52px;height:52px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--panel);color:var(--ink);
  border:1px solid var(--line-strong);cursor:pointer;
  transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease-out),box-shadow .35s var(--ease),opacity .35s var(--ease);
  box-shadow:0 6px 22px rgba(30,58,102,.08);
}
.ar-arrow svg{width:18px;height:18px;transition:transform .4s var(--ease-out)}
.ar-arrow:hover{background:var(--ink);color:var(--bg);border-color:var(--ink);box-shadow:0 12px 32px rgba(30,58,102,.18)}
.ar-arrow--prev:hover svg{transform:translateX(-3px)}
.ar-arrow--next:hover svg{transform:translateX(3px)}
.ar-arrow:active{transform:translateY(-50%) scale(.92)}
.ar-arrow[disabled]{opacity:.25;cursor:not-allowed;pointer-events:none}

/* frecce sui fianchi delle colonne, sempre visibili (loop infinito) */
.ar-arrow--side{
  position:absolute;top:50%;z-index:5;
  transform:translateY(-50%);
}
.ar-arrow--prev{left:-26px}
.ar-arrow--next{right:-26px}
.ar-arrow:active{transform:translateY(-50%) scale(.92)}

/* tablet/iPad */
@media (max-width:1100px){
  .ar-arrow--prev{left:-12px}
  .ar-arrow--next{right:-12px}
}
@media (max-width:820px){
  .ar-arrow{width:44px;height:44px}
  .ar-arrow--prev{left:-22px}
  .ar-arrow--next{right:-22px}
}
@media (max-width:480px){
  .ar-arrow{width:36px;height:36px}
  .ar-arrow svg{width:15px;height:15px}
  .ar-arrow--prev{left:-26px}
  .ar-arrow--next{right:-26px}
}

/* track-wrap deve avere padding laterale su mobile per evitare arrow overlap su prima/ultima card */
@media (max-width:820px){
  .ar-track{padding-left:14px;padding-right:14px}
}

/* card */
/* Card 2.0 — bolder: numero ghost gigante, hover full-color flip, no sheen-AI */
.ar-card{
  position:relative;flex:0 0 auto;
  width:clamp(280px,28vw,360px);min-height:480px;
  display:flex;flex-direction:column;
  background:#FAFBFC;
  border:1px solid var(--line);
  border-radius:6px;
  padding:clamp(1.6rem,2vw,2rem) clamp(1.4rem,1.8vw,1.7rem) clamp(1.4rem,1.8vw,1.6rem);
  scroll-snap-align:start;
  scroll-snap-stop:always;
  color:var(--ink);
  transition:background .55s var(--ease),color .55s var(--ease),border-color .55s var(--ease);
  isolation:isolate;overflow:hidden;
}
/* numero ghost dietro tutto, dimensione editoriale */
.ar-card__num{
  position:absolute;top:.95rem;right:1.1rem;z-index:0;
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:clamp(4.5rem,6vw,6rem);line-height:.85;
  color:rgba(30,58,102,.07);
  letter-spacing:-.04em;
  pointer-events:none;
  transition:color .55s var(--ease),transform .9s cubic-bezier(.2,.9,.3,1);
}
.ar-card:hover .ar-card__num{
  color:rgba(255,255,255,.12);
  transform:translateY(-4px);
}
/* hairline progressivo che traccia il bordo sx in hover */
.ar-card::before{
  content:"";position:absolute;left:0;top:0;width:2px;height:0;
  background:#B8C0CC;z-index:3;
  transition:height .55s cubic-bezier(.2,.9,.3,1);
}
.ar-card:hover::before{height:100%}

/* hover: flip a navy pieno, testo cream — committed colour, no float */
.ar-card:hover{
  background:var(--ink);
  color:#F7F5F0;
  border-color:var(--ink);
}
@media (prefers-reduced-motion:reduce){
  .ar-card,.ar-card::before,.ar-card__num{transition:none}
}

/* TOP: categoria sopra, niente più border-bottom decorativo */
.ar-card__top{
  position:relative;z-index:1;
  display:flex;flex-direction:column;gap:.4rem;
  margin-bottom:auto;
  padding-right:3.5rem; /* spazio per il numero ghost */
}
.ar-card__cat{
  font-family:var(--font-sans);font-size:.62rem;
  color:var(--muted);font-weight:700;
  letter-spacing:.24em;text-transform:uppercase;
  transition:color .55s var(--ease);
}
.ar-card:hover .ar-card__cat{color:#B8C0CC}

.ar-card__title{
  position:relative;z-index:1;
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(1.55rem,2vw,1.95rem);line-height:1.05;
  letter-spacing:-.02em;color:inherit;
  margin:.6rem 0 1rem;
  max-width:18ch;
}
.ar-card__title em{font-style:italic;color:var(--ink-soft);transition:color .55s var(--ease)}
.ar-card:hover .ar-card__title em{color:#B8C0CC}

.ar-card__desc{
  position:relative;z-index:1;
  font-family:var(--font-sans);font-size:.92rem;line-height:1.55;
  color:var(--ink-soft);margin:0 0 1.1rem;
  transition:color .55s var(--ease);
}
.ar-card:hover .ar-card__desc{color:rgba(247,245,240,.72)}

/* TAGS: niente pill chips, micro-caps separati da · */
.ar-card__tags{
  position:relative;z-index:1;
  list-style:none;margin:0 0 1.2rem;padding:0;
  display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;
  font-family:var(--font-sans);font-size:.62rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);
  transition:color .55s var(--ease);
}
.ar-card:hover .ar-card__tags{color:rgba(247,245,240,.55)}
.ar-card__tags li{
  display:inline-flex;align-items:center;gap:.5rem;padding:0;border:0;background:none;border-radius:0;
}
.ar-card__tags li:not(:last-child)::after{
  content:"·";display:inline-block;margin-left:.5rem;
  color:var(--line-strong);font-weight:400;font-size:1rem;line-height:0;
  transition:color .55s var(--ease);
}
.ar-card:hover .ar-card__tags li:not(:last-child)::after{color:rgba(247,245,240,.3)}

/* FOOT: metric + arrow, top-rule sottile */
.ar-card__foot{
  position:relative;z-index:1;
  margin-top:auto;
  display:flex;align-items:center;justify-content:space-between;
  padding-top:1.1rem;
  border-top:1px solid var(--line);
  transition:border-color .55s var(--ease);
}
.ar-card:hover .ar-card__foot{border-color:rgba(247,245,240,.18)}
.ar-card__metric{display:flex;flex-direction:column;gap:.15rem}
.ar-card__metric .n{
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:1.85rem;line-height:.9;color:inherit;
  letter-spacing:-.02em;
}
.ar-card__metric .l{
  font-family:var(--font-sans);font-size:.6rem;
  color:var(--muted);font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;
  transition:color .55s var(--ease);
}
.ar-card:hover .ar-card__metric .l{color:rgba(247,245,240,.6)}

.ar-card__link{
  position:relative;
  width:44px;height:44px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  background:transparent;color:inherit;
  border:1px solid var(--line-strong);
  transition:background .35s var(--ease),border-color .35s var(--ease),transform .55s cubic-bezier(.2,.9,.3,1);
}
.ar-card__link svg{width:16px;height:16px;transition:transform .35s var(--ease-out)}
.ar-card:hover .ar-card__link{
  background:#B8C0CC;color:#14110F;
  border-color:#B8C0CC;
  transform:rotate(-45deg);
}

/* progress bar */
.ar-progress{
  margin-top:var(--sp-3);height:2px;
  background:var(--line);border-radius:1px;overflow:hidden;
  max-width:280px;
}
.ar-progress__bar{
  height:100%;width:16.66%;background:var(--ink);
  transform-origin:left;transition:width .5s var(--ease-out),transform .5s var(--ease-out);
}

/* mobile/tablet adjustments — universale */
@media (max-width:1100px){
  .ar-card{width:clamp(260px,42vw,320px);min-height:420px}
}
@media (max-width:820px){
  .ar-card{width:72vw;min-height:400px;padding:1.4rem}
  .ar-track{gap:.85rem;padding:8px 14px 24px}
  .ar-head__text{max-width:none}
}
@media (max-width:480px){
  .ar-card{width:80vw;min-height:360px;padding:1.2rem}
  .ar-card__title{font-size:1.25rem}
  .ar-card__desc{font-size:.875rem}
}

/* mobile — stats sotto foto, layout invariato (riga con num + label) */
@media (max-width:899px){
  .vln-stats{margin-top:var(--sp-3)}
  .vln-stat{padding:.85rem 0;gap:1.1rem}
  .vln-stat__n{font-size:2.5rem;min-width:2.8ch}
  .vln-stat__lt{font-size:.75rem}
  .vln-stat__lb{font-size:.875rem}
}
@media (max-width:480px){
  .vln-stat__n{font-size:2.25rem}
}

/* ══════════════════════════════════════════════════════
   Risorse — semi-globo wireframe ruotante in background
   ══════════════════════════════════════════════════════ */
.globe-section{
  position:relative;overflow:hidden;
  isolation:isolate;
  padding-top:clamp(5rem,9vw,8rem);
  padding-bottom:clamp(5rem,9vw,8rem);
}
.globe-content{position:relative;z-index:2}

/* ambient glow di fondo */
.globe-bg-glow{
  position:absolute;top:-10%;right:-10%;width:60%;height:80%;
  background:radial-gradient(circle at 60% 40%,rgba(60,140,255,.10) 0%,rgba(60,140,255,0) 60%);
  filter:blur(40px);pointer-events:none;z-index:0;
}

.globe-split{
  display:grid;grid-template-columns:1fr;gap:var(--sp-4);
  align-items:center;
  border:1px solid rgba(255,255,255,.08);
  border-radius:18px;
  background:rgba(10,25,47,.45);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  overflow:hidden;position:relative;
  padding:clamp(2rem,4vw,3.5rem) clamp(1.5rem,3vw,3rem);
  isolation:isolate;
}
@media (min-width:900px){
  .globe-split{
    grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
    gap:clamp(2rem,4vw,4rem);
    padding:clamp(2.5rem,4vw,4rem);
    min-height:540px;
  }
}

/* TEXT side */
.globe-text{display:flex;flex-direction:column;gap:1.5rem;position:relative;z-index:2}
.globe-status{
  display:inline-flex;align-items:center;gap:.55rem;width:fit-content;
  padding:.4rem .9rem;border-radius:999px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.04);
  font-family:var(--font-sans);font-size:.7rem;font-weight:600;
  letter-spacing:.04em;color:rgba(247,245,240,.78);
}
.globe-status__dot{
  width:7px;height:7px;border-radius:50%;background:#22D3A3;
  box-shadow:0 0 0 0 rgba(34,211,163,.5);
  animation:globePulse 1.8s ease-out infinite;
}
@keyframes globePulse{
  0%{box-shadow:0 0 0 0 rgba(34,211,163,.45)}
  70%{box-shadow:0 0 0 8px rgba(34,211,163,0)}
  100%{box-shadow:0 0 0 0 rgba(34,211,163,0)}
}
.globe-h{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(2rem,3.6vw,3rem);line-height:1.05;
  letter-spacing:-.02em;color:#F7F5F0;margin:0;
}
.globe-h em{font-style:italic;color:#A9BCD9}
.globe-sub{
  font-family:var(--font-sans);font-size:1rem;line-height:1.6;
  color:rgba(247,245,240,.72);margin:0;max-width:42ch;
}

/* STATS row */
.globe-stats{
  display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap;
  padding:1rem 0 .25rem;
}
.globe-stats .n{
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:1.85rem;line-height:1;color:#F7F5F0;
  letter-spacing:-.02em;margin:0 0 .25rem;
}
.globe-stats .l{
  font-family:var(--font-sans);font-size:.65rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;
  color:rgba(247,245,240,.55);margin:0;
}
.globe-stats .sep{
  display:block;width:1px;height:32px;
  background:rgba(255,255,255,.18);
}

/* LINKS — 3 risorse compatte */
.globe-links{
  display:flex;flex-direction:column;gap:.5rem;
  margin-top:.5rem;
}
.globe-link{
  display:flex;align-items:center;gap:.85rem;
  padding:.9rem 1.1rem;border-radius:10px;
  border:1px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.03);
  color:#F7F5F0;
  font-family:var(--font-sans);font-size:.95rem;font-weight:500;
  transition:background .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease-out);
}
.globe-link svg:first-child{
  width:18px;height:18px;flex-shrink:0;color:#A9BCD9;
  fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;
}
.globe-link span{flex:1}
.globe-link span em{font-style:italic;color:#A9BCD9;font-weight:400}
.globe-link .arrow{width:16px;height:16px;flex-shrink:0;color:rgba(247,245,240,.55);transition:transform .35s var(--ease-out),color .35s var(--ease)}
.globe-link:hover{background:rgba(255,255,255,.06);border-color:rgba(143,179,230,.4);transform:translateX(2px)}
.globe-link:hover .arrow{transform:translateX(4px);color:#A9BCD9}

/* GLOBE stage */
.globe-stage{
  position:relative;display:flex;align-items:center;justify-content:center;
  min-height:380px;
}
@media (min-width:900px){
  .globe-stage{min-height:480px}
}
.globe-canvas{
  width:min(540px,100%);aspect-ratio:1/1;
  display:block;
  cursor:grab;
}
.globe-canvas:active{cursor:grabbing}

/* ══════════════════════════════════════════════════════
   APPLE-STYLE OVERHAUL — approccio → footer
   editorial typography · generous whitespace · asimmetria
   ══════════════════════════════════════════════════════ */

/* APPROCCIO — Apple keynote: titolo gigante, center-aligned, massimo spazio */
section#approccio{
  padding:clamp(7rem,12vw,12rem) 0;
  background:#FBFBFD; /* Apple white esatto */
}
section#approccio .container{max-width:1200px}
section#approccio .s-head{
  display:flex;flex-direction:column;align-items:center;text-align:center;
  margin-bottom:clamp(4rem,7vw,7rem);
  max-width:none;gap:1.5rem;
}
section#approccio .s-head .eyebrow{
  font-family:var(--font-sans);font-size:.875rem;font-weight:600;
  letter-spacing:.04em;color:#1E3A66; /* Apple blue */
  text-transform:none;
  display:inline-block;
}
section#approccio .s-head .eyebrow::before{display:none}
section#approccio .s-head h2{
  font-family:var(--font-display);font-weight:500;
  font-size:clamp(2.75rem,7.5vw,5.5rem);line-height:1;
  letter-spacing:-.035em;color:#1D1D1F;margin:0;
  max-width:18ch;
}
section#approccio .s-head h2 em{font-style:italic;font-weight:400;color:#1D1D1F}

/* CTA "Parla con noi" — Apple blue link */
section#approccio .text-center{
  margin-top:clamp(4rem,6vw,5rem)!important;
  text-align:center!important;
}
section#approccio .text-center .btn{
  display:inline-flex;align-items:center;gap:.4rem;
  background:transparent;color:#1E3A66;
  border:0;padding:0;height:auto;
  font-family:var(--font-sans);font-size:1.0625rem;font-weight:500;
  letter-spacing:-.005em;
  border-radius:0;
}
section#approccio .text-center .btn::after{
  content:"›";display:inline-block;font-size:1.4em;line-height:1;
  transition:transform .35s var(--ease-out);
}
section#approccio .text-center .btn:hover{background:transparent;color:#1E3A66;text-decoration:underline;text-underline-offset:4px}
section#approccio .text-center .btn:hover::after{transform:translateX(3px)}

/* ── BOOKING — Brand navy hero (coerente con identità studio) ── */
section#booking{
  padding:clamp(7rem,12vw,12rem) 0;
  background:
    radial-gradient(1200px 600px at 80% -10%, rgba(31,61,110,.6), transparent 60%),
    radial-gradient(900px 500px at -10% 110%, rgba(14,30,59,.7), transparent 60%),
    linear-gradient(180deg, #142847 0%, #1E3A66 60%, #264576 100%);
}
section#booking .s-head{
  text-align:center;max-width:900px;margin:0 auto clamp(4rem,7vw,7rem);
  display:flex;flex-direction:column;align-items:center;gap:1.5rem;
}
section#booking .s-head .eyebrow{
  display:inline-block;
  color:#A9BCD9; /* Navy soft tint — coerente brand */
  font-size:.875rem;font-weight:600;
  letter-spacing:-.005em;text-transform:none;
}
section#booking .s-head .eyebrow::before{display:none}
section#booking .s-head h2{
  font-family:var(--font-display);font-weight:500;
  font-size:clamp(2.75rem,7.5vw,5.5rem);line-height:1;
  letter-spacing:-.035em;color:#F5F5F7; /* Apple white */
  margin:0;max-width:14ch;
}
section#booking .s-head h2 em{font-style:italic;font-weight:400;color:#A1A1A6}
section#booking .s-head p{
  font-size:1.1875rem;color:#A1A1A6;
  max-width:48ch;line-height:1.45;margin:0;
}

/* MODE TABS — underline switch */
section#booking .booking__head{margin-bottom:clamp(2rem,3vw,3rem)}
section#booking .booking__modes{
  display:inline-flex;gap:0;
  border:0;background:transparent;border-radius:0;padding:0;
  border-bottom:1px solid rgba(247,245,240,.18);
}
section#booking .bk-mode-tab{
  background:transparent;border:0;border-radius:0;
  color:rgba(247,245,240,.55);
  font-family:var(--font-sans);font-size:.95rem;font-weight:500;
  padding:.85rem 1.4rem .9rem;
  letter-spacing:-.01em;cursor:pointer;
  border-bottom:2px solid transparent;
  margin-bottom:-1px;
  transition:color .35s var(--ease),border-color .35s var(--ease);
}
section#booking .bk-mode-tab:hover{color:rgba(247,245,240,.85)}
section#booking .bk-mode-tab.active{
  color:#F7F5F0;border-bottom-color:#F7F5F0;
  background:transparent;
}

/* STEPPER — hairline minimal */
section#booking .booking__steps{
  display:flex!important;justify-content:flex-start!important;
  gap:.9rem;margin-bottom:clamp(2rem,3vw,3rem);flex-wrap:wrap;
  font-family:var(--font-sans);font-size:.78rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;
}
section#booking .bstep{
  display:inline-flex;align-items:center;gap:.55rem;
  color:rgba(247,245,240,.4);
}
section#booking .bstep .n{
  width:24px;height:24px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  background:transparent;border:1px solid rgba(247,245,240,.25);
  font-size:.75rem;font-weight:600;color:inherit;
}
section#booking .bstep.done{color:rgba(247,245,240,.7)}
section#booking .bstep.done .n{background:#F7F5F0;color:#142847;border-color:#F7F5F0}
section#booking .bstep.current{color:#F7F5F0}
section#booking .bstep.current .n{background:transparent;color:#F7F5F0;border-color:#F7F5F0}
section#booking .bstep-sep{
  display:inline-block;width:1.2rem;height:1px;background:rgba(247,245,240,.25);
  align-self:center;
}

/* DURATION segmented control */
section#booking .dur-label{
  font-family:var(--font-sans);font-size:.7rem;font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;
  color:rgba(247,245,240,.55);margin:0 0 .85rem;
}
section#booking .dur-row{
  display:inline-flex;gap:0;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.1);
  border-radius:999px;padding:.3rem;
}
section#booking .dur-btn{
  background:transparent;border:0;border-radius:999px;
  color:rgba(247,245,240,.7);
  font-family:var(--font-sans);font-size:.875rem;font-weight:500;
  padding:.55rem 1.2rem;cursor:pointer;
  transition:background .3s var(--ease),color .3s var(--ease);
}
section#booking .dur-btn:hover{color:#F7F5F0}
section#booking .dur-btn.active{background:#F7F5F0;color:#142847}

/* BK NOTE — quieter */
section#booking .bk-note{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.1);
  border-radius:8px;padding:1rem 1.2rem;
  font-size:.92rem;line-height:1.55;color:rgba(247,245,240,.72);
  margin-bottom:2rem;
}
section#booking .bk-note strong{
  display:block;color:#F7F5F0;font-weight:600;
  font-size:.65rem;letter-spacing:.22em;text-transform:uppercase;
  margin-bottom:.3rem;
}

/* SLOTS title */
section#booking .slots-title{
  font-family:var(--font-sans);font-size:.7rem;font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;
  color:rgba(247,245,240,.55);margin:1.8rem 0 .85rem;
}
section#booking .sel-date-lbl{
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:1.25rem;color:#F7F5F0;margin:.4rem 0 1rem;
  letter-spacing:-.01em;
}

/* INPUTS — Apple thin underline */
section#booking .field{margin-bottom:1.4rem}
section#booking .field label{
  display:block;
  font-family:var(--font-sans);font-size:.7rem;font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;
  color:rgba(247,245,240,.55);margin-bottom:.5rem;
}
section#booking .field input,
section#booking .field select,
section#booking .field textarea{
  width:100%;background:transparent;color:#F7F5F0;
  border:0;border-bottom:1px solid rgba(247,245,240,.2);
  border-radius:0;padding:.6rem 0;
  font-family:var(--font-sans);font-size:1rem;
  transition:border-color .3s var(--ease);
}
section#booking .field input:focus,
section#booking .field select:focus,
section#booking .field textarea:focus{
  outline:0;border-bottom-color:#F7F5F0;
}
section#booking .field textarea{min-height:80px;resize:vertical}

/* CTA buttons inside booking — Apple pill */
section#booking .btn{
  background:#F7F5F0;color:#142847;border:0;
  border-radius:999px;padding:.95rem 1.7rem;height:auto;
  font-family:var(--font-sans);font-size:.95rem;font-weight:600;
  letter-spacing:-.005em;
  transition:transform .25s var(--ease),background .3s var(--ease);
}
section#booking .btn:hover{background:#fff;transform:translateY(-1px)}
section#booking .btn--full{width:100%}
section#booking .btn--sm{padding:.7rem 1.3rem;font-size:.85rem}

/* Confirm bar */
section#booking .confirm-bar{
  margin-top:2rem;padding-top:1.5rem;
  border-top:1px solid rgba(247,245,240,.12);
  display:flex;align-items:center;justify-content:space-between;gap:1.2rem;
  flex-wrap:wrap;
}
section#booking .confirm-sum{color:rgba(247,245,240,.85);font-size:.95rem;line-height:1.5}

/* Privacy checkbox */
section#booking .privacy{display:flex;align-items:flex-start;gap:.7rem;font-size:.85rem;color:rgba(247,245,240,.7);margin:1rem 0 1.5rem;line-height:1.5}
section#booking .privacy input{width:18px;height:18px;flex-shrink:0;margin-top:.15rem}
section#booking .privacy a{color:#A9BCD9;text-decoration:underline;text-underline-offset:3px}

/* ── FAQ — Apple keynote: titolo gigante centrato, accordion sotto ── */
section#faq{
  padding:clamp(7rem,12vw,12rem) 0;
  background:#FBFBFD;
}
section#faq .container{max-width:900px}
section#faq .faq-grid{
  display:flex;flex-direction:column;gap:clamp(3rem,5vw,5rem);
  align-items:stretch;
}
section#faq .faq-side{
  text-align:center;display:flex;flex-direction:column;align-items:center;gap:1.2rem;
  position:static;
}
section#faq .faq-side .eyebrow{
  font-family:var(--font-sans);font-size:.875rem;font-weight:600;
  letter-spacing:-.005em;color:#1E3A66;
  text-transform:none;
}
section#faq .faq-side .eyebrow::before{display:none}
section#faq .faq-side h2{
  font-family:var(--font-display);font-weight:500;
  font-size:clamp(2.75rem,7.5vw,5.5rem);line-height:1;
  letter-spacing:-.035em;color:#1D1D1F;
  margin:0!important;
}
section#faq .faq-side .lead{
  font-size:1.1875rem;line-height:1.45;color:#6E6E73;
  max-width:48ch;margin:0;
}
section#faq .faq-side .lead a{
  color:#1E3A66!important;font-weight:500!important;
  border:0;text-decoration:none;
}
section#faq .faq-side .lead a:hover{text-decoration:underline;text-underline-offset:3px}

/* FAQ accordion Apple-style — niente cornici, hairline tenue */
#faq-list .faq-item{
  border-top:1px solid #D2D2D7;
  padding:0;margin:0;background:transparent;border-radius:0;
}
#faq-list .faq-item:last-child{border-bottom:1px solid #D2D2D7}
#faq-list .faq-q{
  display:flex;align-items:center;justify-content:space-between;gap:1.5rem;
  padding:1.8rem 0;cursor:pointer;
  font-family:var(--font-sans);font-weight:500;
  font-size:clamp(1.0625rem,1.4vw,1.25rem);line-height:1.3;
  letter-spacing:-.015em;color:#1D1D1F;
  background:transparent;border:0;width:100%;text-align:left;
  transition:color .35s var(--ease),padding-left .55s cubic-bezier(.2,.9,.3,1);
}
#faq-list .faq-q:hover{color:#1E3A66;padding-left:.6rem}
#faq-list .faq-item.open .faq-q{padding-left:.6rem}
#faq-list .faq-q::after{
  content:"+";display:inline-flex;align-items:center;justify-content:center;
  width:32px;height:32px;flex-shrink:0;border-radius:50%;
  background:#1D1D1F;color:#FFFFFF;font-size:1.25rem;font-weight:300;line-height:1;
  transition:transform .4s cubic-bezier(.2,.9,.3,1),background .3s var(--ease);
  padding-bottom:.1em;
}
#faq-list .faq-q:hover::after{background:#1E3A66}
#faq-list .faq-item.open .faq-q::after{
  content:"−";transform:none;
}
#faq-list .faq-a{
  overflow:hidden;max-height:0;
  transition:max-height .55s cubic-bezier(.4,0,.2,1);
}
#faq-list .faq-a-inner{
  padding:0 0 2rem;font-family:var(--font-sans);
  font-size:1.0625rem;line-height:1.55;color:#6E6E73;
  max-width:62ch;
}

/* ── DOVE / Mappa — Apple keynote: titolo centro, mappa hero ── */
section#dove{
  padding:clamp(7rem,12vw,12rem) 0 0;
  background:#FFFFFF;
}
section#dove .s-head{
  display:flex;flex-direction:column;align-items:center;text-align:center;
  margin-bottom:clamp(4rem,7vw,6rem);max-width:none;gap:1.2rem;
}
section#dove .s-head .eyebrow{
  font-family:var(--font-sans);font-size:.875rem;font-weight:600;
  letter-spacing:-.005em;color:#1E3A66;
  text-transform:none;
}
section#dove .s-head .eyebrow::before{display:none}
section#dove .s-head h2{
  font-family:var(--font-display);font-weight:500;
  font-size:clamp(2.75rem,7.5vw,5.5rem);line-height:1;
  letter-spacing:-.035em;color:#1D1D1F;margin:0;
}
section#dove .s-head h2 em{font-style:italic;font-weight:400;color:#1D1D1F}

/* Map: hero relativo + glass card galleggiante (Apple Stores style) */
section#dove .map{
  display:block;position:relative;
}
section#dove .map__embed{
  position:relative;min-height:560px;height:60vh;max-height:720px;
  background:#F5F5F7;
}
section#dove .map__info{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(420px,90%);
  background:rgba(255,255,255,.78);
  backdrop-filter:saturate(180%) blur(20px);
  -webkit-backdrop-filter:saturate(180%) blur(20px);
  border:1px solid rgba(255,255,255,.5);
  border-radius:18px;
  padding:clamp(1.8rem,2.5vw,2.4rem);
  box-shadow:0 24px 60px -20px rgba(0,0,0,.18),0 1px 2px rgba(0,0,0,.06);
  z-index:2;
}
@media (min-width:900px){
  section#dove .map__info{
    left:6%;transform:translate(0,-50%);
  }
}
section#dove .map__info .c-list{
  list-style:none;margin:0;padding:0;
  display:flex;flex-direction:column;gap:0;
}
section#dove .map__info .c-list li{
  display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start;
  padding:.95rem 0;border-top:1px solid rgba(0,0,0,.08);
}
section#dove .map__info .c-list li:first-child{border-top:0;padding-top:0}
section#dove .map__info .c-list li svg{
  width:18px;height:18px;color:#1E3A66;
  fill:none;stroke:currentColor;stroke-width:1.6;margin-top:.2rem;
}
section#dove .map__info .c-lbl{
  font-family:var(--font-sans);font-size:.875rem;font-weight:600;
  letter-spacing:-.005em;text-transform:none;
  color:#86868B;margin-bottom:.2rem;
}
section#dove .map__info .c-val{
  font-family:var(--font-sans);font-weight:500;
  font-size:1.0625rem;letter-spacing:-.005em;color:#1D1D1F;line-height:1.4;
}
section#dove .map__info .c-val a{color:#1D1D1F;border:0}
section#dove .map__info .c-val a:hover{color:#1E3A66}

/* ── FOOTER — Apple-style: hero CTA black, footer grid grey ── */
.footer{background:#FBFBFD;color:#1D1D1F;padding:0}
.footer .container{padding-top:0;padding-bottom:0}

/* CTA hero — black banner, center-aligned */
.footer__cta{
  display:flex;flex-direction:column;align-items:center;text-align:center;gap:2.2rem;
  padding:clamp(6rem,11vw,10rem) 1.5rem;
  background:#000000;color:#F5F5F7;
  border:0;border-bottom:0;
}
.footer__cta > div:first-child{display:flex;flex-direction:column;align-items:center;gap:1.2rem}
.footer__cta .eyebrow{
  font-family:var(--font-sans)!important;font-size:.875rem!important;
  font-weight:600!important;letter-spacing:-.005em!important;
  text-transform:none;color:#2997FF!important;
}
.footer__cta .eyebrow::before{display:none}
.footer__cta-t{
  font-family:var(--font-display);font-weight:500;
  font-size:clamp(2.75rem,7.5vw,5.5rem);line-height:1;
  letter-spacing:-.035em;color:#F5F5F7;
  margin:0;max-width:16ch;
}
.footer__cta-t em{font-style:italic;font-weight:400;color:#A1A1A6}
.footer__cta-d{
  font-size:1.1875rem;color:#A1A1A6;
  max-width:42ch;line-height:1.45;margin:0;
}
.footer__cta-btns{display:flex;flex-direction:row;gap:.8rem;flex-wrap:wrap;justify-content:center}
.footer__cta-btns .btn{
  background:#2997FF;color:#FFFFFF;border:0;border-radius:980px;
  height:auto;padding:1rem 1.8rem;
  font-family:var(--font-sans);font-size:1.0625rem;font-weight:400;
  letter-spacing:-.005em;
  transition:background .25s var(--ease);
}
.footer__cta-btns .btn:hover{background:#147CE5;transform:none}
.footer__cta-btns .btn--ghost-invert{
  background:transparent;color:#2997FF;
  border:0;padding:1rem 0;
  display:inline-flex;align-items:center;gap:.4rem;
}
.footer__cta-btns .btn--ghost-invert:hover{background:transparent;text-decoration:underline;text-underline-offset:4px}

.footer__status{
  display:flex;align-items:center;justify-content:center;gap:.85rem;flex-wrap:wrap;
  padding:1.4rem 1.5rem;
  font-family:var(--font-sans);font-size:.8125rem;font-weight:400;
  letter-spacing:-.005em;color:#86868B;
  background:#F5F5F7;border-bottom:1px solid #D2D2D7;
}
.footer__status a{color:#1D1D1F}
.footer__status .dot{display:inline-flex;align-items:center;gap:.5rem;color:#1D1D1F}
.footer__status .dot i{
  width:7px;height:7px;border-radius:50%;display:inline-block;
  background:#22D3A3;box-shadow:0 0 0 0 rgba(34,211,163,.5);
  animation:globePulse 1.8s ease-out infinite;
}
.footer__status .dot.closed i{background:#86868B;animation:none}

.footer__grid{
  display:grid;grid-template-columns:1fr 1fr;gap:2.5rem 1.5rem;
  padding:clamp(3rem,5vw,4rem) 0 clamp(1.5rem,3vw,2rem);
  background:#F5F5F7;
}
@media (min-width:768px){
  .footer__grid{grid-template-columns:1.6fr 1fr 1fr 1fr;gap:3rem}
}
.footer__brand{
  font-family:var(--font-display);font-weight:500;
  font-size:1.5rem;letter-spacing:-.02em;color:#1D1D1F;
  margin-bottom:.75rem;
}
.footer__brand em{font-style:italic;font-weight:400;color:#1D1D1F}
.footer__desc{
  font-family:var(--font-sans);font-size:.875rem;line-height:1.5;
  color:#86868B;max-width:36ch;margin:0;
}
.footer__grid h5{
  font-family:var(--font-sans);font-size:.75rem;font-weight:600;
  letter-spacing:-.005em;text-transform:none;
  color:#1D1D1F;margin:0 0 1rem;
}
.footer__grid a{
  display:block;font-family:var(--font-sans);font-size:.8125rem;
  color:#424245;margin-bottom:.6rem;
  text-decoration:none;transition:color .2s var(--ease);
}
.footer__grid a:hover{color:#1E3A66;text-decoration:underline;text-underline-offset:2px}

/* ═══════════════════════════════════════════════════════════════
   FAQ v3 — TWO-COL CONVERSATIONAL (Opt A)
   Sx: domanda massiva serif italic + risposta lunga
   Dx: lista navigabile compatta
   ═══════════════════════════════════════════════════════════════ */
section#faq{
  padding:clamp(7rem,12vw,12rem) 0;
  background:#FBFBFD;
  position:relative;
  overflow:hidden;
  scroll-margin-top:calc(var(--nav-h, 68px) + 12px);
}
section#faq::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(900px 500px at 90% 10%, rgba(30,58,102,.05), transparent 60%),
    radial-gradient(700px 400px at 5% 90%, rgba(30,58,102,.04), transparent 60%);
  pointer-events:none;
}
section#faq .container{max-width:1240px;position:relative;z-index:1}

/* Header */
.faq-head{
  display:flex;flex-direction:column;align-items:flex-start;gap:1rem;
  margin-bottom:clamp(3rem,5vw,5rem);max-width:none;
}
.faq-head .eyebrow{
  font-family:var(--font-sans);font-size:.8125rem;font-weight:600;
  letter-spacing:-.005em;color:#1E3A66;text-transform:none;
}
.faq-head .eyebrow::before{display:none}
.faq-h{
  font-family:var(--font-display);font-weight:500;
  font-size:clamp(2.75rem,7vw,5rem);line-height:.98;
  letter-spacing:-.038em;color:#1D1D1F;margin:0;
}
.faq-h em{font-style:italic;font-weight:400;color:#1E3A66}

/* Two-col grid */
.faq-conv{
  display:grid;grid-template-columns:1fr;gap:clamp(2.5rem,4vw,4rem);
  align-items:start;
}
@media (min-width:960px){
  .faq-conv{grid-template-columns:1.35fr 1fr;gap:clamp(3rem,5vw,5rem)}
}

/* LEFT — active question */
.faq-active{
  position:relative;min-height:340px;
  display:flex;flex-direction:column;gap:1.6rem;
  transition:opacity .25s var(--ease), transform .35s var(--ease);
  opacity:1;transform:translateY(0);
}
.faq-active.is-out{opacity:0;transform:translateY(8px)}
.faq-active.is-in{opacity:1;transform:translateY(0)}
.faq-active__num{
  font-family:var(--font-sans);font-size:.75rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:#86868B;
}
.faq-active__num span:first-child{color:#1E3A66;font-weight:700}
.faq-active__q{
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:clamp(2rem,4vw,3rem);line-height:1.05;
  letter-spacing:-.025em;color:#1D1D1F;margin:0;
  max-width:18ch;
}
.faq-active__a{
  font-family:var(--font-sans);font-size:1.125rem;line-height:1.6;
  color:#424245;max-width:54ch;margin:0;
}
.faq-active__a strong{color:#1D1D1F;font-weight:600}
.faq-active__nav{
  display:flex;gap:.6rem;margin-top:.5rem;
}
.faq-nav-btn{
  width:48px;height:48px;border-radius:999px;
  background:#FFFFFF;border:1px solid #D2D2D7;
  display:inline-flex;align-items:center;justify-content:center;
  color:#1D1D1F;cursor:pointer;
  transition:background .25s var(--ease), color .25s var(--ease), transform .2s var(--ease), border-color .25s var(--ease);
}
.faq-nav-btn:hover{background:#1D1D1F;color:#FFFFFF;border-color:#1D1D1F;transform:translateY(-1px)}
.faq-nav-btn svg{width:18px;height:18px}

/* RIGHT — list */
.faq-list{
  list-style:none;margin:0;padding:0;
  display:flex;flex-direction:column;gap:0;
  border-top:1px solid #D2D2D7;
}
.faq-li{margin:0}
.faq-li__btn{
  width:100%;display:grid;grid-template-columns:auto 1fr;gap:1rem;
  align-items:baseline;text-align:left;
  background:transparent;border:0;border-bottom:1px solid #D2D2D7;
  padding:1.1rem .2rem;cursor:pointer;
  font-family:var(--font-sans);
  transition:padding-left .4s cubic-bezier(.2,.9,.3,1), color .25s var(--ease);
  color:#424245;
}
.faq-li__btn:hover{padding-left:.7rem;color:#1E3A66}
.faq-li__btn.is-active{padding-left:.7rem;color:#1D1D1F}
.faq-li__btn.is-active .faq-li__n{color:#1E3A66;font-weight:700}
.faq-li__n{
  font-size:.75rem;font-weight:500;letter-spacing:.06em;
  color:#86868B;font-variant-numeric:tabular-nums;
}
.faq-li__q{
  font-size:.9375rem;line-height:1.4;font-weight:500;
  letter-spacing:-.005em;
}
.faq-li__btn.is-active .faq-li__q{font-weight:600}

/* Indicator dot when active */
.faq-li__btn.is-active::before{
  content:"";display:none;
}

/* Footer line */
.faq-foot{
  margin:clamp(3rem,5vw,4rem) 0 0;
  font-family:var(--font-sans);font-size:.95rem;color:#86868B;
  text-align:center;
}
.faq-foot a{color:#1E3A66;border:0;text-decoration:none;font-weight:500}
.faq-foot a:hover{text-decoration:underline;text-underline-offset:3px}

/* Kill old accordion styles when conv markup present */
section#faq .faq-grid{display:none}

/* ═══════════════════════════════════════════════════════════════
   DOVE v2 — HERO IMMERSIVE (Opt 1)
   Mappa full-bleed 80vh + glass card sx 50% + transport icons
   ═══════════════════════════════════════════════════════════════ */
section.section--dove{
  padding:clamp(7rem,12vw,12rem) 0 0;
  background:#FFFFFF;
}
section.section--dove .s-head{
  display:flex;flex-direction:column;align-items:flex-start;text-align:left;
  margin-bottom:clamp(3rem,5vw,5rem);max-width:none;gap:1rem;
}
section.section--dove .s-head .eyebrow{
  font-family:var(--font-sans);font-size:.8125rem;font-weight:600;
  letter-spacing:-.005em;color:#1E3A66;text-transform:none;
}
section.section--dove .s-head .eyebrow::before{display:none}
section.section--dove .s-head h2{
  font-family:var(--font-display);font-weight:500;
  font-size:clamp(2.75rem,7vw,5rem);line-height:.98;
  letter-spacing:-.038em;color:#1D1D1F;margin:0;
}
section.section--dove .s-head h2 em{font-style:italic;font-weight:400;color:#1E3A66}

.dove-hero{
  position:relative;width:100%;
  min-height:560px;height:80vh;max-height:820px;
  overflow:hidden;background:#F5F5F7;
}
.dove-hero__map{
  position:absolute;inset:0;cursor:pointer;
  display:grid;place-items:center;
  background:
    radial-gradient(circle at 50% 50%, #EAEAED 0%, #DCDCE0 100%);
  transition:filter .3s var(--ease);
}
.dove-hero__map iframe{width:100%;height:100%;border:0;display:block;filter:grayscale(.15) contrast(1.02)}
.dove-hero__map .map__ph{display:flex;flex-direction:column;align-items:center;gap:.8rem;color:#1D1D1F}
.dove-hero__map .map__ph svg{width:42px;height:42px;stroke:#1E3A66;fill:none;stroke-width:1.4}
.dove-hero__map .map__ph .t{font-family:var(--font-display);font-size:1.4rem;letter-spacing:-.02em}
.dove-hero__map .map__ph .c{font-family:var(--font-sans);font-size:.75rem;color:#86868B;text-transform:uppercase;letter-spacing:.12em}

/* Overlay che blocca interazione mappa finché non clicchi apposta */
.map-guard{
  position:absolute;inset:0;z-index:4;
  display:flex;align-items:flex-end;justify-content:center;
  padding-bottom:1.4rem;
  background:transparent;border:0;cursor:pointer;
  transition:opacity .35s var(--ease), visibility .35s var(--ease);
}
.map-guard span{
  font-family:var(--font-sans);font-size:.78rem;font-weight:600;
  letter-spacing:.04em;color:#0F2347;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(15,35,71,.12);
  padding:.6rem 1.1rem;border-radius:999px;
  box-shadow:0 8px 24px -10px rgba(15,35,71,.3);
  display:inline-flex;align-items:center;gap:.5rem;
  transition:transform .35s var(--ease), background .35s var(--ease);
}
.map-guard span::before{
  content:"";width:8px;height:8px;border-radius:50%;
  background:#22A064;flex-shrink:0;
}
.map-guard:hover span{transform:translateY(-2px);background:#fff}
.map-guard.is-off{opacity:0;visibility:hidden;pointer-events:none}

.dove-card{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(560px,92%);
  background:rgba(255,255,255,.82);
  backdrop-filter:saturate(180%) blur(28px);
  -webkit-backdrop-filter:saturate(180%) blur(28px);
  border:1px solid rgba(255,255,255,.6);
  border-radius:24px;
  padding:clamp(1.8rem,2.6vw,2.6rem);
  box-shadow:
    0 30px 80px -20px rgba(0,0,0,.22),
    0 2px 6px rgba(0,0,0,.06),
    inset 0 1px 0 rgba(255,255,255,.7);
  z-index:3;
  display:flex;flex-direction:column;gap:1.5rem;
}
@media (min-width:960px){
  .dove-card{
    left:5%;transform:translate(0,-50%);
    width:min(460px,46%);
  }
}

.dove-card__addr{display:flex;flex-direction:column;gap:.5rem}
.dove-card__eye{
  font-family:var(--font-sans);font-size:.75rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:#1E3A66;
}
.dove-card__addr h3{
  font-family:var(--font-display);font-weight:500;
  font-size:clamp(1.6rem,2.4vw,2rem);line-height:1.05;
  letter-spacing:-.025em;color:#1D1D1F;margin:0;
}
.dove-card__addr h3 em{font-style:italic;font-weight:400;color:#86868B;font-size:.85em}

/* Stats row */
.dove-stats{
  list-style:none;margin:0;padding:1.2rem 0;
  border-top:1px solid rgba(0,0,0,.08);
  border-bottom:1px solid rgba(0,0,0,.08);
  display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.5rem;
}
.dove-stats li{display:flex;flex-direction:column;gap:.15rem}
.dove-stats .n{
  font-family:var(--font-display);font-weight:500;
  font-size:1.5rem;line-height:1;letter-spacing:-.025em;color:#1D1D1F;
  display:inline-flex;align-items:baseline;gap:.15rem;
}
.dove-stats .n i{
  font-style:normal;font-family:var(--font-sans);
  font-size:.7rem;font-weight:600;color:#86868B;letter-spacing:.04em;
  text-transform:uppercase;
}
.dove-stats .l{
  font-family:var(--font-sans);font-size:.75rem;color:#6E6E73;line-height:1.3;
}

/* CTA buttons */
.dove-card__cta{display:flex;gap:.6rem;flex-wrap:wrap}
.dove-btn{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.85rem 1.3rem;border-radius:999px;
  font-family:var(--font-sans);font-size:.9375rem;font-weight:500;
  letter-spacing:-.005em;text-decoration:none;border:0;cursor:pointer;
  transition:transform .25s var(--ease), background .25s var(--ease), color .25s var(--ease);
}
.dove-btn svg{width:16px;height:16px}
.dove-btn--primary{background:#1D1D1F;color:#FFFFFF}
.dove-btn--primary:hover{background:#1E3A66;transform:translateY(-1px)}
.dove-btn--ghost{background:transparent;color:#1D1D1F;border:1px solid rgba(0,0,0,.18)}
.dove-btn--ghost:hover{background:rgba(0,0,0,.04);border-color:#1D1D1F}

/* Transport row */
.dove-trans{display:flex;flex-direction:column;gap:.7rem}
.dove-trans__lbl{
  font-family:var(--font-sans);font-size:.7rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:#86868B;
}
.dove-trans ul{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:1fr;gap:.5rem;
}
.dove-trans li{
  display:flex;align-items:center;gap:.85rem;
  padding:.6rem .8rem;border-radius:12px;
  background:rgba(0,0,0,.03);
  transition:background .25s var(--ease);
}
.dove-trans li:hover{background:rgba(30,58,102,.06)}
.dove-trans li svg{
  width:22px;height:22px;color:#1E3A66;flex-shrink:0;
}
.dove-trans li b{
  display:block;font-family:var(--font-sans);font-size:.8125rem;
  font-weight:600;color:#1D1D1F;letter-spacing:-.005em;
}
.dove-trans li span{
  display:block;font-family:var(--font-sans);font-size:.75rem;
  color:#6E6E73;
}

/* Mobile: card stacks below map */
@media (max-width:759px){
  .dove-hero{height:auto;min-height:0;display:flex;flex-direction:column}
  .dove-hero__map{position:relative;inset:auto;height:42vh;min-height:320px}
  .dove-card{
    position:relative;left:auto;top:auto;transform:none;
    width:auto;margin:-2rem 1rem 0;
    border-radius:20px;
  }
  .dove-stats{grid-template-columns:1fr 1fr}
}

/* ═══════════════════════════════════════════════════════════════
   FOOTER POLISH — refined separators + brand emphasis
   ═══════════════════════════════════════════════════════════════ */
.footer{margin-top:0}
.footer__status{
  background:#FFFFFF;border-top:1px solid #E8E8ED;border-bottom:1px solid #E8E8ED;
  padding:1.1rem 1.5rem;
}
.footer__grid{
  background:#F5F5F7;
  padding:clamp(3.5rem,6vw,5rem) 0 clamp(2rem,3vw,2.5rem);
  border-bottom:1px solid #E8E8ED;
}
.footer__brand{
  font-size:1.625rem;
}
.footer__brand em{color:#1E3A66}
.footer__grid h5{
  font-size:.7rem;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;color:#86868B;
}
.footer__grid a{
  font-size:.875rem;color:#1D1D1F;margin-bottom:.7rem;
  position:relative;width:fit-content;
}
.footer__grid a::after{
  content:"";position:absolute;left:0;bottom:-2px;
  width:0;height:1px;background:#1E3A66;
  transition:width .3s var(--ease);
}
.footer__grid a:hover{color:#1E3A66;text-decoration:none}
.footer__grid a:hover::after{width:100%}

.footer__bottom{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  flex-wrap:wrap;
  padding:1.4rem 0;background:#F5F5F7;
  font-family:var(--font-sans);font-size:.75rem;color:#86868B;
  letter-spacing:-.005em;
}
.footer__bottom span:last-child{
  font-variant-numeric:tabular-nums;letter-spacing:.06em;color:#86868B;
}

/* ═══════════════════════════════════════════════════════════════
   FOOTER FULL-WIDTH BARS — status & bottom estese 100vw
   ═══════════════════════════════════════════════════════════════ */
.footer{padding:0}
.footer .footer__status,
.footer .footer__bottom{
  width:100%;padding-left:0;padding-right:0;
}
.footer__status{
  background:#FFFFFF;
  border-top:1px solid #E8E8ED;
  border-bottom:1px solid #E8E8ED;
}
.footer__status-inner{
  display:flex;align-items:center;justify-content:center;gap:.85rem;
  flex-wrap:wrap;padding-top:1.1rem;padding-bottom:1.1rem;
  font-family:var(--font-sans);font-size:.8125rem;font-weight:400;
  letter-spacing:-.005em;color:#86868B;
}
.footer__status-inner a{color:#1D1D1F;text-decoration:none}
.footer__status-inner a:hover{color:#1E3A66}
.footer__status-inner .dot{display:inline-flex;align-items:center;gap:.5rem;color:#1D1D1F}
.footer__status-inner .dot i{
  width:7px;height:7px;border-radius:50%;display:inline-block;
  background:#22D3A3;box-shadow:0 0 0 0 rgba(34,211,163,.5);
  animation:globePulse 1.8s ease-out infinite;
}
.footer__status-inner .dot.closed i{background:#86868B;animation:none}

.footer__bottom{
  background:#1D1D1F;color:#A1A1A6;
  border-top:1px solid #2D2D30;padding:0;
}
.footer__bottom-inner{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  flex-wrap:wrap;padding-top:1.4rem;padding-bottom:1.4rem;
  font-family:var(--font-sans);font-size:.75rem;color:#A1A1A6;
  letter-spacing:-.005em;
}
.footer__bottom-inner span:last-child{
  font-variant-numeric:tabular-nums;letter-spacing:.08em;
  color:#86868B;text-transform:uppercase;font-size:.7rem;
}

/* ═══════════════════════════════════════════════════════════════
   DOVE — hairline top + bottom intorno alla mappa
   per separare grigio mappa da bianco bg
   ═══════════════════════════════════════════════════════════════ */
.dove-hero{
  border-top:1px solid #E8E8ED;
  border-bottom:1px solid #E8E8ED;
}
section.section--dove{padding-bottom:0}

/* ═══════════════════════════════════════════════════════════════
   RESBAR — barra "altre risorse" tra chi-siamo e servizi
   3 cards orizzontali, hover lift, accent hairline
   ═══════════════════════════════════════════════════════════════ */
.resbar{
  padding:clamp(4rem,7vw,6rem) 0;
  background:#FBFBFD;
  border-top:1px solid #E8E8ED;
  border-bottom:1px solid #E8E8ED;
  position:relative;overflow:hidden;
}
.resbar::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(700px 360px at 50% 0%, rgba(30,58,102,.05), transparent 70%);
  pointer-events:none;
}
.resbar .container{position:relative;z-index:1}
.resbar__head{
  display:flex;flex-direction:column;align-items:flex-start;gap:.6rem;
  margin-bottom:clamp(2rem,3.5vw,3rem);
}
.resbar__eye{
  font-family:var(--font-sans);font-size:.7rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:#1E3A66;
}
.resbar__h{
  font-family:var(--font-display);font-weight:500;
  font-size:clamp(1.75rem,3.2vw,2.5rem);line-height:1.05;
  letter-spacing:-.025em;color:#1D1D1F;margin:0;
}
.resbar__h em{font-style:italic;font-weight:400;color:#1E3A66}

.resbar__grid{
  display:grid;grid-template-columns:1fr;gap:1rem;
}
@media (min-width:760px){
  .resbar__grid{grid-template-columns:repeat(3,1fr);gap:1.2rem}
}
.resbar__card{
  display:grid;grid-template-columns:auto 1fr auto;gap:1.1rem;
  align-items:center;
  padding:1.4rem 1.5rem;
  background:#FFFFFF;border:1px solid #E8E8ED;border-radius:18px;
  text-decoration:none;color:inherit;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
  position:relative;overflow:hidden;
}
.resbar__card::after{
  content:"";position:absolute;left:0;top:0;height:2px;width:0;
  background:#1E3A66;transition:width .45s var(--ease);
}
.resbar__card:hover{
  transform:translateY(-3px);
  box-shadow:0 18px 40px -18px rgba(0,0,0,.18);
  border-color:#D2D2D7;
}
.resbar__card:hover::after{width:100%}
.resbar__card:hover .resbar__arr{transform:translateX(4px);color:#1E3A66}

.resbar__ico{
  width:44px;height:44px;border-radius:12px;
  display:inline-flex;align-items:center;justify-content:center;
  background:rgba(30,58,102,.08);color:#1E3A66;
  flex-shrink:0;
}
.resbar__ico svg{width:22px;height:22px}

.resbar__txt{display:flex;flex-direction:column;gap:.2rem;min-width:0}
.resbar__lbl{
  font-family:var(--font-sans);font-size:.7rem;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;color:#86868B;
}
.resbar__t{
  font-family:var(--font-display);font-weight:500;
  font-size:1.2rem;line-height:1.15;letter-spacing:-.02em;color:#1D1D1F;
}
.resbar__t em{font-style:italic;font-weight:400;color:#1E3A66}
.resbar__d{
  font-family:var(--font-sans);font-size:.8125rem;line-height:1.4;
  color:#6E6E73;margin-top:.15rem;
}
.resbar__arr{
  width:22px;height:22px;color:#86868B;flex-shrink:0;
  transition:transform .3s var(--ease), color .3s var(--ease);
}

@media (max-width:759px){
  .resbar__d{display:none}
  .resbar__card{padding:1.1rem 1.2rem}
}

/* ═══════════════════════════════════════════════════════════════════════
   ELITE OVERHAUL — PREMIUM TIER
   Editorial-luxury vibe + asymmetric bento + double-bezel + cubic motion
   Sections: RESBAR (bento 6) · FAQ polish · DOVE polish · FOOTER polish
   ═══════════════════════════════════════════════════════════════════════ */

:root{
  --eb-cream:#F1F1EE;
  --eb-cream-2:#E8E8E4;
  --eb-ink:#1E3A66;        /* Brand navy */
  --eb-ink-2:#3A5482;
  --eb-mute:#7C8BA3;
  --eb-line:rgba(15,17,21,.08);
  --eb-line-2:rgba(15,17,21,.14);
  --eb-accent:#1E3A66;
  --eb-accent-2:#264576;
  --eb-spring:cubic-bezier(.32,.72,0,1);
  --eb-quart:cubic-bezier(.2,.85,.3,1);
}

/* ───────────── RESBAR — bento asimmetrico editorial ───────────── */
.resbar{
  padding:clamp(6rem,10vw,9rem) 0;
  background:
    radial-gradient(900px 500px at 80% -10%, rgba(30,58,102,.06), transparent 60%),
    radial-gradient(700px 400px at -10% 110%, rgba(31,79,168,.05), transparent 60%),
    var(--eb-cream);
  border-top:1px solid var(--eb-line);
  border-bottom:1px solid var(--eb-line);
  position:relative;overflow:hidden;
}
/* Subtle film-grain */
.resbar::after{
  content:"";position:absolute;inset:0;
  background-image:
    radial-gradient(rgba(15,17,21,.04) 1px, transparent 1px);
  background-size:3px 3px;
  opacity:.5;mix-blend-mode:multiply;pointer-events:none;
}
.resbar .container{position:relative;z-index:1}

/* Header asimmetrico */
.resbar__head{
  display:grid;grid-template-columns:1fr;gap:1.5rem;
  margin-bottom:clamp(2.5rem,4vw,3.5rem);
  align-items:end;
}
@media (min-width:900px){
  .resbar__head{grid-template-columns:1.4fr 1fr;gap:3rem}
}
.resbar__head-l{display:flex;flex-direction:column;gap:1rem}
.resbar__eye{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.4rem .85rem .4rem .7rem;
  background:rgba(30,58,102,.08);
  border:1px solid rgba(30,58,102,.18);
  border-radius:999px;width:fit-content;
  font-family:var(--font-sans);font-size:.6875rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:var(--eb-accent);
}
.resbar__eye::before{display:none}
.resbar__eye i{
  width:6px;height:6px;border-radius:50%;background:var(--eb-accent);
  box-shadow:0 0 0 0 rgba(30,58,102,.5);
  animation:ebPulse 2s var(--eb-spring) infinite;
}
@keyframes ebPulse{
  0%{box-shadow:0 0 0 0 rgba(30,58,102,.45)}
  70%{box-shadow:0 0 0 8px rgba(30,58,102,0)}
  100%{box-shadow:0 0 0 0 rgba(30,58,102,0)}
}
.resbar__h{
  font-family:var(--font-display);font-weight:500;
  font-size:clamp(2.25rem,4.5vw,3.75rem);line-height:.98;
  letter-spacing:-.035em;color:var(--eb-ink);margin:0;
}
.resbar__h em{font-style:italic;font-weight:400;color:var(--eb-accent)}
.resbar__head-r{
  font-family:var(--font-sans);font-size:1rem;line-height:1.55;
  color:var(--eb-mute);margin:0;max-width:36ch;
}

/* Bento grid — asymmetric */
.resbar__bento{
  display:grid;grid-template-columns:1fr;gap:1rem;
}
@media (min-width:760px){
  .resbar__bento{
    grid-template-columns:repeat(3,1fr);
    grid-auto-rows:minmax(180px,auto);
    gap:1.1rem;
  }
}
@media (min-width:1100px){
  .resbar__bento{
    grid-template-columns:repeat(4,1fr);
    grid-auto-rows:minmax(190px,auto);
    gap:1.2rem;
  }
  /* Featured: 2 col × 2 row */
  .resbar__bento .rb-card--feat{grid-column:span 2;grid-row:span 2}
  /* Others 1×1 each — natural flow */
}

/* ── DOUBLE-BEZEL CARD ARCHITECTURE ── */
.rb-card{
  display:block;text-decoration:none;color:inherit;
  transition:transform .55s var(--eb-spring);
  will-change:transform;
}
.rb-card__shell{
  height:100%;
  padding:6px;
  background:linear-gradient(180deg, rgba(255,255,255,.5), rgba(255,255,255,0));
  border:1px solid var(--eb-line);
  border-radius:24px;
  transition:border-color .5s var(--eb-spring), box-shadow .5s var(--eb-spring), background .5s var(--eb-spring);
}
.rb-card__core{
  height:100%;position:relative;
  background:#FFFFFF;
  border-radius:18px;
  padding:1.4rem;
  display:flex;flex-direction:column;gap:.9rem;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.9),
    0 1px 2px rgba(15,17,21,.04);
  overflow:hidden;
  transition:transform .5s var(--eb-spring);
}
.rb-card:hover{transform:translateY(-2px)}
.rb-card:hover .rb-card__shell{
  border-color:var(--eb-line-2);
  box-shadow:0 22px 50px -22px rgba(15,17,21,.18);
  background:linear-gradient(180deg, rgba(30,58,102,.08), rgba(255,255,255,0));
}
.rb-card:active .rb-card__core{transform:scale(.985)}

/* Card icon — light pill */
.rb-ico{
  width:42px;height:42px;border-radius:12px;
  display:inline-flex;align-items:center;justify-content:center;
  background:rgba(30,58,102,.08);color:var(--eb-accent);
  flex-shrink:0;
  transition:background .4s var(--eb-spring), transform .4s var(--eb-spring);
}
.rb-ico svg{width:20px;height:20px}
.rb-card:hover .rb-ico{background:var(--eb-accent);color:#fff;transform:rotate(-4deg) scale(1.04)}

/* Card body */
.rb-card__body{display:flex;flex-direction:column;gap:.35rem;flex:1}
.rb-lbl{
  font-family:var(--font-sans);font-size:.65rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:var(--eb-mute);
}
.rb-card__t{
  font-family:var(--font-display);font-weight:500;
  font-size:1.25rem;line-height:1.1;letter-spacing:-.022em;color:var(--eb-ink);
  margin:0;
}
.rb-card__t em{font-style:italic;font-weight:400;color:var(--eb-accent)}
.rb-card__d{
  font-family:var(--font-sans);font-size:.85rem;line-height:1.45;
  color:var(--eb-mute);margin:0;
}
.rb-arr{
  position:absolute;right:1.3rem;bottom:1.3rem;
  width:32px;height:32px;border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;
  background:rgba(15,17,21,.04);color:var(--eb-ink);
  transition:transform .45s var(--eb-spring), background .45s var(--eb-spring), color .45s var(--eb-spring);
}
.rb-arr svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}
.rb-card:hover .rb-arr{
  background:var(--eb-ink);color:#fff;
  transform:translate(3px,-2px) scale(1.05);
}

/* ── FEATURED card — full editorial spread ── */
.rb-card--feat .rb-card__core{
  background:linear-gradient(180deg, #FFFFFF 0%, #F8F5F0 100%);
  padding:1.8rem;gap:1.2rem;
  min-height:340px;
}
.rb-card__top{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
}
.rb-tag{
  display:inline-flex;align-items:center;gap:.45rem;
  padding:.35rem .75rem;border-radius:999px;
  background:rgba(34,211,163,.12);
  border:1px solid rgba(34,211,163,.3);
  font-family:var(--font-sans);font-size:.65rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:#0F8A66;
}
.rb-tag i{
  width:6px;height:6px;border-radius:50%;background:#22D3A3;
  animation:ebPulse 2s var(--eb-spring) infinite;
}
.rb-mini{
  font-family:var(--font-sans);font-size:.65rem;font-weight:500;
  letter-spacing:.18em;color:var(--eb-mute);font-variant-numeric:tabular-nums;
}
.rb-card--feat .rb-card__t{
  font-size:clamp(1.75rem,2.4vw,2.25rem);line-height:1.02;letter-spacing:-.025em;
}
.rb-card--feat .rb-card__d{
  font-size:.95rem;line-height:1.55;max-width:42ch;
}
.rb-card__cta{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  margin-top:auto;flex-wrap:wrap;
}
/* Button-in-Button trailing icon (Apple/Linear style) */
.rb-btn{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.55rem .55rem .55rem 1.1rem;
  border-radius:999px;
  background:var(--eb-ink);color:#fff;
  font-family:var(--font-sans);font-size:.875rem;font-weight:500;
  letter-spacing:-.005em;
  transition:background .4s var(--eb-spring), transform .4s var(--eb-spring);
}
.rb-btn__arr{
  width:28px;height:28px;border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.14);color:#fff;
  transition:transform .45s var(--eb-spring), background .45s var(--eb-spring);
}
.rb-btn__arr svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}
.rb-card--feat:hover .rb-btn{background:var(--eb-accent)}
.rb-card--feat:hover .rb-btn__arr{transform:translate(2px,-1px) scale(1.08);background:rgba(255,255,255,.22)}
.rb-card__meta{
  font-family:var(--font-sans);font-size:.7rem;font-weight:500;
  letter-spacing:.04em;color:var(--eb-mute);
}

/* Featured viz — calendar dots */
.rb-card__viz{
  position:absolute;right:-2rem;bottom:-2rem;
  width:240px;height:240px;
  display:grid;place-items:center;
  opacity:.5;pointer-events:none;
  transition:opacity .6s var(--eb-spring), transform .6s var(--eb-spring);
}
.rb-card--feat:hover .rb-card__viz{opacity:.85;transform:translate(-8px,-8px)}
.rb-cal{width:100%;height:100%;display:grid;place-items:center}
.rb-cal__dots{
  display:grid;grid-template-columns:repeat(7,1fr);gap:6px;
}
.rb-cal__dots i{
  width:16px;height:16px;border-radius:5px;
  background:rgba(15,17,21,.08);
  transition:background .35s var(--eb-spring), transform .35s var(--eb-spring);
}
.rb-cal__dots i.hi{
  background:var(--eb-accent);
  box-shadow:0 0 0 0 rgba(30,58,102,.4);
  animation:ebPulse 2.4s var(--eb-spring) infinite;
}
.rb-card--feat .rb-card__cta{position:relative;z-index:2}
.rb-card--feat .rb-card__body{position:relative;z-index:2}

/* ── Accent variant (WhatsApp card) ── */
.rb-card--accent .rb-card__core{
  background:linear-gradient(180deg, #FFFFFF 0%, #F0FBF6 100%);
}
.rb-card--accent .rb-ico{background:rgba(34,211,163,.14);color:#0F8A66}
.rb-card--accent:hover .rb-ico{background:#22D3A3;color:#fff}

/* Mobile bento collapse */
@media (max-width:759px){
  .resbar__bento{grid-template-columns:1fr;gap:.8rem}
  .rb-card__core{padding:1.2rem}
  .rb-card__viz{width:160px;height:160px;opacity:.35}
  .rb-card--feat .rb-card__core{min-height:260px;padding:1.4rem}
}

/* ═══════════════ FAQ — micro polish ═══════════════ */
.faq-active__q{
  text-wrap:balance;
}
.faq-nav-btn{
  background:rgba(255,255,255,.7);
  backdrop-filter:saturate(180%) blur(10px);
  -webkit-backdrop-filter:saturate(180%) blur(10px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 1px 2px rgba(15,17,21,.04);
  transition:background .45s var(--eb-spring),color .45s var(--eb-spring),transform .45s var(--eb-spring),border-color .45s var(--eb-spring),box-shadow .45s var(--eb-spring);
}
.faq-nav-btn:hover{
  box-shadow:0 14px 26px -12px rgba(15,17,21,.25);
  transform:translateY(-2px) scale(1.04);
}
.faq-nav-btn:active{transform:translateY(0) scale(.96)}

/* Pill eyebrow */
.faq-head .eyebrow{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.4rem .85rem .4rem .7rem;
  background:rgba(30,58,102,.08);
  border:1px solid rgba(30,58,102,.18);
  border-radius:999px;width:fit-content;
  font-family:var(--font-sans);font-size:.6875rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:var(--eb-accent);
}
.faq-head .eyebrow::before{
  content:"";display:inline-block;
  width:6px;height:6px;border-radius:50%;background:var(--eb-accent);
  animation:ebPulse 2s var(--eb-spring) infinite;
}

/* List item subtle improvement */
.faq-li__btn{
  transition:padding-left .55s var(--eb-spring), color .35s var(--eb-spring), background .35s var(--eb-spring);
}
.faq-li__btn.is-active{
  background:linear-gradient(90deg, rgba(30,58,102,.05), transparent);
}

/* ═══════════════ DOVE — premium polish ═══════════════ */
.dove-card{
  border:1px solid rgba(255,255,255,.6);
  background:rgba(255,255,255,.78);
  box-shadow:
    0 36px 90px -24px rgba(15,17,21,.28),
    0 2px 6px rgba(15,17,21,.08),
    inset 0 1px 0 rgba(255,255,255,.85),
    inset 0 -1px 0 rgba(15,17,21,.04);
}
section.section--dove .s-head .eyebrow{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.4rem .85rem .4rem .7rem;
  background:rgba(30,58,102,.08);
  border:1px solid rgba(30,58,102,.18);
  border-radius:999px;width:fit-content;
  font-family:var(--font-sans);font-size:.6875rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:var(--eb-accent);
}
section.section--dove .s-head .eyebrow::before{
  content:"";display:inline-block;
  width:6px;height:6px;border-radius:50%;background:var(--eb-accent);
  animation:ebPulse 2s var(--eb-spring) infinite;
}

/* Apri Maps — button-in-button trailing icon */
.dove-btn--primary{
  padding:.55rem .55rem .55rem 1.2rem;gap:.55rem;
  background:var(--eb-ink);
  transition:background .45s var(--eb-spring), transform .45s var(--eb-spring);
}
.dove-btn--primary svg{
  width:28px;height:28px;padding:7px;border-radius:999px;
  background:rgba(255,255,255,.14);color:#fff;
  transition:transform .45s var(--eb-spring), background .45s var(--eb-spring);
  box-sizing:border-box;
}
.dove-btn--primary:hover{background:var(--eb-accent);transform:translateY(-2px)}
.dove-btn--primary:hover svg{transform:translate(2px,-1px) scale(1.08);background:rgba(255,255,255,.22)}
.dove-btn--ghost{
  transition:background .4s var(--eb-spring), border-color .4s var(--eb-spring), transform .4s var(--eb-spring);
}
.dove-btn--ghost:hover{transform:translateY(-2px)}

/* Stats numerals — display font */
.dove-stats .n{font-family:var(--font-display);letter-spacing:-.025em}
.dove-trans li{
  transition:background .4s var(--eb-spring), transform .4s var(--eb-spring);
}
.dove-trans li:hover{transform:translateX(3px)}

/* ═══════════════ FOOTER — premium polish ═══════════════ */
.footer__status{
  background:linear-gradient(180deg, #FFFFFF 0%, #FBFBFD 100%);
}
.footer__status-inner .dot{
  padding:.3rem .75rem .3rem .55rem;
  border-radius:999px;
  background:rgba(34,211,163,.08);
  border:1px solid rgba(34,211,163,.2);
  font-size:.7rem;font-weight:600;letter-spacing:.06em;
}
.footer__status-inner .dot i{
  width:6px;height:6px;
}
.footer__status-inner .dot.closed{
  background:rgba(122,124,130,.08);border-color:rgba(122,124,130,.2);
}

.footer__bottom{
  background:linear-gradient(180deg, #1E3A66 0%, #142847 100%);
  border-top:1px solid rgba(255,255,255,.06);
}
.footer__bottom-inner{
  padding-top:1.6rem;padding-bottom:1.6rem;
}
.footer__bottom-inner span:first-child{color:#C7C7CC}
.footer__bottom-inner span:last-child{
  letter-spacing:.16em;
}

/* Footer brand serif emphasis */
.footer__brand{
  font-family:var(--font-display);font-weight:500;
  letter-spacing:-.025em;
}
.footer__brand em{font-style:italic;color:var(--eb-accent)}

/* Footer links — refined micro hover */
.footer__grid a{
  transition:color .35s var(--eb-spring), transform .35s var(--eb-spring);
}
.footer__grid a:hover{transform:translateX(2px)}

/* ═══════════════════════════════════════════════════════════════════════
   TRUST BAR — marquee infinito, hairline navy, dot separators
   ═══════════════════════════════════════════════════════════════════════ */
.trust{
  padding:clamp(2.5rem,4vw,3.5rem) 0 clamp(2rem,3vw,2.5rem);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg, #FFFFFF 0%, #FAFAF8 100%);
  overflow:hidden;
}
.trust__label{
  display:flex;align-items:center;justify-content:center;gap:.85rem;
  text-align:center;font-size:.65rem;font-family:var(--font-sans);
  color:var(--muted);font-weight:600;letter-spacing:.22em;
  text-transform:uppercase;margin:0 0 1.6rem;
}
.trust__label i{
  display:inline-block;width:32px;height:1px;
  background:linear-gradient(90deg, transparent, var(--line-strong), transparent);
}
.trust__marquee{
  position:relative;width:100%;overflow:hidden;
  mask-image:linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
  -webkit-mask-image:linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
}
.trust__track{
  display:inline-flex;align-items:center;gap:1.4rem;
  white-space:nowrap;
  animation:trustScroll 38s linear infinite;
  will-change:transform;
}
.trust__track:hover{animation-play-state:paused}
@keyframes trustScroll{
  0%{transform:translateX(0)}
  100%{transform:translateX(-50%)}
}
.trust__track span{
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:1.35rem;letter-spacing:-.015em;color:var(--ink);
  opacity:.55;transition:opacity .4s var(--eb-spring), color .4s var(--eb-spring);
  flex-shrink:0;
}
.trust__track span:hover{opacity:1;color:var(--accent)}
.trust__track .dot{
  display:inline-block;width:5px;height:5px;border-radius:50%;
  background:var(--ink);opacity:.18;flex-shrink:0;
}

/* ═══════════════════════════════════════════════════════════════════════
   BOOKING · DARK LUXURY (panel navy, text bianco — MAX contrast garantito)
   ═══════════════════════════════════════════════════════════════════════ */
section.section--booking{
  padding:clamp(7rem,11vw,10rem) 0;
  background:#F1F1EE !important; /* cream marmo = aree consulenza */
  border-top:1px solid #C5CAD2;border-bottom:1px solid #C5CAD2;
  color:#0F2347;position:relative;
  scroll-margin-top:calc(var(--nav-h, 68px) + 12px); /* aggancio sotto nav fissa */
}
section.section--booking *{box-sizing:border-box}
section.section--booking > .container{position:relative;z-index:1}
section.section--booking .s-head{display:none}

/* HEADER su section cream (testi navy) */
.bk-hd{
  display:grid;grid-template-columns:1fr;gap:1.6rem;align-items:start;
  margin-bottom:clamp(3.5rem,5.5vw,5rem);max-width:none;
}
@media (min-width:960px){
  .bk-hd{grid-template-columns:1.5fr 1fr;column-gap:5rem;row-gap:1.5rem;align-items:end}
}
.bk-hd__eye{
  display:inline-flex;align-items:center;gap:.55rem;
  padding:.42rem .9rem .42rem .7rem;width:fit-content;
  background:#FFFFFF;border:1px solid #0F2347;border-radius:999px;
  font-family:var(--font-sans);font-size:.6875rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:#0F2347;
  box-shadow:0 1px 2px rgba(15,35,71,.04);grid-column:1;
}
.bk-hd__eye i{
  width:6px;height:6px;border-radius:50%;background:#0F2347;
  animation:ebPulse 2s cubic-bezier(.32,.72,0,1) infinite;flex-shrink:0;
}
.bk-hd__h{
  font-family:var(--font-display);font-weight:500;
  font-size:clamp(2.75rem,7vw,5.25rem);line-height:.95;letter-spacing:-.038em;
  color:#0F2347;margin:.7rem 0 0;text-wrap:balance;grid-column:1;
}
.bk-hd__h em{font-style:italic;font-weight:400;color:#1E3A66}
.bk-hd__lead{
  font-family:var(--font-sans);font-size:1.0625rem;line-height:1.6;
  color:#3A5482;margin:1.4rem 0 0;max-width:52ch;grid-column:1;
}
@media (min-width:960px){.bk-hd__lead{margin:0;align-self:end;grid-column:1}}
.bk-hd__why{
  list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0;
  border-top:1px solid #0F2347;grid-column:1;
}
@media (min-width:960px){
  .bk-hd__why{grid-column:2;grid-row:1 / span 4;align-self:start;margin-top:.4rem}
}
.bk-hd__why li{
  display:grid;grid-template-columns:auto 1fr;gap:1.1rem;align-items:center;
  padding:.95rem 0;border-bottom:1px solid #C5CAD2;
}
.bk-hd__why b{
  font-family:var(--font-display);font-weight:500;font-style:italic;
  font-size:1.05rem;color:#0F2347;opacity:.55;letter-spacing:-.015em;
  min-width:1.6rem;font-variant-numeric:tabular-nums;
}
.bk-hd__why span{
  font-family:var(--font-sans);font-size:.9375rem;font-weight:500;
  color:#0F2347;letter-spacing:-.005em;
}

/* MODE TABS */
section.section--booking .booking__head{
  display:flex;justify-content:flex-start;
  margin-bottom:clamp(1.6rem,2.6vw,2.2rem);
  border-bottom:1px solid #C5CAD2;
  scroll-margin-top:calc(var(--nav-h, 68px) + 16px);
}
section.section--booking .booking__modes{
  display:inline-flex;gap:0;margin:0;padding:0;background:transparent;border:0;
}
section.section--booking .bk-mode-tab{
  border:0;background:transparent;cursor:pointer;
  padding:.9rem 1.4rem .95rem;border-radius:0;
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:1.15rem;letter-spacing:-.02em;color:#3A5482;
  position:relative;transition:color .35s cubic-bezier(.32,.72,0,1);
}
section.section--booking .bk-mode-tab::after{
  content:"";position:absolute;left:1rem;right:1rem;bottom:-1px;
  height:2px;background:#0F2347;
  transform:scaleX(0);transform-origin:left center;
  transition:transform .45s cubic-bezier(.32,.72,0,1);
}
section.section--booking .bk-mode-tab:hover{color:#0F2347}
section.section--booking .bk-mode-tab.active{color:#0F2347;font-weight:500}
section.section--booking .bk-mode-tab.active::after{transform:scaleX(1)}

/* STEPS */
section.section--booking .booking__steps{
  display:inline-flex;align-items:center;gap:.95rem;flex-wrap:wrap;
  margin:0 0 clamp(2rem,3vw,2.5rem);
  padding:.7rem 1.1rem;
  background:#FFFFFF;border:1px solid #C5CAD2;border-radius:999px;
  width:fit-content;
}
section.section--booking .bstep{
  display:inline-flex;align-items:center;gap:.55rem;
  font-family:var(--font-sans);font-size:.8125rem;font-weight:500;
  color:#3A5482;letter-spacing:-.005em;
}
section.section--booking .bstep .n{
  display:inline-flex;align-items:center;justify-content:center;
  width:22px;height:22px;border-radius:50%;
  background:transparent;border:1.5px solid #3A5482;
  color:#3A5482;font-size:.7rem;font-weight:600;font-variant-numeric:tabular-nums;
}
section.section--booking .bstep.done{color:#0F2347}
section.section--booking .bstep.done .n{background:#0F2347;color:#FFFFFF;border-color:#0F2347}
section.section--booking .bstep.current{color:#0F2347;font-weight:600}
section.section--booking .bstep.current .n{
  background:rgba(15,35,71,.1);border-color:#0F2347;color:#0F2347;
}
section.section--booking .bstep-sep{display:inline-block;width:14px;height:1px;background:#C5CAD2}

/* ═══════ PANEL LIGHT — white card su cream section ═══════ */
section.section--booking .bk-panel{
  max-width:1080px;margin:0 auto;
  background:#FFFFFF;
  border:1px solid #C5CAD2;border-radius:24px;
  padding:clamp(1.8rem,3vw,2.8rem);color:#0F2347;
  box-shadow:0 1px 2px rgba(15,35,71,.04),
             0 24px 60px -28px rgba(15,35,71,.18);
  position:relative;
}
section.section--booking .bk-panel::before{display:none}
section.section--booking .bk-panel > *{position:relative;z-index:1}
section.section--booking .bk-grid{
  display:grid;grid-template-columns:1fr;gap:clamp(2rem,3.5vw,3rem);
}
@media (min-width:960px){
  section.section--booking .bk-grid{grid-template-columns:5fr 7fr;column-gap:clamp(2.5rem,4vw,3.5rem)}
}

/* NOTE callout su panel navy */
section.section--booking .bk-note{
  background:#FFFFFF;
  border:1px solid #C5CAD2;
  border-left:3px solid #0F2347;
  border-radius:0 12px 12px 0;
  padding:1rem 1.2rem;
  font-family:var(--font-sans);font-size:.875rem;line-height:1.55;
  color:#D4DDF0;margin:0 0 1.5rem;
}
section.section--booking .bk-note strong{
  display:block;font-family:var(--font-sans);
  font-size:.7rem;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:#FFFFFF;margin-bottom:.4rem;
}
section.section--booking .bk-note a{
  color:#A9BCD9;font-weight:600;text-decoration:underline;
  text-underline-offset:3px;text-decoration-color:rgba(169,188,217,.5);
}
section.section--booking .bk-note a:hover{color:#FFFFFF;text-decoration-color:#FFFFFF}

/* LABELS chiare */
section.section--booking .dur-label,
section.section--booking .slots-title{
  font-family:var(--font-sans);font-size:.7rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:#A9BCD9;
  margin:0 0 .85rem;display:flex;align-items:center;gap:.5rem;
}
section.section--booking .dur-label::before,
section.section--booking .slots-title::before{
  content:"";display:inline-block;width:18px;height:1px;background:#A9BCD9;
}

/* DURATION buttons */
section.section--booking .dur-row{
  display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem;
  background:transparent;border:0;padding:0;margin:0 0 1.6rem;
}
section.section--booking .dur-btn{
  padding:.95rem .8rem;border-radius:12px;
  background:#FFFFFF;
  border:1.5px solid #C5CAD2;
  font-family:var(--font-sans);font-size:.95rem;font-weight:500;
  color:#FFFFFF;cursor:pointer;letter-spacing:-.005em;
  transition:all .35s cubic-bezier(.32,.72,0,1);
}
section.section--booking .dur-btn:hover{
  background:rgba(255,255,255,.14);border-color:#A9BCD9;
  transform:translateY(-2px);box-shadow:0 8px 16px -8px rgba(0,0,0,.3);
}
section.section--booking .dur-btn:active{transform:translateY(0) scale(.98)}
section.section--booking .dur-btn.active{
  background:#FFFFFF;color:#0F2347;border-color:#FFFFFF;font-weight:600;
  box-shadow:0 4px 12px -4px rgba(0,0,0,.4);
}

/* SEL DATE */
section.section--booking .sel-date-lbl{
  display:inline-flex;align-items:center;gap:.6rem;
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:1.125rem;color:#FFFFFF;letter-spacing:-.015em;
  padding:.7rem 1rem;border-radius:10px;
  background:rgba(169,188,217,.1);border:1px dashed rgba(169,188,217,.4);
  margin:1.5rem 0 1.2rem;
}
section.section--booking .sel-date-lbl::before{
  content:"";display:inline-block;width:7px;height:7px;border-radius:50%;
  background:#A9BCD9;flex-shrink:0;
}

/* CONFIRM */
section.section--booking .confirm-bar{
  margin-top:1.8rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.14);
  display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
}
section.section--booking .confirm-sum{
  font-family:var(--font-sans);font-size:.9rem;color:#D4DDF0;line-height:1.5;
}

/* CTA cream filled */
section.section--booking .btn{
  display:inline-flex;align-items:center;gap:.55rem;
  background:#FFFFFF;color:#0F2347;border:0;
  padding:.9rem 1.7rem;height:auto;border-radius:999px;
  font-family:var(--font-sans);font-size:.9375rem;font-weight:600;
  letter-spacing:-.005em;cursor:pointer;
  box-shadow:0 6px 18px -8px rgba(0,0,0,.4);
  transition:all .35s cubic-bezier(.32,.72,0,1);
}
section.section--booking .btn:hover{
  background:#A9BCD9;transform:translateY(-2px);
  box-shadow:0 14px 32px -10px rgba(0,0,0,.5);
}
section.section--booking .btn:active{transform:translateY(0) scale(.98)}
section.section--booking .btn--full{width:100%;justify-content:center;padding:1rem 1.7rem}
section.section--booking .btn--sm{padding:.55rem 1.2rem;font-size:.8125rem}

/* CALENDAR card bianca interna */
section.section--booking .cal-wrap{
  background:#FFFFFF;border:1px solid rgba(255,255,255,.2);
  border-radius:14px;padding:1.1rem;color:#0F2347;
}
section.section--booking .cal-hd{
  display:flex;align-items:center;justify-content:space-between;
  gap:1rem;margin-bottom:1rem;padding-bottom:.85rem;
  border-bottom:1px solid #C5CAD2;
}
section.section--booking .cal-month{
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:1.3rem;letter-spacing:-.02em;color:#0F2347;text-transform:capitalize;
}
section.section--booking .cal-arrow{
  width:34px;height:34px;border-radius:999px;
  background:#FFFFFF;border:1px solid #C5CAD2;color:#0F2347;
  font-size:1.2rem;line-height:1;font-weight:400;
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;
  transition:all .3s cubic-bezier(.32,.72,0,1);
}
section.section--booking .cal-arrow:hover{
  background:#0F2347;color:#FFFFFF;border-color:#0F2347;transform:translateY(-1px);
}
section.section--booking .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
section.section--booking .cal-dow{
  font-family:var(--font-sans);font-size:.65rem;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:#3A5482;
  text-align:center;padding:.45rem 0 .65rem;
}
section.section--booking .cal-day{
  aspect-ratio:1;display:flex;align-items:center;justify-content:center;
  font-family:var(--font-sans);font-size:.95rem;font-weight:500;
  color:#A9B0BC;border-radius:8px;background:transparent;
  font-variant-numeric:tabular-nums;
  transition:all .3s cubic-bezier(.32,.72,0,1);
}
section.section--booking .cal-day.avail{
  color:#0F2347;background:rgba(15,35,71,.06);cursor:pointer;font-weight:600;
}
section.section--booking .cal-day.avail:hover{
  background:rgba(15,35,71,.14);transform:translateY(-1px);
}
section.section--booking .cal-day.sel{
  background:#0F2347;color:#FFFFFF;font-weight:700;
  box-shadow:0 4px 12px -4px rgba(15,35,71,.4);
}
section.section--booking .cal-day.today-d{outline:2px solid #0F2347;outline-offset:-3px}

section.section--booking .cal-legend{
  display:flex;gap:1.2rem;flex-wrap:wrap;justify-content:center;
  margin-top:.95rem;font-family:var(--font-sans);font-size:.7rem;
  color:#A9BCD9;letter-spacing:.04em;
}
section.section--booking .cal-legend i{
  display:inline-block;width:9px;height:9px;border-radius:50%;
  margin-right:.45rem;vertical-align:middle;
}
section.section--booking .cal-legend i.av{background:#FFFFFF}
section.section--booking .cal-legend i.ds{background:rgba(255,255,255,.3)}
section.section--booking .cal-legend i.sl{background:#22A064}

/* SLOTS */
section.section--booking #slots-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:.5rem;
}
section.section--booking .slot-btn{
  padding:.85rem .5rem;border-radius:10px;
  background:#FFFFFF;
  border:1.5px solid #C5CAD2;
  font-family:var(--font-sans);font-size:.95rem;font-weight:500;
  color:#FFFFFF;cursor:pointer;
  font-variant-numeric:tabular-nums;letter-spacing:-.005em;
  transition:all .3s cubic-bezier(.32,.72,0,1);
}
section.section--booking .slot-btn:hover{
  background:rgba(255,255,255,.14);border-color:#A9BCD9;
  transform:translateY(-2px);box-shadow:0 8px 16px -8px rgba(0,0,0,.3);
}
section.section--booking .slot-btn:active{transform:translateY(0) scale(.98)}
section.section--booking .slot-btn.sel{
  background:#FFFFFF;color:#0F2347;border-color:#FFFFFF;font-weight:600;
  box-shadow:0 4px 12px -4px rgba(0,0,0,.4);
}
section.section--booking .slot-btn.taken{
  opacity:.4;cursor:not-allowed;
  background:rgba(255,255,255,.04);color:rgba(255,255,255,.5);
  text-decoration:line-through;
}
section.section--booking .slot-empty{
  grid-column:1 / -1;padding:1.4rem;border-radius:12px;
  background:rgba(255,255,255,.05);border:1px dashed rgba(255,255,255,.2);
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:1rem;color:#A9BCD9;text-align:center;letter-spacing:-.01em;
}

/* FORM */
section.section--booking .field{display:flex;flex-direction:column;gap:.45rem;margin-bottom:1.1rem}
section.section--booking .field--row{display:grid;grid-template-columns:1fr 1fr;gap:.85rem}
section.section--booking .field label{
  font-family:var(--font-sans);font-size:.7rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:#A9BCD9;
}
section.section--booking .field input,
section.section--booking .field textarea,
section.section--booking .field select{
  padding:.95rem 1rem;border-radius:10px;
  background:#FFFFFF;
  border:1.5px solid #C5CAD2;
  font-family:var(--font-sans);font-size:.95rem;color:#FFFFFF;
  transition:all .35s cubic-bezier(.32,.72,0,1);
}
section.section--booking .field input::placeholder,
section.section--booking .field textarea::placeholder{color:rgba(255,255,255,.4)}
section.section--booking .field input:focus,
section.section--booking .field textarea:focus,
section.section--booking .field select:focus{
  outline:0;border-color:#A9BCD9;background:rgba(255,255,255,.12);
  box-shadow:0 0 0 4px rgba(169,188,217,.2);
}
section.section--booking .field textarea{min-height:96px;resize:vertical;font-family:var(--font-sans)}

section.section--booking .privacy{
  display:flex;align-items:flex-start;gap:.7rem;
  font-family:var(--font-sans);font-size:.8125rem;color:#A9BCD9;
  margin:1rem 0 1.5rem;line-height:1.5;
}
section.section--booking .privacy a{color:#FFFFFF;text-decoration:underline;text-underline-offset:3px}
section.section--booking .privacy input[type="checkbox"]{
  width:18px;height:18px;flex-shrink:0;margin-top:.15rem;accent-color:#FFFFFF;
}

section.section--booking #bk-form-wrap{
  margin-top:clamp(2.5rem,4vw,3.5rem);
  padding-top:clamp(2.5rem,4vw,3.5rem);
  border-top:1px solid rgba(255,255,255,.14);
}

/* "Vieni a trovarci" */
section.section--booking .c-list{list-style:none;margin:0 0 1.5rem;padding:0;display:flex;flex-direction:column;gap:0}
section.section--booking .c-list li{
  display:grid;grid-template-columns:auto 1fr;gap:.95rem;align-items:start;
  padding:.95rem 0;border-top:1px solid rgba(255,255,255,.14);
}
section.section--booking .c-list li:first-child{border-top:0;padding-top:0}
section.section--booking .c-list li svg{
  width:18px;height:18px;color:#A9BCD9;stroke:#A9BCD9;
  fill:none;stroke-width:1.5;margin-top:.15rem;
}
section.section--booking .c-lbl{
  font-family:var(--font-sans);font-size:.7rem;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;color:#A9BCD9;margin-bottom:.2rem;
}
section.section--booking .c-val,
section.section--booking .c-val a{
  font-family:var(--font-sans);font-size:.95rem;color:#FFFFFF;font-weight:500;
}
section.section--booking .c-val a{text-decoration:none;border-bottom:1px solid rgba(169,188,217,.4)}
section.section--booking .c-val a:hover{border-color:#FFFFFF}

section.section--booking .onb{
  margin-top:1.6rem;padding:1.5rem;border-radius:14px;
  background:#FAFAF8;border:1px solid #C5CAD2;
}
section.section--booking .onb__t{
  font-family:var(--font-sans);font-size:.7rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:#FFFFFF;margin:0 0 1.1rem;
}
section.section--booking .onb__step{
  display:grid;grid-template-columns:auto 1fr;gap:.85rem;align-items:start;
  padding:.7rem 0;border-top:1px solid rgba(255,255,255,.1);
}
section.section--booking .onb__step:first-of-type{border-top:0;padding-top:0}
section.section--booking .onb__step .num{
  width:24px;height:24px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  background:#FFFFFF;color:#0F2347;
  font-family:var(--font-sans);font-size:.7rem;font-weight:600;
  font-variant-numeric:tabular-nums;flex-shrink:0;
}
section.section--booking .onb__step p{
  margin:0;font-family:var(--font-sans);font-size:.875rem;line-height:1.5;color:#D4DDF0;
}
section.section--booking .onb__step strong{color:#FFFFFF;font-weight:600}

section.section--booking #bk-recap{color:#D4DDF0;font-size:.95rem;line-height:1.7}
section.section--booking #bk-recap strong{color:#FFFFFF}

@media (max-width:759px){
  .bk-hd{gap:1.4rem}
  .bk-hd__h{font-size:2.6rem}
  section.section--booking .bk-panel{border-radius:18px;padding:1.4rem}
  section.section--booking .field--row{grid-template-columns:1fr}
  section.section--booking #slots-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}
  section.section--booking .dur-row{gap:.4rem}
  section.section--booking .dur-btn{padding:.85rem .5rem}
  section.section--booking .booking__steps{padding:.55rem .8rem;gap:.5rem}
  section.section--booking .bstep{font-size:.7rem}
}

/* ═══════════════════════════════════════════════════════════════════════
   BOOKING TEXT OVERRIDE — forza tutto navy su white panel
   (previene residui colori chiari del vecchio dark mode)
   ═══════════════════════════════════════════════════════════════════════ */
section.section--booking .bk-panel,
section.section--booking .bk-panel *{color:#0F2347 !important}

/* Eccezioni: testo bianco solo su elementi navy filled */
section.section--booking .btn,
section.section--booking .dur-btn.active,
section.section--booking .slot-btn.sel,
section.section--booking .cal-day.sel,
section.section--booking .bstep.done .n,
section.section--booking .onb__step .num{color:#FFFFFF !important}

/* Active button bg → navy ink */
section.section--booking .btn{background:#0F2347 !important}
section.section--booking .btn:hover{background:#1E3A66 !important}
section.section--booking .dur-btn.active,
section.section--booking .slot-btn.sel{
  background:#0F2347 !important;border-color:#0F2347 !important;
}

/* Labels uppercase: navy soft per gerarchia */
section.section--booking .dur-label,
section.section--booking .slots-title,
section.section--booking .field label,
section.section--booking .c-lbl,
section.section--booking .onb__t{color:#3A5482 !important}

/* Body secondario */
section.section--booking .bk-note,
section.section--booking .privacy,
section.section--booking #bk-recap,
section.section--booking .onb__step p,
section.section--booking .confirm-sum{color:#3A5482 !important}

/* Bk-note label + strong → navy ink */
section.section--booking .bk-note strong{color:#0F2347 !important}
section.section--booking .bk-note a{color:#0F2347 !important}

/* Tab "Sono già cliente / Primo contatto" → contrast forte */
section.section--booking .bk-mode-tab{color:#3A5482 !important;font-weight:500 !important}
section.section--booking .bk-mode-tab.active{color:#0F2347 !important;font-weight:600 !important}

/* Onb step .num (cerchio numero): white su navy bg */
section.section--booking .onb__step .num{background:#0F2347 !important}

/* Bstep .done .n: white su navy */
section.section--booking .bstep.done .n{background:#0F2347 !important;border-color:#0F2347 !important}

/* Cal arrow hover: white su navy */
section.section--booking .cal-arrow:hover{background:#0F2347 !important;color:#FFFFFF !important}

/* SVG icons "Vieni a trovarci" → navy ink */
section.section--booking .c-list li svg{color:#0F2347 !important;stroke:#0F2347 !important}

/* Focus ring fields → navy */
section.section--booking .field input:focus,
section.section--booking .field textarea:focus,
section.section--booking .field select:focus{
  border-color:#0F2347 !important;
  box-shadow:0 0 0 4px rgba(15,35,71,.12) !important;
}

/* Sel-date-lbl: bianco bg con navy text */
section.section--booking .sel-date-lbl{
  background:#FAFAF8 !important;
  border:1px dashed #1E3A66 !important;
  color:#0F2347 !important;
}
section.section--booking .sel-date-lbl::before{background:#0F2347 !important}

/* Cal-legend i.av rivisto: navy filled */
section.section--booking .cal-legend i.av{background:#0F2347 !important}
section.section--booking .cal-legend i.ds{background:#C5CAD2 !important}

/* ═══════════════ HEADER chips (sostituiscono lista I·II·III·IV) ═══════════════ */
.bk-hd__chips{
  display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.4rem;grid-column:1;
}
@media (min-width:960px){
  .bk-hd__chips{grid-column:1 / span 2;margin-top:.5rem}
}
.bk-chip{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.55rem .95rem;border-radius:999px;
  background:#FFFFFF;border:1px solid #1E3A66;
  font-family:var(--font-sans);font-size:.8125rem;font-weight:500;
  color:#0F2347;letter-spacing:-.005em;
  box-shadow:0 1px 2px rgba(15,35,71,.04);
  transition:transform .35s cubic-bezier(.32,.72,0,1),
             box-shadow .35s cubic-bezier(.32,.72,0,1),
             background .35s cubic-bezier(.32,.72,0,1);
}
.bk-chip:hover{
  background:#0F2347;color:#FFFFFF;transform:translateY(-2px);
  box-shadow:0 8px 18px -8px rgba(15,35,71,.35);
}
.bk-chip:hover svg{stroke:#FFFFFF}
.bk-chip svg{
  width:14px;height:14px;color:#0F2347;flex-shrink:0;
  transition:stroke .35s cubic-bezier(.32,.72,0,1);
}
/* Nascondo vecchia ul .bk-hd__why (se presente) */
.bk-hd__why{display:none !important}

/* ═══════════════ BK-BLOCK · sub-section visiva con icona + numero ═══════════════ */
.bk-block{
  background:#FAFAF8;
  border:1px solid #C5CAD2;
  border-radius:14px;
  padding:1.3rem 1.4rem;
  margin-bottom:1.4rem;
  position:relative;
}
.bk-block:last-child{margin-bottom:0}
.bk-block__t{
  display:flex;align-items:center;gap:.7rem;
  font-family:var(--font-sans);font-size:.95rem;font-weight:600;
  letter-spacing:-.005em;color:#0F2347;
  margin:0 0 1rem;
  padding-bottom:.85rem;
  border-bottom:1px solid #C5CAD2;
}
.bk-block__n{
  display:inline-flex;align-items:center;justify-content:center;
  width:24px;height:24px;border-radius:50%;
  background:#0F2347;color:#FFFFFF;
  font-family:var(--font-sans);font-size:.72rem;font-weight:700;
  font-variant-numeric:tabular-nums;flex-shrink:0;
}
.bk-block__t svg{
  width:18px;height:18px;color:#0F2347;flex-shrink:0;
}
.bk-block__t span#slots-title{
  font-family:var(--font-sans);font-size:.95rem;font-weight:600;color:#0F2347;
  letter-spacing:-.005em;
}

/* Reset dur-label / slots-title quando dentro bk-block (già gestito da h4) */
.bk-block .dur-label{display:none}
.bk-block .slots-title{display:none}

/* ═══════════════ CALENDAR fix: bg solido bianco, no trasparente ═══════════════ */
section.section--booking .cal-wrap{
  background:#FFFFFF !important;
  border:1.5px solid #C5CAD2 !important;
  border-radius:14px !important;
  padding:1.2rem !important;
}

/* Sel-date-lbl dentro bk-block: spacing migliore */
.bk-block .sel-date-lbl{
  margin:0 !important;
}

/* Slots-grid dentro bk-block: spacing */
.bk-block .slots-grid,
.bk-block .dur-row{margin:0 !important}

/* Slot-empty visibile */
section.section--booking .slot-empty{
  grid-column:1 / -1;
  padding:1rem;border-radius:8px;
  background:#FFFFFF;border:1px dashed #1E3A66;
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:.95rem;color:#1E3A66;text-align:center;letter-spacing:-.01em;
}

@media (max-width:759px){
  .bk-hd__chips{margin-top:1rem}
  .bk-chip{font-size:.75rem;padding:.45rem .8rem}
  .bk-chip svg{width:12px;height:12px}
  .bk-block{padding:1rem 1.1rem;margin-bottom:1rem}
  .bk-block__t{font-size:.875rem}
}

/* ═══════════════ DURATION buttons → CERCHI (più intuitivi) ═══════════════ */
section.section--booking .dur-row{
  display:flex !important;justify-content:center !important;align-items:center;
  gap:1.4rem !important;flex-wrap:wrap !important;padding:.8rem 0 !important;
}
section.section--booking .dur-btn{
  width:88px !important;height:88px !important;border-radius:50% !important;
  padding:0 !important;
  background:#FFFFFF !important;
  border:2px solid #C5CAD2 !important;
  display:flex !important;flex-direction:column;align-items:center;justify-content:center;gap:0;
  font-family:var(--font-display) !important;font-style:italic;
  font-size:1.6rem !important;font-weight:500 !important;color:#0F2347 !important;
  font-variant-numeric:tabular-nums;line-height:1;
  cursor:pointer;
  transition:all .35s cubic-bezier(.32,.72,0,1) !important;
  position:relative;
}
section.section--booking .dur-btn::after{
  content:"min";display:block;
  font-family:var(--font-sans);font-style:normal;font-size:.62rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:#1E3A66;
  margin-top:.25rem;opacity:.7;
}
section.section--booking .dur-btn:hover{
  border-color:#0F2347 !important;transform:translateY(-3px) !important;
  box-shadow:0 14px 28px -12px rgba(15,35,71,.25) !important;
}
section.section--booking .dur-btn:active{transform:translateY(0) scale(.96) !important}
section.section--booking .dur-btn.active{
  background:#0F2347 !important;color:#FFFFFF !important;border-color:#0F2347 !important;
  transform:translateY(-2px) !important;
  box-shadow:0 12px 24px -8px rgba(15,35,71,.4) !important;
}
section.section--booking .dur-btn.active::after{color:rgba(255,255,255,.75) !important;opacity:1}
@media (max-width:759px){
  section.section--booking .dur-row{gap:1rem !important}
  section.section--booking .dur-btn{width:72px !important;height:72px !important;font-size:1.35rem !important}
}

/* ═══════════════ Separazione netta dur/calendar (più gap visivo) ═══════════════ */
section.section--booking .bk-grid{
  gap:clamp(2.5rem,4.5vw,4rem) !important;
}
@media (min-width:960px){
  section.section--booking .bk-grid{
    grid-template-columns:5fr 7fr !important;
    column-gap:clamp(3rem,5vw,4.5rem) !important;
    position:relative;
  }
  section.section--booking .bk-grid::before{
    content:"";position:absolute;left:calc(5/12 * 100% + clamp(1.5rem,2.5vw,2.25rem));
    top:0;bottom:0;width:1px;
    background:linear-gradient(180deg, transparent 0%, #C5CAD2 20%, #C5CAD2 80%, transparent 100%);
  }
}

/* ═══════════════ PROGRESS BAR per form Primo contatto ═══════════════ */
.bk-progress{
  display:flex;align-items:center;gap:.7rem;
  padding:.85rem 1.1rem;border-radius:999px;
  background:#FFFFFF;border:1.5px solid #C5CAD2;
  margin:0 0 1.6rem;
  font-family:var(--font-sans);font-size:.78rem;font-weight:500;color:#1E3A66;
}
.bk-progress__bar{
  flex:1;height:5px;border-radius:999px;background:#E8E8E4;overflow:hidden;
  position:relative;
}
.bk-progress__fill{
  position:absolute;left:0;top:0;height:100%;
  background:linear-gradient(90deg, #1E3A66, #0F2347);border-radius:999px;
  transition:width .55s cubic-bezier(.32,.72,0,1);
}
.bk-progress__pct{
  font-family:var(--font-display);font-style:italic;font-weight:500;
  color:#0F2347;font-size:.95rem;font-variant-numeric:tabular-nums;
  min-width:42px;text-align:right;
}

/* ═══════════════ Form Primo contatto: flow lineare, no box pesanti ═══════════════ */
#bkp-nuovi form .bk-block{
  background:transparent !important;
  border:0 !important;
  padding:0 !important;
  margin-bottom:0 !important;
  border-top:1px solid #C5CAD2;
  padding-top:1.6rem !important;
  padding-bottom:.4rem !important;
}
#bkp-nuovi form .bk-block:first-of-type{border-top:0;padding-top:0 !important}
#bkp-nuovi form .bk-block__t{
  padding-bottom:.8rem;
  border-bottom:0;
  margin-bottom:1rem;
}
#bkp-nuovi form .bk-block__n{
  background:transparent;border:1.5px solid #1E3A66;color:#1E3A66;
  font-weight:500;
}
#bkp-nuovi form .bk-block.is-completed .bk-block__n{
  background:#0F2347;color:#FFFFFF;border-color:#0F2347;
}
#bkp-nuovi form .bk-block.is-active .bk-block__n{
  background:rgba(15,35,71,.1);border-color:#0F2347;color:#0F2347;
}

/* ═══════════════════════════════════════════════════════════════════════
   BOOKING REFINEMENT v7 (skill: frontend-design)
   Editorial luxury · clear step hierarchy · large interactive tiles
   ═══════════════════════════════════════════════════════════════════════ */

/* HEADER: stringi spacing chips + lead più compatto */
.bk-hd__lead{font-size:1rem !important;line-height:1.55 !important;max-width:64ch !important}
.bk-hd__chips{margin-top:1.1rem !important;gap:.45rem !important}
.bk-chip{font-size:.78rem !important;padding:.5rem .85rem !important}

/* PANEL: padding maggiore, breathing room */
section.section--booking .bk-panel{
  padding:clamp(2rem,3.5vw,3.4rem) !important;
  border-radius:28px !important;
}

/* BK-BLOCK: card pulita con accent sx quando active/completed */
.bk-block{
  background:#FFFFFF !important;
  border:1px solid #E0E3E8 !important;
  border-left:3px solid #C5CAD2;
  border-radius:14px !important;
  padding:1.4rem 1.6rem !important;
  margin-bottom:1.4rem !important;
  transition:border-color .4s cubic-bezier(.32,.72,0,1),
             box-shadow .4s cubic-bezier(.32,.72,0,1);
}
.bk-block:hover{
  border-left-color:#0F2347;
  box-shadow:0 8px 24px -12px rgba(15,35,71,.12);
}
.bk-block__t{
  font-size:1rem !important;font-weight:600 !important;
  padding-bottom:.95rem !important;margin-bottom:1.1rem !important;
  border-bottom:1px solid #E0E3E8 !important;
  color:#0F2347 !important;
}
.bk-block__t svg{width:18px !important;height:18px !important;color:#1E3A66 !important}
.bk-block__n{
  width:26px !important;height:26px !important;font-size:.78rem !important;
  background:#0F2347 !important;color:#FFFFFF !important;
}

/* STEP BAR: più prominente con highlight current */
section.section--booking .booking__steps{
  padding:.85rem 1.2rem !important;gap:1.1rem !important;
}
section.section--booking .bstep{font-size:.875rem !important;font-weight:500 !important}
section.section--booking .bstep .n{
  width:24px !important;height:24px !important;font-size:.72rem !important;
}
section.section--booking .bstep.current{
  font-weight:700 !important;
}
section.section--booking .bstep.current .n{
  background:#0F2347 !important;color:#FFFFFF !important;border-color:#0F2347 !important;
  animation:bkPulseStep 2s cubic-bezier(.32,.72,0,1) infinite;
}
@keyframes bkPulseStep{
  0%,100%{box-shadow:0 0 0 0 rgba(15,35,71,.3)}
  50%{box-shadow:0 0 0 6px rgba(15,35,71,0)}
}

/* CALENDAR: cells più grandi + hover stato chiaro */
section.section--booking .cal-day{
  font-size:.95rem !important;font-weight:500 !important;
}
section.section--booking .cal-day.avail{
  background:rgba(15,35,71,.05) !important;
  border:1.5px solid transparent !important;
  cursor:pointer;font-weight:600 !important;
}
section.section--booking .cal-day.avail:hover{
  background:#FFFFFF !important;
  border-color:#0F2347 !important;
  transform:translateY(-2px) !important;
  box-shadow:0 6px 14px -6px rgba(15,35,71,.25) !important;
}
section.section--booking .cal-day.sel{
  background:#0F2347 !important;color:#FFFFFF !important;font-weight:700 !important;
  border-color:#0F2347 !important;
  box-shadow:0 6px 16px -4px rgba(15,35,71,.45) !important;
}

/* SLOT tiles eleganti: bigger, serif italic time, hover lift */
section.section--booking .slot-btn{
  padding:1.05rem .5rem !important;
  border-radius:14px !important;
  border:1.5px solid #C5CAD2 !important;
  background:#FFFFFF !important;
  font-family:var(--font-display) !important;font-style:italic !important;
  font-size:1.15rem !important;color:#0F2347 !important;font-weight:500 !important;
  letter-spacing:-.02em !important;
  transition:all .35s cubic-bezier(.32,.72,0,1) !important;
}
section.section--booking .slot-btn:hover{
  border-color:#0F2347 !important;background:#FFFFFF !important;
  transform:translateY(-2px) !important;
  box-shadow:0 8px 18px -6px rgba(15,35,71,.2) !important;
}
section.section--booking .slot-btn.sel{
  background:#0F2347 !important;color:#FFFFFF !important;border-color:#0F2347 !important;
  font-weight:600 !important;
  box-shadow:0 10px 22px -6px rgba(15,35,71,.4) !important;
}
section.section--booking .slot-btn.taken{
  opacity:.35 !important;background:#F4F4F1 !important;
  text-decoration:line-through;cursor:not-allowed;
}

/* SLOTS GRID: spazio più ariosa */
section.section--booking .slots-grid{
  grid-template-columns:repeat(auto-fill,minmax(112px,1fr)) !important;
  gap:.6rem !important;
}

/* SEL-DATE-LBL: più visibile + accent dot */
section.section--booking .sel-date-lbl{
  font-size:1.05rem !important;font-weight:500 !important;
  padding:.85rem 1.1rem !important;border-radius:12px !important;
  background:rgba(15,35,71,.04) !important;
  border:1px dashed #1E3A66 !important;
  margin:0 !important;
  width:100%;
}

/* CONFIRM BAR: sticky-feel, prominente */
section.section--booking .confirm-bar{
  margin-top:1.6rem !important;padding:1.2rem 1.4rem !important;
  border:1px solid #E0E3E8 !important;border-radius:14px !important;
  background:linear-gradient(180deg, #FFFFFF 0%, #FAFAF8 100%);
  border-top:1px solid #E0E3E8 !important;
}

/* MODE TABS più visibili: 2 sezioni nette */
section.section--booking .booking__head{
  margin-bottom:clamp(2rem,3vw,2.6rem) !important;
}
section.section--booking .bk-mode-tab{
  font-size:1.3rem !important;
  padding:1rem 1.8rem 1.05rem !important;
}

/* PRIMO CONTATTO: bk-block left side (Contatti studio + Onboarding) → uniformati */
#bkp-nuovi > .bk-grid > div:first-child .bk-block{
  background:#FFFFFF !important;
  border:1px solid #E0E3E8 !important;
  border-left:3px solid #1E3A66 !important;
}

/* Form Primo contatto: bk-block flat con divider (non box) */
#bkp-nuovi form .bk-block{
  border-left:0 !important;
  border-radius:0 !important;
  padding:1.6rem 0 .4rem !important;
}

/* Slot-empty: messaggio più chiaro */
section.section--booking .slot-empty{
  padding:1.2rem !important;font-size:1rem !important;
  background:#FFFFFF !important;border:1px dashed #1E3A66 !important;
  color:#1E3A66 !important;font-family:var(--font-display) !important;font-style:italic;
}

@media (max-width:759px){
  section.section--booking .bk-panel{padding:1.4rem !important;border-radius:18px !important}
  .bk-block{padding:1.1rem 1.2rem !important}
  section.section--booking .bk-mode-tab{font-size:1.05rem !important;padding:.8rem 1.1rem .85rem !important}
  section.section--booking .slot-btn{font-size:1rem !important;padding:.85rem .4rem !important}
}

/* ═══════════════════════════════════════════════════════════════════════
   BOOKING v8 · design-taste-frontend
   Bento 2.0 · diffusion shadows · spring physics · tactile feedback
   Variance 8 · Motion 6 · Density 4
   ═══════════════════════════════════════════════════════════════════════ */

/* SECTION: cream marble (= aree consulenza) con diffusion ambient */
section.section--booking{
  background:
    radial-gradient(1400px 800px at 50% -10%, rgba(15,35,71,.04), transparent 70%),
    #F1F1EE !important;
}

/* PANEL: Bento 2.0 — rounded-[2.5rem] = 40px, subtle border, diffusion shadow */
section.section--booking .bk-panel{
  background:#FFFFFF !important;
  border:1px solid rgba(15,35,71,.08) !important;
  border-radius:40px !important;
  padding:clamp(2rem, 4vw, 3.5rem) !important;
  box-shadow:
    0 1px 2px rgba(15,35,71,.03),
    0 20px 40px -15px rgba(15,35,71,.06),
    0 40px 80px -30px rgba(15,35,71,.1) !important;
}

/* BK-BLOCK: white card subtle, diffusion shadow on hover (motion 6) */
.bk-block{
  background:#FFFFFF !important;
  border:1px solid rgba(15,35,71,.08) !important;
  border-left:3px solid rgba(15,35,71,.15) !important;
  border-radius:24px !important;
  padding:1.6rem 1.8rem !important;
  margin-bottom:1.5rem !important;
  transition:
    border-color .55s cubic-bezier(.16,1,.3,1),
    transform .45s cubic-bezier(.16,1,.3,1),
    box-shadow .55s cubic-bezier(.16,1,.3,1) !important;
}
.bk-block:hover{
  border-left-color:#0F2347 !important;
  transform:translateY(-2px);
  box-shadow:0 16px 36px -16px rgba(15,35,71,.18) !important;
}

/* DUR CIRCLES: bigger, spring physics, tactile active */
section.section--booking .dur-btn{
  width:96px !important;height:96px !important;
  border:1.5px solid rgba(15,35,71,.12) !important;
  background:#FFFFFF !important;
  transition:
    background .45s cubic-bezier(.16,1,.3,1),
    border-color .45s cubic-bezier(.16,1,.3,1),
    color .45s cubic-bezier(.16,1,.3,1),
    transform .35s cubic-bezier(.16,1,.3,1),
    box-shadow .55s cubic-bezier(.16,1,.3,1) !important;
}
section.section--booking .dur-btn:hover{
  border-color:#0F2347 !important;
  transform:translateY(-4px) !important;
  box-shadow:0 20px 36px -16px rgba(15,35,71,.28) !important;
}
section.section--booking .dur-btn:active{
  transform:translateY(0) scale(.96) !important;
  transition:transform .1s ease !important;
}
section.section--booking .dur-btn.active{
  background:#0F2347 !important;color:#FFFFFF !important;
  border-color:#0F2347 !important;
  box-shadow:0 16px 32px -8px rgba(15,35,71,.45) !important;
}

/* SLOT TILES: serif italic, spring, tactile */
section.section--booking .slot-btn{
  padding:1.2rem .6rem !important;
  border-radius:18px !important;
  border:1.5px solid rgba(15,35,71,.12) !important;
  font-size:1.2rem !important;
  transition:all .45s cubic-bezier(.16,1,.3,1) !important;
}
section.section--booking .slot-btn:hover{
  border-color:#0F2347 !important;
  transform:translateY(-3px) !important;
  box-shadow:0 14px 28px -10px rgba(15,35,71,.22) !important;
}
section.section--booking .slot-btn:active{
  transform:translateY(0) scale(.97) !important;
  transition:transform .1s ease !important;
}
section.section--booking .slot-btn.sel{
  background:#0F2347 !important;color:#FFFFFF !important;
  border-color:#0F2347 !important;font-weight:600 !important;
  box-shadow:0 16px 32px -8px rgba(15,35,71,.45) !important;
}

/* CALENDAR cells: bigger, spring */
section.section--booking .cal-wrap{
  border-radius:20px !important;
  border:1px solid rgba(15,35,71,.08) !important;
  padding:1.4rem !important;
}
section.section--booking .cal-day{
  font-size:1rem !important;border-radius:12px !important;
  transition:all .35s cubic-bezier(.16,1,.3,1) !important;
}
section.section--booking .cal-day.avail{
  background:rgba(15,35,71,.04) !important;
  border:1.5px solid transparent !important;
  font-weight:600 !important;
}
section.section--booking .cal-day.avail:hover{
  background:#FFFFFF !important;border-color:#0F2347 !important;
  transform:translateY(-2px) scale(1.04) !important;
  box-shadow:0 8px 18px -6px rgba(15,35,71,.25) !important;
}
section.section--booking .cal-day.avail:active{transform:scale(.96) !important;transition:transform .1s ease !important}
section.section--booking .cal-day.sel{
  background:#0F2347 !important;color:#FFFFFF !important;
  box-shadow:0 10px 22px -6px rgba(15,35,71,.45) !important;
  transform:scale(1.08) !important;
}

/* CTA primary: cream filled in dark mode → navy filled, spring lift */
section.section--booking .btn{
  border-radius:999px !important;
  padding:1rem 1.8rem !important;
  font-size:.95rem !important;font-weight:600 !important;
  background:#0F2347 !important;color:#FFFFFF !important;
  box-shadow:0 8px 22px -8px rgba(15,35,71,.5) !important;
  transition:all .45s cubic-bezier(.16,1,.3,1) !important;
}
section.section--booking .btn:hover{
  background:#1E3A66 !important;
  transform:translateY(-3px) !important;
  box-shadow:0 18px 38px -10px rgba(15,35,71,.55) !important;
}
section.section--booking .btn:active{
  transform:translateY(0) scale(.97) !important;transition:transform .1s ease !important;
}

/* STEP BAR: floating pill with breathing current */
section.section--booking .booking__steps{
  background:#FFFFFF !important;
  border:1px solid rgba(15,35,71,.08) !important;
  border-radius:999px !important;
  padding:.9rem 1.4rem !important;
  box-shadow:0 8px 24px -12px rgba(15,35,71,.12) !important;
}

/* MODE TABS: hover with subtle bg shift */
section.section--booking .bk-mode-tab{
  transition:all .45s cubic-bezier(.16,1,.3,1) !important;
}
section.section--booking .bk-mode-tab:hover{
  color:#0F2347 !important;opacity:1 !important;
}

/* HEADER chips: tactile + spring */
.bk-chip{
  transition:all .45s cubic-bezier(.16,1,.3,1) !important;
}
.bk-chip:active{transform:translateY(0) scale(.96) !important;transition:transform .1s ease !important}

/* CAL-ARROW: spring + tactile */
section.section--booking .cal-arrow{
  border-radius:999px !important;
  transition:all .45s cubic-bezier(.16,1,.3,1) !important;
}
section.section--booking .cal-arrow:active{transform:scale(.92) !important;transition:transform .1s ease !important}

/* CONFIRM BAR: subtle glow when filled */
section.section--booking .confirm-bar:has(.confirm-sum:not(:empty)){
  border-color:#0F2347 !important;
  box-shadow:0 12px 28px -10px rgba(15,35,71,.18) !important;
}

/* FORM FIELDS: ring focus spring */
section.section--booking .field input,
section.section--booking .field textarea,
section.section--booking .field select{
  border-radius:14px !important;
  border:1.5px solid rgba(15,35,71,.12) !important;
  padding:1rem 1.1rem !important;
  transition:all .35s cubic-bezier(.16,1,.3,1) !important;
}
section.section--booking .field input:focus,
section.section--booking .field textarea:focus,
section.section--booking .field select:focus{
  border-color:#0F2347 !important;
  box-shadow:0 0 0 5px rgba(15,35,71,.1) !important;
  transform:translateY(-1px) !important;
}

/* SEL-DATE-LBL: prominent pill */
section.section--booking .sel-date-lbl{
  background:rgba(15,35,71,.05) !important;
  border:1px dashed rgba(15,35,71,.3) !important;
  border-radius:14px !important;
  padding:1rem 1.2rem !important;
}

/* PROGRESS BAR: spring + diffusion glow when progress > 50% */
.bk-progress{
  border-radius:999px !important;
  border:1px solid rgba(15,35,71,.08) !important;
  padding:.95rem 1.2rem !important;
  box-shadow:0 8px 20px -12px rgba(15,35,71,.12);
  transition:box-shadow .55s cubic-bezier(.16,1,.3,1);
}
.bk-progress__fill{
  background:linear-gradient(90deg, #1E3A66, #0F2347) !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   BOOKING v9 · TONE DOWN — match resbar/FAQ minimal DNA
   Meno shadow · radius più piccolo · hairline-only · breathing
   ═══════════════════════════════════════════════════════════════════════ */

/* PANEL: meno radius, single soft shadow */
section.section--booking .bk-panel{
  border-radius:20px !important;
  padding:clamp(1.8rem, 3vw, 2.4rem) !important;
  box-shadow:0 1px 2px rgba(15,35,71,.03) !important;
  border:1px solid rgba(15,35,71,.1) !important;
}

/* BK-BLOCK: hairline pure, no left accent, no hover lift */
.bk-block{
  background:transparent !important;
  border:0 !important;
  border-top:1px solid rgba(15,35,71,.1) !important;
  border-radius:0 !important;
  padding:1.6rem 0 .4rem !important;
  margin-bottom:0 !important;
}
.bk-block:first-of-type{border-top:0 !important;padding-top:.4rem !important}
.bk-block:hover{
  transform:none !important;
  box-shadow:none !important;
  border-color:rgba(15,35,71,.1) !important;
}
.bk-block__t{
  border-bottom:0 !important;padding-bottom:.6rem !important;margin-bottom:.9rem !important;
  font-size:.95rem !important;
}
.bk-block__n{width:22px !important;height:22px !important;font-size:.7rem !important}

/* DUR CIRCLES: più piccoli, sobri */
section.section--booking .dur-btn{
  width:72px !important;height:72px !important;
  font-size:1.3rem !important;
  border:1.5px solid rgba(15,35,71,.15) !important;
  box-shadow:none !important;
}
section.section--booking .dur-btn:hover{
  border-color:#0F2347 !important;
  transform:translateY(-1px) !important;
  box-shadow:0 4px 10px -4px rgba(15,35,71,.15) !important;
}
section.section--booking .dur-btn.active{
  box-shadow:none !important;
  transform:none !important;
}
section.section--booking .dur-row{gap:1rem !important;padding:.4rem 0 !important;justify-content:flex-start !important}

/* SLOT TILES: smaller, hairline */
section.section--booking .slot-btn{
  padding:.85rem .5rem !important;
  border-radius:12px !important;
  font-size:1rem !important;
  border:1px solid rgba(15,35,71,.15) !important;
  box-shadow:none !important;
}
section.section--booking .slot-btn:hover{
  transform:translateY(-1px) !important;
  box-shadow:0 4px 10px -4px rgba(15,35,71,.15) !important;
}
section.section--booking .slot-btn.sel{box-shadow:none !important}
section.section--booking .slots-grid{
  grid-template-columns:repeat(auto-fill,minmax(96px,1fr)) !important;
  gap:.5rem !important;
}

/* CALENDAR: sobrio, no scale on hover */
section.section--booking .cal-wrap{
  border-radius:14px !important;
  border:1px solid rgba(15,35,71,.1) !important;
  padding:1.1rem !important;
}
section.section--booking .cal-day{font-size:.92rem !important;border-radius:8px !important}
section.section--booking .cal-day.avail:hover{
  transform:none !important;scale:none !important;
  box-shadow:none !important;
  background:rgba(15,35,71,.1) !important;
  border-color:transparent !important;
}
section.section--booking .cal-day.sel{
  transform:none !important;scale:none !important;
  box-shadow:0 4px 10px -4px rgba(15,35,71,.3) !important;
}

/* CTA: pill semplice, no shadow drammatica */
section.section--booking .btn{
  padding:.85rem 1.5rem !important;font-size:.9rem !important;
  box-shadow:none !important;
}
section.section--booking .btn:hover{
  transform:translateY(-1px) !important;
  box-shadow:0 6px 14px -6px rgba(15,35,71,.3) !important;
}

/* STEP BAR: meno padding, no shadow */
section.section--booking .booking__steps{
  padding:.7rem 1.1rem !important;
  box-shadow:none !important;
  border:1px solid rgba(15,35,71,.12) !important;
}
section.section--booking .bstep{font-size:.8125rem !important}
section.section--booking .bstep .n{width:20px !important;height:20px !important;font-size:.65rem !important}

/* MODE TABS: ridotti, no over-prominenza */
section.section--booking .bk-mode-tab{
  font-size:1.05rem !important;
  padding:.75rem 1.1rem .8rem !important;
}

/* HEADER chips: ancora più sobri */
.bk-chip{
  font-size:.72rem !important;padding:.4rem .75rem !important;
  border:1px solid rgba(15,35,71,.15) !important;
  box-shadow:none !important;
}
.bk-chip:hover{transform:none !important;box-shadow:none !important;background:#0F2347 !important}

/* CAL-ARROW: minimalist */
section.section--booking .cal-arrow{
  border:1px solid rgba(15,35,71,.12) !important;
  width:30px !important;height:30px !important;font-size:1rem !important;
}

/* SEL-DATE-LBL: discreto */
section.section--booking .sel-date-lbl{
  font-size:1rem !important;padding:.7rem .95rem !important;
  border:1px dashed rgba(15,35,71,.25) !important;
}

/* CONFIRM BAR: piatto, hairline */
section.section--booking .confirm-bar{
  padding:1rem 1.2rem !important;border-radius:12px !important;
  background:transparent !important;
  border:1px solid rgba(15,35,71,.1) !important;
}

/* FORM FIELDS: minimalist */
section.section--booking .field input,
section.section--booking .field textarea,
section.section--booking .field select{
  border-radius:10px !important;padding:.85rem 1rem !important;
  border:1px solid rgba(15,35,71,.15) !important;
}
section.section--booking .field input:focus,
section.section--booking .field textarea:focus,
section.section--booking .field select:focus{
  transform:none !important;
  box-shadow:0 0 0 3px rgba(15,35,71,.08) !important;
}

/* PROGRESS BAR: piatto */
.bk-progress{
  padding:.75rem 1rem !important;
  box-shadow:none !important;
}

/* Grid: meno gap, no divider line */
@media (min-width:960px){
  section.section--booking .bk-grid{
    column-gap:clamp(2.5rem,4vw,3.5rem) !important;
  }
  section.section--booking .bk-grid::before{display:none !important}
}

/* ═══════════════════════════════════════════════════════════════════════
   BOOKING v10 · refinement finale (skill: design-taste-frontend)
   ═══════════════════════════════════════════════════════════════════════ */

/* GREEN dot eyebrow */
.bk-hd__eye--green i{
  background:#22A064 !important;
  animation:bkGreenPulse 2s cubic-bezier(.32,.72,0,1) infinite !important;
}
@keyframes bkGreenPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(34,160,100,.5)}
  50%{box-shadow:0 0 0 6px rgba(34,160,100,0)}
}
.bk-hd__eye--green{border-color:rgba(34,160,100,.35) !important;color:#0F2347 !important}

/* Lead strong: highlight "sono già cliente" / "primo contatto" */
.bk-hd__lead strong{color:#0F2347;font-weight:600}

/* BK-BLOCK titles: NO icon, NO number circle */
.bk-block__t{
  display:flex;align-items:center;gap:.55rem;
  font-family:var(--font-sans) !important;
  font-size:.78rem !important;font-weight:600 !important;
  letter-spacing:.16em !important;text-transform:uppercase !important;
  color:#3A5482 !important;
  padding:0 0 .9rem !important;margin:0 0 1rem !important;
  border-bottom:1px solid rgba(15,35,71,.1) !important;
}
.bk-block__t::before{
  content:"";display:inline-block;width:20px;height:1px;
  background:#3A5482;flex-shrink:0;
}

/* CALENDAR available days: bg navy 12% solido, no transparent */
section.section--booking .cal-day.avail{
  background:rgba(15,35,71,.1) !important;
  color:#0F2347 !important;font-weight:600 !important;
  border:1px solid rgba(15,35,71,.12) !important;
}
section.section--booking .cal-day.avail:hover{
  background:#0F2347 !important;color:#FFFFFF !important;
  border-color:#0F2347 !important;
}
section.section--booking .cal-day:not(.avail):not(.sel){
  color:#C5CAD2 !important;background:transparent !important;
  text-decoration:line-through;text-decoration-color:rgba(197,202,210,.5);
}

/* LEGEND: pill chip layout con bg pieno (no più trasparente) */
section.section--booking .cal-legend{
  display:flex;justify-content:center;gap:.6rem;flex-wrap:wrap;
  margin-top:1rem !important;padding:.6rem 0 !important;
}
section.section--booking .cal-legend span{
  display:inline-flex;align-items:center;gap:.45rem;
  padding:.35rem .75rem;border-radius:999px;
  background:#FFFFFF;border:1px solid rgba(15,35,71,.1);
  font-family:var(--font-sans);font-size:.72rem;font-weight:500;
  color:#0F2347 !important;letter-spacing:.04em;
}
section.section--booking .cal-legend i{width:8px !important;height:8px !important}
section.section--booking .cal-legend i.av{background:#0F2347 !important}
section.section--booking .cal-legend i.ds{background:#C5CAD2 !important}
section.section--booking .cal-legend i.sl{background:#22A064 !important}

/* SLOT: pill ovali (less square) */
section.section--booking .slot-btn{
  padding:.85rem 1.2rem !important;
  border-radius:999px !important;
  font-family:var(--font-display) !important;font-style:italic;
  font-size:1rem !important;
  border:1px solid rgba(15,35,71,.18) !important;
  min-width:90px;
}
section.section--booking .slots-grid{
  display:flex !important;flex-wrap:wrap !important;gap:.5rem !important;
  grid-template-columns:none !important;
}

/* DUR: pill ovali coerenti (no più cerchi enormi) */
section.section--booking .dur-row{
  gap:.6rem !important;justify-content:flex-start !important;padding:.3rem 0 !important;
}
section.section--booking .dur-btn{
  width:auto !important;height:auto !important;
  padding:.8rem 1.6rem !important;
  border-radius:999px !important;
  font-family:var(--font-display) !important;font-style:italic;
  font-size:1.05rem !important;font-weight:500 !important;
  border:1px solid rgba(15,35,71,.18) !important;
  display:inline-flex !important;flex-direction:row !important;align-items:baseline !important;
  gap:.25rem !important;
}
section.section--booking .dur-btn::after{
  content:"min";display:inline !important;
  font-family:var(--font-sans);font-style:normal;font-size:.7rem;font-weight:500;
  color:rgba(15,35,71,.6);margin-left:.15rem;letter-spacing:.04em;text-transform:lowercase;
}
section.section--booking .dur-btn.active::after{color:rgba(255,255,255,.65) !important}

/* CTA primary: pill consistente */
section.section--booking .btn{
  padding:.8rem 1.4rem !important;font-size:.875rem !important;
  font-family:var(--font-sans) !important;font-weight:500 !important;
}

/* PRIMO CONTATTO h3 side titles */
.bk-side-h{
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:1.5rem !important;color:#0F2347;
  letter-spacing:-.02em;margin:0 0 1.4rem;
}

/* ONBOARDING panel: card decorata, no più rigida */
section.section--booking .onb{
  background:#FFFFFF;
  border:1px solid rgba(15,35,71,.1);
  border-radius:18px;padding:1.6rem;
  display:flex;flex-direction:column;gap:0;
}
section.section--booking .onb__t{display:none !important}
section.section--booking .onb__step{
  display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start;
  padding:1rem 0;border-top:1px solid rgba(15,35,71,.08);
}
section.section--booking .onb__step:first-of-type{border-top:0;padding-top:.2rem}
section.section--booking .onb__step:last-of-type{padding-bottom:.2rem}
section.section--booking .onb__step .num{
  width:28px !important;height:28px !important;border-radius:50%;
  background:#0F2347 !important;color:#FFFFFF !important;
  display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--font-display);font-style:italic;font-size:.85rem;font-weight:500;
  flex-shrink:0;
}
section.section--booking .onb__step p{
  margin:0;font-family:var(--font-sans);font-size:.92rem;line-height:1.5;
  color:#3A5482 !important;
}
section.section--booking .onb__step strong{color:#0F2347;font-weight:600}

/* FORM Primo contatto: pulito, no progress, no chunky blocks */
#bkp-nuovi form{
  background:#FFFFFF;border:1px solid rgba(15,35,71,.1);
  border-radius:18px;padding:1.6rem;
  display:flex;flex-direction:column;gap:1rem;
}
#bkp-nuovi form .field{margin-bottom:0 !important}
#bkp-nuovi form .field--row{gap:1rem !important}
#bkp-nuovi form .privacy{margin:.4rem 0 .6rem !important}
#bkp-nuovi form .btn{align-self:stretch}

/* PRIMO CONTATTO grid bilanciato 1fr/1.2fr */
@media (min-width:960px){
  #bkp-nuovi .bk-grid{grid-template-columns:1fr 1.25fr !important;column-gap:2.5rem !important}
}

/* Hide bk-progress if still in DOM */
.bk-progress{display:none !important}

/* ═══════════════════════════════════════════════════════════════════════
   BOOKING v11 · font consistency (Apple-like)
   Solo Instrument Serif su headlines + em decorative.
   Tutti i controlli UI → Inter sans (no più mix serif italic ovunque)
   ═══════════════════════════════════════════════════════════════════════ */

/* DUR + SLOT: kill serif italic, usa sans coerente */
section.section--booking .dur-btn,
section.section--booking .dur-btn::after,
section.section--booking .slot-btn{
  font-family:var(--font-sans) !important;
  font-style:normal !important;
}
section.section--booking .dur-btn{
  font-size:.95rem !important;font-weight:500 !important;
  padding:.75rem 1.4rem !important;
}
section.section--booking .dur-btn.active{font-weight:600 !important}
section.section--booking .slot-btn{
  font-size:.95rem !important;font-weight:500 !important;
  padding:.75rem 1.1rem !important;letter-spacing:-.005em !important;
}
section.section--booking .slot-btn.sel{font-weight:600 !important}

/* SEL-DATE-LBL: sans, leggibile */
section.section--booking .sel-date-lbl{
  font-family:var(--font-sans) !important;font-style:normal !important;
  font-size:.95rem !important;font-weight:500 !important;
  color:#0F2347 !important;
}

/* CONFIRM SUM: sans */
section.section--booking .confirm-sum{
  font-family:var(--font-sans) !important;font-style:normal !important;
  font-size:.9rem !important;color:#3A5482 !important;
}

/* CALENDAR month label: sans (era serif italic) */
section.section--booking .cal-month{
  font-family:var(--font-sans) !important;font-style:normal !important;
  font-size:1rem !important;font-weight:600 !important;
  text-transform:none;letter-spacing:-.01em !important;
  color:#0F2347 !important;
}

/* ONBOARDING num: sans tabular */
section.section--booking .onb__step .num{
  font-family:var(--font-sans) !important;font-style:normal !important;
  font-weight:600 !important;font-size:.75rem !important;
}

/* SLOT empty: sans calmo */
section.section--booking .slot-empty{
  font-family:var(--font-sans) !important;font-style:normal !important;
  font-size:.9rem !important;color:#3A5482 !important;
}

/* PRIMO CONTATTO h3 → sans clean */
.bk-side-h{
  font-family:var(--font-sans) !important;font-style:normal !important;
  font-size:1.15rem !important;font-weight:600 !important;
  letter-spacing:-.015em !important;
  color:#0F2347 !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   COMPLETA PRENOTAZIONE form + RECAP card · clean Apple-like
   ═══════════════════════════════════════════════════════════════════════ */
.bk-formwrap{
  margin-top:clamp(2rem,3vw,2.6rem) !important;
  padding-top:clamp(2rem,3vw,2.6rem) !important;
  border-top:1px solid rgba(15,35,71,.1) !important;
}
.bk-formwrap__grid{
  display:grid;grid-template-columns:minmax(0,1fr);gap:1.4rem;
}
@media (min-width:960px){
  .bk-formwrap__grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:2rem}
}
.bk-formwrap__card{
  background:#FFFFFF;border:1px solid rgba(15,35,71,.1);
  border-radius:18px;padding:1.8rem;
  display:flex;flex-direction:column;gap:1rem;
  min-width:0; /* permette alla card di restringersi nel suo spazio (no overflow) */
}
/* i campi e il bottone non devono mai sforare la card */
.bk-formwrap__card .field,
.bk-formwrap__card .field--row,
.bk-formwrap__card input,
.bk-formwrap__card select,
.bk-formwrap__card textarea{ min-width:0; max-width:100%; }
/* messaggio di conferma lungo: va a capo e resta centrato (niente più overflow) */
.bk-formwrap__card .btn,
section.section--booking .btn--full{
  white-space:normal;
  overflow-wrap:anywhere;
  text-align:center;
  line-height:1.35;
}
.bk-formwrap__t{
  font-family:var(--font-sans);font-weight:600;font-size:1.15rem;
  letter-spacing:-.015em;color:#0F2347;margin:0 0 .4rem;
}
.bk-formwrap__card .field--row{gap:1rem !important}
.bk-formwrap__card .field{margin-bottom:0 !important}
.bk-formwrap__card .btn{margin-top:.4rem}

/* RECAP card · top-left aligned, scritte ordinate */
.bk-recap-card{
  background:linear-gradient(180deg, #FAFAF8 0%, #F4F4F1 100%);
  border:1px solid rgba(15,35,71,.12);
  border-radius:18px;padding:1.6rem 1.7rem;
  display:flex;flex-direction:column;gap:1rem;
  align-self:start;text-align:left;
  position:sticky;top:1.5rem;
  min-width:0; /* niente overflow nello spazio della griglia */
}
.bk-recap-card__eye{
  font-family:var(--font-sans);font-size:.7rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:#3A5482;
  display:flex;align-items:center;gap:.5rem;
  padding-bottom:.85rem;border-bottom:1px solid rgba(15,35,71,.1);
}
.bk-recap-card__eye::before{
  content:"";display:inline-block;width:18px;height:1px;background:#3A5482;
}
.bk-recap-card__body{
  font-family:var(--font-sans) !important;
  font-size:.95rem !important;
  line-height:1.7 !important;color:#0F2347 !important;
  text-align:left !important;
  display:flex !important;flex-direction:column !important;gap:.5rem !important;
}
.bk-recap-card__body strong{color:#0F2347;font-weight:600}
.bk-recap-card__body:empty::before{
  content:"In attesa di completare i passi precedenti";
  font-family:var(--font-sans);font-style:italic;font-size:.85rem;
  color:#7C8BA3;font-weight:400;
}
.bk-recap-card__body > div{
  display:flex;justify-content:space-between;align-items:baseline;gap:1rem;
  padding:.4rem 0;border-bottom:1px solid rgba(15,35,71,.06);
}
.bk-recap-card__body > div:last-child{border-bottom:0}
.rcap-k{
  font-family:var(--font-sans);font-size:.72rem;font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;color:#3A5482;
}
.rcap-v{
  font-family:var(--font-sans);font-size:.95rem;font-weight:600;
  color:#0F2347;letter-spacing:-.005em;
}

@media (max-width:759px){
  .bk-recap-card{position:static}
}

/* ═══════════════════════════════════════════════════════════════════════
   BOOKING v12 · STATI CHIARI (disponibile/selezionato/occupato)
   Verde · Navy · Grigio strikethrough — codifica semaforica leggibile
   ═══════════════════════════════════════════════════════════════════════ */

/* CALENDAR · stati codificati con colore */

/* Disponibile = verde tint */
section.section--booking .cal-day.avail{
  background:rgba(34,160,100,.12) !important;
  color:#0F2347 !important;
  border:1.5px solid rgba(34,160,100,.35) !important;
  font-weight:600 !important;
}
section.section--booking .cal-day.avail:hover{
  background:#22A064 !important;
  color:#FFFFFF !important;
  border-color:#22A064 !important;
}

/* Selezionato = navy filled */
section.section--booking .cal-day.sel{
  background:#0F2347 !important;
  color:#FFFFFF !important;
  border:1.5px solid #0F2347 !important;
  font-weight:700 !important;
  box-shadow:0 6px 14px -4px rgba(15,35,71,.45) !important;
}

/* Non disponibile / occupato = grigio chiaro line-through */
section.section--booking .cal-day:not(.avail):not(.sel){
  background:#F4F4F1 !important;
  color:#A9B0BC !important;
  border:1px solid rgba(15,35,71,.06) !important;
  text-decoration:line-through;
  text-decoration-color:rgba(169,176,188,.5);
  font-weight:500 !important;
}

/* Today outline (a livello visivo: contorno navy) */
section.section--booking .cal-day.today-d{
  outline:2px solid #0F2347 !important;
  outline-offset:-3px !important;
}

/* SLOT · stati codificati */

/* Default = disponibile = verde tint */
section.section--booking .slot-btn{
  background:rgba(34,160,100,.1) !important;
  color:#0F2347 !important;
  border:1.5px solid rgba(34,160,100,.32) !important;
  font-weight:600 !important;
}
section.section--booking .slot-btn:hover{
  background:#22A064 !important;
  color:#FFFFFF !important;
  border-color:#22A064 !important;
}

/* Selezionato = navy filled */
section.section--booking .slot-btn.sel{
  background:#0F2347 !important;
  color:#FFFFFF !important;
  border:1.5px solid #0F2347 !important;
  font-weight:700 !important;
  box-shadow:0 6px 14px -4px rgba(15,35,71,.45) !important;
}

/* Occupato = rosa/grigio strike */
section.section--booking .slot-btn.taken{
  background:#F4F4F1 !important;
  color:#A9B0BC !important;
  border:1px solid rgba(15,35,71,.08) !important;
  text-decoration:line-through;
  text-decoration-color:rgba(169,176,188,.55);
  cursor:not-allowed !important;
  font-weight:500 !important;
  opacity:1 !important; /* override eventuale opacity precedente */
}
section.section--booking .slot-btn.taken:hover{
  background:#F4F4F1 !important;
  color:#A9B0BC !important;
  border-color:rgba(15,35,71,.08) !important;
  transform:none !important;
  box-shadow:none !important;
}

/* LEGENDA · sincronizza con stati reali */
section.section--booking .cal-legend i.av{background:#22A064 !important}
section.section--booking .cal-legend i.sl{background:#0F2347 !important}
section.section--booking .cal-legend i.ds{background:#A9B0BC !important}

/* Legend chip border accent matching */
section.section--booking .cal-legend span{
  border:1px solid rgba(15,35,71,.1) !important;
  color:#0F2347 !important;font-weight:500 !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   PROFILE BAR (scadenze.html) — wizard "Chi sei?"
   ═══════════════════════════════════════════════════════════════════════ */
.profile-bar{
  background:#FFFFFF;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:1.6rem 0;
  position:sticky;top:0;z-index:50;
  backdrop-filter:saturate(180%) blur(20px);
  -webkit-backdrop-filter:saturate(180%) blur(20px);
  background:rgba(255,255,255,.92);
}
.pb-row{
  display:grid;grid-template-columns:1fr;gap:1.1rem;align-items:center;
}
@media (min-width:900px){
  .pb-row{grid-template-columns:1fr auto;gap:2rem}
}
.pb-intro{display:flex;flex-direction:column;gap:.4rem}
.pb-eye{
  display:inline-flex;align-items:center;gap:.5rem;
  font-family:var(--font-sans);font-size:.7rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink);
  white-space:nowrap;
}
.pb-eye i{
  width:6px;height:6px;border-radius:50%;background:#22A064;
  animation:ebPulse 2s cubic-bezier(.32,.72,0,1) infinite;
}
.pb-q{
  font-family:var(--font-sans);font-size:.95rem;line-height:1.4;color:var(--ink-soft);
  margin:0;
}
.pb-chips{
  display:flex;flex-wrap:wrap;gap:.4rem;
  justify-content:flex-start;
}
@media (min-width:900px){.pb-chips{justify-content:flex-end}}
.pb-chip{
  border:1px solid rgba(15,35,71,.15);background:#FFFFFF;
  padding:.5rem .9rem;border-radius:999px;cursor:pointer;
  font-family:var(--font-sans);font-size:.78rem;font-weight:500;
  color:var(--ink);letter-spacing:-.005em;
  transition:all .35s cubic-bezier(.32,.72,0,1);
}
.pb-chip:hover{border-color:var(--ink);background:rgba(15,35,71,.03)}
.pb-chip.active{
  background:var(--ink);color:#FFFFFF;border-color:var(--ink);font-weight:600;
  box-shadow:0 4px 10px -4px rgba(15,35,71,.4);
}

/* Section head con bottone azione a dx */
.s-head--row{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:1.5rem;flex-wrap:wrap;
}
.s-head--row > div{display:flex;flex-direction:column;gap:.5rem}

/* Bandi grid pulito */
/* Banda scorrevole orizzontale (stile carosello servizi homepage) */
.bandi-grid{
  display:flex;gap:1.1rem;
  overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x proximity;scroll-behavior:smooth;
  scrollbar-width:none;
  margin-top:var(--sp-3,1.75rem);
  padding:8px 4px 24px;
  scroll-padding-left:4px;
  cursor:grab;
  -webkit-overflow-scrolling:touch;
  /* sfumatura ai bordi per suggerire scorrimento */
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 1.5%,#000 98.5%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 1.5%,#000 98.5%,transparent 100%);
}
.bandi-grid::-webkit-scrollbar{display:none}
.bandi-hint{
  display:inline-block;margin-left:.4rem;
  font-family:var(--font-sans);font-size:.8rem;font-weight:600;
  color:var(--accent);letter-spacing:.02em;white-space:nowrap;
}

/* ═══════════════════════════════════════════════════════════════════════
   CTA BAND + bottone magnetico premium (skill: design-taste-frontend)
   ═══════════════════════════════════════════════════════════════════════ */
.cta-band{
  padding:clamp(4rem,7vw,6rem) 0;
  background:
    radial-gradient(900px 500px at 85% -20%, rgba(30,58,102,.08), transparent 60%),
    linear-gradient(180deg, #142847 0%, #0F2347 100%);
  color:#fff;position:relative;overflow:hidden;
  border-top:1px solid rgba(255,255,255,.06);
}
.cta-band::after{display:none}
.cta-band__inner{
  position:relative;z-index:1;
  display:grid;grid-template-columns:1fr;gap:2.2rem;align-items:center;
  padding-left:clamp(0px,2vw,2rem);
}
@media (min-width:900px){
  .cta-band__inner{grid-template-columns:1.4fr auto;gap:clamp(2.5rem,5vw,5rem)}
}
/* filo verticale accent a sx del testo (dettaglio editoriale) */
.cta-band__txt{position:relative}
@media (min-width:900px){
  .cta-band__txt{padding-left:1.6rem}
  .cta-band__txt::before{
    content:"";position:absolute;left:0;top:.2rem;bottom:.2rem;width:2px;border-radius:2px;
    background:linear-gradient(180deg,#22A064,rgba(34,160,100,0));
  }
}
/* Font Apple su tutta la banda CTA (SF Pro / system) */
.cta-band,
.cta-band *{
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Segoe UI",Roboto,sans-serif;
}
.cta-band__eye{
  display:inline-flex;align-items:center;gap:.55rem;
  font-size:.7rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:#A9BCD9;
  margin-bottom:1rem;
}
.cta-band__eye i{
  width:6px;height:6px;border-radius:50%;background:#22A064;
  animation:ebPulse 2s cubic-bezier(.32,.72,0,1) infinite;
}
.cta-band__h{
  font-family:var(--font-sans);font-weight:600;
  font-size:clamp(2rem,4.2vw,3.2rem);line-height:1.05;
  letter-spacing:-.03em;
  color:#fff;margin:0;text-wrap:balance;
}
.cta-band__h em{font-style:normal;font-weight:600;color:#A9BCD9}
.cta-band__lead{
  font-family:var(--font-sans);font-size:1rem;line-height:1.5;
  letter-spacing:-.005em;color:rgba(255,255,255,.65);margin:.9rem 0 0;max-width:42ch;
}
.cta-band__actions{
  display:flex;flex-direction:row;gap:.7rem;align-items:center;flex-wrap:wrap;
}
@media (min-width:900px){.cta-band__actions{flex-direction:column;align-items:stretch;gap:.7rem;min-width:230px}}

/* Bottone primario — pill bianco, arrow nested, shimmer, spring */
.cta-magnet{
  position:relative;overflow:hidden;
  display:inline-flex;align-items:center;justify-content:space-between;gap:1rem;
  height:56px;padding:0 .55rem 0 1.5rem;
  border-radius:999px;
  background:#FFFFFF;color:#0F2347;
  font-size:1rem;font-weight:600;
  letter-spacing:-.012em;text-decoration:none;
  box-shadow:0 12px 28px -12px rgba(0,0,0,.55), inset 0 0 0 1px rgba(255,255,255,.6);
  transition:transform .45s cubic-bezier(.16,1,.3,1),
             box-shadow .45s cubic-bezier(.16,1,.3,1),
             background .45s cubic-bezier(.16,1,.3,1);
}
.cta-magnet::before{
  /* shimmer che attraversa */
  content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;
  background:linear-gradient(90deg, transparent, rgba(169,188,217,.45), transparent);
  transform:skewX(-20deg);
  transition:left .7s cubic-bezier(.16,1,.3,1);
}
.cta-magnet:hover{
  transform:translateY(-2px);
  box-shadow:0 20px 44px -14px rgba(0,0,0,.6), inset 0 0 0 1px rgba(255,255,255,.6);
}
.cta-magnet:hover::before{left:130%}
.cta-magnet:active{transform:translateY(0) scale(.98)}
.cta-magnet__label{position:relative;z-index:1}
.cta-magnet__arr{
  position:relative;z-index:1;
  width:44px;height:44px;border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;
  background:#0F2347;color:#fff;flex-shrink:0;
  transition:transform .45s cubic-bezier(.16,1,.3,1), background .45s cubic-bezier(.16,1,.3,1);
}
.cta-magnet__arr svg{width:16px;height:16px;stroke-width:2}
.cta-magnet:hover .cta-magnet__arr{transform:translateX(3px);background:#1E3A66}

/* icona telefono nel bottone secondario: pulita */
.cta-tel svg{width:17px;height:17px;stroke-width:1.8;opacity:.9}
/* Telefono = bottone secondario ghost (stessa altezza del primario) */
.cta-tel{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  height:56px;padding:0 1.6rem;border-radius:999px;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.05);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  font-size:.95rem;font-weight:500;
  color:rgba(255,255,255,.88);text-decoration:none;letter-spacing:-.005em;
  font-variant-numeric:tabular-nums;
  transition:border-color .4s cubic-bezier(.16,1,.3,1),
             background .4s cubic-bezier(.16,1,.3,1),
             color .4s cubic-bezier(.16,1,.3,1),
             transform .4s cubic-bezier(.16,1,.3,1);
}
.cta-tel svg{width:16px;height:16px;opacity:.85}
.cta-tel:hover{
  border-color:rgba(255,255,255,.5);
  background:rgba(255,255,255,.1);
  color:#fff;transform:translateY(-2px);
}
.cta-tel::before{display:none}
/* il bottone primario riempie la colonna su desktop, allineato al telefono */
@media (min-width:900px){
  .cta-band__actions .cta-magnet{justify-content:space-between}
}

/* ═══════════════════════════════════════════════════════════════════════
   CTA --fx · bottoni sperimentali (skill design-taste-frontend, Motion 6)
   Primario: fill-sweep navy dall'arrow. Secondario: invert su hover.
   Scope: solo .cta-band--fx (news). Spring physics, transform/opacity only.
   ═══════════════════════════════════════════════════════════════════════ */

/* PRIMARIO — bottone staccato dal fondo: bordo sempre visibile, deciso al hover */
.cta-band--fx .cta-magnet{
  position:relative;overflow:visible;
  background:transparent;color:#FFFFFF;
  box-shadow:0 0 0 1.5px rgba(255,255,255,.45);       /* bordo bianco sempre visibile */
  transition:transform .4s cubic-bezier(.16,1,.3,1),
             box-shadow .45s cubic-bezier(.16,1,.3,1);
}
.cta-band--fx .cta-magnet::before{display:none}
.cta-band--fx .cta-magnet__label{color:#FFFFFF}
.cta-band--fx .cta-magnet__arr{background:rgba(255,255,255,.2);color:#FFFFFF;transition:transform .4s cubic-bezier(.16,1,.3,1)}
.cta-band--fx .cta-magnet:hover{
  transform:translateY(-2px);
  box-shadow:
    0 0 0 3px #FFFFFF,                                /* bordo bianco DECISO */
    0 0 0 8px rgba(82,105,160,.22),                  /* alone navy soft */
    0 22px 48px -16px rgba(0,0,0,.55);
}
.cta-band--fx .cta-magnet:hover .cta-magnet__arr{transform:translateX(2px)}
.cta-band--fx .cta-magnet:active{transform:translateY(0) scale(.98)}

/* SECONDARIO — identico al primario */
.cta-band--fx .cta-tel{
  position:relative;overflow:visible;
  border:0;background:transparent;color:#FFFFFF;
  -webkit-backdrop-filter:none;backdrop-filter:none;
  box-shadow:0 0 0 1.5px rgba(255,255,255,.45);
  transition:transform .4s cubic-bezier(.16,1,.3,1),
             box-shadow .45s cubic-bezier(.16,1,.3,1);
}
.cta-band--fx .cta-tel::after{display:none}
.cta-band--fx .cta-tel svg{opacity:.9}
.cta-band--fx .cta-tel:hover{
  transform:translateY(-2px);
  box-shadow:
    0 0 0 3px #FFFFFF,
    0 0 0 8px rgba(82,105,160,.22),
    0 22px 48px -16px rgba(0,0,0,.55);
}
@media (prefers-reduced-motion:reduce){
  .cta-band--fx .cta-magnet,
  .cta-band--fx .cta-tel{transition:none}
}

/* ─── Variante card galleggiante (cream dentro banda navy) ─── */
.cta-band--card .cta-card{
  position:relative;z-index:1;
  max-width:720px;margin:0 auto;
  background:linear-gradient(180deg,#FFFFFF,#FAFAF8);
  border:1px solid rgba(255,255,255,.6);
  border-radius:24px;
  padding:clamp(2.2rem,4vw,3.4rem);
  text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:1.1rem;
  box-shadow:0 36px 80px -30px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.9);
}
.cta-band--card .cta-band__eye{color:var(--ink);margin:0}
.cta-band--card .cta-band__eye i{background:#22A064}
.cta-band--card .cta-band__h{
  color:var(--ink);font-family:var(--font-sans);font-weight:600;
  font-size:clamp(2rem,4.2vw,3.1rem);line-height:1.04;letter-spacing:-.03em;margin:0;
}
.cta-band--card .cta-band__h em{font-style:normal;font-weight:600;color:var(--ink-soft)}
.cta-band--card .cta-band__lead{
  color:var(--ink-soft);margin:0;max-width:44ch;
  font-size:1rem;line-height:1.55;
}
.cta-band--card .cta-band__actions{
  flex-direction:row;align-items:center;justify-content:center;
  gap:1.4rem;flex-wrap:wrap;margin-top:.5rem;
}
.cta-band--card .cta-magnet{
  background:var(--ink);color:#FFFFFF;
  box-shadow:0 10px 30px -10px rgba(15,35,71,.45);
}
.cta-band--card .cta-magnet__arr{background:rgba(255,255,255,.18);color:#fff}
.cta-band--card .cta-magnet:hover{background:var(--accent-hover,#264576)}
.cta-band--card .cta-tel{color:var(--ink-soft)}
.cta-band--card .cta-tel::before{background:rgba(15,35,71,.3)}
.cta-band--card .cta-tel:hover{color:var(--ink)}
/* niente filo verde laterale in versione card */
.cta-band--card .cta-card::before{display:none}

/* ─── Variante centrata (Apple keynote, navy pulito) ─── */
.cta-band--center{padding:clamp(4.5rem,8vw,7rem) 0}
.cta-band--center .cta-band__inner{
  display:flex;flex-direction:column;align-items:center;text-align:center;
  gap:1.1rem;max-width:720px;margin:0 auto;padding:0;
}
.cta-band--center .cta-band__txt::before{display:none}
.cta-band--center .cta-band__eye{margin:0}
.cta-band--center .cta-band__h{
  font-family:var(--font-sans);font-weight:600;
  font-size:clamp(2.1rem,4.6vw,3.4rem);line-height:1.05;letter-spacing:-.03em;
  color:#fff;margin:0;text-wrap:balance;
}
.cta-band--center .cta-band__h em{font-style:normal;font-weight:600;color:var(--tint,#A9BCD9)}
.cta-band--center .cta-band__lead{
  color:rgba(255,255,255,.66);margin:0;max-width:46ch;
  font-size:1rem;line-height:1.55;
}
.cta-band--center .cta-band__actions{
  flex-direction:row;align-items:center;justify-content:center;
  gap:1.5rem;flex-wrap:wrap;margin-top:.7rem;
}

/* ─── Variante "frase protagonista" (editorial quote) ─── */
.cta-band--quote{padding:clamp(5rem,9vw,8rem) 0}
.cta-band--quote::before{
  /* virgoletta gigante decorativa */
  content:"\201C";
  position:absolute;left:50%;top:1.4rem;transform:translateX(-50%);
  font-family:var(--font-display);font-style:italic;
  font-size:9rem;line-height:1;color:var(--tint,#A9BCD9);opacity:.14;
  pointer-events:none;z-index:0;
}
.cta-quote{
  position:relative;z-index:1;
  max-width:860px;margin:0 auto;text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:1.8rem;
}
.cta-quote__eye{
  display:inline-flex;align-items:center;gap:.55rem;
  font-family:var(--font-sans);font-size:.7rem;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;color:var(--tint,#A9BCD9);
}
.cta-quote__eye i{
  width:6px;height:6px;border-radius:50%;background:#22A064;
  animation:ebPulse 2s cubic-bezier(.32,.72,0,1) infinite;
}
.cta-quote__h{
  font-family:var(--font-display);font-weight:400;font-style:italic;
  font-size:clamp(2rem,4.4vw,3.4rem);line-height:1.12;letter-spacing:-.02em;
  color:#fff;margin:0;text-wrap:balance;max-width:20ch;
}
.cta-quote__h em{font-style:italic;font-weight:400;color:var(--tint,#A9BCD9)}
.cta-quote__actions{
  display:flex;align-items:center;justify-content:center;
  gap:1.5rem;flex-wrap:wrap;margin-top:.4rem;
}

/* ═══════════════════════════════════════════════════════════════════════
   SCADENZE PAGE · polish estetico (skill ui-ux-pro-max) — navy + marmo
   ═══════════════════════════════════════════════════════════════════════ */

/* PAGE HERO: eyebrow pill + marmo + spacing editoriale */
.page-hero{
  text-align:left;
  background:
    radial-gradient(900px 480px at 88% -20%, rgba(30,58,102,.06), transparent 60%),
    var(--bg);
}
.page-hero .container{max-width:1240px}
.page-hero__crumbs{justify-content:flex-start}
.page-hero h1{
  font-size:clamp(2.75rem,7vw,5rem);line-height:.96;letter-spacing:-.04em;
  text-wrap:balance;
}
.page-hero h1 em{font-style:italic;color:var(--ink-soft)}
.page-hero p{
  margin:0;max-width:56ch;font-size:1.0625rem;line-height:1.55;
  letter-spacing:-.005em;
}

/* ═══════════ AGENDA EDITORIALE (design-taste-frontend: no card-grid) ═══════════
   Rail data a sx + contenuto dx, hairline divider. Asimmetrico, scadenzario vero. */
.q-block{margin-bottom:clamp(2.5rem,4vw,3.5rem)}

/* Header trimestre: numero ghost gigante + titolo + conteggio */
.q-head{
  display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:1rem;
  padding-bottom:1rem;margin-bottom:.5rem;
  border-bottom:2px solid var(--ink);
}
.q-num{
  font-family:var(--font-display);font-style:italic;font-weight:500;
  font-size:1.6rem;letter-spacing:-.03em;color:var(--ink-soft);opacity:.5;
  font-variant-numeric:tabular-nums;
}
.q-title{
  font-family:var(--font-display);font-weight:500;
  font-size:clamp(1.5rem,2.6vw,2.1rem);letter-spacing:-.03em;color:var(--ink);
}
.q-count{
  font-family:var(--font-sans);font-size:.65rem;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);
  white-space:nowrap;
}

/* Lista righe: hairline tra le scadenze, NO box */
.q-list{list-style:none;margin:0;padding:0}
.q-row{
  display:grid;grid-template-columns:84px 1fr;gap:1.4rem;align-items:start;
  padding:1.3rem 0;
  border-bottom:1px solid rgba(15,35,71,.1);
  transition:padding-left .5s cubic-bezier(.16,1,.3,1), background .4s cubic-bezier(.16,1,.3,1);
}
.q-row:hover{
  padding-left:.8rem;
  background:linear-gradient(90deg, rgba(15,35,71,.035), transparent 70%);
}

/* Rail data: numero grande serif tabular + mese */
.q-date{
  display:flex;flex-direction:column;align-items:flex-start;line-height:1;
  position:relative;padding-left:.9rem;
}
.q-date::before{
  content:"";position:absolute;left:0;top:.1rem;bottom:.1rem;width:3px;border-radius:2px;
  background:var(--line-strong);
}
.q-date b{
  font-family:var(--font-display);font-weight:500;
  font-size:2.6rem;letter-spacing:-.04em;color:var(--ink);
  font-variant-numeric:tabular-nums;
}
.q-date span{
  font-family:var(--font-sans);font-size:.7rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);
  margin-top:.2rem;
}

/* Contenuto */
.q-content{display:flex;flex-direction:column;gap:.35rem;padding-top:.2rem}
.q-flag{
  display:inline-flex;align-items:center;gap:.45rem;width:fit-content;
  font-family:var(--font-sans);font-size:.62rem;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);
}
.q-flag::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--line-strong);flex-shrink:0}
.q-name{
  font-family:var(--font-display);font-weight:500;
  font-size:1.35rem;line-height:1.15;letter-spacing:-.02em;color:var(--ink);margin:0;
}
.q-det{
  font-family:var(--font-sans);font-size:.9rem;line-height:1.5;color:var(--ink-soft);
  margin:0;max-width:62ch;
}

/* Urgenza: colora rail + dot (color + testo = accessibile) */
.q-row.is-urg .q-date::before{background:var(--err)}
.q-row.is-urg .q-flag::before{background:var(--err)}
.q-row.is-med .q-date::before{background:var(--warn)}
.q-row.is-med .q-flag::before{background:var(--warn)}
.q-row.is-ok .q-date::before{background:var(--ok)}
.q-row.is-ok .q-flag::before{background:var(--ok)}
.q-row.is-exp{opacity:.55}
.q-row.is-exp .q-date::before{background:var(--muted)}
.q-row.is-exp .q-flag{color:var(--err)}
.q-row.is-exp .q-flag::before{background:var(--err)}
.q-row.is-exp .q-name{text-decoration:line-through;text-decoration-color:rgba(124,139,163,.5)}

@media (max-width:600px){
  .q-row{grid-template-columns:64px 1fr;gap:1rem;padding:1.1rem 0}
  .q-date b{font-size:2rem}
  .q-name{font-size:1.15rem}
  .q-det{font-size:.85rem}
}

/* LEGENDA: pill chips coerenti */
.cal-leg{
  display:flex;flex-wrap:wrap;gap:.55rem;justify-content:center;
  margin-bottom:var(--sp-3,1.6rem);
}
.cal-leg span{
  display:inline-flex;align-items:center;gap:.45rem;
  font-family:var(--font-sans);font-size:.72rem;font-weight:500;color:var(--ink);
  background:#FFFFFF;border:1px solid rgba(15,35,71,.1);
  padding:.4rem .8rem;border-radius:999px;
}
.cal-leg i{width:8px;height:8px;border-radius:50%}
.cal-leg i.urg{background:var(--err)}
.cal-leg i.med{background:var(--warn)}
.cal-leg i.ok{background:var(--ok)}

/* Section head con bottone azione: allineamento pulito */
.s-head--row{align-items:flex-end}

/* Wrap + frecce scroll bandi */
.bandi-wrap{position:relative}
.bandi-arrow{
  position:absolute;top:50%;transform:translateY(-50%);z-index:5;
  width:48px;height:48px;border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;
  background:#FFFFFF;border:1px solid rgba(15,35,71,.12);
  color:var(--ink);cursor:pointer;
  box-shadow:0 8px 24px -10px rgba(15,35,71,.3);
  transition:background .35s cubic-bezier(.16,1,.3,1),
             transform .35s cubic-bezier(.16,1,.3,1),
             opacity .35s cubic-bezier(.16,1,.3,1),
             color .35s cubic-bezier(.16,1,.3,1);
}
.bandi-arrow svg{width:20px;height:20px}
.bandi-arrow--prev{left:-8px}
.bandi-arrow--next{right:-8px}
.bandi-arrow:hover{background:var(--ink);color:#FFFFFF;transform:translateY(-50%) scale(1.06)}
.bandi-arrow:active{transform:translateY(-50%) scale(.94)}
.bandi-arrow.is-off{opacity:.3;pointer-events:none}
@media (max-width:759px){
  .bandi-arrow--prev{left:2px}
  .bandi-arrow--next{right:2px}
  .bandi-arrow{width:42px;height:42px}
}

/* Empty state messaggio */
.cal-empty-msg{
  text-align:center;font-family:var(--font-display);font-style:italic;
  font-size:1.15rem;color:var(--muted);
  padding:3rem 1rem;margin:0;
}

/* Status counter sotto profile bar */
.pb-status{
  margin-top:.9rem;padding-top:.9rem;
  border-top:1px solid rgba(15,35,71,.08);
  font-family:var(--font-sans);font-size:.85rem;color:var(--ink-soft);
  letter-spacing:-.005em;
}
.pb-status strong{color:var(--ink);font-weight:600}

/* Nota fonti affidabili */
.cal-sources{
  margin:1.6rem 0 0;font-family:var(--font-sans);font-size:.8125rem;
  color:var(--muted);line-height:1.5;
  padding-top:1rem;border-top:1px solid rgba(15,35,71,.08);
}
.cal-sources strong{color:var(--ink-soft);font-weight:600}

/* Profile-bar q copy emphasis */
.pb-q strong{color:var(--ink);font-weight:600}

/* ═══════════════════════════════════════════════════════════════════════
   BANDI cards · stile premium come "6 aree" servizi
   White card · numero ghost · hover navy lift · editorial DNA
   ═══════════════════════════════════════════════════════════════════════ */
.bandi-grid{counter-reset:bando}
/* Card bandi · stesso DNA del pannello featured homepage (resbar) */
.bandi-grid .b-card{
  counter-increment:bando;
  position:relative;overflow:hidden;
  flex:0 0 auto;
  width:clamp(290px, 33vw, 380px);
  scroll-snap-align:start;
  display:flex;flex-direction:column;gap:1rem;
  background:#FFFFFF;
  border:1px solid var(--line);
  border-radius:24px 24px 6px 24px;       /* corner asimmetrico = homepage */
  padding:2rem 1.9rem 1.7rem;
  min-height:280px;
  box-shadow:0 1px 2px rgba(15,35,71,.04),
             inset 0 1px 0 rgba(255,255,255,.95);
  transition:transform .55s cubic-bezier(.16,1,.3,1),
             box-shadow .55s cubic-bezier(.16,1,.3,1),
             border-color .55s cubic-bezier(.16,1,.3,1);
}
@media (max-width:759px){
  .bandi-grid .b-card{width:80vw}
}
/* Numero ghost serif italic bleeding bottom-right (identico a rb-feat) */
.bandi-grid .b-card::before{
  content:counter(bando, decimal-leading-zero);
  position:absolute;right:-.5rem;bottom:-2.6rem;
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:11rem;line-height:1;color:var(--ink);
  opacity:.045;letter-spacing:-.05em;pointer-events:none;
  transition:opacity .55s cubic-bezier(.16,1,.3,1), transform .55s cubic-bezier(.16,1,.3,1);
}
.bandi-grid .b-card:hover{
  transform:translateY(-3px);
  border-color:var(--line-strong);
  box-shadow:0 30px 60px -28px rgba(15,35,71,.22);
}
.bandi-grid .b-card:hover::before{opacity:.1;transform:translate(-6px,-6px)}

/* Tag ente: pill verde "live" come il tag featured homepage */
.bandi-grid .b-tag{
  position:relative;z-index:1;
  display:inline-flex;align-items:center;gap:.5rem;
  font-family:var(--font-sans);font-size:.64rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;
  color:#1E7A4D;background:rgba(34,160,100,.08);
  border:1px solid rgba(34,160,100,.22);
  padding:.34rem .75rem;border-radius:999px;width:fit-content;
}
.bandi-grid .b-tag::before{
  content:"";width:6px;height:6px;border-radius:50%;background:#22A064;
  animation:ebPulse 2s cubic-bezier(.32,.72,0,1) infinite;flex-shrink:0;
}
/* Titolo serif grande */
.bandi-grid .b-title{
  position:relative;z-index:1;
  font-family:var(--font-display);font-weight:500;
  font-size:1.6rem;line-height:1.05;letter-spacing:-.025em;color:var(--ink);
  max-width:16ch;
}
.bandi-grid .b-title em{font-style:italic;color:var(--ink-soft)}
.bandi-grid .b-desc{
  position:relative;z-index:1;
  font-family:var(--font-sans);font-size:.9rem;line-height:1.5;
  color:var(--ink-soft);flex:1;max-width:36ch;
}
/* Footer: importo serif italic evidenziato + link freccia */
.bandi-grid .b-meta{
  position:relative;z-index:1;
  padding-top:1.1rem;margin-top:auto;
  border-top:1px solid var(--line);
  font-family:var(--font-sans);font-size:.8rem;color:var(--muted);
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:.5rem;
}
.bandi-grid .b-meta strong{
  font-family:var(--font-display)!important;font-style:italic;font-weight:500!important;
  font-size:1.05rem;color:var(--ink) !important;font-variant-numeric:tabular-nums;
  margin-left:.25rem;
}
.bandi-grid .b-meta a{
  color:var(--ink);font-weight:600;border:0;
  display:inline-flex;align-items:center;gap:.35rem;
  transition:gap .4s cubic-bezier(.16,1,.3,1), color .4s cubic-bezier(.16,1,.3,1);
}
.bandi-grid .b-meta a:hover{gap:.6rem;color:var(--accent)}

/* ═══════ STEP BAR contrast booster (Durata/Data/Orario/Conferma) ═══════ */
section.section--booking .booking__steps{
  background:#FFFFFF !important;
  border:1.5px solid #0F2347 !important;
}
section.section--booking .bstep{
  color:#0F2347 !important;font-weight:600 !important;font-size:.875rem !important;
}
section.section--booking .bstep:not(.done):not(.current){
  color:#1E3A66 !important;opacity:.55 !important;font-weight:500 !important;
}
section.section--booking .bstep .n{
  border:1.5px solid #1E3A66 !important;color:#1E3A66 !important;
  background:#FFFFFF !important;
}
section.section--booking .bstep:not(.done):not(.current) .n{
  border-color:#A9BCD9 !important;color:#1E3A66 !important;opacity:.7 !important;
}
section.section--booking .bstep.done .n{
  background:#0F2347 !important;color:#FFFFFF !important;border-color:#0F2347 !important;opacity:1 !important;
}
section.section--booking .bstep.current{color:#0F2347 !important;font-weight:700 !important;opacity:1 !important}
section.section--booking .bstep.current .n{
  background:#0F2347 !important;color:#FFFFFF !important;border-color:#0F2347 !important;opacity:1 !important;
}
section.section--booking .bstep-sep{
  background:#1E3A66 !important;opacity:.4 !important;width:18px !important;
}

/* ═══════ MODE TABS contrast booster ═══════ */
section.section--booking .bk-mode-tab{
  color:#1E3A66 !important;opacity:.55 !important;font-weight:500 !important;
  font-size:1.2rem !important;
}
section.section--booking .bk-mode-tab.active{
  color:#0F2347 !important;opacity:1 !important;font-weight:600 !important;
}
section.section--booking .booking__head{
  border-bottom:1.5px solid #1E3A66 !important;
}
section.section--booking .bk-mode-tab.active::after{
  background:#0F2347 !important;height:2.5px !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   RESBAR v3 · editorial split (RESTORED)
   ═══════════════════════════════════════════════════════════════════════ */
.resbar{
  padding:clamp(7rem,11vw,10rem) 0;
  background:
    radial-gradient(1100px 600px at 92% -10%, rgba(30,58,102,.06), transparent 60%),
    radial-gradient(700px 400px at -8% 110%, rgba(223,227,214,.45), transparent 65%),
    var(--bg);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  position:relative;overflow:hidden;
}
.resbar::after{
  content:"";position:absolute;inset:0;
  background-image:radial-gradient(rgba(30,58,102,.025) 1px, transparent 1px);
  background-size:3px 3px;opacity:.55;mix-blend-mode:multiply;pointer-events:none;
}
.resbar > .container{position:relative;z-index:1}
.resbar__head{
  display:flex;flex-direction:column;align-items:flex-start;gap:1.1rem;
  margin-bottom:clamp(3rem,5vw,4rem);max-width:none;
}
.resbar__eye{
  display:inline-block;font-family:var(--font-sans);
  font-size:.7rem;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ink-soft);
  border-bottom:1px solid var(--line-strong);padding-bottom:.6rem;
}
.resbar__eye::before,.resbar__eye i{display:none}
.resbar__h{
  font-family:var(--font-display);font-weight:500;
  font-size:clamp(2.5rem,5.5vw,4.25rem);line-height:.96;letter-spacing:-.035em;
  color:var(--ink);margin:0;text-wrap:balance;
}
.resbar__h em{font-style:italic;font-weight:400;color:var(--ink-soft)}
.resbar__lead{
  font-family:var(--font-sans);font-size:1.05rem;line-height:1.5;
  color:var(--ink-soft);margin:0;max-width:52ch;
}
.resbar__split{
  display:grid;grid-template-columns:1fr;gap:clamp(2rem,3.5vw,3rem);align-items:start;
}
@media (min-width:960px){
  .resbar__split{grid-template-columns:1.15fr 1fr;gap:clamp(3rem,5vw,4.5rem)}
}
.rb-feat{
  display:flex;flex-direction:column;gap:1.6rem;
  padding:2.4rem 2.4rem 2.2rem;
  background:#FFFFFF;border:1px solid var(--line);
  border-radius:24px 24px 6px 24px;position:relative;overflow:hidden;
  text-decoration:none;color:inherit;
  transition:transform .55s cubic-bezier(.32,.72,0,1),
             box-shadow .55s cubic-bezier(.32,.72,0,1),
             border-color .55s cubic-bezier(.32,.72,0,1);
  box-shadow:0 1px 2px rgba(30,58,102,.04),inset 0 1px 0 rgba(255,255,255,.95);
}
.rb-feat::before{
  content:"01";position:absolute;right:-.4rem;bottom:-2.5rem;
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:14rem;line-height:1;letter-spacing:-.05em;color:var(--ink);
  opacity:.04;pointer-events:none;
}
.rb-feat:hover{
  transform:translateY(-3px);border-color:var(--line-strong);
  box-shadow:0 30px 60px -28px rgba(30,58,102,.22);
}
.rb-feat__head{
  display:flex;align-items:center;justify-content:space-between;
  padding-bottom:1.1rem;border-bottom:1px solid var(--line);
}
.rb-feat__tag{
  display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .8rem;border-radius:999px;
  background:rgba(34,160,100,.08);border:1px solid rgba(34,160,100,.22);
  font-family:var(--font-sans);font-size:.65rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:#1E7A4D;
}
.rb-feat__tag i{
  width:6px;height:6px;border-radius:50%;background:#22A064;
  animation:ebPulse 2s cubic-bezier(.32,.72,0,1) infinite;
}
.rb-feat__num{
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:.95rem;color:var(--ink-soft);letter-spacing:-.01em;
}
.rb-feat__num b{
  font-family:var(--font-display);font-weight:500;font-style:italic;
  font-size:1.5rem;color:var(--ink);margin-left:.15rem;font-variant-numeric:tabular-nums;
}
.rb-feat__title{display:flex;flex-direction:column;gap:.1rem}
.rb-feat__pre{
  font-family:var(--font-sans);font-size:.78rem;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);
}
.rb-feat__title h4{
  display:flex;align-items:baseline;gap:.4rem;
  font-family:var(--font-display);font-weight:500;
  font-size:clamp(3rem,5.5vw,4.5rem);line-height:.95;letter-spacing:-.035em;
  color:var(--ink);margin:0;
}
.rb-feat__amp{
  font-family:var(--font-display);font-style:italic;font-weight:400;
  color:var(--ink-soft);font-size:.7em;opacity:.6;
}
.rb-feat__sub{
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:1.4rem;color:var(--ink-soft);letter-spacing:-.015em;padding-top:.2rem;
}
.rb-feat__desc{
  font-family:var(--font-sans);font-size:.95rem;line-height:1.55;
  color:var(--ink-soft);margin:0;max-width:46ch;
}
.rb-feat__chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.rb-feat__chips li{
  display:inline-flex;align-items:baseline;gap:.45rem;padding:.55rem .85rem;border-radius:999px;
  background:rgba(30,58,102,.05);border:1px solid rgba(30,58,102,.1);
  font-family:var(--font-sans);font-size:.78rem;color:var(--ink-soft);
  transition:all .35s cubic-bezier(.32,.72,0,1);
}
.rb-feat:hover .rb-feat__chips li{background:rgba(30,58,102,.08);border-color:rgba(30,58,102,.18)}
.rb-feat__chips b{
  font-family:var(--font-display);font-style:italic;font-weight:500;
  font-size:.95rem;color:var(--ink);font-variant-numeric:tabular-nums;
}
.rb-feat__foot{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  padding-top:1.4rem;margin-top:auto;border-top:1px solid var(--line);
}
.rb-feat__cta{
  display:inline-flex;align-items:center;gap:.55rem;
  padding:.55rem .55rem .55rem 1.2rem;border-radius:999px;
  background:var(--ink);color:#FFFFFF;
  font-family:var(--font-sans);font-size:.875rem;font-weight:500;letter-spacing:-.005em;
  transition:all .35s cubic-bezier(.32,.72,0,1);
}
.rb-feat__arr{
  width:28px;height:28px;border-radius:999px;flex-shrink:0;
  display:inline-flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.14);color:#fff;
  transition:all .4s cubic-bezier(.32,.72,0,1);
}
.rb-feat__arr svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}
.rb-feat:hover .rb-feat__cta{background:var(--accent-hover)}
.rb-feat:hover .rb-feat__arr{transform:translate(2px,-1px) scale(1.08);background:rgba(255,255,255,.22)}
.rb-feat__meta{
  font-family:var(--font-sans);font-size:.7rem;
  letter-spacing:.12em;text-transform:uppercase;color:var(--muted);
}
.rb-list{
  list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0;
  border-top:1px solid var(--line);
}
.rb-row{margin:0;border-bottom:1px solid var(--line)}
.rb-row a{
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1.2rem;
  padding:1.4rem .25rem;text-decoration:none;color:inherit;position:relative;
  transition:padding .55s cubic-bezier(.32,.72,0,1),
             background .35s cubic-bezier(.32,.72,0,1);
}
.rb-row a:hover{
  padding-left:1rem;padding-right:1rem;
  background:linear-gradient(90deg, rgba(30,58,102,.04), transparent 80%);
}
.rb-row__num{
  font-family:var(--font-display);font-style:italic;font-weight:500;
  font-size:1.6rem;color:var(--ink-soft);
  letter-spacing:-.02em;font-variant-numeric:tabular-nums;
  opacity:.5;min-width:2.2rem;
  transition:all .45s cubic-bezier(.32,.72,0,1);
}
.rb-row a:hover .rb-row__num{color:var(--ink);opacity:1;transform:scale(1.08)}
.rb-row__txt{display:flex;flex-direction:column;gap:.2rem;min-width:0}
.rb-row__txt b{
  font-family:var(--font-display);font-weight:500;
  font-size:1.4rem;line-height:1.1;letter-spacing:-.02em;color:var(--ink);
}
.rb-row__txt b em{font-style:italic;font-weight:400;color:var(--ink-soft)}
.rb-row__txt span{
  font-family:var(--font-sans);font-size:.85rem;line-height:1.4;color:var(--ink-soft);
}
.rb-row__go{
  width:36px;height:36px;border-radius:999px;flex-shrink:0;
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--line-strong);color:var(--ink);
  transition:all .45s cubic-bezier(.32,.72,0,1);
}
.rb-row__go svg{width:14px;height:14px;flex-shrink:0}
.rb-row a:hover .rb-row__go{
  background:var(--ink);color:#FFFFFF;border-color:var(--ink);
  transform:translate(3px,-1px) scale(1.05);
}
.rb-row--accent .rb-row__num{color:#1E7A4D;opacity:.7}
.rb-row--accent a:hover .rb-row__go{background:#22A064;border-color:#22A064}
.rb-row--accent a:hover{background:linear-gradient(90deg, rgba(34,160,100,.06), transparent 80%)}
@media (max-width:759px){
  .rb-feat{padding:1.6rem 1.4rem;border-radius:18px}
  .rb-feat::before{font-size:9rem;bottom:-1.5rem}
  .rb-feat__title h4{font-size:2.4rem}
  .rb-row a{padding:1.1rem .25rem}
  .rb-row a:hover{padding-left:.5rem;padding-right:.5rem}
  .rb-row__num{font-size:1.3rem;min-width:1.8rem}
  .rb-row__txt b{font-size:1.15rem}
  .rb-row__go{width:30px;height:30px}
}

@media (prefers-reduced-motion:reduce){
  .trust__track{animation:none}
}
