.tw-single-article { overflow: clip; background: var(--tw-paper); }
.tw-single-hero { padding: clamp(70px, 8vw, 118px) 0 clamp(42px, 5vw, 72px); }
.tw-single-hero__inner { max-width: 1176px; }
.tw-single-kicker,
.tw-single-meta,
.tw-single-related-card__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 0;
	color: var(--tw-blue);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .11em;
	line-height: 1.4;
	text-transform: uppercase;
}
.tw-single-hero h1 {
	max-width: 960px;
	margin: 18px 0 0;
	font-size: clamp(2.5rem, 4.8vw, 4.25rem);
	font-weight: 750;
	letter-spacing: -.035em;
	line-height: .99;
	text-wrap: balance;
}
.tw-single-deck {
	max-width: 760px;
	margin: 26px 0 0;
	color: var(--tw-muted-dark, #435c66);
	font-size: clamp(18px, 1.55vw, 21px);
	line-height: 1.55;
}
.tw-single-meta { margin-top: 30px; color: var(--tw-muted-dark, #435c66); }
.tw-single-content {
	min-width: 0;
	max-width: 760px;
	margin: 0;
	color: var(--tw-ink-soft);
	font-size: clamp(18px, 1.4vw, 20px);
	line-height: 1.7;
}
.tw-single-content > *:first-child { margin-top: 0; }
.tw-single-content > *:last-child { margin-bottom: 0; }
.tw-single-content p,
.tw-single-content ul,
.tw-single-content ol { margin-top: 0; margin-bottom: 1.35em; }
.tw-single-content li + li { margin-top: .42em; }
.tw-single-content h2,
.tw-single-content h3,
.tw-single-content h4 { color: var(--tw-ink); text-wrap: balance; }
.tw-single-content h2 {
	margin: 2.25em 0 .65em;
	font-size: clamp(30px, 3vw, 40px);
	letter-spacing: -.03em;
	line-height: 1.08;
}
.tw-single-content h3 {
	margin: 2em 0 .6em;
	font-size: clamp(24px, 2.3vw, 30px);
	letter-spacing: -.02em;
	line-height: 1.15;
}
.tw-single-content h4 { margin: 1.8em 0 .55em; font-size: 21px; line-height: 1.2; }
.tw-single-content a {
	color: var(--tw-blue);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: .18em;
}
.tw-single-content a:hover { color: var(--tw-ink); }
.tw-single-content strong { color: var(--tw-ink); }
.tw-single-content blockquote {
	margin: 2.4em 0;
	padding: 0 0 0 28px;
	border-left: 1px solid var(--tw-blue);
	color: var(--tw-ink);
	font-size: 1.18em;
	line-height: 1.55;
}
.tw-single-content figure { margin-top: 2.5em; margin-bottom: 2.5em; }
.tw-single-content figcaption { margin-top: 10px; color: var(--tw-muted-dark, #435c66); font-size: 13px; line-height: 1.45; text-align: left; }
.tw-single-content :is(.alignwide, .wp-block-columns.alignwide) {
	width: min(1100px, calc(100vw - 64px));
	max-width: none;
	margin-right: 0;
	margin-left: 50%;
	transform: translateX(-50%);
}
.tw-single-content :is(.alignfull, .wp-block-columns.alignfull) {
	width: min(1320px, calc(100vw - 32px));
	max-width: none;
	margin-right: 0;
	margin-left: 50%;
	transform: translateX(-50%);
}
.tw-single-content .wp-block-columns { gap: clamp(22px, 3vw, 42px); }
.tw-single-content .wp-block-image img,
.tw-single-content .wp-block-gallery img { width: 100%; height: auto; }
.tw-single-content .wp-block-separator { margin-block: 3.2em; border-color: var(--tw-line); }
.tw-single-content iframe { max-width: 100%; }
.tw-single-cta { padding: clamp(62px, 7vw, 96px) 0; border-block: 1px solid var(--tw-line); background: var(--tw-warm-surface, #e9dfd1); }
.tw-single-cta__inner { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr); gap: clamp(52px, 8vw, 130px); align-items: start; }
.tw-single-cta h2 { max-width: 680px; margin: 0; font-size: clamp(38px, 4.5vw, 66px); letter-spacing: -.035em; line-height: 1; text-wrap: balance; }
.tw-single-cta p { max-width: 590px; margin: 4px 0 28px; color: var(--tw-muted-dark, #435c66); font-size: clamp(17px, 1.4vw, 20px); line-height: 1.6; }

@media (max-width: 960px) {
	.tw-single-cta__inner { grid-template-columns: 1fr; gap: 28px; }
}

@media (max-width: 767px) {
	.tw-single-hero { padding: 58px 0 38px; }
	.tw-single-hero__inner { width: calc(100vw - 44px); }
	.tw-single-hero h1 { margin-top: 14px; overflow-wrap: break-word; font-size: clamp(2.15rem, 10.2vw, 3.25rem); line-height: 1.02; }
	.tw-single-deck { margin-top: 20px; font-size: 18px; }
	.tw-single-meta { margin-top: 24px; }
	.tw-single-content { font-size: 18px; line-height: 1.68; }
	.tw-single-content h2 { margin-top: 2em; font-size: 30px; }
	.tw-single-content h3 { font-size: 25px; }
	.tw-single-content :is(.alignwide, .alignfull, .wp-block-columns.alignwide, .wp-block-columns.alignfull) { width: calc(100vw - 32px); }
	.tw-single-content .wp-block-columns { gap: 12px; }
	.tw-single-cta { padding: 58px 0; }
	.tw-single-cta__inner { width: calc(100vw - 44px); }
	.tw-single-cta h2 { font-size: 40px; }
}

/* Layout a due colonne: colonna sinistra con immagine, condivisione e correlati. */
.tw-single-layout {
	display: grid;
	grid-template-columns: minmax(240px, 320px) minmax(0, 760px);
	gap: clamp(40px, 6vw, 96px);
	align-items: start;
	max-width: 1176px;
	margin-block: 0 clamp(84px, 9vw, 132px);
}
.tw-single-aside { display: grid; gap: 34px; min-width: 0; }
.tw-single-aside__label {
	margin: 0 0 14px;
	color: var(--tw-blue);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .11em;
	line-height: 1.4;
	text-transform: uppercase;
}
.tw-single-featured { margin: 0; overflow: hidden; background: var(--tw-cool-surface, #f2f4f3); }
.tw-single-featured img { display: block; width: 100%; height: auto; max-height: 560px; object-fit: contain; }
.tw-single-share { padding-top: 22px; border-top: 1px solid var(--tw-line); }
.tw-single-share__list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.tw-single-share__link {
	display: grid;
	width: 40px;
	height: 40px;
	place-items: center;
	border: 1px solid var(--tw-line);
	border-radius: 50%;
	background: transparent;
	color: var(--tw-ink);
	cursor: pointer;
	transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.tw-single-share__link:hover,
.tw-single-share__link:focus-visible { border-color: var(--tw-blue); background: var(--tw-blue); color: #fff; }
.tw-single-share__link.is-copied { border-color: var(--tw-blue); background: var(--tw-blue); color: #fff; }
.tw-single-tags { padding-top: 22px; border-top: 1px solid var(--tw-line); }
.tw-single-tags__list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.tw-single-tags__list a { display: inline-block; padding: 6px 12px; border: 1px solid var(--tw-line); border-radius: 999px; color: var(--tw-ink); font-size: 13px; line-height: 1.3; transition: border-color .2s ease, color .2s ease; }
.tw-single-tags__list a:hover, .tw-single-tags__list a:focus-visible { border-color: var(--tw-blue); color: var(--tw-blue); }
.tw-single-related { display: grid; gap: 16px; padding-top: 22px; border-top: 1px solid var(--tw-line); }
.tw-single-related .tw-single-aside__label { margin-bottom: 0; }
.tw-single-related-card { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 14px; align-items: start; min-width: 0; }
.tw-single-related-card:not(:has(.tw-single-related-card__media)) { grid-template-columns: 1fr; }
.tw-single-related-card__media { display: block; aspect-ratio: 1; overflow: hidden; background: var(--tw-cool-surface, #f2f4f3); }
.tw-single-related-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s cubic-bezier(.16,1,.3,1); }
.tw-single-related-card:hover .tw-single-related-card__media img { transform: scale(1.04); }
.tw-single-related-card__meta { margin: 0 0 4px; color: var(--tw-muted-dark, #435c66); font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.tw-single-related-card h3 { margin: 0; font-size: 16px; font-weight: 700; letter-spacing: -.01em; line-height: 1.25; }
.tw-single-related-card h3 a:hover { color: var(--tw-blue); }

@media (min-width: 961px) and (min-height: 760px) {
	.tw-single-aside { position: sticky; top: calc(var(--tw-header-height, 90px) + 28px); }
	.admin-bar .tw-single-aside { top: calc(var(--tw-header-height, 90px) + 60px); }
}

@media (max-width: 960px) {
	.tw-single-layout { grid-template-columns: minmax(0, 1fr); gap: 0; }
	.tw-single-aside { display: contents; }
	.tw-single-featured { order: 1; margin-bottom: 40px; }
	.tw-single-featured img { max-height: 70vh; }
	.tw-single-content { order: 2; max-width: none; }
	.tw-single-share { order: 3; margin-top: 56px; }
	.tw-single-tags { order: 4; margin-top: 34px; }
	.tw-single-related { order: 5; margin-top: 34px; }
}

@media (max-width: 767px) {
	.tw-single-layout { width: calc(100vw - 44px); margin-bottom: 82px; }
	.tw-single-featured { margin-bottom: 32px; }
}

/* Immagini e gallerie nel testo: mai ritagliate (screenshot e mockup restano interi). */
.tw-single-content .wp-block-gallery:not(.is-cropped) .wp-block-image img { height: auto; object-fit: contain; }
.tw-single-content .wp-block-gallery { align-items: flex-start; }
