* {
  box-sizing:border-box}
html {
  scroll-behavior:smooth}
body {
  margin:0;
  color:var(--ink);
  background:var(--paper);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6}
a {
  color:inherit;
  text-decoration:none}
button,input,textarea,select {
  font:inherit}
button,a,input,select,textarea {
  -webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible {
  outline:3px solid var(--muted);
  outline-offset:5px}
button {
  cursor:pointer}
h1,h2,h3,h4,p {
  margin-top:0}
h1,h2,h3,h4 {
  line-height:1.06;
  letter-spacing:-.055em}
p {
  color:var(--muted)}
.serif {
  font-family:var(--font-display);
  font-weight:400;
  font-style:italic;
  letter-spacing:-.065em}
.eyebrow {
  font-size:.75rem;
  letter-spacing:.13em;
  font-weight:600;
  display:block}
.header {
  height:104px;
  margin:0 var(--gutter);
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid var(--line);
  gap:24px}
.brand {
  width:255px;
  flex-shrink:0}
.brand-image {display:block;width:100%;height:auto;object-fit:contain}
.header nav {
  display:flex;
  gap:36px;
  height:100%;
  align-items:center}
.header nav a {
  font-size:.9rem;
  position:relative;
  padding:16px 0}
.header nav a[aria-current]:after {
  content:'';
  position:absolute;
  bottom:8px;
  left:0;
  right:0;
  height:2px;
  background:var(--ink)}
.menu-toggle {
  display:none}
.hero {
  padding:48px var(--gutter) 0}
.hero-top,.hero-bottom,.hero-baseline {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px}
.hero-index {
  font-size:.75rem;
  letter-spacing:.1em;
  color:var(--muted)}
.hero h1 {
  font-size:clamp(5rem,10.5vw,10rem);
  line-height:.93;
  margin:53px 0 38px;
  letter-spacing:-.075em;
  font-weight:600}
.hero-bottom {
  max-width:100%;
  align-items:flex-end}
.hero-bottom p {
  max-width:570px;
  font-size:1.14rem;
  line-height:1.65;
  margin:0}
.button {
  border:1px solid var(--ink);
  background:var(--ink);
  color:var(--inverse);
  padding:16px 23px;
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
  font-size:.9rem;
  font-weight:600;
  min-height:52px}
.button:hover {
  background:var(--hover)}
.button.secondary {
  background:var(--inverse);
  color:var(--ink)}
.hero-baseline {
  margin-top:53px;
  border-top:1px solid var(--line);
  padding:19px 0;
  font-size:.7rem;
  font-weight:600;
  letter-spacing:.1em}
.section {
  padding:100px var(--gutter)}
.section-heading {
  display:grid;
  grid-template-columns:1fr 1.7fr 1.3fr;
  gap:36px;
  margin-bottom:44px}
.section h2,.manifesto h2,.about-strip h2 {
  font-size:clamp(2.5rem,4.3vw,4.4rem);
  font-weight:500;
  margin-bottom:26px}
.section-heading p {
  max-width:330px;
  padding-top:4px}
.area-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line)}
.area {
  padding:24px 28px 36px;
  border-right:1px solid var(--line);
  transition:background .2s}
.area:first-child {
  padding-left:0}
.area:last-child {
  border-right:0}
.area:hover {
  background:var(--soft)}
.area-top {
  display:flex;
  justify-content:space-between;
  font-size:.8rem;
  margin-bottom:45px}
.area-top span:last-child {
  font-size:1.4rem}
.area h3 {
  font-size:clamp(2rem,3.3vw,3.3rem);
  font-weight:500;
  margin-bottom:30px}
.area h3 span {
  font-family:var(--font-display)}
.area h4 {
  font-size:1rem;
  letter-spacing:-.015em;
  font-weight:600;
  margin-bottom:12px}
.area p {
  font-size:.96rem;
  max-width:325px;
  margin:0}
.manifesto {
  margin:0 2.5%;
  background:var(--ink);
  color:var(--inverse);
  padding:70px 3.15%;
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:12%}
.manifesto .eyebrow {
  margin-bottom:35px;
  color:var(--onDarkMuted)}
.manifesto h2 {
  margin:0}
.manifesto p {
  color:var(--onDark);
  font-size:1.25rem;
  line-height:1.6}
