@font-face {font-family:"Cormorant Garamond"; font-style:normal; font-weight:300 700; font-display:swap; src:url("../fonts/cormorant-var.woff2") format("woff2");}
@font-face {font-family:"Cormorant Garamond"; font-style:italic; font-weight:300 700; font-display:swap; src:url("../fonts/cormorant-italic-var.woff2") format("woff2");}
@font-face {font-family:"Source Sans 3"; font-style:normal; font-weight:200 900; font-display:swap; src:url("../fonts/sourcesans3-var.woff2") format("woff2");}
@font-face {font-family:"Source Sans 3"; font-style:italic; font-weight:200 900; font-display:swap; src:url("../fonts/sourcesans3-italic-var.woff2") format("woff2");}

:root {
	--navy:#06163f;
	--navy-deep:#04102d;
	--navy-ink:#030b20;
	--blue:#3a6796;
	--blue-soft:#8fb0d1;
	--paper:#f4f1ea;
	--paper-2:#ebe6db;
	--paper-3:#e2dccf;
	--white:#ffffff;
	--ink:#1a1f26;
	--ink-2:#46515c;
	--muted:#7b8590;
	--line:rgba(6,22,63,0.14);
	--line-strong:rgba(6,22,63,0.32);
	--line-light:rgba(255,255,255,0.16);
	--brass:#b08d57;
	--brass-2:#d3b988;
	--brass-3:#f1e4cc;
	--serif:"Cormorant Garamond", "Times New Roman", Georgia, serif;
	--sans:"Source Sans 3", "Segoe UI", Helvetica, Arial, sans-serif;
	--ease:cubic-bezier(.22,.61,.36,1);
	--header-h:92px;
	--gutter:40px;
	--max:1280px;
}

*, *::before, *::after {box-sizing:border-box;}
html {scroll-behavior:smooth; -webkit-text-size-adjust:100%; overflow-x:hidden;}
html, body, div, span, h1, h2, h3, h4, h5, h6, p, a, ul, ol, li, figure, figcaption, blockquote, form, label, input, textarea, select, button, table, tr, td, th, nav, header, footer, main, section, article, aside, address, time, dl, dt, dd {margin:0; padding:0; border:0; font:inherit; list-style:none; text-align:start; vertical-align:baseline;}
body {
	font-family:var(--sans);
	font-size:17px;
	line-height:1.6;
	color:var(--ink);
	background:var(--paper);
	-webkit-font-smoothing:antialiased;
	-moz-osx-font-smoothing:grayscale;
	overflow-x:hidden;
}
body.nav-open {overflow:hidden;}
img {max-width:100%; height:auto; display:block;}
a {color:inherit; text-decoration:none; transition:color .3s var(--ease);}
strong, b {font-weight:600;}
em, i {font-style:italic;}
::selection {background:var(--navy); color:var(--paper);}
html[lang="ar"] * {letter-spacing:0;}

.container {width:100%; max-width:var(--max); margin:0 auto; padding:0 var(--gutter);}
.narrow {max-width:800px;}

/* ═══ Tipografia ═══ */
.eyebrow {
	display:inline-flex; align-items:center; gap:14px;
	font-family:var(--sans); font-size:12px; font-weight:600; letter-spacing:.22em; text-transform:uppercase;
	color:var(--brass);
}
.eyebrow::before {content:""; width:36px; height:1px; background:currentColor; opacity:.8;}
.eyebrow.no-line::before {display:none;}
.section-head {margin-bottom:64px;}
.section-head .eyebrow {margin-bottom:22px;}
h1, h2, h3, .serif {font-family:var(--serif); font-weight:500; line-height:1.08; color:var(--navy); letter-spacing:-.005em;}
h2.title {font-size:clamp(38px,4.2vw,58px); max-width:16em;}
h3.title {font-size:clamp(26px,2.4vw,32px);}
.lead {font-family:var(--serif); font-size:clamp(21px,1.75vw,26px); font-style:italic; font-weight:400; line-height:1.4; color:var(--navy);}
.text {font-size:17px; line-height:1.7; color:var(--ink-2); max-width:62ch;}
.text + .text {margin-top:1.1em;}
.accent {color:var(--brass);}
.italic {font-style:italic; font-weight:400;}
.link-arrow {
	display:inline-flex; align-items:center; gap:12px;
	font-family:var(--sans); font-size:13px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--navy);
}
.link-arrow::after {content:""; width:34px; height:1px; background:var(--brass); transition:width .35s var(--ease);}
.link-arrow:hover::after {width:56px;}
.on-dark .link-arrow, .on-dark h2, .on-dark h3, .on-dark .lead {color:var(--white);}
.on-dark .text {color:rgba(255,255,255,.72);}

/* ═══ Bottoni ═══ */
.btn {
	display:inline-flex; align-items:center; justify-content:center; gap:14px;
	padding:19px 36px; min-height:58px;
	font-family:var(--sans); font-size:13px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; line-height:1;
	border:1px solid transparent; cursor:pointer; white-space:nowrap;
	transition:background .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease), transform .35s var(--ease);
}
.btn-brass {background:var(--brass); color:var(--navy-ink); border-color:var(--brass);}
.btn-brass:hover {background:var(--brass-2); border-color:var(--brass-2);}
.btn-navy {background:var(--navy); color:var(--paper); border-color:var(--navy);}
.btn-navy:hover {background:var(--navy-deep);}
.btn-ghost {background:transparent; color:var(--paper); border-color:rgba(255,255,255,.38);}
.btn-ghost:hover {border-color:var(--paper);}
.btn-outline {background:transparent; color:var(--navy); border-color:var(--line-strong);}
.btn-outline:hover {border-color:var(--navy); background:var(--navy); color:var(--paper);}
.btn svg {width:14px; height:14px; flex:none;}

