:root {
  --ink: #14212b;
  --navy: #10284d;
  --navy-soft: #17365f;
  --paper: #f7f6f2;
  --white: #ffffff;
  --muted: #666b70;
  --line: #d9d6cf;
  --accent: #b8a27a;
  --max: 1120px;
  --shadow: 0 16px 40px rgba(0,0,0,.12);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: Arial, Helvetica, sans-serif; color: var(--ink); background: var(--white); line-height: 1.65; }
img { display: block; max-width: 100%; }
a { color: inherit; }
.container { width: min(calc(100% - 40px), var(--max)); margin-inline: auto; }
.skip-link { position: fixed; left: 12px; top: -60px; z-index: 9999; background: #fff; color: #000; padding: 10px 14px; border-radius: 4px; }
.skip-link:focus { top: 12px; }
.site-header { position: sticky; top: 0; z-index: 1000; background: rgba(16,40,77,.98); color: var(--white); border-bottom: 1px solid rgba(255,255,255,.12); }
.header-inner { min-height: 86px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.brand { display: inline-flex; align-items: center; gap: 14px; text-decoration: none; font-family: Georgia, 'Times New Roman', serif; font-size: 1.25rem; letter-spacing: .02em; }
.brand img { width: 54px; height: 54px; object-fit: contain; }
.nav-toggle { display: none; border: 1px solid rgba(255,255,255,.5); background: transparent; color: white; border-radius: 4px; padding: 8px 10px; font-size: 1rem; }
.site-nav ul { display: flex; align-items: center; gap: 25px; list-style: none; margin: 0; padding: 0; }
.site-nav a { text-decoration: none; font-size: .95rem; padding: 12px 0; border-bottom: 1px solid transparent; }
.site-nav a:hover, .site-nav a[aria-current='page'] { border-color: var(--accent); }
.hero { min-height: 650px; display: grid; align-items: center; background: var(--navy) url('../images/home-hero.webp') center/cover no-repeat; color: white; position: relative; }
.hero::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(11,17,24,.18), rgba(11,17,24,.18)); }
.hero .container { position: relative; }
.hero-spacer { min-height: 420px; }
.section { padding: 78px 0; }
.section.alt { background: var(--paper); }
.section.dark { background: var(--navy); color: white; }
.eyebrow { text-transform: uppercase; letter-spacing: .18em; font-size: .75rem; color: var(--muted); margin-bottom: 10px; }
.dark .eyebrow { color: #c8cbd0; }
h1, h2, h3 { font-family: Georgia, 'Times New Roman', serif; font-weight: 400; line-height: 1.2; margin-top: 0; }
h1 { font-size: clamp(2.4rem, 5vw, 4.2rem); }
h2 { font-size: clamp(2rem, 4vw, 3rem); }
h3 { font-size: 1.5rem; }
.lead { font-size: 1.12rem; max-width: 820px; }
.text-wrap { max-width: 850px; }
.text-wrap p { margin: 0 0 1.25em; }
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 58px; align-items: center; }
.two-col.top { align-items: start; }
.btn { display: inline-block; padding: 12px 20px; border: 1px solid currentColor; text-decoration: none; margin-top: 12px; transition: .2s ease; }
.btn:hover { background: var(--ink); color: white; border-color: var(--ink); }
.dark .btn:hover { background: white; color: var(--ink); border-color: white; }
.practice-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px 28px; background: transparent; border: 0; margin-top: 34px; }
.practice-list a { min-height: 210px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; padding: 18px; background: white; text-decoration: none; text-align: center; font-family: Georgia, serif; font-size: 1.18rem; }
.practice-list img { width: 150px; height: 125px; object-fit: contain; }
.quote-section { min-height: 480px; display: grid; place-items: center; text-align: center; background: linear-gradient(rgba(7,12,18,.55), rgba(7,12,18,.55)), url('../images/libreria.webp') center/cover no-repeat; color: white; }
.quote { font-family: Georgia, serif; font-size: clamp(1.7rem, 4vw, 3.1rem); max-width: 850px; margin-inline: auto; line-height: 1.35; text-align: center; }
.quote-attribution { margin: 18px auto 0; text-align: center; width: 100%; }
.page-hero { min-height: 320px; display: grid; align-items: end; padding: 70px 0 50px; background: var(--navy); color: white; }
.profile-photo { width: min(100%, 470px); height: auto !important; aspect-ratio: auto; object-fit: contain; margin-inline: auto; box-shadow: var(--shadow); }
.ethics-banner { min-height: 430px; background: url('../images/code-of-ethics.webp') center/cover no-repeat; }
.values { display: grid; grid-template-columns: repeat(2,1fr); gap: 34px 28px; }
.value { border-top: 1px solid var(--ink); padding-top: 18px; }
.value .num { font-family: Georgia, serif; font-size: 1.1rem; color: var(--muted); }
.activity-grid { display: grid; gap: 44px; }
.activity-card { display: grid; grid-template-columns: 1.25fr .75fr; gap: 46px; align-items: center; padding-bottom: 44px; border-bottom: 1px solid var(--line); }
.activity-card:nth-child(even) .activity-img { order: -1; }
.activity-img { width: 100%; aspect-ratio: 319/349; object-fit: cover; background: #e7e7e7; }
.activity-card ul { padding-left: 1.2em; }
.collab-hero { min-height: 230px; background: url('../images/collaborazioni-originale.jpeg') center/cover no-repeat; }
.collab-card { display: grid; grid-template-columns: 190px 1fr; gap: 36px; padding: 38px 0; border-bottom: 1px solid var(--line); align-items: start; }
.collab-card img { width: 190px; height: 230px; object-fit: cover; object-position: center top; }
.contact-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 56px; align-items: start; }
.contact-image { width: 100%; background: #ddd; }
.contact-details { margin: 28px 0; }
.contact-details a { text-decoration-thickness: 1px; text-underline-offset: 3px; }
form { display: grid; gap: 14px; }
label { font-weight: 600; }
input, textarea { width: 100%; padding: 12px 13px; border: 1px solid #aaa; background: white; font: inherit; }
textarea { min-height: 150px; resize: vertical; }
button[type='submit'] { width: fit-content; padding: 12px 22px; border: 1px solid var(--ink); background: var(--ink); color: white; font: inherit; cursor: pointer; }
.privacy-content { max-width: 900px; }
.privacy-content h2 { font-size: 1.55rem; margin-top: 2.2em; }
.site-footer { background: var(--navy); color: white; padding: 46px 0; }
.footer-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start; }
.footer-grid > :first-child { text-align: left; justify-self: start; }
.footer-grid address { text-align: right; justify-self: end; }
.site-footer a { color:white; }
.franklin-quote { text-align:center; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.franklin-quote .quote { margin-inline:auto; }
.franklin-quote p { margin:.9rem auto 0; text-align:center; width:100%; }
.footer-meta { color: #c8cbd0; font-size: .92rem; }
@media (max-width: 820px) {
  .container { width: min(calc(100% - 28px), var(--max)); }
  .header-inner { min-height: 72px; }
  .nav-toggle { display: block; }
  .site-nav { display: none; position: absolute; left: 0; right: 0; top: 72px; background: var(--navy); padding: 16px 22px 24px; border-top: 1px solid rgba(255,255,255,.12); }
  .site-nav.open { display: block; }
  .site-nav ul { flex-direction: column; align-items: stretch; gap: 0; }
  .site-nav a { display: block; padding: 12px 0; }
  .hero { min-height: 500px; background-position: 32% center; }
  .section { padding: 56px 0; }
  .two-col, .contact-grid, .footer-grid { grid-template-columns:1fr; }
  .footer-grid address { text-align:left; justify-self:start; }
  .footer-grid address { text-align: left; justify-self: start; }
  .practice-list { grid-template-columns: 1fr 1fr; }
  .values { grid-template-columns: 1fr; }
  .activity-card { grid-template-columns: 1fr; gap: 22px; }
  .activity-card:nth-child(even) .activity-img { order: initial; }
  .collab-card { grid-template-columns: 120px 1fr; gap: 22px; }
  .collab-card img { width: 120px; height: 150px; }
}
@media (max-width: 520px) {
  .brand span { font-size: 1.05rem; }
  .brand img { width: 45px; height: 45px; }
  .practice-list { grid-template-columns: 1fr; }
  .collab-card { grid-template-columns: 1fr; }
  .collab-card img { width: 160px; height: 195px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }


/* Revisione 4: palette coerente, footer proporzionato, aree foto/testo affiancate */
:root {
  --navy: #14345f;
  --navy-soft: #14345f;
  --footer-max: 1500px;
}
.site-header,
.site-footer,
.section.dark,
.page-hero {
  background-color: var(--navy);
}
.site-header { background: var(--navy); }
.site-footer { background: var(--navy); padding: 34px 0; }
.site-footer .container {
  width: min(calc(100% - 72px), var(--footer-max));
}
.footer-grid {
  grid-template-columns: minmax(260px, 1fr) minmax(330px, 1fr);
  gap: 72px;
  align-items: start;
}
.footer-grid > :first-child { justify-self: start; text-align: left; }
.footer-grid address { justify-self: end; text-align: right; }
.site-footer h2 { margin-bottom: 12px; }
.site-footer p { margin: 8px 0; }

.activities-page .page-hero {
  min-height: 190px;
  padding: 0;
  display: grid;
  align-items: center;
  text-align: center;
}
.activities-page .page-hero h1 { margin: 0; font-size: clamp(2.2rem, 4vw, 3.3rem); }
.activities-page .activities-section { padding: 58px 0 76px; }
.activities-page .activity-list { max-width: 1160px; }
.activities-page .activity-row {
  display: grid;
  grid-template-columns: minmax(300px, 44%) minmax(0, 56%);
  gap: clamp(34px, 5vw, 70px);
  align-items: center;
  padding: 34px 0 54px;
  border-bottom: 1px solid var(--line);
}
.activities-page .activity-row:first-child { padding-top: 10px; }
.activities-page .activity-row:last-child { border-bottom: 0; padding-bottom: 0; }
.activities-page .activity-row:nth-child(even) .activity-media { order: 2; }
.activities-page .activity-row:nth-child(even) .activity-copy { order: 1; }
.activities-page .activity-media {
  width: 100%;
  max-width: 470px;
  justify-self: center;
}
.activities-page .activity-img {
  width: 100%;
  height: clamp(230px, 26vw, 320px);
  object-fit: cover;
  object-position: center;
  background: #eee;
}
.activities-page .activity-copy { max-width: 560px; }
.activities-page .activity-copy h2 {
  margin: 0 0 18px;
  padding-bottom: 10px;
  border-bottom: 2px solid #d6a343;
  font-size: clamp(1.8rem, 3vw, 2.55rem);
}
.activities-page .activity-copy p { margin: 0 0 14px; }
.activities-page .activity-copy ul { margin: 0; padding-left: 1.2rem; }
.activities-page .activity-copy li { margin: 3px 0; }

@media (max-width: 820px) {
  .site-footer .container { width: min(calc(100% - 36px), var(--footer-max)); }
  .footer-grid { grid-template-columns: 1fr; gap: 26px; }
  .footer-grid address { justify-self: start; text-align: left; }
  .activities-page .activity-row,
  .activities-page .activity-row:nth-child(even) {
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 28px 0 42px;
  }
  .activities-page .activity-row:nth-child(even) .activity-media,
  .activities-page .activity-row:nth-child(even) .activity-copy { order: initial; }
  .activities-page .activity-media { max-width: 620px; }
  .activities-page .activity-img { height: clamp(230px, 62vw, 380px); }
  .activities-page .activity-copy { max-width: none; }
}


/* Revisione 5: Home hero con testo sulla destra */
.home-hero {
  background: var(--navy);
  padding: 34px 0;
}
.home-hero-inner {
  width: min(calc(100% - 40px), 1500px);
  min-height: 680px;
  margin-inline: auto;
  position: relative;
  background: url('../images/home-hero.webp') center left / cover no-repeat;
  overflow: hidden;
}
.home-hero-panel {
  position: absolute;
  top: 50%;
  right: 7.5%;
  transform: translateY(-50%);
  width: min(520px, 42%);
  padding: clamp(34px, 4vw, 58px) clamp(38px, 4vw, 58px);
  background: var(--navy);
  color: #fff;
  box-shadow: 0 14px 42px rgba(0,0,0,.18);
}
.home-hero-panel h1 {
  margin: 0 0 28px;
  text-align: center;
  font-size: clamp(2.35rem, 3.3vw, 3.5rem);
}
.home-hero-panel p {
  margin: 0 0 22px;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(1.05rem, 1.35vw, 1.28rem);
  line-height: 1.85;
}
.home-hero-kicker {
  display: none;
}
.home-hero-btn {
  display: table;
  margin: 30px auto 0;
  min-width: 142px;
  text-align: center;
  border-color: #0f9ee8;
  background: #0f9ee8;
  color: #fff;
}
.home-hero-btn:hover {
  background: #fff;
  color: var(--navy);
  border-color: #fff;
}
@media (max-width: 980px) {
  .home-hero-inner {
    min-height: 620px;
    background-position: 35% center;
  }
  .home-hero-panel {
    right: 4%;
    width: min(500px, 48%);
    padding: 32px 34px;
  }
  .home-hero-panel p { font-size: 1rem; line-height: 1.7; }
}
@media (max-width: 760px) {
  .home-hero { padding: 0; background: #fff; }
  .home-hero-inner {
    width: 100%;
    min-height: 0;
    background: none;
    overflow: visible;
  }
  .home-hero-inner::before {
    content: '';
    display: block;
    width: 100%;
    aspect-ratio: 2048 / 938;
    background: url('../images/home-hero.webp') 30% center / cover no-repeat;
  }
  .home-hero-panel {
    position: static;
    transform: none;
    width: 100%;
    padding: 38px 24px 44px;
    box-shadow: none;
  }
  .home-hero-panel h1 { margin-bottom: 22px; }
  .home-hero-panel p { font-family: Arial, Helvetica, sans-serif; font-size: 1rem; line-height: 1.65; }
}

/* Revisione 6: Contatti WhatsApp + mappa, titolo Lo Studio */
.whatsapp-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 18px;
  padding: 10px 16px;
  border-radius: 4px;
  background: #25d366;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
}
.whatsapp-link:hover,
.whatsapp-link:focus-visible {
  background: #1fb85a;
  color: #fff;
}
.whatsapp-icon { width: 28px; height: 28px; flex: 0 0 auto; }
.contact-map-section { padding: 0 0 70px; }
.contact-map-section h2 { margin-bottom: 22px; }
.map-frame {
  width: 100%;
  min-height: 420px;
  border: 1px solid var(--line);
  overflow: hidden;
  background: #eee;
}
.map-frame iframe {
  display: block;
  width: 100%;
  height: 420px;
  border: 0;
}
.map-note { margin: 12px 0 0; }
@media (max-width: 700px) {
  .map-frame,
  .map-frame iframe { min-height: 330px; height: 330px; }
}

/* Revisione 7: evita il taglio verticale del pannello Home */
@media (min-width: 761px) {
  .home-hero-inner {
    display: grid;
    grid-template-columns: 1fr;
    align-items: center;
    min-height: 680px;
    height: auto;
    padding: 40px 0;
    overflow: visible;
  }
  .home-hero-panel {
    position: static;
    transform: none;
    justify-self: end;
    align-self: center;
    width: min(560px, 43%);
    margin-right: 7.5%;
    padding: 38px 46px 42px;
    box-sizing: border-box;
  }
  .home-hero-panel h1 {
    margin-top: 0;
    margin-bottom: 24px;
    line-height: 1.15;
  }
  .home-hero-panel p {
    line-height: 1.72;
    margin-bottom: 20px;
  }
  .home-hero-btn {
    margin-top: 24px;
    margin-bottom: 0;
  }
}


/* Revisione 8: fasce titolo Lo Studio e Contatti compatte e coerenti con Aree di attività */
.studio-page .page-hero,
.contact-page .page-hero {
  min-height: 190px;
  padding: 0;
  display: grid;
  align-items: center;
  text-align: center;
}
.studio-page .page-hero .container,
.contact-page .page-hero .container {
  display: grid;
  place-items: center;
}
.studio-page .page-hero h1,
.contact-page .page-hero h1 {
  margin: 0;
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 400;
  font-size: clamp(2.2rem, 4vw, 3.3rem);
  line-height: 1.15;
  text-align: center;
}
@media (max-width: 700px) {
  .studio-page .page-hero,
  .contact-page .page-hero { min-height: 145px; }
}

/* Revisione 10: ritorno alla grammatica visiva originale */
:root { --navy: #15365f; --accent-blue: #169fe6; --site-max: 1040px; }
body { font-family: Arial, Helvetica, sans-serif; color:#111; background:#fff; }
.container { width:min(calc(100% - 48px), var(--site-max)); }
.site-header { position:relative; background:#fff !important; color:#15365f; border:0; }
.header-inner { min-height:74px; }
.brand { font-family: Georgia, 'Times New Roman', serif; font-style:italic; font-size:1.55rem; color:#15365f; }
.brand img { display:none; }
.site-nav a { color:#6f6f6f; font-family:Georgia,'Times New Roman',serif; font-size:.9rem; }
.site-nav a:hover,.site-nav a[aria-current='page'] { color:#15365f; border-color:#15365f; }

.home-hero { padding:0; background:#fff; }
.home-hero-inner { width:min(calc(100% - 48px), 1040px); min-height:520px; padding:0; overflow:hidden; background-position:center left; }
.home-hero-panel { width:35%; margin-right:8.5%; padding:26px 30px 30px; box-shadow:none; background:#15365f; }
.home-hero-panel h1 { font-size:2rem; margin-bottom:20px; }
.home-hero-panel p { font-family:Georgia,'Times New Roman',serif; font-size:.93rem; line-height:1.7; }
.home-hero-btn,.collab-hover-button { background:var(--accent-blue); border-color:var(--accent-blue); color:#fff; }

.section.alt { background:#fff; }
.home-hero + .section { padding:42px 0 26px; text-align:center; }
.home-hero + .section .eyebrow { display:none; }
.home-hero + .section h2 { font-size:1.9rem; color:#15365f; margin-bottom:28px; }
.practice-list { max-width:520px; margin:0 auto; grid-template-columns:repeat(3,1fr); gap:34px 38px; }
.practice-list a { min-height:120px; padding:0; background:transparent; font-family:Arial,Helvetica,sans-serif; font-weight:700; font-size:.9rem; }
.practice-list img { width:90px; height:76px; }

.home-collaborazioni { padding:24px 0 0; text-align:center; }
.home-narrow { width:min(calc(100% - 48px), 450px); margin:auto; }
.home-collaborazioni h2 { color:#15365f; font-size:1.8rem; margin-bottom:10px; }
.collab-hover-card { display:block; position:relative; overflow:hidden; text-decoration:none; }
.collab-hover-card img { width:100%; aspect-ratio:437/334; object-fit:cover; }
.collab-hover-overlay { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:14px; padding:24px 38px 18px; color:#fff; background:rgba(10,35,62,.54); opacity:0; transition:opacity .25s ease; font-size:.78rem; line-height:1.45; }
.collab-hover-card:hover .collab-hover-overlay,.collab-hover-card:focus-visible .collab-hover-overlay { opacity:1; }
.collab-hover-button { display:inline-block; padding:9px 20px; min-width:100px; }
.machiavelli-quote { padding:32px 0 26px; color:#15365f; font-family:Georgia,'Times New Roman',serif; font-size:1.65rem; line-height:1.35; }
.machiavelli-quote .quote-mark { font-size:3rem; line-height:.7; font-weight:700; }
.machiavelli-quote p { font-family:Arial,Helvetica,sans-serif; font-size:.68rem; margin-top:22px; }
.home-library { width:min(calc(100% - 48px), 1000px); margin:0 auto; }
.home-library img { width:100%; max-height:420px; object-fit:cover; }

.page-hero,.studio-page .page-hero,.contact-page .page-hero,.activities-page .page-hero { min-height:150px; padding:0; background:#15365f; display:grid; place-items:center; text-align:center; }
.page-hero h1,.studio-page .page-hero h1,.contact-page .page-hero h1,.activities-page .page-hero h1 { font-size:2.25rem; margin:0; color:#fff; font-family:Georgia,'Times New Roman',serif; font-weight:400; }
.site-footer { background:#15365f !important; padding:30px 0; }
.site-footer .container { width:min(calc(100% - 60px), 1040px); }
.footer-grid { gap:60px; }
.site-footer h2 { font-family:Georgia,'Times New Roman',serif; font-style:italic; font-size:1rem !important; }
.site-footer,.site-footer a { font-size:.72rem; }

/* Album valori, come il componente slider originale */
.ethics-album { width:min(calc(100% - 48px), 1040px); margin:42px auto 54px; }
.ethics-slider { position:relative; min-height:560px; overflow:hidden; background:#15365f; }
.ethics-slide { position:absolute; inset:0; display:grid; grid-template-columns:38% 62%; opacity:0; visibility:hidden; transition:opacity .55s ease; }
.ethics-slide.is-active { opacity:1; visibility:visible; position:relative; }
.ethics-copy { background:rgba(21,54,95,.97); color:#fff; padding:44px 34px; z-index:2; }
.ethics-heading h2 { font-size:2rem; margin-bottom:4px; }
.ethics-heading p { margin:0 0 24px; font-size:.82rem; }
.ethics-item { margin-bottom:20px; }
.ethics-item h3 { font-size:1.35rem; margin:2px 0 7px; }
.ethics-item p { margin:0 0 8px; font-size:.76rem; line-height:1.55; text-align:justify; }
.ethics-num { color:#16a6ed; font-family:Georgia,'Times New Roman',serif; font-style:italic; font-size:1.35rem; }
.ethics-photo { min-height:560px; overflow:hidden; }
.ethics-photo img { width:100%; height:100%; min-height:560px; object-fit:cover; object-position:center; }
.ethics-arrow { position:absolute; top:50%; transform:translateY(-50%); z-index:5; width:42px; height:70px; border:0; background:rgba(21,54,95,.9); color:#fff; font-size:2.6rem; font-family:Georgia,serif; cursor:pointer; }
.ethics-prev { left:0; }
.ethics-next { right:0; }
.ethics-item-04 { padding-top:6px; }
.ethics-item-04 h3 { font-size:2rem; }
.ethics-item-04 p { font-size:.84rem; }

@media (max-width:820px) {
  .site-header { background:#fff !important; }
  .site-nav { background:#fff; color:#15365f; border-top:1px solid #ddd; }
  .nav-toggle { color:#15365f; border-color:#15365f; }
  .home-hero-inner { width:100%; }
  .home-hero-panel { width:100%; margin:0; }
  .practice-list { grid-template-columns:repeat(2,1fr); }
  .ethics-slider { min-height:0; }
  .ethics-slide,.ethics-slide.is-active { grid-template-columns:1fr; position:relative; }
  .ethics-copy { padding:38px 32px; }
  .ethics-photo { min-height:300px; }
  .ethics-photo img { min-height:300px; height:300px; }
  .ethics-arrow { top:42%; }
}
@media (max-width:520px) { .practice-list { grid-template-columns:1fr 1fr; gap:26px 18px; } }

/* Revisione 11: ritorno alle proporzioni desktop + header blu Rev9 */
:root { --navy: #183d6b; --site-wide: 1720px; }
.site-header { position:sticky; top:0; z-index:1000; background:var(--navy) !important; color:#fff; border-bottom:1px solid rgba(255,255,255,.14); }
.site-header .container { width:min(calc(100% - 56px), var(--site-wide)); }
.header-inner { min-height:86px; }
.brand { color:#fff; font-style:normal; font-size:1.25rem; }
.brand img { display:block; width:54px; height:54px; object-fit:contain; }
.site-nav a { color:#fff; font-family:Georgia,'Times New Roman',serif; font-size:.95rem; }
.site-nav a:hover,.site-nav a[aria-current='page'] { color:#fff; border-color:#d8c7a2; }

/* Home ampia su desktop, come la composizione originale */
.home-hero-inner { width:min(calc(100% - 56px), var(--site-wide)); min-height:720px; background-position:center left; }
.home-hero-panel { width:min(560px,34%); margin-right:7%; padding:38px 44px 42px; }
.home-hero-panel h1 { font-size:2.55rem; }
.home-hero-panel p { font-size:1.03rem; line-height:1.75; }
.home-hero + .section { padding:58px 0 48px; }
.home-hero + .section .container { width:min(calc(100% - 56px), 1180px); }
.home-hero + .section h2 { font-size:2.25rem; margin-bottom:46px; }
.practice-list { max-width:900px; grid-template-columns:repeat(3,1fr); gap:62px 90px; }
.practice-list a { min-height:160px; font-size:1.06rem; }
.practice-list img { width:128px; height:108px; }
.home-collaborazioni { padding-top:38px; }
.home-narrow { width:min(calc(100% - 56px), 720px); }
.home-collaborazioni h2 { font-size:2.15rem; margin-bottom:18px; }
.collab-hover-card img { aspect-ratio: 1.31 / 1; }
.collab-hover-overlay { padding:34px 70px 28px; font-size:.9rem; }
.machiavelli-quote { font-size:2rem; padding:45px 0 38px; }
.machiavelli-quote p { font-size:.76rem; }
.home-library { width:min(calc(100% - 56px), var(--site-wide)); }
.home-library img { max-height:620px; }

/* Pagine interne meno compresse su desktop */
.studio-page main > .section .container,
.activities-page main > .section .container,
.contact-page main > .section .container,
.collaborations-page main > .section .container { width:min(calc(100% - 72px), 1380px); }

/* Slider Valori più ampio; frecce spostate sull'immagine, non sul testo */
.ethics-album { width:min(calc(100% - 56px), 1580px); }
.ethics-slide { grid-template-columns:40% 60%; }
.ethics-copy { padding:52px 54px; }
.ethics-prev { left:calc(40% + 12px); }
.ethics-next { right:12px; }
.ethics-arrow { width:44px; height:66px; background:rgba(21,54,95,.86); }
.ethics-copy-many .ethics-item p { font-size:.82rem; }

/* Contatti: composizione cromatica più vicina al sito originale */
.contact-page .page-hero { background:var(--navy); }
.contact-page .contact-main-section { background:var(--navy); padding:58px 0 68px; color:#fff; }
.contact-page .contact-grid { grid-template-columns:.9fr 1.1fr; gap:0; background:#fff; color:#111; box-shadow:0 8px 26px rgba(0,0,0,.12); align-items:stretch; }
.contact-page .contact-grid > div:first-child { background:var(--navy); color:#fff; padding:0 0 34px; }
.contact-page .contact-image { width:100%; min-height:300px; height:42%; object-fit:cover; }
.contact-page .contact-details { padding:28px 34px 0; margin:0; line-height:1.8; }
.contact-page .contact-grid > div:last-child { padding:44px 48px 46px; background:#fff; }
.contact-page .contact-grid h2 { color:var(--navy); font-size:2.15rem; }
.contact-page form input,.contact-page form textarea { border:0; border-bottom:1px solid #777; padding:11px 4px; }
.contact-page button[type='submit'] { background:#169fe6; border-color:#169fe6; min-width:112px; }
.contact-map-section { background:#fff; padding:58px 0 70px; }
.contact-map-section .container { width:min(calc(100% - 72px), 1380px); }
.contact-map-section h2 { color:var(--navy); text-align:center; }

/* Footer e contenitore larghi e proporzionati */
.site-footer .container { width:min(calc(100% - 72px), var(--site-wide)); }

@media (max-width:1100px) {
  .home-hero-inner { min-height:640px; }
  .home-hero-panel { width:42%; margin-right:4%; padding:32px; }
  .home-hero-panel p { font-size:.95rem; }
  .practice-list { max-width:720px; gap:48px 54px; }
  .ethics-copy { padding:44px 42px; }
}
@media (max-width:820px) {
  .site-header { background:var(--navy) !important; }
  .site-nav { background:var(--navy); color:#fff; border-top:1px solid rgba(255,255,255,.18); }
  .nav-toggle { color:#fff; border-color:#fff; }
  .home-hero-inner { width:100%; min-height:0; }
  .home-hero-panel { width:100%; margin:0; }
  .practice-list { grid-template-columns:repeat(2,1fr); gap:32px 24px; }
  .ethics-prev { left:12px; top:auto; bottom:150px; }
  .ethics-next { right:12px; top:auto; bottom:150px; }
  .contact-page .contact-main-section { padding:30px 0 44px; }
  .contact-page .contact-grid { grid-template-columns:1fr; }
  .contact-page .contact-grid > div:last-child { padding:36px 26px; }
}
\n\n/* Revisione 12: citazione Franklin e logo pagina Lo Studio */
.studio-page .studio-hero { min-height: 230px; }
.studio-page .studio-hero .container { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; }
.studio-page .studio-hero-logo { width:92px; height:92px; object-fit:contain; display:block; }
.studio-page .studio-hero h1 { line-height:1.1; }
.studio-franklin { background:#fff; color:#15365f; text-align:center; padding:42px 20px 38px; }
.studio-franklin .container { max-width:1100px; }
.studio-quote-mark { font-family:Georgia,'Times New Roman',serif; font-size:5rem; font-weight:700; line-height:.55; height:45px; margin:0 auto 18px; color:#15365f; }
.studio-franklin .quote { color:#15365f; font-family:Georgia,'Times New Roman',serif; font-weight:400; font-size:clamp(1.85rem,3vw,2.7rem); line-height:1.25; max-width:none; margin:0 auto; }
.studio-franklin .quote-attribution { color:#006f9f; font-family:Arial,Helvetica,sans-serif; font-size:.9rem; margin:28px auto 0; }
@media (max-width:700px) {
  .studio-page .studio-hero { min-height:190px; }
  .studio-page .studio-hero-logo { width:72px; height:72px; }
  .studio-franklin { padding:34px 18px 32px; }
  .studio-quote-mark { font-size:4rem; height:38px; }
  .studio-franklin .quote-attribution { margin-top:22px; font-size:.8rem; }
}


/* Revisione 13: riallineamento visivo alle pagine originali */
.studio-page .studio-hero { min-height: 150px; }
.studio-page .studio-hero .container { display:grid; place-items:center; }
.studio-page .studio-hero h1 { margin:0; font-family:Georgia,'Times New Roman',serif; font-size:2.25rem; font-weight:400; }

.studio-profile-section { padding:58px 0 40px; }
.studio-profile-original { width:min(calc(100% - 64px), 1080px) !important; color:#15365f; }
.studio-profile-top { display:grid; grid-template-columns:52% 48%; align-items:start; gap:50px; }
.studio-photo-block { max-width:520px; justify-self:end; }
.studio-profile-original .profile-photo { width:100%; max-width:520px; margin:0; box-shadow:none; object-fit:contain; }
.studio-copyright { margin:3px 0 0; font-size:.88rem; color:#6f7378; }
.studio-intro { padding-top:86px; }
.studio-intro h2 { margin:0 0 26px; font-family:Georgia,'Times New Roman',serif; font-size:1.45rem; font-style:italic; font-weight:400; color:#006f9f; }
.studio-intro p,.studio-body-copy p { font-family:Arial,Helvetica,sans-serif; font-size:1rem; line-height:1.45; text-align:justify; color:#15365f; }
.studio-body-copy { margin-top:30px; }
.studio-body-copy p { margin:0 0 1.15em; }

.studio-machiavelli { background:#fff; color:#15365f; text-align:center; padding:42px 20px 38px; overflow:hidden; }
.studio-machiavelli .container { max-width:1080px; }
.studio-machiavelli .studio-quote-mark { font-family:Georgia,'Times New Roman',serif; font-size:5rem; font-weight:700; line-height:.55; height:45px; margin:0 auto 22px; color:#15365f; }
.studio-machiavelli .quote { color:#15365f; font-family:Georgia,'Times New Roman',serif; font-weight:400; font-size:clamp(1.8rem,3vw,2.65rem); line-height:1.25; max-width:none; margin:0 auto; }
.studio-machiavelli .quote-attribution { color:#006f9f; font-family:Arial,Helvetica,sans-serif; font-size:.9rem; margin:28px auto 0; }
.studio-machiavelli .quote-attribution a { color:inherit; text-decoration:none; }
.reveal-on-scroll .studio-quote-mark,.reveal-on-scroll .quote,.reveal-on-scroll .quote-attribution { opacity:0; transform:translateY(28px); transition:opacity .8s ease, transform .8s ease; }
.reveal-on-scroll .quote { transition-delay:.12s; }
.reveal-on-scroll .quote-attribution { transition-delay:.24s; }
.reveal-on-scroll.is-visible .studio-quote-mark,.reveal-on-scroll.is-visible .quote,.reveal-on-scroll.is-visible .quote-attribution { opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce) { .reveal-on-scroll .studio-quote-mark,.reveal-on-scroll .quote,.reveal-on-scroll .quote-attribution { opacity:1; transform:none; transition:none; } }

/* La foto Code of Ethics resta ferma; cambia solo il pannello testuale. */
.ethics-album { width:min(calc(100% - 56px), 1500px); margin:42px auto 54px; }
.ethics-slider { min-height:610px; position:relative; overflow:hidden; background:url('../images/code-of-ethics.webp') center/cover no-repeat; }
.ethics-slide,.ethics-slide.is-active { position:absolute; inset:0; display:block; opacity:0; visibility:hidden; transition:opacity .55s ease; }
.ethics-slide.is-active { opacity:1; visibility:visible; }
.ethics-photo { display:none; }
.ethics-copy { position:absolute; left:4.5%; top:0; bottom:0; width:39%; max-width:610px; overflow:auto; background:rgba(21,54,95,.86); color:#fff; padding:46px 56px; z-index:2; }
.ethics-heading h2 { font-family:Georgia,'Times New Roman',serif; font-size:2.1rem; font-weight:400; margin:0 0 3px; }
.ethics-heading p { font-family:Arial,Helvetica,sans-serif; font-size:.8rem; margin:0 0 20px; }
.ethics-item { margin-bottom:17px; }
.ethics-item h3 { font-family:Georgia,'Times New Roman',serif; font-size:1.5rem; font-weight:400; margin:0 0 6px; }
.ethics-item p { font-family:Arial,Helvetica,sans-serif; font-size:.78rem; line-height:1.48; margin:0; text-align:left; }
.ethics-num { display:block; font-size:1.3rem; color:#00a6eb; margin-bottom:1px; }
.ethics-item-04 h3 { font-size:2rem; }
.ethics-item-04 p { font-size:.82rem; line-height:1.55; margin-bottom:10px; }
.ethics-arrow { top:50%; width:46px; height:72px; background:rgba(21,54,95,.78); }
.ethics-prev { left:calc(4.5% - 2px); }
.ethics-next { right:calc(56.5% - 2px); }

/* Collaborazioni: tipografia, colori e rapporti simili all'originale. */
.collaborations-page body { color:#15365f; }
.collaborations-page .page-hero { background:#15365f; }
.collaborations-page main > .section { padding:52px 0 64px; }
.collaborations-page main > .section > .container { width:min(calc(100% - 64px), 900px) !important; }
.collaborations-page main > .section > .container > h1,
.collaborations-page main > .section > .container > h2:first-child { font-family:Georgia,'Times New Roman',serif; color:#15365f; font-size:2.2rem; font-weight:400; text-align:center; }
.collaborations-page .collab-card { grid-template-columns:120px 1fr; gap:20px; padding:34px 0 38px; border-bottom:0; color:#15365f; }
.collaborations-page .collab-card img { width:120px; height:128px; object-fit:cover; object-position:center top; }
.collaborations-page .collab-card h2 { font-family:Georgia,'Times New Roman',serif; font-style:italic; font-weight:400; font-size:1.55rem; line-height:1.2; color:#15365f; margin:10px 0 3px; }
.collaborations-page .collab-card h3 { font-family:Georgia,'Times New Roman',serif; font-style:italic; font-weight:400; font-size:1.2rem; color:#006f9f; margin:0 0 18px; }
.collaborations-page .collab-card p { font-family:Arial,Helvetica,sans-serif; color:#15365f; font-size:.98rem; line-height:1.4; text-align:justify; margin:.45em 0; }
.collaborations-page .collab-card a { color:#006f9f; }

/* Contatti */
.contact-map-section h2 { font-family:Georgia,'Times New Roman',serif; font-weight:400; }

@media (max-width:820px) {
  .studio-profile-original { width:min(calc(100% - 32px), 1080px) !important; }
  .studio-profile-top { grid-template-columns:1fr; gap:18px; }
  .studio-photo-block { justify-self:center; width:min(100%,470px); }
  .studio-intro { padding-top:0; }
  .studio-intro h2 { margin-bottom:14px; }
  .studio-intro p,.studio-body-copy p { text-align:left; }
  .ethics-slider { min-height:720px; background-position:center; }
  .ethics-copy { left:5%; right:5%; top:5%; bottom:auto; width:90%; max-width:none; max-height:88%; padding:34px 32px; }
  .ethics-prev { left:5%; top:auto; bottom:10px; }
  .ethics-next { right:5%; top:auto; bottom:10px; }
  .collaborations-page .collab-card { grid-template-columns:105px 1fr; }
  .collaborations-page .collab-card img { width:105px; height:118px; }
}
@media (max-width:560px) {
  .collaborations-page .collab-card { grid-template-columns:1fr; }
  .collaborations-page .collab-card img { width:150px; height:165px; }
  .studio-machiavelli .studio-quote-mark { font-size:4rem; }
  .studio-machiavelli .quote-attribution { font-size:.8rem; }
}


/* Revisione 14: proporzioni Lo Studio, citazioni, slider e protezione immagini */
img {
  -webkit-user-drag: none;
  user-select: none;
  -webkit-user-select: none;
}
/* Le immagini non sono interattive; eventuali CTA restano elementi separati. */
.studio-page img,
.activities-page img,
.collaborations-page img,
.contact-page img,
.home-library img,
.home-hero img,
.practice-list img,
.collab-hover-card > img { pointer-events:none; }

/* Lo Studio: scala e composizione vicine al layout originale, evitando il grande vuoto bianco. */
.studio-profile-section { padding: 38px 0 22px; }
.studio-profile-original {
  width: min(calc(100% - 48px), 760px) !important;
  color:#15365f;
}
.studio-profile-top {
  display:grid;
  grid-template-columns: 300px minmax(0, 1fr);
  gap: 28px;
  align-items:start;
}
.studio-photo-block { width:300px; max-width:300px; justify-self:start; }
.studio-profile-original .profile-photo {
  width:300px;
  max-width:300px;
  height:auto !important;
  margin:0;
  box-shadow:none;
  object-fit:contain;
}
.studio-copyright { margin:2px 0 0; font-size:.72rem; color:#72777b; line-height:1.2; }
.studio-intro { padding-top:44px; }
.studio-intro h2 {
  margin:0 0 16px;
  font-family:Georgia,'Times New Roman',serif;
  font-size:1.12rem;
  line-height:1.2;
  font-style:italic;
  font-weight:400;
  color:#006f9f;
}
.studio-intro p,
.studio-body-copy p {
  font-family:Arial,Helvetica,sans-serif;
  font-size:.79rem;
  line-height:1.38;
  text-align:justify;
  color:#15365f;
}
.studio-body-copy { margin-top:18px; }
.studio-body-copy p { margin:0 0 .85em; }

/* Citazione: inizialmente realmente nascosta e comparsa marcata al passaggio nel viewport. */
.studio-machiavelli { padding:36px 20px 28px; }
.reveal-on-scroll .studio-quote-mark,
.reveal-on-scroll .quote,
.reveal-on-scroll .studio-quote-close,
.reveal-on-scroll .quote-attribution {
  opacity:0;
  transform:translateY(40px) scale(.98);
  transition:opacity .72s ease, transform .72s ease;
}
.reveal-on-scroll .quote { transition-delay:.10s; }
.reveal-on-scroll .studio-quote-close { transition-delay:.18s; }
.reveal-on-scroll .quote-attribution { transition-delay:.26s; }
.reveal-on-scroll.is-visible .studio-quote-mark,
.reveal-on-scroll.is-visible .quote,
.reveal-on-scroll.is-visible .studio-quote-close,
.reveal-on-scroll.is-visible .quote-attribution {
  opacity:1;
  transform:none;
}
.studio-quote-close,
.quote-close {
  font-family:Georgia,'Times New Roman',serif;
  color:#15365f;
  font-weight:700;
  text-align:center;
}
.studio-quote-close { font-size:3.4rem; line-height:.72; margin:13px auto 0; }
.studio-machiavelli .quote-attribution { margin-top:14px; }
.machiavelli-quote .quote-close { font-size:2.7rem; line-height:.7; margin:11px auto 0; }
.machiavelli-quote p { margin-top:14px; }

/* Code of Ethics: una sola foto fissa sotto; solo il pannello blu cambia slide. */
.ethics-album { width:min(calc(100% - 56px), 1500px); margin:30px auto 42px; }
.ethics-slider {
  min-height:600px;
  position:relative;
  overflow:hidden;
  background-image:url('../images/code-of-ethics.webp');
  background-size:cover;
  background-position:42% center;
  background-repeat:no-repeat;
}
.ethics-slide,
.ethics-slide.is-active {
  position:absolute;
  inset:0;
  display:block;
  opacity:1;
  visibility:visible;
  pointer-events:none;
}
.ethics-slide .ethics-copy {
  position:absolute;
  left:5.2%;
  top:0;
  bottom:0;
  width:35.5%;
  max-width:540px;
  overflow:auto;
  background:rgba(21,54,95,.80);
  color:#fff;
  padding:40px 42px;
  z-index:2;
  opacity:0;
  visibility:hidden;
  transform:translateX(-28px);
  transition:opacity .55s ease, transform .55s ease, visibility .55s;
  pointer-events:none;
}
.ethics-slide.is-active .ethics-copy {
  opacity:1;
  visibility:visible;
  transform:none;
  pointer-events:auto;
}
.ethics-photo { display:none !important; }
.ethics-heading h2 { font-size:1.7rem; margin:0 0 1px; }
.ethics-heading p { font-size:.70rem; margin:0 0 15px; }
.ethics-item { margin-bottom:12px; }
.ethics-item h3 { font-size:1.25rem; margin:0 0 4px; }
.ethics-item p { font-size:.69rem; line-height:1.42; }
.ethics-num { font-size:1.12rem; }
.ethics-item-04 h3 { font-size:1.7rem; }
.ethics-item-04 p { font-size:.74rem; line-height:1.46; }
.ethics-arrow {
  top:50%;
  width:38px;
  height:62px;
  background:rgba(21,54,95,.62);
  border:1px solid rgba(255,255,255,.18);
}
.ethics-prev { left:calc(5.2% - 38px); }
.ethics-next { left:calc(40.7% + 6px); right:auto; }

/* Footer leggibile come nell'originale, senza microtesto. */
.site-footer,
.site-footer a { font-size:.86rem; line-height:1.55; }
.site-footer h2 { font-size:1.1rem !important; }
.footer-meta { font-size:.78rem; }

@media (prefers-reduced-motion: reduce) {
  .reveal-on-scroll .studio-quote-mark,
  .reveal-on-scroll .quote,
  .reveal-on-scroll .studio-quote-close,
  .reveal-on-scroll .quote-attribution { opacity:1; transform:none; transition:none; }
  .ethics-slide .ethics-copy { transition:none; }
}

@media (max-width:820px) {
  .studio-profile-original { width:min(calc(100% - 30px), 650px) !important; }
  .studio-profile-top { grid-template-columns:1fr; gap:14px; }
  .studio-photo-block { width:min(100%,300px); max-width:300px; justify-self:center; }
  .studio-profile-original .profile-photo { width:100%; max-width:300px; }
  .studio-intro { padding-top:0; }
  .studio-intro p,.studio-body-copy p { text-align:left; font-size:.86rem; }
  .ethics-slider { min-height:700px; background-position:center; }
  .ethics-slide .ethics-copy {
    left:6%; right:6%; top:5%; bottom:auto; width:88%; max-width:none; max-height:86%;
    padding:30px 28px;
  }
  .ethics-prev { left:6%; top:auto; bottom:10px; }
  .ethics-next { left:auto; right:6%; top:auto; bottom:10px; }
}


/* REV15 - correzioni visive nette richieste */
.studio-profile-section { padding:28px 0 12px !important; }
.studio-profile-original { width:min(calc(100% - 40px), 660px) !important; margin-inline:auto !important; }
.studio-profile-top { grid-template-columns:230px 1fr !important; gap:24px !important; }
.studio-photo-block { width:230px !important; max-width:230px !important; }
.studio-profile-original .profile-photo { width:230px !important; max-width:230px !important; height:auto !important; }
.studio-intro { padding-top:34px !important; }
.studio-intro h2 { font-size:1.03rem !important; margin-bottom:12px !important; }
.studio-intro p, .studio-body-copy p { font-size:.72rem !important; line-height:1.34 !important; }
.studio-body-copy { margin-top:12px !important; }
.studio-copyright { font-size:.66rem !important; }

.studio-machiavelli { padding:30px 20px 24px !important; overflow:hidden; }
.reveal-on-scroll .studio-quote-mark,
.reveal-on-scroll .quote,
.reveal-on-scroll .studio-quote-close,
.reveal-on-scroll .quote-attribution {
  opacity:0 !important;
  transform:translateY(48px) !important;
}
.reveal-on-scroll.is-visible .studio-quote-mark,
.reveal-on-scroll.is-visible .quote,
.reveal-on-scroll.is-visible .studio-quote-close,
.reveal-on-scroll.is-visible .quote-attribution {
  opacity:1 !important;
  transform:translateY(0) !important;
}
.studio-quote-close { display:block !important; margin:12px auto 0 !important; }

.ethics-album { width:min(calc(100% - 56px), 1450px) !important; }
.ethics-slider {
  min-height:590px !important;
  background-position:center center !important;
}
.ethics-slide .ethics-copy {
  left:5.2% !important;
  width:34.5% !important;
  background:rgba(21,54,95,.76) !important;
  padding:38px 40px !important;
}
.ethics-prev { left:calc(5.2% - 38px) !important; }
.ethics-next { left:calc(39.7% + 6px) !important; right:auto !important; }

.site-footer, .site-footer a { font-size:.96rem !important; line-height:1.58 !important; }
.site-footer h2 { font-size:1.2rem !important; }
.footer-meta { font-size:.88rem !important; }

/* Le foto non hanno comportamento interattivo. */
img { -webkit-user-drag:none !important; user-select:none !important; -webkit-user-select:none !important; }
a > img { pointer-events:none !important; }

@media (max-width:820px) {
  .studio-profile-original { width:min(calc(100% - 28px), 620px) !important; }
  .studio-profile-top { grid-template-columns:1fr !important; }
  .studio-photo-block { width:min(100%,230px) !important; max-width:230px !important; justify-self:center !important; }
  .studio-profile-original .profile-photo { width:100% !important; max-width:230px !important; }
  .studio-intro { padding-top:0 !important; }
  .studio-intro p,.studio-body-copy p { font-size:.84rem !important; }
}


/* ====================== REV16 ====================== */

/* Citazioni: virgolette di apertura e chiusura ai lati della frase */
.quote-line,
.studio-quote-line {
  display:flex;
  justify-content:center;
  align-items:flex-start;
  gap:.35em;
  color:#15365f;
  font-family:Georgia,"Times New Roman",serif;
  text-align:center;
}
.machiavelli-quote .quote-line { font-size:clamp(1.7rem,2.5vw,2.9rem); line-height:1.2; }
.studio-quote-line { font-size:clamp(1.75rem,2.35vw,2.75rem); line-height:1.2; }
.quote-open,.quote-end {
  font-size:1.08em;
  line-height:.95;
  font-weight:700;
  flex:0 0 auto;
}
.quote-end { align-self:flex-end; transform:translateY(.08em); }
.machiavelli-quote p,
.studio-machiavelli .quote-attribution {
  text-align:center;
  color:#006f9f;
  margin-top:20px;
}

/* La citazione della home e quella Studio partono davvero invisibili */
.reveal-on-scroll { opacity:1; }
.reveal-on-scroll .quote-line,
.reveal-on-scroll .studio-quote-line,
.reveal-on-scroll p {
  opacity:0 !important;
  transform:translateY(34px) !important;
  transition:opacity .85s ease, transform .85s ease;
}
.reveal-on-scroll p { transition-delay:.18s; }
.reveal-on-scroll.is-visible .quote-line,
.reveal-on-scroll.is-visible .studio-quote-line,
.reveal-on-scroll.is-visible p {
  opacity:1 !important;
  transform:translateY(0) !important;
}

/* Profilo Lo Studio: proporzioni molto più vicine allo screenshot originale */
.studio-profile-section { padding:28px 0 18px !important; }
.studio-profile-original {
  width:min(calc(100% - 40px), 560px) !important;
  margin:0 auto !important;
}
.studio-profile-top {
  display:grid !important;
  grid-template-columns:190px 1fr !important;
  gap:22px !important;
  align-items:start !important;
}
.studio-photo-block {
  width:190px !important;
  max-width:190px !important;
}
.studio-profile-original .profile-photo {
  width:190px !important;
  max-width:190px !important;
  height:auto !important;
  display:block !important;
}
.studio-copyright { font-size:.58rem !important; margin-top:4px !important; }
.studio-intro { padding-top:34px !important; }
.studio-intro h2 {
  font-size:.92rem !important;
  margin:0 0 12px !important;
  color:#006f9f !important;
  font-style:italic;
  font-weight:400;
}
.studio-intro p,
.studio-body-copy p {
  font-family:Arial,Helvetica,sans-serif !important;
  font-size:.58rem !important;
  line-height:1.38 !important;
  color:#15365f !important;
  text-align:justify !important;
}
.studio-body-copy { margin-top:12px !important; }
.studio-body-copy p { margin:0 0 7px !important; }

/* Code of Ethics: una sola foto fissa; solo il pannello testuale scorre */
.ethics-album {
  width:min(calc(100% - 40px), 1140px) !important;
  margin:24px auto 42px !important;
}
.ethics-slider {
  position:relative !important;
  min-height:560px !important;
  background:url('../images/code-of-ethics.webp') center center/cover no-repeat !important;
  overflow:hidden !important;
}
.ethics-copy-shell {
  position:absolute;
  left:5%;
  top:4%;
  bottom:4%;
  width:35%;
  min-width:330px;
  max-width:430px;
  background:rgba(21,54,95,.76);
  z-index:2;
  overflow:hidden;
}
.ethics-panel {
  position:absolute;
  inset:0;
  padding:24px 30px 50px;
  color:white;
  opacity:0;
  visibility:hidden;
  transform:translateX(18px);
  transition:opacity .55s ease, transform .55s ease, visibility .55s;
  overflow:auto;
}
.ethics-panel.is-active {
  opacity:1;
  visibility:visible;
  transform:translateX(0);
}
.ethics-heading { text-align:center; margin-bottom:15px; }
.ethics-heading h2 {
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:1.45rem !important;
  font-style:italic;
  font-weight:400 !important;
  color:#006f9f;
  margin:0 !important;
}
.ethics-heading p {
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:.72rem !important;
  font-style:italic;
  color:#006f9f;
  margin:3px 0 0 !important;
}
.ethics-item { margin:0 0 12px !important; }
.ethics-num {
  display:block;
  color:#006f9f !important;
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:1rem !important;
  font-style:italic;
  margin-bottom:1px;
}
.ethics-item h3 {
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:1.28rem !important;
  font-weight:400 !important;
  margin:0 0 4px !important;
}
.ethics-item p {
  font-family:Arial,Helvetica,sans-serif !important;
  font-size:.64rem !important;
  line-height:1.45 !important;
  text-align:left !important;
  margin:0 0 8px !important;
}
.ethics-item-04 h3 { font-size:1.65rem !important; }
.ethics-item-04 p { font-size:.67rem !important; }
.ethics-arrow {
  position:absolute !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  z-index:6 !important;
  width:34px !important;
  height:56px !important;
  border:0 !important;
  background:transparent !important;
  color:#fff !important;
  font-size:2rem !important;
  cursor:pointer;
}
.ethics-prev { left:2px !important; }
.ethics-next { right:2px !important; left:auto !important; }
.ethics-dots {
  position:absolute;
  left:50%;
  bottom:14px;
  transform:translateX(-50%);
  display:flex;
  gap:10px;
  z-index:7;
}
.ethics-dots span {
  width:6px; height:6px; border-radius:50%;
  border:1px solid #006f9f;
}
.ethics-dots span.is-active { background:#006f9f; }

/* Foto vere: nessun comportamento cliccabile/drag. */
img.photo-protected,
.profile-photo,
.collab-card img,
.activity-img,
.home-library img,
.collab-hover-card > img,
.ethics-slider {
  -webkit-user-drag:none !important;
  user-select:none !important;
  -webkit-user-select:none !important;
}

/* Il contenitore Collaborazioni non è più un link: solo il pulsante lo è. */
.collab-hover-card { cursor:default !important; }

/* Footer più leggibile */
.site-footer,.site-footer a { font-size:1rem !important; }
.site-footer h2 { font-size:1.22rem !important; }
.footer-meta { font-size:.88rem !important; }

@media (max-width:760px) {
  .studio-profile-original { width:min(calc(100% - 28px), 520px) !important; }
  .studio-profile-top { grid-template-columns:1fr !important; gap:12px !important; }
  .studio-photo-block { width:190px !important; justify-self:center; }
  .studio-intro { padding-top:0 !important; }
  .studio-intro p,.studio-body-copy p { font-size:.78rem !important; }
  .ethics-slider { min-height:720px !important; }
  .ethics-copy-shell {
    left:6%; right:6%; top:5%; bottom:5%;
    width:auto; min-width:0; max-width:none;
  }
}


/* ====================== REV17 ======================
   Correzioni richieste: Lo Studio semplice foto/testo,
   virgolette vicine alla frase, Code of Ethics più grande,
   titoli Aree di attività in blu scuro.
==================================================== */

/* LO STUDIO: layout semplice come riferimento fornito:
   foto a sinistra, testo a destra, corpo sotto. */
.studio-profile-section {
  padding: 44px 0 28px !important;
}
.studio-profile-original {
  width: min(calc(100% - 56px), 980px) !important;
  max-width: 980px !important;
  margin: 0 auto !important;
}
.studio-profile-top {
  display: grid !important;
  grid-template-columns: minmax(280px, 38%) minmax(0, 62%) !important;
  gap: 38px !important;
  align-items: start !important;
}
.studio-photo-block {
  width: 100% !important;
  max-width: 360px !important;
  justify-self: start !important;
}
.studio-profile-original .profile-photo {
  display: block !important;
  width: 100% !important;
  max-width: 360px !important;
  height: auto !important;
  object-fit: contain !important;
}
.studio-copyright {
  margin: 5px 0 0 !important;
  font-size: .72rem !important;
  line-height: 1.2 !important;
}
.studio-intro {
  padding: 42px 0 0 !important;
}
.studio-intro h2 {
  margin: 0 0 22px !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: 1.55rem !important;
  line-height: 1.2 !important;
  font-style: italic !important;
  font-weight: 400 !important;
  color: #006f9f !important;
}
.studio-intro p,
.studio-body-copy p {
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: 1rem !important;
  line-height: 1.58 !important;
  color: #15365f !important;
  text-align: justify !important;
}
.studio-intro p {
  margin: 0 !important;
}
.studio-body-copy {
  margin-top: 24px !important;
  width: 100% !important;
}
.studio-body-copy p {
  margin: 0 0 17px !important;
}

/* CITAZIONI: virgolette attaccate ai bordi della frase,
   non ai bordi del contenitore. */
.machiavelli-quote,
.studio-machiavelli {
  text-align: center !important;
}
.quote-line,
.studio-quote-line {
  position: relative !important;
  display: inline-block !important;
  width: auto !important;
  max-width: min(90vw, 900px) !important;
  padding: 0 1.05em !important;
  margin: 0 auto !important;
  color: #15365f !important;
  font-family: Georgia, "Times New Roman", serif !important;
  text-align: center !important;
}
.machiavelli-quote .quote-line {
  font-size: clamp(1.75rem, 3vw, 2.9rem) !important;
  line-height: 1.18 !important;
}
.studio-quote-line {
  font-size: clamp(1.8rem, 2.7vw, 2.75rem) !important;
  line-height: 1.18 !important;
}
.quote-open,
.quote-end {
  position: absolute !important;
  display: block !important;
  width: auto !important;
  font-size: 1em !important;
  line-height: 1 !important;
  font-weight: 700 !important;
  color: #15365f !important;
}
.quote-open {
  left: 0 !important;
  top: -.08em !important;
}
.quote-end {
  right: 0 !important;
  bottom: -.10em !important;
  transform: none !important;
  align-self: auto !important;
}

/* CODE OF ETHICS: sezione e pannello più grandi,
   con tipografia finalmente leggibile. */
.ethics-album {
  width: min(calc(100% - 36px), 1500px) !important;
  max-width: 1500px !important;
  margin: 34px auto 50px !important;
}
.ethics-slider {
  min-height: 670px !important;
  background-position: center center !important;
}
.ethics-copy-shell {
  left: 3.5% !important;
  top: 4% !important;
  bottom: 4% !important;
  width: 42% !important;
  min-width: 430px !important;
  max-width: 590px !important;
  background: rgba(21,54,95,.76) !important;
}
.ethics-panel {
  padding: 34px 48px 58px !important;
}
.ethics-heading {
  margin-bottom: 20px !important;
}
.ethics-heading h2 {
  font-size: 2rem !important;
  line-height: 1.1 !important;
}
.ethics-heading p {
  font-size: 1rem !important;
  line-height: 1.25 !important;
  margin-top: 6px !important;
}
.ethics-item {
  margin-bottom: 17px !important;
}
.ethics-num {
  font-size: 1.35rem !important;
  margin-bottom: 3px !important;
}
.ethics-item h3 {
  font-size: 1.8rem !important;
  line-height: 1.15 !important;
  margin-bottom: 8px !important;
}
.ethics-item p {
  font-size: .88rem !important;
  line-height: 1.5 !important;
  margin-bottom: 10px !important;
}
.ethics-item-04 h3 {
  font-size: 2.05rem !important;
}
.ethics-item-04 p {
  font-size: .9rem !important;
  line-height: 1.52 !important;
}
.ethics-arrow {
  width: 42px !important;
  height: 64px !important;
  font-size: 2.5rem !important;
}

/* AREE DI ATTIVITÀ: titoli in blu scuro. */
.activities-page .activity-copy h2 {
  color: #15365f !important;
}

/* Mobile: mantiene il layout semplice e leggibile. */
@media (max-width: 820px) {
  .studio-profile-original {
    width: min(calc(100% - 32px), 650px) !important;
  }
  .studio-profile-top {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }
  .studio-photo-block {
    max-width: 320px !important;
    justify-self: center !important;
  }
  .studio-profile-original .profile-photo {
    max-width: 320px !important;
  }
  .studio-intro {
    padding-top: 0 !important;
  }
  .studio-intro h2 {
    text-align: center !important;
  }
  .studio-intro p,
  .studio-body-copy p {
    font-size: .94rem !important;
    line-height: 1.5 !important;
  }

  .ethics-slider {
    min-height: 790px !important;
  }
  .ethics-copy-shell {
    left: 5% !important;
    right: 5% !important;
    top: 5% !important;
    bottom: 5% !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
  }
  .ethics-panel {
    padding: 28px 36px 58px !important;
  }
  .ethics-heading h2 {
    font-size: 1.75rem !important;
  }
  .ethics-item h3 {
    font-size: 1.55rem !important;
  }
  .ethics-item p,
  .ethics-item-04 p {
    font-size: .83rem !important;
  }
}

/* ====================== REV18 ======================
   Riferimento: PDF "lo studio.pdf" fornito dall'utente.
   Mantiene struttura semplice: foto sx, introduzione dx, testo sotto.
==================================================== */
.studio-profile-section { padding: 30px 0 22px !important; }
.studio-profile-original {
  width: min(calc(100% - 40px), 700px) !important;
  max-width: 700px !important;
}
.studio-profile-top {
  grid-template-columns: 246px minmax(0, 1fr) !important;
  gap: 12px !important;
}
.studio-photo-block {
  width: 246px !important;
  max-width: 246px !important;
}
.studio-profile-original .profile-photo {
  width: 246px !important;
  max-width: 246px !important;
}
.studio-copyright { display:none !important; }
.studio-intro { padding: 58px 0 0 !important; }
.studio-intro h2 {
  margin: 0 0 25px !important;
  font-size: 1.42rem !important;
  color: #006f9f !important;
}
.studio-intro p,
.studio-body-copy p {
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: .91rem !important;
  line-height: 1.52 !important;
  color: #15365f !important;
  text-align: justify !important;
}
.studio-body-copy { margin-top: 5px !important; }
.studio-body-copy p { margin: 0 0 17px !important; }

/* Code of Ethics: stessa foto fissa, pannello leggibile senza coprire le frecce. */
.ethics-copy-shell {
  width: 43% !important;
  max-width: 620px !important;
}
.ethics-panel { padding: 32px 54px 58px !important; }
.ethics-heading h2 { font-size: 2.1rem !important; }
.ethics-heading p { font-size: 1rem !important; }
.ethics-item h3 { font-size: 1.85rem !important; }
.ethics-item p { font-size: .94rem !important; line-height: 1.48 !important; }
.ethics-item-04 p { font-size: .96rem !important; }
.ethics-prev { left: 7px !important; }
.ethics-next { right: 7px !important; left: auto !important; }

@media (max-width: 820px) {
  .studio-profile-original { width:min(calc(100% - 30px), 650px) !important; }
  .studio-profile-top { grid-template-columns:1fr !important; gap:18px !important; }
  .studio-photo-block { width:min(100%, 280px) !important; max-width:280px !important; justify-self:center !important; }
  .studio-profile-original .profile-photo { width:100% !important; max-width:280px !important; }
  .studio-intro { padding-top:0 !important; }
  .studio-intro h2 { text-align:center !important; margin-bottom:16px !important; }
  .studio-intro p,.studio-body-copy p { font-size:.94rem !important; line-height:1.5 !important; text-align:left !important; }
  .ethics-panel { padding:28px 46px 58px !important; }
  .ethics-item p,.ethics-item-04 p { font-size:.88rem !important; }
}

/* ====================== REV19 ======================
   Code of Ethics: sposta la fotografia verso destra in modo che
   la scritta originale "Code of Ethics" emerga interamente dal
   bordo destro del pannello blu, come nel riferimento fornito.
   Nessuna modifica allo slideshow o ai testi.
==================================================== */
@media (min-width: 821px) {
  .ethics-slider {
    background-size: 140% auto !important;
    background-position: left center !important;
  }
}


/* REV20 - unica modifica: colore titolo "Avv. Elio Brogno" nella pagina Lo Studio */
.studio-intro h2 {
  color: #15365f !important;
}


/* REV21 - unica modifica richiesta:
   stesso font del titolo "Lo Studio" per il testo accanto alla foto */
.studio-rev6-text p {
  font-family: Georgia, "Times New Roman", serif !important;
}


/* REV22 - SOLO il testo professionale della pagina Lo Studio in Georgia */
.studio-intro p,
.studio-body-copy p {
  font-family: Georgia, "Times New Roman", serif !important;
}


/* REV23 - unica modifica:
   titolo "Avv. Elio Brogno" in Georgia, senza corsivo */
.studio-intro h2 {
  font-family: Georgia, "Times New Roman", serif !important;
  font-style: normal !important;
}


/* FASE 6: responsive, accessibilità, performance */
:focus-visible{outline:3px solid #11a4e8;outline-offset:3px}.skip-link{position:fixed;left:12px;top:12px;z-index:9999;transform:translateY(-180%);padding:.7rem 1rem;background:#fff;color:#15365f;border:2px solid #15365f;text-decoration:none}.skip-link:focus{transform:translateY(0)}.site-nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:.35em;text-decoration-thickness:2px}.nav-toggle,.btn,button,input,textarea,.whatsapp-link{min-height:44px}input,textarea,button{font:inherit}textarea{min-height:9rem;resize:vertical}img{max-width:100%;height:auto}body{overflow-wrap:anywhere}.site-footer a,address a{word-break:break-word}@media(min-width:1280px){.container{width:min(94vw,1500px)}}@media(max-width:900px){.footer-grid{gap:2rem}.contact-grid{grid-template-columns:1fr!important}.collab-card{grid-template-columns:150px minmax(0,1fr)!important}}@media(max-width:680px){.header-inner{min-height:76px}.brand span{font-size:1.05rem}.site-nav.open{max-height:calc(100vh - 76px);overflow-y:auto}.footer-grid{grid-template-columns:1fr!important;text-align:left!important}.footer-grid address{text-align:left!important}.collab-card{grid-template-columns:1fr!important}.collab-card img{width:min(100%,260px);justify-self:center}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal-on-scroll,.reveal-on-scroll *{opacity:1!important;transform:none!important}}
\n\n/* FASE 7 - mappa caricata solo su richiesta */\n.map-consent {\n  min-height: 320px;\n  display: grid;\n  place-content: center;\n  gap: 1rem;\n  padding: 2rem;\n  text-align: center;\n  background: #f5f6f8;\n  border: 1px solid rgba(21,54,95,.18);\n}\n.map-consent p { margin: 0; }\n.map-load-button {\n  justify-self: center;\n  padding: .75rem 1.1rem;\n  border: 0;\n  background: #15365f;\n  color: #fff;\n  cursor: pointer;\n}\n.map-external a { color: #15365f; }\n

/* REV27 - unica modifica: allineamento WhatsApp al blocco contatti */
.contact-details .whatsapp-link,
.contact-info .whatsapp-link,
.whatsapp-link {
  margin-left: 0 !important;
  align-self: flex-start !important;
}


/* REV28 - allinea WhatsApp esattamente ai recapiti sopra */
.contact-page .contact-grid > div:first-child > .whatsapp-link {
  margin-left: 34px !important;
}

@media (max-width: 680px) {
  .contact-page .contact-grid > div:first-child > .whatsapp-link {
    margin-left: 34px !important;
  }
}


/* REV30 - pagina Articoli */
.articles-page {
  padding: 54px 0 72px;
}
.articles-intro,
.articles-list {
  width: min(calc(100% - 40px), 1040px);
  margin-inline: auto;
}
.articles-intro h2 {
  margin: 0 0 16px;
  color: #15365f;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.7rem, 2.7vw, 2.4rem);
  font-weight: 400;
}
.articles-intro p,
.articles-empty {
  color: #15365f;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1rem;
  line-height: 1.6;
}
.articles-list {
  margin-top: 34px;
}
.article-card {
  padding: 26px 0;
  border-top: 1px solid rgba(21,54,95,.22);
}
.article-card h2 {
  margin: 0 0 8px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.45rem;
  color: #15365f;
}
.article-card h2 a {
  color: inherit;
}
.article-meta {
  margin: 0 0 12px;
  font-size: .9rem;
  color: #50647d;
}
.article-card p {
  margin: 0;
  line-height: 1.6;
}


/* REV31 - aumenta la distanza tra le voci del menu */
.site-nav {
  gap: 28px !important;
}

@media (max-width: 900px) {
  .site-nav {
    gap: 0 !important;
  }
}


/* REV32 - spazio esplicito tra Articoli e Contatti */
.site-nav .nav-contatti {
  margin-left: 24px !important;
}

@media (max-width: 900px) {
  .site-nav .nav-contatti {
    margin-left: 0 !important;
  }
}


/* REV34 - allineamento checkbox informativa privacy nella pagina Contatti */
.contact-page .privacy-consent,
.contact-page .privacy-check,
.contact-page .form-consent,
.contact-page label:has(input[type="checkbox"]) {
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
}

.contact-page label:has(input[type="checkbox"]) input[type="checkbox"] {
  margin: 0 !important;
  flex: 0 0 auto !important;
  align-self: center !important;
  transform: none !important;
}


/* REV35 - consenso privacy: solo spazio tra checkbox e testo */
.contact-page label:has(input[type="checkbox"]) {
  gap: 8px !important;
}
.contact-page label:has(input[type="checkbox"]) > span {
  display: inline !important;
  margin: 0 !important;
  padding: 0 !important;
}
.contact-page label:has(input[type="checkbox"]) > span a {
  margin: 0 !important;
  padding: 0 !important;
}


/* REV36 - pagina di conferma invio modulo */
.thank-you-page {
  padding: 70px 0 90px;
}
.thank-you-box {
  width: min(calc(100% - 40px), 760px);
  margin: 0 auto;
  text-align: center;
}
.thank-you-box h2 {
  margin: 0 0 18px;
  color: #15365f;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.7rem, 3vw, 2.5rem);
  font-weight: 400;
}
.thank-you-box p {
  color: #15365f;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.05rem;
  line-height: 1.6;
}
.thank-you-box .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 18px;
  text-decoration: none;
}


/* REV38 - Code of Ethics responsive smartphone */
@media (max-width: 700px) {
  .ethics-stage {
    min-height: auto !important;
    background-position: center center !important;
  }

  .ethics-panel {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    width: calc(100% - 32px) !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 16px auto !important;
    padding: 24px 42px !important;
    box-sizing: border-box !important;
    overflow: visible !important;
  }

  .ethics-slide,
  .ethics-slide p,
  .ethics-slide h2,
  .ethics-slide h3,
  .ethics-slide div {
    max-width: 100% !important;
    width: auto !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
  }

  .ethics-slide p {
    font-size: 16px !important;
    line-height: 1.55 !important;
  }

  .ethics-slide h2,
  .ethics-slide h3 {
    line-height: 1.15 !important;
  }

  .ethics-prev,
  .ethics-next {
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 5 !important;
  }

  .ethics-prev {
    left: 10px !important;
  }

  .ethics-next {
    right: 10px !important;
  }
}


/* REV39 - Code of Ethics mobile: correzione sulle classi REALI */
@media (max-width: 700px) {
  .ethics-album {
    width: 100% !important;
    max-width: none !important;
    margin: 20px 0 36px !important;
  }

  .ethics-slider {
    position: relative !important;
    width: 100% !important;
    min-height: 820px !important;
    overflow: hidden !important;
    background-size: cover !important;
    background-position: center center !important;
  }

  .ethics-copy-shell {
    position: absolute !important;
    left: 16px !important;
    right: 16px !important;
    top: 20px !important;
    bottom: 20px !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    background: rgba(21,54,95,.82) !important;
  }

  .ethics-panel {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 28px 48px 58px !important;
    box-sizing: border-box !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
  }

  .ethics-copy-shell,
  .ethics-copy-shell *,
  .ethics-panel,
  .ethics-panel * {
    word-break: normal !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
    white-space: normal !important;
  }

  .ethics-heading h2 {
    font-size: 1.9rem !important;
  }

  .ethics-heading p {
    font-size: .98rem !important;
  }

  .ethics-item h3 {
    font-size: 1.65rem !important;
  }

  .ethics-item p,
  .ethics-item-04 p {
    font-size: 1rem !important;
    line-height: 1.5 !important;
  }

  .ethics-num {
    font-size: 1.25rem !important;
  }

  .ethics-prev,
  .ethics-next {
    position: absolute !important;
    top: 50% !important;
    bottom: auto !important;
    transform: translateY(-50%) !important;
    z-index: 10 !important;
    width: 38px !important;
    height: 56px !important;
  }

  .ethics-prev {
    left: 4px !important;
  }

  .ethics-next {
    right: 4px !important;
    left: auto !important;
  }
}

/* Ingresso del pannello principale della homepage. */
@keyframes homeHeroPanelEnter {
  from {
    opacity: 0;
    transform: translateX(64px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
.home-hero-panel {
  animation: homeHeroPanelEnter 1.2s cubic-bezier(.22,.61,.36,1) both;
}
@media (max-width: 1024px) {
  .home-hero-panel {
    animation-duration: .9s;
  }
}


/* REV40 - articoli pubblicati */
.article-read { margin-top: 12px !important; }
.article-read a, .article-back a { color:#15365f; font-weight:600; }
.article-detail { padding:54px 0 72px; }
.article-body { width:min(calc(100% - 40px), 860px); margin-inline:auto; }
.article-body > .article-meta { margin-bottom:28px; }
.article-body h2 { margin:2em 0 .65em; color:#15365f; font-family:Georgia,"Times New Roman",serif; font-size:clamp(1.35rem,2.2vw,1.75rem); font-weight:400; }
.article-body p { line-height:1.78; margin:0 0 1.15em; }
.article-back { margin-top:3em !important; padding-top:1.5em; border-top:1px solid rgba(21,54,95,.22); }
@media (max-width:680px){ .article-detail{padding:38px 0 54px;} .article-body{width:min(calc(100% - 32px),860px);} .article-body p{line-height:1.7;} }


/* REV51 - mappa statica e protezione visuale dei media */
.media-protected, img, picture, .static-map {
  -webkit-user-drag: none;
  -webkit-user-select: none;
  user-select: none;
}
.static-map {
  position: relative; min-height: 330px; overflow: hidden; border: 1px solid rgba(21,54,95,.18);
  background: #f2f0ea; border-radius: 2px;
}
.static-map::before, .static-map::after { content:""; position:absolute; inset:auto; background:#e2ded3; }
.static-map::before { width:46%; height:38%; left:4%; top:7%; transform:rotate(-4deg); }
.static-map::after { width:38%; height:35%; right:5%; bottom:8%; transform:rotate(3deg); }
.map-road { position:absolute; z-index:2; background:#fff; box-shadow:0 0 0 1px rgba(80,80,80,.08); }
.map-road-main { left:-4%; right:-4%; top:47%; height:56px; transform:rotate(-3deg); }
.map-road-main span { position:absolute; left:10%; top:16px; color:#5f6570; font-size:.92rem; letter-spacing:.02em; }
.map-road-cross { width:44px; top:-8%; bottom:-8%; transform:rotate(14deg); }
.map-road-one { left:30%; } .map-road-two { right:22%; transform:rotate(-11deg); }
.map-block { position:absolute; z-index:1; background:#ded9cd; border:1px solid rgba(80,80,80,.08); }
.map-block-one { left:9%; bottom:9%; width:23%; height:26%; transform:rotate(-3deg); }
.map-block-two { right:13%; top:8%; width:25%; height:27%; transform:rotate(4deg); }
.map-block-three { left:42%; top:12%; width:17%; height:22%; }
.map-pin { position:absolute; z-index:5; left:52%; top:42%; width:34px; height:34px; border-radius:50% 50% 50% 0; background:#15365f; transform:translate(-50%,-50%) rotate(-45deg); box-shadow:0 3px 10px rgba(0,0,0,.25); }
.map-pin span { position:absolute; width:12px; height:12px; border-radius:50%; background:#fff; left:11px; top:11px; }
.map-address { position:absolute; z-index:6; left:50%; top:58%; transform:translateX(-50%); width:min(88%,420px); padding:12px 16px; text-align:center; background:rgba(255,255,255,.94); color:#15365f; box-shadow:0 3px 12px rgba(0,0,0,.12); }
.map-note { text-align:center; margin-top:18px; }
.map-button { display:inline-block; padding:12px 20px; background:#15365f; color:#fff !important; text-decoration:none; border-radius:2px; font-weight:600; }
.map-button:hover, .map-button:focus { text-decoration:underline; }
@media(max-width:680px){ .static-map{min-height:270px;} .map-road-main{height:48px;} .map-address{font-size:.92rem;} }

/* REV52 - mappa statica dettagliata */
.static-map-detailed {
  min-height: 0;
  background: #f5f3ee;
  border: 1px solid rgba(21,54,95,.18);
  overflow: hidden;
  border-radius: 3px;
  box-shadow: 0 5px 18px rgba(21,54,95,.07);
}
.static-map-detailed::before,
.static-map-detailed::after { display:none; }
.static-map-detailed img {
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:1200/520;
  object-fit:cover;
}
@media(max-width:680px){
  .static-map-detailed { min-height:0; }
  .static-map-detailed img { aspect-ratio: 4/3; object-fit:cover; object-position:center; }
}

/* REV56 - giustificazione selettiva e responsive dei soli testi lunghi */
@media (min-width: 821px) {
  .studio-intro p,
  .studio-body-copy p {
    text-align: justify !important;
    text-align-last: left;
    -webkit-hyphens: none;
    hyphens: none;
  }
}

@media (min-width: 600px) {
  .article-body > p:not(.article-meta):not(.article-back),
  .privacy-content > p {
    text-align: justify;
    text-align-last: left;
    -webkit-hyphens: none;
    hyphens: none;
  }
}

@media (max-width: 599px) {
  .article-body > p:not(.article-meta):not(.article-back),
  .privacy-content > p {
    text-align: left;
    text-align-last: auto;
    -webkit-hyphens: none;
    hyphens: none;
  }
}


/* REV64 - voce News: stessa spaziatura della voce Contatti nel menu desktop */
.site-nav .nav-news {
  margin-left: 24px !important;
}
@media (max-width: 900px) {
  .site-nav .nav-news {
    margin-left: 0 !important;
  }
}