.manifesto .muted {
  font-size:1rem;
  color:var(--onDarkMuted)}
.manifesto>div:last-child {
  padding-top:50px}
.text-link {
  display:inline-block;
  font-weight:600;
  font-size:.9rem;
  border-bottom:1px solid;
  padding-bottom:7px}
.text-link:hover {
  opacity:.6}
.heading-row {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  margin-bottom:36px;
  gap:30px}
.heading-row .eyebrow {
  margin-bottom:28px}
.heading-row h2 {
  margin-bottom:0}
.empty-editorial {
  background:var(--soft);
  padding:44px 48px;
  position:relative}
.empty-editorial h3,.empty-editorial h2 {
  font-size:2.5rem;
  font-weight:500;
  margin:20px 0}
.empty-editorial p {
  max-width:530px}
.about-strip {
  background:var(--soft);
  padding:65px var(--gutter);
  display:grid;
  grid-template-columns:1fr 3fr;
  gap:36px}
.about-strip p {
  max-width:730px;
  font-size:1.1rem}
.about-strip h2 {
  margin-bottom:22px}
footer {
  padding:60px var(--gutter) 24px}
.footer-top {
  display:flex;
  justify-content:space-between;
  gap:30px;
  align-items:center;
  padding-bottom:45px}
.footer-wordmark {
  font-size:2.4rem;
  font-weight:800;
  letter-spacing:-.05em;
  line-height:1}
.footer-wordmark small {
  display:block;
  font-size:.82rem;
  font-weight:400;
  letter-spacing:0;
  margin-top:12px}
.footer-top p {
  font-size:1.2rem;
  color:var(--ink);
  line-height:1.15;
  letter-spacing:-.03em;
  margin:0}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:20px;
  border-top:1px solid var(--line);
  padding-top:20px;
  font-size:.75rem}
.footer-note {
  font-size:.75rem;
  margin:18px 0 0}
.page-head {
  padding:60px var(--gutter) 60px;
  border-bottom:1px solid var(--line)}
.page-head h1 {
  font-size:clamp(3.8rem,7.5vw,7.3rem);
  font-weight:500;
  line-height:1.01;
  margin:38px 0 32px;
  max-width:1100px}
.page-head>p {
  max-width:720px;
  font-size:1.16rem;
  margin-bottom:0}
.filters {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:38px}
.filters a {
  border:1px solid var(--line);
  padding:9px 24px;
  min-height:44px;
  border-radius:30px;
  font-size:.9rem}
.filters a[aria-current],.filters a:hover {
  background:var(--ink);
  border-color:var(--ink);
  color:var(--inverse)}
.knowledge-section {
  padding-top:42px}
.topic-index {
  margin-top:60px}
.topic-index a {
  display:grid;
  grid-template-columns:1fr 2fr 30px;
  gap:20px;
  padding:25px 0;
  border-bottom:1px solid var(--line);
  align-items:center}
.topic-index h3 {
  font-weight:500;
  font-size:1.65rem;
  margin:0}
.topic-index p {
  margin:0}
.bio {
  display:grid;
  grid-template-columns:1fr 1.3fr;
  gap:12%;
  align-items:center}
.bio-mark {
  background:var(--soft);
  padding:70px 35px;
  min-height:320px;
  display:flex;
  flex-direction:column;
  justify-content:center}
.bio-mark .brand-image {
  mix-blend-mode:multiply}
.bio-mark>span:last-child {
  font-family:var(--font-display);
  font-style:italic;
  align-self:flex-end;
  margin-top:30px}
.bio .eyebrow {
  margin-bottom:25px}
.lead {
  font-size:1.3rem;
  color:var(--ink)}
.steps {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:35px;
  margin-top:45px}
.steps>div {
  border-top:1px solid var(--line);
  padding-top:22px}
.step-number {
  font-size:.8rem;
  color:var(--muted)}
.steps h3 {
  font-size:1.5rem;
  margin:30px 0 20px}
.steps h4 {
  font-size:1rem;
  letter-spacing:0;
  line-height:1.4}
.steps p {
  font-size:.94rem}
.note {
  font-size:.88rem;
  max-width:780px;
  margin-top:30px}