/* ═══ Header ═══ */
#siteHeader {
	position:fixed; top:0; left:0; right:0; z-index:60;
	height:var(--header-h);
	color:var(--paper);
	transition:background .45s var(--ease), color .45s var(--ease), box-shadow .45s var(--ease), height .45s var(--ease);
}
#siteHeader::after {content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:var(--line-light); opacity:1; transition:opacity .45s;}
#siteHeader.is-scrolled {background:rgba(244,241,234,.94); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); color:var(--navy); height:76px; box-shadow:0 1px 0 var(--line);}
#siteHeader.is-scrolled::after {opacity:0;}
body.page-light #siteHeader:not(.is-scrolled) {color:var(--navy);}
body.page-light #siteHeader:not(.is-scrolled)::after {background:var(--line);}
.header-inner {height:100%; display:flex; align-items:center; justify-content:space-between; gap:40px;}
.brand {display:flex; align-items:center; gap:16px; color:inherit;}
.brand-mark {width:52px; height:52px; position:relative; flex:none;}
.brand-mark img {position:absolute; inset:0; width:100%; height:100%; transition:opacity .45s var(--ease);}
.brand-mark .mark-light {opacity:1;}
.brand-mark .mark-dark {opacity:0;}
#siteHeader.is-scrolled .brand-mark .mark-light, body.page-light #siteHeader:not(.is-scrolled) .brand-mark .mark-light {opacity:0;}
#siteHeader.is-scrolled .brand-mark .mark-dark, body.page-light #siteHeader:not(.is-scrolled) .brand-mark .mark-dark {opacity:1;}
.brand-text {display:flex; flex-direction:column; line-height:1;}
.brand-text .brand-kicker {font-family:var(--sans); font-style:italic; font-size:10px; font-weight:600; letter-spacing:.3em; text-transform:uppercase; opacity:.7; margin-bottom:5px;}
.brand-text .brand-name {font-family:var(--serif); font-style:italic; font-size:27px; font-weight:500; letter-spacing:.02em;}
.main-nav {display:flex; align-items:center; gap:34px;}
.main-nav a {
	white-space:nowrap; position:relative; font-family:var(--sans); font-size:12px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; padding:8px 0; color:inherit; opacity:.86;
}
.main-nav a::after {content:""; position:absolute; left:0; bottom:2px; width:100%; height:1px; background:var(--brass); transform:scaleX(0); transform-origin:right; transition:transform .4s var(--ease);}
.main-nav a:hover::after, .main-nav a.active::after {transform:scaleX(1); transform-origin:left;}
.main-nav a.active {opacity:1;}
.header-right {display:flex; align-items:center; gap:26px;}
.lang-switch {display:flex; align-items:center; gap:8px; font-size:11px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; opacity:.7;}
.lang-switch a.active {opacity:1; color:var(--brass);}
.lang-switch .sep {opacity:.5;}
.btn-header {padding:14px 24px; min-height:46px; font-size:11px; border-color:currentColor; color:inherit; background:transparent;}
.btn-header:hover {background:var(--brass); border-color:var(--brass); color:var(--navy-ink);}
.nav-toggle {display:none; width:44px; height:44px; background:none; border:0; cursor:pointer; position:relative;}
.nav-toggle span {position:absolute; left:10px; right:10px; height:1px; background:currentColor; transition:transform .35s var(--ease), opacity .3s;}
.nav-toggle span:nth-child(1) {top:15px;}
.nav-toggle span:nth-child(2) {top:22px;}
.nav-toggle span:nth-child(3) {top:29px;}
body.nav-open .nav-toggle span:nth-child(1) {transform:translateY(7px) rotate(45deg);}
body.nav-open .nav-toggle span:nth-child(2) {opacity:0;}
body.nav-open .nav-toggle span:nth-child(3) {transform:translateY(-7px) rotate(-45deg);}

/* Menu a tendina (desktop stretto) */
.mobile-menu {
	position:fixed; inset:0; z-index:55; background:var(--navy-ink); color:var(--paper);
	display:flex; flex-direction:column; justify-content:center; padding:120px var(--gutter) 60px;
	opacity:0; visibility:hidden; transition:opacity .4s var(--ease), visibility .4s;
}
body.nav-open .mobile-menu {opacity:1; visibility:visible;}
.mobile-menu nav a {display:block; font-family:var(--serif); font-size:40px; padding:12px 0; border-bottom:1px solid var(--line-light); color:var(--paper);}
.mobile-menu nav a.active {color:var(--brass-2);}
.mobile-menu-lang {margin-top:30px; display:flex; gap:24px; font-size:12px; letter-spacing:.2em; text-transform:uppercase;}
.mobile-menu-lang a.active {color:var(--brass-2);}

/* ═══ Hero home ═══ */
.hero {
	position:relative; min-height:100vh; min-height:100svh;
	background:var(--navy);
	background-image:radial-gradient(ellipse at 18% 20%, rgba(58,103,150,.42), transparent 55%), radial-gradient(ellipse at 90% 90%, rgba(3,11,32,.9), transparent 60%);
	color:var(--paper); overflow:hidden;
	display:flex; flex-direction:column;
}
.grain::before {
	content:""; position:absolute; inset:0; pointer-events:none; opacity:.07; mix-blend-mode:overlay;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.watermark {
	position:absolute; pointer-events:none; user-select:none;
	width:min(78vh,900px); aspect-ratio:1; right:-6%; bottom:-14%;
	opacity:.05;
}
.watermark img {width:100%; height:100%;}
.hero-inner {
	flex:1; display:grid; grid-template-columns:minmax(0,7fr) minmax(0,4fr); gap:60px; align-items:end;
	padding:calc(var(--header-h) + 90px) 0 90px; position:relative; z-index:1;
}
.hero.has-top-band {min-height:calc(100svh - var(--header-h));}
.hero.has-top-band .hero-inner {padding-top:90px;}
.hero-eyebrow {margin-bottom:34px; color:var(--brass-2);}
.hero-title {
	font-family:var(--serif); font-weight:400; color:var(--paper);
	font-size:clamp(56px,7.2vw,104px); line-height:.98; letter-spacing:-.012em;
	max-width:10.5em;
}
.hero-title .line {display:block; overflow:hidden;}
.hero-title .line-in {display:block; transform:translateY(110%); transition:transform 1.1s var(--ease);}
.hero-title .line:nth-child(2) .line-in {transition-delay:.12s;}
.hero-title .line:nth-child(3) .line-in {transition-delay:.24s;}
body.is-ready .hero-title .line-in {transform:none;}
.hero-title em {font-style:italic; color:var(--brass-2); font-weight:400;}
.hero-sub {margin-top:38px; font-size:19px; line-height:1.65; color:rgba(255,255,255,.74); max-width:36em;}
.hero-cta {margin-top:46px; display:flex; flex-wrap:wrap; gap:16px;}
.hero-facts {
	display:grid; gap:0; border-left:1px solid var(--line-light); padding-left:40px; align-self:end;
}
.fact {padding:22px 0; border-bottom:1px solid var(--line-light);}
.fact:last-child {border-bottom:0;}
.fact-value {font-family:var(--serif); font-size:clamp(40px,3.4vw,54px); line-height:1; color:var(--paper); font-weight:400;}
.fact-value.small {font-size:clamp(28px,2.2vw,36px); padding-top:6px;}
.fact-label {display:block; margin-top:10px; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.55);}
.hero-ribbon {position:relative; z-index:1; border-top:1px solid var(--line-light); padding:22px 0; overflow:hidden; white-space:nowrap;}
.ribbon-track {display:inline-flex; gap:0; animation:ribbon 46s linear infinite; will-change:transform;}
.ribbon-track span {font-family:var(--serif); font-size:17px; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.62); padding:0 34px; position:relative;}
.ribbon-track span::after {content:""; position:absolute; right:-3px; top:50%; width:5px; height:5px; border-radius:50%; background:var(--brass); transform:translateY(-50%); opacity:.9;}
@keyframes ribbon {from {transform:translateX(0);} to {transform:translateX(-50%);}}
.hero-scroll {position:absolute; left:var(--gutter); bottom:calc(72px + 30px); z-index:2; display:flex; align-items:center; gap:14px; font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:rgba(255,255,255,.5);}
.hero-scroll::before {content:""; width:1px; height:44px; background:linear-gradient(to bottom, transparent, var(--brass)); animation:scrollcue 2.2s var(--ease) infinite;}
@keyframes scrollcue {0% {transform:scaleY(0); transform-origin:top;} 50% {transform:scaleY(1); transform-origin:top;} 51% {transform-origin:bottom;} 100% {transform:scaleY(0); transform-origin:bottom;}}