.contact-section {
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:12%}
.contact-section .eyebrow {
  margin-bottom:28px}
.contact-box {
  background:var(--soft);
  padding:40px}
.contact-box h3 {
  font-size:2rem;
  font-weight:500}
.article-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:30px}
.article-card {
  padding:30px 0 22px;
  border-top:1px solid var(--ink);
  border-bottom:1px solid var(--line);
  display:flex;
  flex-direction:column}
.article-card h3 {
  font-size:1.9rem;
  line-height:1.12;
  font-weight:500;
  margin:27px 0 20px;
  overflow-wrap:anywhere}
.article-card p {
  font-size:.95rem}
.article-bottom {
  display:flex;
  justify-content:space-between;
  font-size:.85rem;
  margin-top:auto;
  padding-top:25px}
.article-card:hover h3 {
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:5px}
.article-head h1 {
  font-size:clamp(2.8rem,5.5vw,5.5rem);
  overflow-wrap:anywhere}
.back {
  display:block;
  margin-bottom:40px;
  font-size:.9rem}
.byline {
  font-size:.85rem;
  margin-top:30px}
.article-body {
  max-width:800px;
  padding:65px 30px 90px;
  margin:auto;
  font-size:1.15rem;
  overflow-wrap:anywhere}
.article-body p {
  color:var(--ink);
  line-height:1.85}
.article-body aside {
  border-top:1px solid var(--line);
  padding-top:24px;
  margin:45px 0;
  font-size:.88rem;
  color:var(--muted)}
.skip {
  position:absolute;
  top:-70px;
  background:var(--ink);
  color:var(--inverse);
  padding:12px;
  z-index:10}
.skip:focus {
  top:0}
.notice {
  background:var(--soft);
  padding:14px 18px;
  font-size:.9rem!important;
  margin-top:24px}
[hidden] {
  display:none!important}