/* ═══ Sezioni ═══ */
.section {padding:130px 0; position:relative;}
.section.tight {padding:100px 0;}
.bg-paper {background:var(--paper);}
.bg-paper2 {background:var(--paper-2);}
.bg-white {background:var(--white);}
.bg-navy {background:var(--navy); color:var(--paper);}
.bg-navy-deep {background:var(--navy-deep); color:var(--paper);}
.bg-ink {background:var(--navy-ink); color:var(--paper);}
.hairline {border-top:1px solid var(--line);}
.on-dark .hairline {border-color:var(--line-light);}
.split {display:grid; grid-template-columns:5fr 7fr; gap:80px; align-items:center;}
.split.reverse {grid-template-columns:7fr 5fr;}
.split.top {align-items:start;}
.split > * {min-width:0;}

/* Intro / foto */
.photo-frame {position:relative; padding:0 28px 28px 0;}
.photo-frame::before {content:""; position:absolute; inset:28px 0 0 28px; border:1px solid var(--brass); z-index:0;}
.photo-frame img {position:relative; z-index:1; width:100%; aspect-ratio:4/5; object-fit:cover; filter:grayscale(1) contrast(1.05); background:var(--navy);}
.photo-frame::after {content:""; position:absolute; inset:0 28px 28px 0; z-index:2; background:var(--navy); mix-blend-mode:screen; opacity:.72; pointer-events:none;}
.photo-frame.wide img {aspect-ratio:16/10;}
.photo-frame.natural img {aspect-ratio:auto;}
.photo-band {position:relative; overflow:hidden; background:var(--navy); width:100%; height:clamp(240px,26vw,480px); border-top:1px solid var(--brass); border-bottom:1px solid var(--brass);}
.photo-band img {display:block; width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.05); transition:filter 1.2s ease;}
.photo-band::after {content:""; position:absolute; inset:0; background:var(--navy); mix-blend-mode:screen; opacity:.72; pointer-events:none; transition:opacity 1.2s ease;}
.photo-band:hover img {filter:grayscale(.2) contrast(1.02);}
.photo-band:hover::after {opacity:.35;}
.photo-band .band-caption {position:absolute; left:var(--gutter); bottom:22px; z-index:1; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--paper); padding-left:34px;}
.photo-band .band-caption::before {content:""; position:absolute; left:0; top:50%; width:22px; height:1px; background:var(--brass);}
.photo-band.band-top {padding-top:var(--header-h); background:var(--navy); height:auto; border-top:0;}
.photo-band.band-top img {height:clamp(170px,16vw,280px); filter:saturate(1.06) contrast(1.04);}
.photo-band.band-top::after {opacity:0;}
.photo-caption {margin-top:22px; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted);}
.intro-copy .lead {margin:26px 0 30px;}
.intro-copy .link-arrow {margin-top:38px;}

/* Aree (griglia) */
.areas-grid {display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line);}
.area-cell {
	position:relative; padding:38px 34px 42px; border-right:1px solid var(--line); border-bottom:1px solid var(--line);
	display:flex; flex-direction:column; gap:14px; color:var(--ink); transition:background .4s var(--ease);
	min-height:250px;
}
.area-cell:hover {background:var(--paper);}
.area-num {font-family:var(--serif); font-size:15px; letter-spacing:.14em; color:var(--brass);}
.area-cell h3 {font-size:27px; line-height:1.15; transition:color .3s;}
.area-cell:hover h3 {color:var(--blue);}
.area-cell p {font-size:15.5px; line-height:1.6; color:var(--ink-2);}
.area-cell .go {margin-top:auto; padding-top:16px; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); display:flex; align-items:center; gap:10px;}
.area-cell .go::after {content:""; width:22px; height:1px; background:var(--brass); transition:width .35s var(--ease);}
.area-cell:hover .go::after {width:40px;}
.areas-foot {margin-top:52px; display:flex; justify-content:space-between; align-items:center; gap:30px;}

/* Professionisti (cards) */
.lawyers-grid {display:grid; grid-template-columns:repeat(4,1fr); border-left:1px solid var(--line-light);}
.lawyer-card {
	position:relative; padding:36px 32px 40px; border-right:1px solid var(--line-light); min-height:460px;
	display:flex; flex-direction:column; color:var(--paper); overflow:hidden;
	transition:background .45s var(--ease);
}
.lawyer-card:hover {background:rgba(255,255,255,.04);}
.lawyer-initials {
	font-family:var(--serif); font-size:120px; line-height:.8; font-weight:300; color:var(--brass-2); opacity:.32; letter-spacing:-.06em;
	margin-bottom:48px; transition:opacity .45s, transform .6s var(--ease);
}
.lawyer-card:hover .lawyer-initials {opacity:.6; transform:translateX(6px);}
.lawyer-card h3 {font-size:30px; color:var(--paper); line-height:1.1;}
.lawyer-role {margin-top:8px; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--brass-2);}
.lawyer-areas {margin-top:22px; font-size:15px; line-height:1.55; color:rgba(255,255,255,.62);}
.lawyer-card .go {margin-top:auto; padding-top:32px; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.7); display:flex; align-items:center; gap:10px;}
.lawyer-card .go::after {content:""; width:22px; height:1px; background:var(--brass); transition:width .35s var(--ease);}
.lawyer-card:hover .go::after {width:40px;}

/* Servizi (pannelli) */
.services-grid {display:grid; grid-template-columns:1fr 1fr; gap:32px;}
.service-panel {
	position:relative; padding:56px 52px 52px; background:var(--white); border:1px solid var(--line);
	display:flex; flex-direction:column; min-height:380px; overflow:hidden;
}
.service-panel.dark {background:var(--navy); color:var(--paper); border-color:var(--navy);}
.service-num {font-family:var(--serif); font-size:96px; line-height:1; color:var(--brass); opacity:.35; position:absolute; top:26px; right:40px; font-weight:300;}
.service-panel h3 {font-size:36px; margin-bottom:20px;}
.service-panel.dark h3 {color:var(--paper);}
.service-panel p {font-size:16.5px; line-height:1.65; color:var(--ink-2); max-width:44ch;}
.service-panel.dark p {color:rgba(255,255,255,.72);}
.service-panel .link-arrow {margin-top:auto; padding-top:34px;}
.service-panel.dark .link-arrow {color:var(--paper);}