@media(min-width:1600px) {
  body {
  max-width:var(--max-width);
  margin:auto}
.hero h1 {
  font-size:10.5rem}
}
@media(max-width:900px) {
  .header nav {
  gap:22px}
.brand {
  width:220px}
.hero h1 {
  font-size:6.8rem}
.hero-index {
  display:none}
.section-heading {
  grid-template-columns:1fr 2fr}
.section-heading>p {
  grid-column:2;
  margin-top:-20px;
  max-width:100%}
.section {
  padding-top:70px;
  padding-bottom:70px}
.area {
  padding:20px 18px 28px}
.manifesto {
  gap:45px}
.manifesto>div:last-child {
  padding-top:30px}
.bio {
  gap:40px}
.steps {
  grid-template-columns:repeat(2,1fr)}
.article-grid {
  grid-template-columns:repeat(2,1fr)}
}
@media(max-width:620px) {
  .header {
  height:86px;
  margin:0 6%}
.brand {
  width:215px}
.menu-toggle {
  display:flex;
  gap:18px;
  background:none;
  border:0;
  padding:12px 0;
  font-size:.9rem;
  align-items:center}
.menu-toggle span {
  font-size:1.3rem}
.header nav {
  display:none;
  position:absolute;
  top:86px;
  left:0;
  right:0;
  height:auto;
  background:var(--inverse);
  z-index:5;
  padding:18px 6% 30px;
  border-bottom:1px solid var(--line);
  flex-direction:column;
  align-items:stretch;
  gap:0}
.header nav.open {
  display:flex}
.header nav a {
  font-size:1.25rem;
  padding:15px 0}
.header nav a[aria-current]:after {
  right:auto;
  width:30px}
.hero {
  padding:34px 6% 0}
.hero-top .eyebrow {
  font-size:.65rem;
  letter-spacing:.09em}
.hero h1 {
  font-size:clamp(4.1rem,16vw,6.2rem);
  margin:40px 0 30px}
.hero-bottom {
  display:block}
.hero-bottom p {
  font-size:1rem;
  margin-bottom:28px}
.hero-bottom .button {
  width:100%}
.hero-baseline {
  margin-top:35px;
  gap:12px;
  padding:17px 0;
  font-size:.58rem;
  letter-spacing:.055em}
.section {
  padding:60px 6%}
.section-heading {
  display:block;
  margin-bottom:30px}
.section-heading .eyebrow {
  margin-bottom:25px}
.section-heading>p {
  margin-top:0}
.section h2,.manifesto h2,.about-strip h2 {
  font-size:2.55rem}
.area-grid {
  grid-template-columns:1fr}
.area,.area:first-child {
  padding:24px 0 28px;
  border-right:0;
  border-bottom:1px solid var(--line)}
.area:last-child {
  border-bottom:0}
.area-top {
  margin-bottom:20px}
.area h3 {
  font-size:2.6rem;
  margin-bottom:25px}
.area p {
  max-width:100%}
.manifesto {
  margin:0;
  padding:45px 6%;
  grid-template-columns:1fr;
  gap:25px}
.manifesto>div:last-child {
  padding-top:0}
.manifesto p {
  font-size:1.1rem}
.manifesto .eyebrow {
  margin-bottom:25px}
.heading-row {
  align-items:flex-start;
  flex-direction:column;
  gap:20px}
.empty-editorial {
  padding:30px 24px}
.empty-editorial h3,.empty-editorial h2 {
  font-size:2rem}
.about-strip {
  padding:45px 6%;
  display:block}
.about-strip .eyebrow {
  margin-bottom:28px}
.about-strip p {
  font-size:1rem}
footer {
  padding:45px 6% 24px}
.footer-top {
  align-items:flex-start}
.footer-wordmark {
  font-size:1.6rem}
.footer-top p {
  font-size:.85rem}
.footer-bottom {
  flex-wrap:wrap;
  gap:10px}
.footer-bottom>span:nth-child(2) {
  display:none}
.footer-bottom a {
  margin-left:auto}
.footer-note {
  font-size:.7rem}
.page-head {
  padding:40px 6%}
.page-head h1 {
  font-size:clamp(3.2rem,12vw,4.5rem);
  margin:30px 0}
.page-head>p {
  font-size:1.05rem}
.page-head .eyebrow {
  font-size:.7rem}
.filters {
  gap:8px}
.filters a {
  padding:9px 16px;
  font-size:.85rem}
.knowledge-section {
  padding-top:30px}
.topic-index a {
  grid-template-columns:1fr 25px;
  gap:10px}
.topic-index p {
  grid-column:1;
  font-size:.94rem}
.topic-index a>span {
  grid-column:2;
  grid-row:1/3}
.bio {
  grid-template-columns:1fr}
.bio-mark {
  min-height:190px;
  padding:40px 25px}
.steps {
  gap:25px 20px}
.steps h3 {
  font-size:1.25rem}
.steps h4 {
  font-size:.94rem}
.steps p {
  font-size:.9rem}
.contact-section {
  grid-template-columns:1fr;
  gap:30px}
.contact-box {
  padding:30px 25px}
.article-grid {
  grid-template-columns:1fr}
.article-head h1 {
  font-size:2.8rem}
.article-body {
  padding:40px 6%;
  font-size:1.08rem}
}

@media(prefers-reduced-motion:reduce) {
  html {
  scroll-behavior:auto}
* {
  transition:none!important}
}

.contact-email {
  font-size:clamp(.9rem,1.5vw,1.35rem);
  text-decoration:underline;
  text-underline-offset:5px;
  overflow-wrap:anywhere}

@media(max-width:620px) {
  .header {
  gap:15px}
.header .brand {
  width:min(215px,55vw)}
.menu-toggle {
  gap:10px;
  flex-shrink:0}
}

/* Approccio e percorso professionale */
.approach-section {
  scroll-margin-top:30px}
.approach-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:35px}
.approach-grid>div {
  border-top:1px solid var(--ink);
  padding-top:24px}
.approach-grid h3 {
  font-size:1.8rem;
  font-weight:500;
  margin:30px 0 20px;
  letter-spacing:-.045em}
.approach-grid p {
  font-size:1rem}
.approach-bottom {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:35px;
  border-top:1px solid var(--line);
  padding-top:26px;
  margin-top:25px}
.approach-bottom p {
  max-width:660px;
  margin:0}
.approach-bottom a {
  flex-shrink:0}
#consulenze {
  scroll-margin-top:30px}
.manifesto .consultation-note {
  font-size:.85rem;
  color:var(--onDarkMuted);
  border-top:1px solid var(--accent);
  margin:28px 0 0;
  padding-top:20px}
.approach-section .section-heading p {
  max-width:none}

@media(max-width:900px) {
  .approach-bottom {
  align-items:flex-start;
  flex-direction:column;
  gap:20px}
.approach-grid {
  gap:22px}
}

@media(max-width:620px) {
  .approach-grid {
  grid-template-columns:1fr;
  gap:22px}
.approach-grid h3 {
  margin-top:20px}
.approach-bottom a {
  flex-shrink:1}
}


/* Percorsi e navigazione editoriale */

.hero-actions {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:18px;
  flex-shrink:0}
.page-cta {
  margin-top:28px}
.service-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:40px}
.service-card {
  padding:34px;
  border:1px solid var(--line);
  display:flex;
  flex-direction:column}
.service-card h3 {
  font-size:2.3rem;
  font-weight:500;
  margin:30px 0 24px}
.service-card ul {
  padding-left:20px;
  color:var(--muted);
  margin:8px 0 30px}
.service-card li {
  margin-bottom:12px}
.service-card .text-link {
  align-self:flex-start;
  margin-top:auto}
.editorial-principle {
  border-top:1px solid var(--line);
  margin-top:50px;
  padding-top:34px;
  max-width:760px}
.editorial-principle h3 {
  font-size:2rem;
  font-weight:500;
  margin:18px 0}
.contact-form {
  margin-top:34px}
.contact-form label {
  display:block;
  font-size:1rem;
  margin-bottom:20px}
.contact-form input,.contact-form textarea,.contact-form select {
  width:100%;
  display:block;
  background:var(--inverse);
  color:var(--ink);
  border:1px solid var(--accent);
  padding:12px;
  margin-top:8px;
  border-radius:0}
.area h3 {
  font-size:clamp(1.75rem,2.8vw,2.8rem);
  overflow-wrap:normal}
.header nav {
  gap:25px}
.eyebrow {
  font-size:.8125rem}
.area-grid>* {
  min-width:0}
.hero-actions .text-link {
  font-size:1rem}

@media(max-width:1000px) and (min-width:621px) {
  .header {
  flex-wrap:wrap;
  height:auto;
  padding:20px 0}
.header nav {
  height:auto;
  gap:20px}
.hero-bottom {
  align-items:flex-start}
.hero-actions {
  flex-shrink:1;
  min-width:190px}
}

@media(max-width:620px) {
  .service-grid {
  grid-template-columns:1fr;
  gap:24px}
.service-card {
  padding:26px 22px}
.service-card h3 {
  font-size:2rem}
.hero-actions {
  align-items:stretch}
.hero-actions .text-link {
  align-self:flex-start}
.area h3 {
  font-size:2.4rem}
.contact-box {
  padding:28px 20px}
.header nav {
  gap:0}
}


/* Additions for accessible static articles; existing page layout is unchanged. */
img { max-width: 100%; }
.section-heading > *, .bio > *, .contact-section > *, .manifesto > * { min-width: 0; }
.article-cover { display: block; width: 100%; height: auto; margin: 0 0 32px; }
.article-body h2 { font-size: 2rem; margin-top: 2rem; line-height: 1.2; }
.article-body h3 { font-size: 1.5rem; margin-top: 1.5rem; }
.article-body li { margin-bottom: .5rem; }
.article-body a { text-decoration: underline; overflow-wrap: anywhere; }
.article-body blockquote { border-left: 3px solid var(--accent); padding-left: 20px; margin-left: 0; }
.article-card img { width: 100%; aspect-ratio: 16/9; object-fit: cover; margin-bottom: 22px; }
.service-price { font-weight: 600; color: var(--ink); }
.no-script-menu { display: flex !important; }
@media (max-width: 620px) { .hero h1 { font-size: clamp(3.5rem, 16vw, 6.2rem); } }

.footer-wordmark{width:280px;max-width:55%}.footer-wordmark small{font-size:.82rem;letter-spacing:0}.bio-mark .brand-image{mix-blend-mode:normal}

.article-import{display:block;width:100%;height:80vh;min-height:500px;border:1px solid var(--line);background:var(--paper);margin:24px 0}.article-pdf{margin-bottom:12px}@media(max-width:620px){.article-import{min-height:420px;height:75vh}}