/* Pubblicazioni (scaffale) */
.shelf-wrap {position:relative; padding-bottom:26px;}
.shelf {display:flex; align-items:flex-end; gap:10px; padding:0 10px 0; overflow-x:auto; scrollbar-width:none;}
.shelf::-webkit-scrollbar {display:none;}
.shelf-wrap::after {content:""; position:absolute; left:0; right:0; bottom:0; height:14px; background:linear-gradient(to bottom, var(--paper-3), var(--paper-2)); box-shadow:0 12px 30px -10px rgba(6,22,63,.35);}
.spine {
	flex:none; width:74px; height:320px; position:relative;
	display:flex; flex-direction:column; align-items:center; justify-content:space-between; padding:18px 0 16px;
	color:var(--paper); text-decoration:none;
	box-shadow:inset 4px 0 6px -4px rgba(255,255,255,.35), inset -6px 0 10px -6px rgba(0,0,0,.45), 0 0 0 1px rgba(0,0,0,.08);
	transition:transform .45s var(--ease), box-shadow .45s var(--ease);
}
.spine:hover {transform:translateY(-14px); box-shadow:inset 4px 0 6px -4px rgba(255,255,255,.35), inset -6px 0 10px -6px rgba(0,0,0,.45), 0 22px 30px -16px rgba(6,22,63,.6);}
.spine.tall {height:350px; width:82px;}
.spine.short {height:290px; width:66px;}
.spine.c1 {background:linear-gradient(90deg,#081c4f,var(--navy) 60%,var(--navy-deep));}
.spine.c2 {background:linear-gradient(90deg,#4a5a6e,#3f4f63 60%,#37465a);}
.spine.c3 {background:linear-gradient(90deg,#8e7141,#7d6337 60%,#6c552f); color:#fbf4e6;}
.spine.c4 {background:linear-gradient(90deg,#7a2a2a,#6b2222 60%,#5b1d1d);}
.spine.c5 {background:linear-gradient(90deg,#3f6a8e,#3a6796 60%,#2f557d);}
.spine.c6 {background:linear-gradient(90deg,#2d4a3f,#274036 60%,#20362d);}
.spine::before, .spine::after {content:""; width:60%; height:1px; background:var(--brass-2); opacity:.7;}
.spine-title {
	writing-mode:vertical-rl; transform:rotate(180deg); font-family:var(--serif); font-size:15px; line-height:1.15; letter-spacing:.02em;
	max-height:210px; overflow:hidden; text-align:center; padding:6px 0;
}
.spine-year {font-family:var(--sans); font-size:10px; letter-spacing:.14em; opacity:.75; writing-mode:horizontal-tb;}
.pubs-copy .text {margin-top:24px;}
.pubs-copy .link-arrow {margin-top:36px;}

/* Approfondimenti (cards) */
.insights-grid {display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--line);}
.insight-card {
	display:flex; flex-direction:column; gap:16px; padding:36px 32px 40px 0; border-bottom:1px solid var(--line);
	color:var(--ink); position:relative;
}
.insight-card + .insight-card {padding-left:32px; border-left:1px solid var(--line);}
.insight-cat {font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--brass); font-weight:600;}
.insight-card h3 {font-size:25px; line-height:1.18; transition:color .3s;}
.insight-card:hover h3 {color:var(--blue);}
.insight-card p {font-size:15.5px; line-height:1.6; color:var(--ink-2);}
.insight-meta {margin-top:auto; padding-top:18px; font-size:12.5px; letter-spacing:.06em; color:var(--muted); display:flex; gap:14px; flex-wrap:wrap;}
.insight-meta .dot::before {content:"·"; margin-right:14px;}

/* Fascia CTA */
.cta-band {position:relative; overflow:hidden; padding:120px 0;}
.cta-band .container {display:grid; grid-template-columns:7fr 5fr; gap:60px; align-items:center; position:relative; z-index:1;}
.cta-band h2 {font-size:clamp(40px,4.4vw,62px); color:var(--paper); max-width:12em;}
.cta-band .text {color:rgba(255,255,255,.7); margin-top:22px; max-width:48ch;}
.cta-actions {display:flex; flex-direction:column; align-items:flex-start; gap:22px; justify-self:end;}
.cta-phone {font-family:var(--serif); font-size:30px; color:var(--paper); display:flex; align-items:baseline; gap:14px;}
.cta-phone small {font-family:var(--sans); font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.55);}
.cta-band .watermark {right:auto; left:-8%; bottom:-40%; width:min(60vh,640px); opacity:.045;}

/* ═══ Footer ═══ */
footer {background:var(--navy-ink); color:rgba(255,255,255,.7); padding:90px 0 40px; font-size:15px;}
.footer-top {display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:48px; padding-bottom:60px; border-bottom:1px solid var(--line-light);}
.footer-brand .brand {margin-bottom:22px; color:var(--paper);}
.footer-brand p {max-width:34ch; line-height:1.65;}
.footer-col h4 {font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:var(--brass-2); margin-bottom:20px; font-weight:600;}
.footer-col li {padding:5px 0;}
.footer-col a:hover {color:var(--paper);}
.footer-col address {font-style:normal; line-height:1.7;}
.footer-col .strong {color:var(--paper);}
.footer-bottom {padding-top:30px; display:flex; justify-content:space-between; align-items:flex-start; gap:30px; flex-wrap:wrap; font-size:13px; color:rgba(255,255,255,.45);}
.footer-bottom .vat > span {display:block;}
.footer-bottom .legal {display:flex; gap:22px;}
.footer-bottom .legal a:hover {color:var(--paper);}
.footer-bottom .footer-credits {flex-basis:100%; margin:0; font-size:12.5px; color:rgba(255,255,255,.35);}
.footer-bottom .footer-credits a {color:rgba(255,255,255,.6); text-decoration:none; border-bottom:1px solid rgba(255,255,255,.2);}
.footer-bottom .footer-credits a:hover {color:var(--paper); border-color:var(--paper);}

/* ═══ Cookie bar ═══ */
.cookie-bar {
	position:fixed; left:24px; bottom:24px; z-index:70; max-width:440px;
	background:var(--navy-ink); color:rgba(255,255,255,.8); padding:22px 24px; border:1px solid var(--line-light);
	font-size:14px; line-height:1.55; box-shadow:0 20px 50px -20px rgba(0,0,0,.6);
	transform:translateY(20px); opacity:0; visibility:hidden; transition:all .5s var(--ease);
}
.cookie-bar.show {transform:none; opacity:1; visibility:visible;}
.cookie-bar a {color:var(--brass-2); text-decoration:underline;}
.cookie-bar .btn {margin-top:16px; padding:12px 22px; min-height:0; font-size:11px;}

/* ═══ Pagine interne ═══ */
.page-hero {
	position:relative; overflow:hidden; background:var(--navy); color:var(--paper);
	background-image:radial-gradient(ellipse at 15% 10%, rgba(58,103,150,.4), transparent 55%);
	padding:calc(var(--header-h) + 100px) 0 96px;
}
.page-hero .watermark {width:min(60vh,620px); right:-4%; bottom:-30%; opacity:.05;}
.page-hero .eyebrow {color:var(--brass-2); margin-bottom:26px;}
.page-hero h1 {font-size:clamp(46px,5.6vw,80px); color:var(--paper); font-weight:400; line-height:1.02; max-width:12em; letter-spacing:-.01em;}
.page-hero .hero-sub {max-width:40em;}
.page-hero .container {position:relative; z-index:1;}
.crumbs {display:flex; gap:12px; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.5); margin-bottom:40px;}
.crumbs a:hover {color:var(--paper);}
.crumbs span::before {content:"/"; margin-right:12px; opacity:.5;}

/* Lo studio */
.method-grid {display:grid; grid-template-columns:repeat(2,1fr); gap:0; border-top:1px solid var(--line); border-left:1px solid var(--line);}
.method-item {padding:44px 40px 48px; border-right:1px solid var(--line); border-bottom:1px solid var(--line);}
.method-item .num {font-family:var(--serif); font-size:40px; color:var(--brass); line-height:1; margin-bottom:22px; font-weight:300;}
.method-item h3 {font-size:28px; margin-bottom:14px;}
.method-item p {color:var(--ink-2); line-height:1.65; font-size:16px;}
.figures {display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-left:1px solid var(--line-light); margin-top:50px;}
.figures .fact {padding:0 32px; border:0; border-right:1px solid var(--line-light);}
.figures .fact:last-child {border-right:0;}
.history-cols {columns:2; column-gap:60px;}
.history-cols p {break-inside:avoid; margin-bottom:1.2em; color:var(--ink-2); line-height:1.75; font-size:16.5px;}
.history-cols p:first-child::first-letter {font-family:var(--serif); font-size:4.4em; float:left; line-height:.8; padding:8px 12px 0 0; color:var(--navy);}
.year-mark {font-family:var(--serif); font-size:clamp(120px,14vw,200px); line-height:.8; color:var(--navy); opacity:.08; position:absolute; right:var(--gutter); top:60px; pointer-events:none; letter-spacing:-.04em;}

/* Professionisti (pagina) */
.people-list {display:grid; grid-template-columns:1fr; border-top:1px solid var(--line);}
.person-row {
	display:grid; grid-template-columns:120px 1fr 1.2fr auto; gap:40px; align-items:center;
	padding:40px 0; border-bottom:1px solid var(--line); color:var(--ink); transition:background .35s;
}
.person-row:hover {background:var(--white);}
.person-row .lawyer-initials {font-size:72px; color:var(--brass); opacity:.55; margin:0;}
.person-row h3 {font-size:32px;}
.person-row .lawyer-role {color:var(--brass);}
.person-row .lawyer-areas {color:var(--ink-2); margin:0;}
.person-row .go {font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--navy); display:flex; align-items:center; gap:10px; white-space:nowrap;}
.person-row .go::after {content:""; width:22px; height:1px; background:var(--brass); transition:width .35s var(--ease);}
.person-row:hover .go::after {width:40px;}

.profile {display:grid; grid-template-columns:4fr 8fr; gap:80px; align-items:start;}
.profile-side {position:sticky; top:110px;}
.profile-card {background:var(--navy); color:var(--paper); padding:44px 40px; position:relative; overflow:hidden;}
.profile-card .lawyer-initials {font-size:110px; margin-bottom:30px; opacity:.4;}
.profile-card h2 {font-size:36px; color:var(--paper);}
.profile-card .lawyer-role {color:var(--brass-2); margin-bottom:26px;}
.profile-card dl {font-size:14.5px; line-height:1.6; color:rgba(255,255,255,.75);}
.profile-card dt {font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.45); margin-top:16px;}
.profile-card dd {word-break:break-word;}
.profile-card dd a:hover {color:var(--brass-2);}
.profile-card .btn {margin-top:30px; width:100%;}
.profile-main .lead {margin-bottom:34px;}
.profile-block {margin-top:52px; padding-top:34px; border-top:1px solid var(--line);}
.profile-block h3 {font-size:14px; font-family:var(--sans); font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--brass); margin-bottom:22px;}
.chips {display:flex; flex-wrap:wrap; gap:10px;}
.chips span, .chips a {display:inline-block; padding:9px 16px; border:1px solid var(--line-strong); font-size:13.5px; letter-spacing:.04em; color:var(--navy); border-radius:2px;}
.chips a:hover {background:var(--navy); color:var(--paper); border-color:var(--navy);}
.tl {border-left:1px solid var(--line-strong); padding-left:28px;}
.tl li {position:relative; padding:0 0 18px; color:var(--ink-2); line-height:1.6;}
.tl li::before {content:""; position:absolute; left:-32px; top:11px; width:7px; height:7px; background:var(--brass); border-radius:50%;}
.book-list li {display:grid; grid-template-columns:64px 1fr; gap:20px; padding:16px 0; border-bottom:1px solid var(--line); align-items:baseline;}
.book-list .year {font-family:var(--serif); font-size:22px; color:var(--brass);}
.book-list .book-title {font-family:var(--serif); font-size:21px; color:var(--navy); line-height:1.2;}
.book-list .book-meta {font-size:14px; color:var(--muted); margin-top:4px;}
.others {display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.other-card {padding:28px 28px 30px; border:1px solid var(--line); background:var(--white); color:var(--ink); display:flex; flex-direction:column; gap:8px;}
.other-card:hover {border-color:var(--navy);}
.other-card h4 {font-family:var(--serif); font-size:24px; color:var(--navy);}
.other-card span {font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--brass);}

/* Aree (pagina) */
.area-index {display:flex; flex-wrap:wrap; gap:10px 0; margin-top:44px;}
.area-index a {font-family:var(--serif); font-size:20px; color:rgba(255,255,255,.72); padding:6px 22px 6px 0; margin-right:22px; position:relative;}
.area-index a::after {content:"·"; position:absolute; right:-6px; color:var(--brass);}
.area-index a:last-child::after {display:none;}
.area-index a:hover {color:var(--paper);}
.area-row {display:grid; grid-template-columns:120px 5fr 6fr; gap:48px; padding:64px 0; border-top:1px solid var(--line); scroll-margin-top:110px;}
.area-row:last-child {border-bottom:1px solid var(--line);}
.area-row .num {font-family:var(--serif); font-size:64px; line-height:.9; color:var(--brass); font-weight:300;}
.area-row h2 {font-size:38px; line-height:1.1;}
.area-row .short {margin-top:14px; font-family:var(--serif); font-style:italic; font-size:20px; color:var(--ink-2); line-height:1.4;}
.area-row .text {font-size:16.5px;}
.area-row .examples {margin-top:26px;}
.area-row .examples h4 {font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--brass); font-weight:600; margin-bottom:12px;}

/* Servizi (pagina) */
.service-block {display:grid; grid-template-columns:5fr 7fr; gap:80px; align-items:start;}
.service-block .service-big {font-family:var(--serif); font-size:clamp(90px,11vw,150px); line-height:.8; color:var(--brass); opacity:.35; font-weight:300; margin-bottom:26px;}
.steps {display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-left:1px solid var(--line); margin-top:44px;}
.step {padding:6px 30px 0; border-right:1px solid var(--line);}
.step .num {font-family:var(--serif); font-size:44px; color:var(--brass); line-height:1; margin-bottom:14px;}
.step h4 {font-family:var(--serif); font-size:24px; color:var(--navy); margin-bottom:10px;}
.step p {font-size:15px; color:var(--ink-2); line-height:1.6;}
.svc-items {margin-top:40px; display:grid; gap:0; border-top:1px solid var(--line);}
.svc-items li {display:grid; grid-template-columns:200px 1fr; gap:30px; padding:22px 0; border-bottom:1px solid var(--line);}
.svc-items h4 {font-family:var(--serif); font-size:22px; color:var(--navy);}
.svc-items p {font-size:15.5px; color:var(--ink-2); line-height:1.6;}
.note-box {margin-top:40px; padding:26px 30px; background:var(--paper-2); border-left:2px solid var(--brass); font-size:14px; line-height:1.65; color:var(--ink-2);}
.note-box h4 {font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--brass); margin-bottom:8px; font-weight:600;}

/* Pubblicazioni (pagina) */
.pub-year {display:grid; grid-template-columns:160px 1fr; gap:40px; padding:40px 0; border-top:1px solid var(--line);}
.pub-year:last-child {border-bottom:1px solid var(--line);}
.pub-year .y {font-family:var(--serif); font-size:64px; line-height:.9; color:var(--brass); font-weight:300;}
.pub-item {display:grid; grid-template-columns:56px 1fr; gap:26px; padding:14px 0 22px; align-items:start;}
.pub-item + .pub-item {border-top:1px solid var(--line);}
.pub-item .mini-spine {width:40px; height:74px; background:var(--navy); position:relative; box-shadow:inset 3px 0 5px -3px rgba(255,255,255,.4), inset -4px 0 6px -4px rgba(0,0,0,.4); margin-top:4px;}
.pub-item .mini-spine::before, .pub-item .mini-spine::after {content:""; position:absolute; left:8px; right:8px; height:1px; background:var(--brass-2);}
.pub-item .mini-spine::before {top:9px;}
.pub-item .mini-spine::after {bottom:9px;}
.pub-item.c2 .mini-spine {background:#3f4f63;}
.pub-item.c3 .mini-spine {background:#7d6337;}
.pub-item.c4 .mini-spine {background:#6b2222;}
.pub-item.c5 .mini-spine {background:var(--blue);}
.pub-item.c6 .mini-spine {background:#274036;}
.pub-item h3 {font-size:30px; line-height:1.15;}
.pub-item .meta {margin-top:8px; font-size:14.5px; color:var(--muted); display:flex; flex-wrap:wrap; gap:6px 18px;}
.pub-item .meta b {color:var(--ink-2); font-weight:500;}
.pub-item .note {display:inline-block; margin-top:10px; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--brass);}
.pub-item.has-cover {grid-template-columns:132px 1fr; gap:34px; padding:22px 0 30px;}
.pub-item .cover {display:block; width:132px; background:var(--paper-2); box-shadow:0 18px 30px -18px rgba(6,22,63,.55), 0 0 0 1px rgba(6,22,63,.08); transition:transform .45s var(--ease), box-shadow .45s var(--ease);}
.pub-item .cover img {display:block; width:100%; height:auto;}
.pub-item .cover:hover {transform:translateY(-6px); box-shadow:0 26px 36px -18px rgba(6,22,63,.6), 0 0 0 1px rgba(6,22,63,.1);}
.book-list li.has-cover {grid-template-columns:64px 56px 1fr; align-items:start;}
.book-list li.has-cover .year {padding-top:6px;}
.book-list .cover {display:block; width:56px; box-shadow:0 10px 18px -12px rgba(6,22,63,.6), 0 0 0 1px rgba(6,22,63,.08);}
.book-list .cover img {display:block; width:100%; height:auto;}

/* Approfondimenti (indice) */
.filters {display:flex; flex-wrap:wrap; gap:8px; margin-bottom:56px;}
.filters a {padding:10px 18px; border:1px solid var(--line-strong); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--navy); border-radius:2px;}
.filters a:hover, .filters a.active {background:var(--navy); color:var(--paper); border-color:var(--navy);}
.filters a small {opacity:.55; margin-left:6px;}
.insights-list {display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--line); border-left:1px solid var(--line);}
.insights-list .insight-card {padding:34px 30px 38px; border-right:1px solid var(--line); border-left:0;}
.insights-list .insight-card + .insight-card {padding-left:30px;}
.insights-list .insight-card:hover {background:var(--white);}

/* Approfondimenti (articolo) */
.article-hero h1 {font-size:clamp(36px,4.2vw,60px); max-width:16em;}
.article-meta {display:flex; flex-wrap:wrap; gap:8px 26px; margin-top:34px; font-size:13px; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.6);}
.article-meta b {color:var(--brass-2); font-weight:600;}
.article-layout {display:grid; grid-template-columns:minmax(0,760px) 1fr; gap:80px; align-items:start;}
.article-body {font-size:18px; line-height:1.78; color:var(--ink);}
.article-body p {margin:0 0 1.35em;}
.article-body h2, .article-body h3, .article-body h4, .article-body h5 {font-family:var(--serif); color:var(--navy); line-height:1.2; margin:1.8em 0 .7em;}
.article-body h2 {font-size:34px;}
.article-body h3 {font-size:28px;}
.article-body h4, .article-body h5 {font-size:23px;}
.article-body ul, .article-body ol {margin:0 0 1.4em 1.4em;}
.article-body ul li {list-style:disc; margin-bottom:.4em;}
.article-body ol li {list-style:decimal; margin-bottom:.4em;}
.article-body a {color:var(--blue); text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(58,103,150,.4);}
.article-body a:hover {color:var(--navy);}
.article-body a[href$=".pdf"]::before {content:"PDF"; display:inline-block; font-family:var(--sans); font-size:10px; letter-spacing:.14em; padding:3px 7px; border:1px solid currentColor; margin-right:8px; vertical-align:2px; border-radius:2px; text-decoration:none;}
.article-body blockquote {margin:1.6em 0; padding:8px 0 8px 28px; border-left:2px solid var(--brass); font-family:var(--serif); font-size:22px; font-style:italic; color:var(--navy); line-height:1.45;}
.article-body table {width:100%; border-collapse:collapse; margin:1.4em 0; font-size:15px;}
.article-body td, .article-body th {border:1px solid var(--line); padding:10px 12px; vertical-align:top;}
.article-body iframe {max-width:100%;}
.article-body hr {border:0; border-top:1px solid var(--line); margin:2em 0;}
.article-body u {text-decoration:underline; text-underline-offset:3px;}
.article-body sup {font-size:.62em; line-height:0; vertical-align:super; margin-left:2px;}
.article-body sup a {text-decoration:none; font-family:var(--sans); font-weight:600;}
.article-body .footnotes {font-size:15px; line-height:1.6; color:var(--ink-2); margin-left:1.2em;}
.article-body .footnotes li {margin-bottom:.8em; padding-left:6px;}
.article-body .footnotes li:target {background:var(--brass-3);}
.article-side {position:sticky; top:110px; padding-left:40px; border-left:1px solid var(--line);}
.article-side h4 {font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--brass); font-weight:600; margin-bottom:18px;}
.article-side .side-list li {padding:12px 0; border-bottom:1px solid var(--line);}
.article-side .side-list a {font-family:var(--serif); font-size:19px; line-height:1.25; color:var(--navy); display:block;}
.article-side .side-list a:hover {color:var(--blue);}
.article-side .side-list small {display:block; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-top:6px;}
.article-side .disclaimer {margin-top:30px; font-size:13px; line-height:1.6; color:var(--muted);}
.article-nav {display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:70px; padding-top:34px; border-top:1px solid var(--line);}
.article-nav a {display:flex; flex-direction:column; gap:8px; color:var(--navy);}
.article-nav a.next {text-align:end; align-items:flex-end;}
.article-nav small {font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--brass);}
.article-nav span {font-family:var(--serif); font-size:22px; line-height:1.2;}
.article-nav a:hover span {color:var(--blue);}

/* Contatti */
.contact-layout {display:grid; grid-template-columns:5fr 7fr; gap:80px; align-items:start;}
.contact-info dl {border-top:1px solid var(--line);}
.contact-info dt {font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--brass); padding-top:22px; font-weight:600;}
.contact-info dd {padding:6px 0 22px; border-bottom:1px solid var(--line); font-size:17px; line-height:1.6; color:var(--ink-2);}
.contact-info dd .big {font-family:var(--serif); font-size:32px; color:var(--navy); line-height:1.1; display:block;}
.contact-info dd a:hover {color:var(--blue);}
.contact-info .link-arrow {margin-top:30px;}
.map-box {margin-top:50px; position:relative; aspect-ratio:16/10; background:var(--navy); overflow:hidden;}
.map-box iframe {position:absolute; inset:0; width:100%; height:100%; border:0; filter:grayscale(.9) contrast(1.05);}
.map-cover {position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; text-align:center; padding:40px; color:var(--paper); background:var(--navy); background-image:radial-gradient(ellipse at 30% 30%, rgba(58,103,150,.45), transparent 60%);}
.map-cover .addr {font-family:var(--serif); font-size:28px;}
.map-cover small {font-size:12.5px; color:rgba(255,255,255,.55); max-width:36ch; line-height:1.5;}
.map-cover .actions {display:flex; gap:12px; flex-wrap:wrap; justify-content:center; margin-top:8px;}
.form-card {background:var(--white); border:1px solid var(--line); padding:52px 52px 56px;}
.form-card h2 {font-size:36px; margin-bottom:12px;}
.form-card > p {color:var(--ink-2); font-size:15.5px; line-height:1.6; margin-bottom:34px;}
.form-grid {display:grid; grid-template-columns:1fr 1fr; gap:22px 24px;}
.form-field {display:flex; flex-direction:column; gap:8px;}
.form-field.full {grid-column:1/-1;}
.form-field label {font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--navy); font-weight:600;}
.form-field label small {text-transform:none; letter-spacing:0; color:var(--muted); font-weight:400; margin-left:6px;}
.form-field input, .form-field select, .form-field textarea {
	width:100%; padding:15px 16px; background:var(--paper); border:1px solid var(--line); color:var(--ink);
	font-family:var(--sans); font-size:16px; border-radius:0; -webkit-appearance:none; appearance:none;
	transition:border-color .3s, background .3s;
}
.form-field textarea {min-height:170px; resize:vertical;}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus {outline:0; border-color:var(--navy); background:var(--white);}
.form-field.invalid input, .form-field.invalid select, .form-field.invalid textarea {border-color:#98211B;}
.form-field.select {position:relative;}
.form-field.select::after {content:""; position:absolute; right:18px; bottom:22px; width:8px; height:8px; border-right:1px solid var(--navy); border-bottom:1px solid var(--navy); transform:rotate(45deg); pointer-events:none;}
.form-check {grid-column:1/-1; display:flex; align-items:flex-start; gap:12px; font-size:14px; color:var(--ink-2); line-height:1.5;}
.form-check input {width:18px; height:18px; margin-top:3px; flex:none; accent-color:var(--navy);}
.form-check a {text-decoration:underline; color:var(--navy);}
.form-check.invalid {color:#98211B;}
.form-actions {grid-column:1/-1; display:flex; align-items:center; gap:24px; flex-wrap:wrap; margin-top:6px;}
.form-feedback {font-size:14.5px; line-height:1.5; min-height:1.5em;}
.form-feedback.ok {color:#2f6b3a;}
.form-feedback.ko {color:#98211B;}
.hp {position:absolute; left:-9999px; opacity:0; height:0; width:0;}

/* Legale */
.legal-layout {display:grid; grid-template-columns:250px minmax(0,780px); gap:60px; align-items:start;}
.legal-toc {position:sticky; top:110px;}
.legal-toc-title {font-family:var(--sans); font-size:11px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--brass); margin-bottom:14px;}
.legal-toc ol {counter-reset:toc;}
.legal-toc li {counter-increment:toc; padding:9px 0; border-top:1px solid var(--line); font-size:14.5px; line-height:1.4; display:flex; gap:10px;}
.legal-toc li::before {content:counter(toc,upper-roman); font-family:var(--serif); font-size:15px; color:var(--brass); min-width:26px;}
.legal-toc a {color:var(--ink-2);}
.legal-toc a:hover {color:var(--navy);}
.legal-body {max-width:780px; min-width:0;}
.legal-body .updated {font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin-bottom:34px;}
.legal-body section {padding:34px 0; border-top:1px solid var(--line);}
.legal-body section:target {scroll-margin-top:110px;}
.legal-body h2 {font-size:28px; margin-bottom:14px;}
.legal-body h2 .num {color:var(--brass); margin-right:4px;}
.legal-body p, .legal-body li {font-size:16.5px; line-height:1.7; color:var(--ink-2); margin-bottom:1em;}
.legal-body ul {margin-left:1.3em;}
.legal-body ul li {list-style:disc; margin-bottom:.5em;}
.legal-body a {color:var(--blue); text-decoration:underline; text-underline-offset:3px;}
.legal-body b {color:var(--ink); font-weight:600;}
.legal-note {padding:14px 18px; border-left:2px solid var(--brass); background:var(--paper-2); font-size:15px !important; color:var(--ink-2);}
.legal-prevails {margin-bottom:34px;}
.legal-table-wrap {overflow-x:auto; margin:0 0 1.2em;}
.legal-table {width:100%; border-collapse:collapse; font-size:14.5px; line-height:1.5;}
.legal-table th, .legal-table td {text-align:start; vertical-align:top; padding:10px 12px; border-bottom:1px solid var(--line);}
.legal-table th {font-family:var(--sans); font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); background:var(--paper-2);}
.legal-table td {color:var(--ink-2);}
.legal-related {padding-top:30px; border-top:1px solid var(--line);}
.legal-related a {display:inline-block; margin:0 12px 10px 0; padding:10px 16px; border:1px solid var(--line-strong); border-radius:2px; font-size:14px; color:var(--navy); letter-spacing:.03em;}
.legal-related a:hover {background:var(--navy); color:var(--paper); border-color:var(--navy);}

/* 404 */
.notfound {min-height:100vh; display:flex; align-items:center; background:var(--navy); color:var(--paper); position:relative; overflow:hidden;}
.notfound .code {font-family:var(--serif); font-size:clamp(120px,20vw,260px); line-height:.8; color:var(--brass); opacity:.35; font-weight:300;}
.notfound h1 {color:var(--paper); font-size:clamp(36px,4vw,56px); margin:26px 0 18px;}
.notfound p {color:rgba(255,255,255,.7); max-width:44ch; margin-bottom:34px;}

/* ═══ Reveal ═══ */
.reveal {opacity:0; transform:translateY(28px); transition:opacity .9s var(--ease), transform .9s var(--ease);}
.reveal.in {opacity:1; transform:none;}
.reveal[data-delay="1"] {transition-delay:.12s;}
.reveal[data-delay="2"] {transition-delay:.24s;}
.reveal[data-delay="3"] {transition-delay:.36s;}
.reveal[data-delay="4"] {transition-delay:.48s;}
@media (prefers-reduced-motion:reduce) {
	.reveal, .hero-title .line-in {opacity:1; transform:none; transition:none;}
	.ribbon-track {animation:none;}
	html {scroll-behavior:auto;}
}

/* ═══ RTL ═══ */
[dir="rtl"] .eyebrow::before {order:2;}
[dir="rtl"] .photo-frame {padding:0 0 28px 28px;}
[dir="rtl"] .photo-frame::before {inset:28px 28px 0 0;}
[dir="rtl"] .photo-frame::after {inset:0 0 28px 28px;}
[dir="rtl"] .hero-facts {border-left:0; border-right:1px solid var(--line-light); padding:0 40px 0 0;}
[dir="rtl"] .tl {border-left:0; border-right:1px solid var(--line-strong); padding:0 28px 0 0;}
[dir="rtl"] .tl li::before {left:auto; right:-32px;}
[dir="rtl"] .note-box {border-left:0; border-right:2px solid var(--brass);}
[dir="rtl"] .article-body blockquote {border-left:0; border-right:2px solid var(--brass); padding:8px 28px 8px 0;}
[dir="rtl"] .article-side {border-left:0; border-right:1px solid var(--line); padding:0 40px 0 0;}
[dir="rtl"] .crumbs span::before {content:"\\"; }
[dir="rtl"] .spine-title {transform:none;}
.ltr {direction:ltr; unicode-bidi:isolate;}

/* ═══ Responsive (il desktop resta leggibile fino al tablet; sotto i 640px vive m.) ═══ */
@media (max-width:1180px) {
	.main-nav {gap:22px;}
	.main-nav a {font-size:11px; letter-spacing:.12em;}
	.btn-header {display:none;}
	.lawyers-grid {grid-template-columns:repeat(2,1fr);}
	.lawyer-card {min-height:380px; border-bottom:1px solid var(--line-light);}
	.areas-grid {grid-template-columns:repeat(2,1fr);}
	.insights-grid, .insights-list {grid-template-columns:repeat(2,1fr);}
	.insights-grid .insight-card:nth-child(3) {display:none;}
	.person-row {grid-template-columns:100px 1fr 1fr; }
	.person-row .go {grid-column:2/-1;}
	.profile {grid-template-columns:1fr; gap:50px;}
	.profile-side {position:static;}
	.article-layout {grid-template-columns:1fr;}
	.article-side {position:static; padding:0; border:0; margin-top:60px;}
	.contact-layout {grid-template-columns:1fr; gap:60px;}
	.cta-band .container {grid-template-columns:1fr;}
	.cta-actions {justify-self:start;}
	.footer-top {grid-template-columns:1fr 1fr;}
}
@media (max-width:980px) {
	:root {--gutter:28px; --header-h:80px;}
	.main-nav, .lang-switch {display:none;}
	.nav-toggle {display:block;}
	.hero-inner {grid-template-columns:1fr; gap:50px; padding-top:calc(var(--header-h) + 60px);}
	.hero.has-top-band .hero-inner {padding-top:60px;}
	.hero-facts {grid-template-columns:1fr 1fr; border-left:0; padding-left:0; gap:0 30px;}
	.hero-scroll {display:none;}
	.split, .split.reverse, .service-block {grid-template-columns:1fr; gap:48px;}
	.section {padding:90px 0;}
	.services-grid {grid-template-columns:1fr;}
	.method-grid {grid-template-columns:1fr;}
	.history-cols {columns:1;}
	.area-row {grid-template-columns:80px 1fr; gap:24px 30px;}
	.area-row .text-col {grid-column:2;}
	.steps {grid-template-columns:1fr; border-left:0;}
	.step {border-right:0; border-left:1px solid var(--line); margin-bottom:26px;}
	.figures {grid-template-columns:1fr;}
	.figures .fact {border-right:0; padding:16px 0 16px 32px; border-left:1px solid var(--line-light);}
	.pub-year {grid-template-columns:1fr; gap:14px;}
	.legal-layout {grid-template-columns:1fr; gap:36px;}
	.legal-toc {position:static;}
	.legal-table thead {display:none;}
	.legal-table tr {display:block; padding:12px 0; border-bottom:1px solid var(--line);}
	.legal-table td {display:block; padding:4px 0; border:0;}
	.legal-table td::before {content:attr(data-label); display:block; font-family:var(--sans); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted);}
	.form-card {padding:36px 28px;}
	.form-grid {grid-template-columns:1fr;}
	.others {grid-template-columns:1fr;}
	.person-row {grid-template-columns:70px 1fr;}
	.person-row .lawyer-areas, .person-row .go {grid-column:2;}
	.footer-top {grid-template-columns:1fr;}
	.year-mark {display:none;}
}
