.gdl-full-bleed {
	--gdl-blue: #173f5f;
	--gdl-blue-2: #276f92;
	--gdl-cream: #fff9ed;
	--gdl-coral: #e76f51;
	--gdl-yellow: #f4c95d;
	--gdl-ink: #20313d;
	--gdl-muted: #5f6f78;
	--gdl-line: #d9e3e7;
	position: relative;
	left: 50%;
	width: 100vw;
	max-width: 100vw;
	margin-right: -50vw;
	margin-left: -50vw;
	padding: clamp(16px, 3vw, 48px);
	box-sizing: border-box;
	background: #f5fafb;
	color: var(--gdl-ink);
	font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	overflow: clip;
}

.gdl-full-bleed *,
.gdl-full-bleed *::before,
.gdl-full-bleed *::after {
	box-sizing: border-box;
}

.gdl-catalog {
	width: min(100%, 1680px);
	margin: 0 auto;
}

.gdl-catalog [hidden] {
	display: none !important;
}

.gdl-catalog-hero {
	position: relative;
	display: grid;
	min-height: 280px;
	align-items: center;
	overflow: hidden;
	padding: clamp(32px, 5vw, 68px);
	border-radius: 28px;
	background: linear-gradient(135deg, #173f5f 0%, #246d87 100%);
	box-shadow: 0 18px 46px rgba(23, 63, 95, 0.18);
	color: #fff;
}

.gdl-hero-copy {
	position: relative;
	z-index: 2;
	max-width: 940px;
}

.gdl-catalog-eyebrow,
.gdl-kofi-kicker {
	margin: 0 0 8px !important;
	font-size: 12px !important;
	font-weight: 850 !important;
	letter-spacing: 0.16em;
}

.gdl-catalog-eyebrow {
	color: #ffdc83 !important;
}

.gdl-catalog-hero h2 {
	margin: 0 0 16px !important;
	font-size: clamp(34px, 5vw, 62px) !important;
	line-height: 1.04 !important;
	color: #fff !important;
}

.gdl-catalog-hero .gdl-hero-copy > p:last-child {
	max-width: 850px;
	margin: 0 !important;
	font-size: clamp(16px, 1.7vw, 20px) !important;
	line-height: 1.65 !important;
	color: #e9f6f8 !important;
}

.gdl-hero-shapes span {
	position: absolute;
	z-index: 1;
	display: grid;
	place-items: center;
	border: 2px solid rgba(255, 255, 255, 0.2);
	border-radius: 22px;
	background: rgba(255, 255, 255, 0.09);
	color: rgba(255, 255, 255, 0.72);
	font-weight: 800;
}

.gdl-hero-shapes span:nth-child(1) { right: 6%; top: 18%; width: 74px; height: 74px; font-size: 42px; transform: rotate(9deg); }
.gdl-hero-shapes span:nth-child(2) { right: 15%; bottom: 12%; width: 68px; height: 68px; font-size: 34px; transform: rotate(-8deg); }
.gdl-hero-shapes span:nth-child(3) { right: 2%; bottom: 5%; width: 54px; height: 54px; font-size: 27px; transform: rotate(14deg); }
.gdl-hero-shapes span:nth-child(4) { right: 23%; top: 10%; width: 52px; height: 52px; font-size: 28px; transform: rotate(-12deg); }

.gdl-kofi-box {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 24px;
	margin: 24px 0;
	padding: clamp(22px, 3vw, 34px);
	border: 1px solid #ecd7b9;
	border-radius: 22px;
	background: var(--gdl-cream);
	box-shadow: 0 10px 26px rgba(84, 61, 31, 0.07);
}

.gdl-kofi-cup {
	display: grid;
	width: 76px;
	height: 76px;
	place-items: center;
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 8px 22px rgba(78, 55, 33, 0.1);
	font-size: 40px;
}

.gdl-kofi-kicker {
	color: #a64e34 !important;
}

.gdl-kofi-box h3 {
	margin: 0 0 5px !important;
	font-size: clamp(21px, 2vw, 27px) !important;
	color: var(--gdl-blue) !important;
}

.gdl-kofi-box .gdl-kofi-copy > p:last-child {
	margin: 0 !important;
	line-height: 1.55 !important;
	color: var(--gdl-muted) !important;
}

.gdl-kofi-box > a,
.gdl-catalog-card > a,
.gdl-single-game-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	min-height: 48px;
	padding: 12px 18px;
	border-radius: 12px;
	font-weight: 800;
	line-height: 1.2;
	text-decoration: none !important;
	transition: transform 160ms ease, background 160ms ease, box-shadow 160ms ease;
}

.gdl-kofi-box > a {
	white-space: nowrap;
	background: var(--gdl-coral);
	box-shadow: 0 7px 18px rgba(231, 111, 81, 0.22);
	color: #fff !important;
}

.gdl-kofi-box > a:hover,
.gdl-kofi-box > a:focus-visible {
	transform: translateY(-2px);
	background: #ca5b40;
	color: #fff !important;
}

.gdl-catalog-tools {
	display: grid;
	grid-template-columns: minmax(190px, 1fr) minmax(190px, 260px) minmax(190px, 260px) auto;
	align-items: end;
	gap: 12px;
	margin: 26px 0 18px;
	padding: 15px 18px;
	border: 1px solid var(--gdl-line);
	border-radius: 17px;
	background: #fff;
	box-shadow: 0 8px 22px rgba(32, 49, 61, 0.06);
}

.gdl-filter-intro {
	display: grid;
	align-self: center;
	gap: 2px;
}

.gdl-filter-intro strong {
	font-size: 17px;
	color: var(--gdl-blue);
}

.gdl-filter-intro span {
	font-size: 13px;
	color: var(--gdl-muted);
}

.gdl-catalog-tools label {
	display: grid;
	gap: 4px;
	margin: 0;
}

.gdl-catalog-tools label > span {
	font-size: 12px;
	font-weight: 750;
	color: #46616e;
}

.gdl-catalog-tools select {
	width: 100%;
	min-height: 43px;
	margin: 0;
	padding: 7px 36px 7px 11px;
	border: 1px solid #b9cbd2;
	border-radius: 10px;
	background-color: #fff;
	font: inherit;
	font-size: 14px;
	color: var(--gdl-ink);
}

.gdl-catalog-tools select:focus-visible {
	outline: 3px solid rgba(39, 111, 146, 0.22);
	outline-offset: 1px;
	border-color: var(--gdl-blue-2);
}

.gdl-filter-reset {
	min-height: 43px;
	padding: 8px 13px;
	border: 0;
	border-radius: 10px;
	background: #e7f0f3;
	color: var(--gdl-blue);
	font: inherit;
	font-size: 13px;
	font-weight: 750;
	cursor: pointer;
}

.gdl-catalog-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 285px), 1fr));
	gap: clamp(16px, 2vw, 24px);
	margin: 0;
}

.gdl-catalog-card {
	display: flex;
	min-height: 350px;
	flex-direction: column;
	padding: clamp(20px, 2vw, 26px);
	border: 1px solid var(--gdl-line);
	border-radius: 21px;
	background: #fff;
	box-shadow: 0 10px 28px rgba(32, 49, 61, 0.08);
	transition: transform 180ms ease, box-shadow 180ms ease;
}

.gdl-catalog-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 17px 38px rgba(32, 49, 61, 0.13);
}

.gdl-card-topline {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 16px;
}

.gdl-catalog-icon {
	display: grid;
	width: 66px;
	height: 66px;
	place-items: center;
	border-radius: 18px;
	background: linear-gradient(145deg, #fce19b, #f5bd4e);
	box-shadow: inset 0 0 0 1px rgba(97, 68, 12, 0.06);
	font-size: 35px;
}

.gdl-heart-button {
	display: inline-flex;
	min-width: 58px;
	height: 42px;
	align-items: center;
	justify-content: center;
	gap: 5px;
	padding: 4px 10px;
	border: 1px solid #efc9d0;
	border-radius: 999px;
	background: #fff7f8;
	box-shadow: none;
	color: #b5334e;
	font: inherit;
	font-weight: 800;
	cursor: pointer;
	transition: transform 150ms ease, background 150ms ease, border-color 150ms ease;
}

.gdl-heart-button:hover,
.gdl-heart-button:focus-visible {
	transform: scale(1.04);
	border-color: #d85a71;
	background: #ffe9ed;
	outline: none;
}

.gdl-heart-button:focus-visible {
	box-shadow: 0 0 0 3px rgba(216, 90, 113, 0.2);
}

.gdl-heart-button.is-liked {
	border-color: #d84964;
	background: #ffe5ea;
	color: #c22747;
}

.gdl-heart-button.is-saving {
	opacity: 0.65;
}

.gdl-heart-symbol {
	font-size: 25px;
	line-height: 1;
}

.gdl-heart-count {
	font-size: 13px;
}

.gdl-catalog-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 10px;
}

.gdl-catalog-tags span {
	display: inline-block;
	padding: 5px 9px;
	border-radius: 999px;
	background: #eaf4f7;
	font-size: 11px;
	font-weight: 750;
	line-height: 1.2;
	color: #28586d;
}

.gdl-catalog-card h3 {
	margin: 0 0 10px !important;
	font-size: clamp(21px, 1.7vw, 25px) !important;
	line-height: 1.2 !important;
	color: var(--gdl-blue) !important;
}

.gdl-catalog-card > p {
	margin: 0 0 20px !important;
	font-size: 15px !important;
	line-height: 1.58 !important;
	color: var(--gdl-muted) !important;
}

.gdl-catalog-card > a {
	align-self: flex-start;
	margin-top: auto;
	background: var(--gdl-blue);
	box-shadow: 0 7px 18px rgba(23, 63, 95, 0.18);
	color: #fff !important;
}

.gdl-catalog-card > a:hover,
.gdl-catalog-card > a:focus-visible,
.gdl-single-game-button:hover,
.gdl-single-game-button:focus-visible {
	transform: translateY(-2px);
	background: #225f7e;
	color: #fff !important;
}

.gdl-catalog-signature {
	margin: 28px 0 6px !important;
	font-size: 13px !important;
	font-style: italic;
	text-align: center;
	color: var(--gdl-muted) !important;
}

.gdl-heart-status {
	position: fixed;
	right: 18px;
	bottom: 18px;
	z-index: 99999;
	max-width: min(360px, calc(100vw - 36px));
	margin: 0 !important;
	padding: 0;
	border-radius: 11px;
	background: var(--gdl-blue);
	box-shadow: 0 10px 28px rgba(0, 0, 0, 0.22);
	color: #fff !important;
}

.gdl-heart-status:not(:empty) {
	padding: 11px 15px;
}

.gdl-filter-empty,
.gdl-catalog-empty {
	margin: 20px 0;
	padding: 42px 22px;
	border: 2px dashed var(--gdl-line);
	border-radius: 20px;
	background: #fff;
	text-align: center;
}

.gdl-filter-empty > span,
.gdl-catalog-empty > span {
	font-size: 45px;
}

.gdl-filter-empty h3,
.gdl-catalog-empty h3 {
	margin: 7px 0 4px !important;
	color: var(--gdl-blue) !important;
}

.gdl-filter-empty p,
.gdl-catalog-empty p {
	margin: 0 !important;
	color: var(--gdl-muted) !important;
}

.gdl-single-game-button {
	background: #173f5f;
	color: #fff !important;
}

.gdl-shortcode-error {
	padding: 10px 13px;
	border-left: 4px solid #d63638;
	background: #fff0f0;
	color: #7c2527;
}

@media (max-width: 980px) {
	.gdl-catalog-tools {
		grid-template-columns: 1fr 1fr;
	}

	.gdl-filter-intro {
		grid-column: 1 / -1;
		grid-template-columns: 1fr auto;
	}

	.gdl-filter-reset {
		grid-column: 1 / -1;
		justify-self: start;
	}
}

@media (max-width: 760px) {
	.gdl-full-bleed {
		padding: 12px;
	}

	.gdl-catalog-hero {
		min-height: 0;
		padding: 30px 24px;
		border-radius: 20px;
	}

	.gdl-hero-shapes {
		display: none;
	}

	.gdl-kofi-box {
		grid-template-columns: auto 1fr;
		gap: 15px;
	}

	.gdl-kofi-box > a {
		grid-column: 1 / -1;
		justify-self: stretch;
	}

	.gdl-kofi-cup {
		width: 62px;
		height: 62px;
		font-size: 34px;
	}
}

@media (max-width: 560px) {
	.gdl-catalog-tools {
		grid-template-columns: 1fr;
		padding: 14px;
	}

	.gdl-filter-intro,
	.gdl-filter-reset {
		grid-column: auto;
	}

	.gdl-filter-intro {
		grid-template-columns: 1fr auto;
	}

	.gdl-catalog-card {
		min-height: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gdl-catalog-card,
	.gdl-catalog-card > a,
	.gdl-kofi-box > a,
	.gdl-heart-button,
	.gdl-single-game-button {
		transition: none;
	}
}

/* Redesign ludoteca 1.2 — mantiene intatti contenuti e collegamenti. */
.gdl-full-bleed {
	--gdl-deep: #0d3b52;
	--gdl-coral: #ef6f61;
	--gdl-yellow: #ffc857;
	padding: clamp(14px, 2.2vw, 34px);
	font-family: inherit;
}

.gdl-catalog { width: min(100%, 1440px); }
.gdl-catalog-hero { min-height: 430px; padding: clamp(45px, 6vw, 82px); border-radius: 36px; background: linear-gradient(125deg, var(--gdl-deep), #1f7284); }
.gdl-hero-copy { max-width: 790px; }
.gdl-catalog-hero h2 { font-size: clamp(45px, 5.4vw, 76px) !important; letter-spacing: -.035em; }
.gdl-hero-shapes span:nth-child(1) { right: 8%; top: 18%; width: 88px; height: 88px; }
.gdl-hero-shapes span:nth-child(2) { right: 20%; bottom: 15%; width: 82px; height: 82px; }
.gdl-hero-shapes span:nth-child(3) { right: 5%; bottom: 8%; width: 64px; height: 64px; }

.gdl-kofi-box { margin: 34px 2% 0; padding: 28px 32px; border-radius: 22px; }
.gdl-kofi-cup { width: 64px; height: 64px; border-radius: 17px; font-size: 31px; }

.gdl-paths { display: grid; grid-template-columns: 1.1fr 1fr 1fr; gap: 22px; align-items: end; padding: 58px 2% 42px; }
.gdl-paths-heading p,.gdl-library-heading p { margin: 0 0 10px !important; color: var(--gdl-coral) !important; font-size: 12px !important; font-weight: 800; letter-spacing: .16em; }
.gdl-paths-heading h2,.gdl-library-heading h2 { margin: 0 !important; color: var(--gdl-deep) !important; font-size: clamp(31px,3vw,45px) !important; line-height: 1.05 !important; }
.gdl-path-card { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 16px; min-height: 108px; padding: 22px; border: 0; border-radius: 20px; color: var(--gdl-ink); text-align: left; cursor: pointer; transition: transform .2s,box-shadow .2s; }
.gdl-path-card:hover,.gdl-path-card:focus-visible { transform: translateY(-4px); box-shadow: 0 14px 34px rgba(26,72,87,.12); outline: none; }
.gdl-path-primary { background: #fff0c8; }
.gdl-path-secondary { background: #e9e5ff; }
.gdl-path-icon { display: grid; width: 63px; height: 63px; place-items: center; border-radius: 17px; background: #fff; font-size: 20px; font-weight: 800; }
.gdl-path-card strong { display: block; font-size: 19px; }
.gdl-path-card small { display: block; margin-top: 4px; color: var(--gdl-muted); font-size: 14px; }
.gdl-path-card b { font-size: 26px; }

.gdl-library-heading { display: flex; align-items: end; justify-content: space-between; padding: 22px 2% 6px; scroll-margin-top: 110px; }
.gdl-catalog-tools { position: sticky; top: 12px; z-index: 8; grid-template-columns: minmax(170px,.8fr) minmax(240px,1.3fr) repeat(3,minmax(175px,.85fr)) auto; margin: 24px 2% 32px; padding: 18px; border-radius: 22px; }
.gdl-catalog-search { display: flex !important; min-height: 43px; align-items: center; gap: 9px; padding: 7px 12px; border: 1px solid #b9cbd2; border-radius: 11px; }
.gdl-catalog-search > span { font-size: 21px !important; }
.gdl-catalog-search input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; font: inherit; color: var(--gdl-ink); }

.gdl-catalog-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 26px; padding: 0 2%; }
.gdl-catalog-card { position: relative; min-height: 490px; overflow: hidden; padding: 0 23px 23px; border-radius: 25px; }
.gdl-card-topline { height: 180px; align-items: center; justify-content: center; margin: 0 -23px 22px; padding: 18px; background: linear-gradient(135deg,#56b67a,#a6d86c); }
.gdl-catalog-card:nth-child(10n+2) .gdl-card-topline { background: linear-gradient(135deg,#e99255,#f5c760); }
.gdl-catalog-card:nth-child(10n+3) .gdl-card-topline { background: linear-gradient(135deg,#725ed1,#aa78de); }
.gdl-catalog-card:nth-child(10n+4) .gdl-card-topline { background: linear-gradient(135deg,#246990,#48b3c1); }
.gdl-catalog-card:nth-child(10n+5) .gdl-card-topline { background: linear-gradient(135deg,#ee7062,#f3a56d); }
.gdl-catalog-card:nth-child(10n+6) .gdl-card-topline { background: linear-gradient(135deg,#4979c5,#72c7ae); }
.gdl-catalog-card:nth-child(10n+7) .gdl-card-topline { background: linear-gradient(135deg,#663c9e,#dc709f); }
.gdl-catalog-card:nth-child(10n+8) .gdl-card-topline { background: linear-gradient(135deg,#e2a93a,#f2d27c); }
.gdl-catalog-card:nth-child(10n+9) .gdl-card-topline { background: linear-gradient(135deg,#3779a4,#77bdd5); }
.gdl-catalog-card:nth-child(10n+10) .gdl-card-topline { background: linear-gradient(135deg,#d86458,#e5a144); }
.gdl-catalog-icon { width: auto; height: auto; border: 0; background: transparent; box-shadow: none; font-size: 72px; filter: drop-shadow(0 10px 3px rgba(0,0,0,.1)); }
.gdl-heart-button { position: absolute; top: 195px; right: 20px; z-index: 2; }
.gdl-catalog-tags { min-height: 32px; padding-right: 70px; }
.gdl-catalog-tags span:first-child { position: absolute; top: 135px; left: 18px; z-index: 2; padding: 7px 11px; background: rgba(13,59,82,.55); color: #fff; }
.gdl-catalog-tags span:nth-child(2) { background: #eaf4f7; color: #28586d; }
.gdl-catalog-card h3 { font-size: 26px !important; line-height: 1.08 !important; }
.gdl-catalog-card > p { margin-bottom: 24px !important; }
.gdl-catalog-card > a { background: var(--gdl-deep); }

@media (max-width: 1100px) {
	.gdl-catalog-tools { position: static; grid-template-columns: 1fr 1fr; }
	.gdl-filter-intro,.gdl-catalog-search { grid-column: 1/-1; }
	.gdl-catalog-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px) {
	.gdl-catalog-hero { min-height: 500px; padding: 48px 25px; }
	.gdl-kofi-box { margin: 28px 0 0; padding: 24px; }
	.gdl-paths { grid-template-columns: 1fr; padding-top: 48px; }
	.gdl-library-heading { padding-top: 12px; }
	.gdl-catalog-tools { grid-template-columns: 1fr; margin-inline: 0; }
	.gdl-filter-intro,.gdl-catalog-search { grid-column: auto; }
	.gdl-catalog-grid { grid-template-columns: 1fr; padding: 0; }
}

/* Allineamento visivo al mockup: hero illustrata, fascia Ko-fi e filtri compatti. */
.gdl-catalog-hero { position: relative; overflow: hidden; }
.gdl-hero-copy { position: relative; z-index: 3; max-width: 61%; }
.gdl-hero-action { display: inline-flex; align-items: center; gap: 12px; margin-top: 26px; padding: 13px 19px; border-radius: 12px; background: var(--gdl-yellow); color: var(--gdl-deep) !important; font-weight: 800; text-decoration: none !important; box-shadow: 0 8px 20px rgba(0,0,0,.13); transition: transform .2s,box-shadow .2s; }
.gdl-hero-action:hover,.gdl-hero-action:focus-visible { transform: translateY(-2px); box-shadow: 0 11px 24px rgba(0,0,0,.18); color: var(--gdl-deep) !important; }
.gdl-hero-shapes { display: none; }
.gdl-hero-robot { position: absolute; z-index: 2; top: 50%; right: 4%; width: 35%; aspect-ratio: 1; transform: translateY(-50%); }
.gdl-orbit { position: absolute; inset: 10%; border: 2px solid rgba(255,255,255,.22); border-radius: 50%; transform: rotate(-18deg); }
.gdl-orbit-two { inset: 22% 0; transform: rotate(34deg); }
.gdl-planet { position: absolute; right: 3%; top: 17%; display: grid; width: 56px; height: 56px; place-items: center; border-radius: 50%; background: var(--gdl-yellow); color: var(--gdl-deep); font-size: 24px; font-weight: 800; box-shadow: 0 8px 0 rgba(0,0,0,.08); }
.gdl-star { position: absolute; color: #fff; font-size: 25px; }
.gdl-star-one { left: 4%; top: 20%; }.gdl-star-two { right: 12%; bottom: 18%; color: var(--gdl-yellow); }
.gdl-robot { position: absolute; left: 50%; top: 50%; width: 155px; transform: translate(-50%,-48%) rotate(3deg); filter: drop-shadow(0 18px 8px rgba(0,0,0,.15)); }
.gdl-antenna { position: absolute; left: 50%; top: -37px; width: 5px; height: 40px; border-radius: 5px; background: #dcecf0; transform: translateX(-50%); }
.gdl-antenna::before { content: ''; position: absolute; left: 50%; top: -9px; width: 18px; height: 18px; border-radius: 50%; background: var(--gdl-coral); transform: translateX(-50%); }
.gdl-robot-face { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 34px; padding: 35px 26px 42px; border: 7px solid #dbe9ec; border-radius: 38px; background: #f8fbfb; }
.gdl-robot-face b { display: block; width: 18px; height: 22px; justify-self: center; border-radius: 50%; background: var(--gdl-deep); }
.gdl-robot-face em { position: absolute; left: 50%; bottom: 10px; transform: translateX(-50%); color: var(--gdl-coral); font-size: 28px; font-style: normal; font-weight: 900; }
.gdl-robot-body { width: 115px; margin: -3px auto 0; padding: 24px 0; border: 7px solid #dbe9ec; border-radius: 12px 12px 30px 30px; background: var(--gdl-coral); color: #fff; text-align: center; font-weight: 900; letter-spacing: .25em; }
.gdl-math-chip { position: absolute; padding: 8px 12px; border-radius: 9px; background: #fff; color: var(--gdl-deep); font-size: 14px; font-weight: 800; box-shadow: 0 8px 18px rgba(0,0,0,.12); }
.gdl-chip-one { left: 0; bottom: 20%; transform: rotate(-8deg); }.gdl-chip-two { right: 2%; bottom: 3%; transform: rotate(7deg); }

.gdl-kofi-box { background: var(--gdl-deep); color: #fff; box-shadow: 0 16px 38px rgba(13,59,82,.18); }
.gdl-kofi-box h3,.gdl-kofi-box p { color: #fff !important; }
.gdl-kofi-eyebrow { color: var(--gdl-yellow) !important; }
.gdl-kofi-box > a { background: var(--gdl-yellow); color: var(--gdl-deep) !important; }
.gdl-kofi-box > a:hover,.gdl-kofi-box > a:focus-visible { background: #ffd675; color: var(--gdl-deep) !important; }
.gdl-kofi-cup { background: #fff; }

.gdl-school-filter { display: none !important; }
.gdl-catalog-tools { grid-template-columns: minmax(170px,.8fr) minmax(240px,1.3fr) repeat(2,minmax(175px,.85fr)) auto; }
.gdl-library-count { padding: 8px 12px; border-radius: 999px; background: #eaf4f7; color: var(--gdl-deep); font-size: 13px; white-space: nowrap; }
.gdl-card-duration { margin-left: auto; background: transparent !important; color: var(--gdl-muted) !important; font-size: 12px !important; }

@media (max-width: 920px) {
	.gdl-hero-copy { max-width: 72%; }
	.gdl-hero-robot { right: -9%; opacity: .68; }
}
@media (max-width: 760px) {
	.gdl-hero-copy { max-width: none; }
	.gdl-hero-robot { top: auto; right: -8%; bottom: -20%; width: 66%; transform: none; opacity: .35; }
	.gdl-library-heading { align-items: flex-start; gap: 16px; }
	.gdl-library-count { margin-top: 3px; }
}
@media (max-width: 460px) {
	.gdl-library-heading { display: block; }
	.gdl-library-count { display: inline-block; margin-top: 14px; }
}

/* Versione 1.0.2: proporzioni, immagini e colori fedeli al mockup originale. */
.gdl-full-bleed { padding: 0 32px 90px; background: #f7fbfa; color: #17384b; }
.gdl-catalog { width: min(100%,1440px); margin: 0 auto; }
.gdl-catalog-hero { min-height: 540px; padding: 70px 6%; display: grid; grid-template-columns: 1.25fr .75fr; align-items: center; border-radius: 36px; box-shadow: 0 14px 34px rgba(26,72,87,.10); color: #fff; }
.gdl-hero-copy { max-width: none; }
.gdl-catalog-hero h2 { color: #fff !important; font-size: clamp(48px,5.5vw,80px) !important; line-height: 1.02 !important; margin-bottom: 24px !important; }
.gdl-hero-copy > p:last-of-type { max-width: 680px; color: #e3f2f2 !important; font-size: 22px !important; line-height: 1.48 !important; }
.gdl-hero-action { padding: 16px 23px; border-radius: 14px; }
.gdl-hero-robot { position: relative; inset: auto; width: 100%; height: 390px; aspect-ratio: auto; transform: none; opacity: 1; }
.gdl-orbit { inset: 30px -80px 10px 10px; }.gdl-orbit-two { inset: 80px -10px 60px 80px; }
.gdl-planet { right: 0; top: 0; width: 82px; height: 82px; color: #0d3b52; font-size: 35px; box-shadow: 0 0 0 14px rgba(255,200,87,.12); }
.gdl-robot { left: 28%; top: 23%; width: 168px; transform: rotate(4deg); }
.gdl-robot-body { width: 130px; color: #ffb3a9; font-size: 32px; }.gdl-chip-one { left: 2%; top: 18%; bottom: auto; }.gdl-chip-two { right: 2%; bottom: 8%; }
.gdl-math-chip { border: 1px solid rgba(255,255,255,.35); background: rgba(255,255,255,.12); color: #fff; backdrop-filter: blur(7px); }

.gdl-kofi-box { margin: 56px 2% 0; padding: 28px 32px; grid-template-columns: 64px minmax(0,1fr) auto; }
.gdl-paths { padding: 48px 2% 80px; }.gdl-library-heading { padding: 40px 2% 0; margin-bottom: 30px; }
.gdl-paths-heading h2,.gdl-library-heading h2,.gdl-catalog-card h3 { color: #17384b !important; }
.gdl-filter-intro { display: none !important; }
.gdl-catalog-tools { position: sticky; top: 10px; display: grid; grid-template-columns: minmax(330px,1fr) minmax(220px,.75fr) minmax(220px,.75fr) auto; gap: 20px; margin: 0 2% 32px; padding: 20px; border-radius: 22px; }
.gdl-catalog-search { min-width: 330px; padding: 10px 14px; border-radius: 13px; }

.gdl-catalog-grid { gap: 26px; }.gdl-catalog-card { min-height: 0; padding: 0; border: 1px solid #d9e7e8; border-radius: 25px; box-shadow: 0 10px 30px rgba(23,56,75,.06); }
.gdl-card-topline { height: 180px; min-height: 180px; margin: 0; padding: 0; }
.gdl-card-topline::before,.gdl-card-topline::after { content: ''; position: absolute; border-radius: 50%; background: rgba(255,255,255,.2); }.gdl-card-topline::before { width: 160px; height: 160px; left: -40px; top: -70px; }.gdl-card-topline::after { width: 100px; height: 100px; right: -20px; top: 110px; }
.gdl-catalog-icon { position: relative; z-index: 1; font-size: 72px; }.gdl-catalog-icon img.emoji { width: 72px !important; height: 72px !important; }
.gdl-catalog-tags { display: flex; align-items: center; gap: 10px; min-height: 51px; margin: 0; padding: 16px 23px 0; }
.gdl-catalog-tags span:first-child { position: absolute; left: 18px; top: 139px; z-index: 2; padding: 6px 10px; border-radius: 9px; background: rgba(13,59,82,.38); color: #fff !important; font-size: 13px; }
.gdl-catalog-tags span:nth-child(2) { overflow: hidden; max-width: 62%; padding: 0; background: transparent; color: #5f747f !important; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }.gdl-card-duration { margin-left: auto; padding: 0 !important; color: #5f747f !important; }
.gdl-catalog-card h3 { margin: 13px 23px 12px !important; font-size: 26px !important; line-height: 1.05 !important; }.gdl-catalog-card > p { margin: 0 23px 78px !important; color: #5f747f !important; font-size: 16px !important; line-height: 1.42 !important; }
.gdl-catalog-card > a { position: absolute; left: 23px; bottom: 23px; display: flex; align-items: center; gap: 14px; margin: 0; padding: 0; background: transparent; box-shadow: none; color: #0d3b52 !important; font-weight: 800; }.gdl-catalog-card > a span { display: grid; width: 31px; height: 31px; place-items: center; border-radius: 50%; background: #ffc857; }.gdl-catalog-card > a:hover,.gdl-catalog-card > a:focus-visible { transform: none; background: transparent; color: #0d3b52 !important; }
.gdl-heart-button { position: absolute; top: auto; right: 23px; bottom: 22px; min-width: 57px; }

@media (max-width:1000px) { .gdl-catalog-hero { grid-template-columns: 1fr; min-height: 620px; }.gdl-hero-copy { max-width: 72%; }.gdl-hero-robot { position: absolute; width: 40%; right: 0; bottom: -15%; opacity: .7; }.gdl-paths { grid-template-columns: 1fr 1fr; }.gdl-paths-heading { grid-column: 1/-1; }.gdl-catalog-tools { position: static; grid-template-columns: 1fr 1fr; }.gdl-catalog-search { grid-column: 1/-1; min-width: 0; } }
@media (max-width:680px) { .gdl-full-bleed { padding: 0 14px 70px; }.gdl-catalog-hero { min-height: 560px; padding: 48px 25px; border-radius: 24px; align-items: start; }.gdl-hero-copy { max-width: none; }.gdl-catalog-hero h2 { font-size: 45px !important; }.gdl-hero-copy > p:last-of-type { font-size: 18px !important; }.gdl-hero-robot { width: 72%; right: -18%; bottom: -18%; }.gdl-kofi-box { margin: 32px 0 0; padding: 24px; grid-template-columns: 52px 1fr; }.gdl-kofi-box > a { grid-column: 1/-1; }.gdl-paths { grid-template-columns: 1fr; padding: 42px 2% 55px; }.gdl-paths-heading { grid-column: auto; }.gdl-library-heading { display: block; }.gdl-library-count { display: inline-block; margin-top: 14px; }.gdl-catalog-tools { grid-template-columns: 1fr; margin-inline: 0; }.gdl-catalog-search { grid-column: auto; } }

/* Versione mobile compatta: non invade il logo e mantiene leggibile l'hero. */
@media (max-width:680px) {
	.gdl-full-bleed { padding: 18px 14px 64px; }
	.gdl-catalog-hero { min-height: 455px; padding: 34px 22px; border-radius: 22px; }
	.gdl-catalog-eyebrow { margin-bottom: 10px !important; font-size: 10px !important; }
	.gdl-catalog-hero h2 { max-width: 330px; margin-bottom: 17px !important; font-size: clamp(31px,9.6vw,38px) !important; line-height: 1.04 !important; }
	.gdl-hero-copy > p:last-of-type { max-width: 92%; font-size: 15px !important; line-height: 1.5 !important; }
	.gdl-hero-action { margin-top: 20px; padding: 12px 16px; font-size: 14px; }
	.gdl-hero-robot { right: -12%; bottom: -10%; width: 52%; height: 260px; opacity: .28; pointer-events: none; }
	.gdl-robot { transform: scale(.76) rotate(4deg); transform-origin: center; }
	.gdl-planet { width: 58px; height: 58px; font-size: 25px; }
}
@media (max-width:380px) {
	.gdl-catalog-hero { min-height: 430px; padding: 30px 19px; }
	.gdl-catalog-hero h2 { font-size: 30px !important; }
	.gdl-hero-copy > p:last-of-type { font-size: 14px !important; }
	.gdl-hero-robot { width: 48%; opacity: .2; }
}

/* Versione 1.0.4: mobile più leggero e Ko-fi meno invasivo. */
@media (max-width:680px) {
	.gdl-full-bleed { padding-top: 14px; }
	.gdl-catalog-hero { min-height: 390px; padding: 30px 21px; background: linear-gradient(135deg,#164f68 0%,#328496 100%); }
	.gdl-catalog-hero h2 { max-width: 300px; font-size: clamp(29px,8.8vw,35px) !important; }
	.gdl-hero-copy > p:last-of-type { max-width: 88%; font-size: 14px !important; line-height: 1.45 !important; }
	.gdl-hero-action { margin-top: 16px; padding: 10px 14px; }
	.gdl-hero-robot { right: -13%; bottom: -20%; width: 44%; height: 220px; opacity: .17; }

	.gdl-kofi-box { margin-top: 18px; padding: 18px; grid-template-columns: 46px 1fr; gap: 13px; border: 1px solid #f0dfb7; border-radius: 18px; background: #fff8e9; box-shadow: 0 8px 22px rgba(23,56,75,.07); color: #17384b; }
	.gdl-kofi-cup { width: 46px; height: 46px; border-radius: 13px; background: #fff; font-size: 24px; }
	.gdl-kofi-box h3 { margin-bottom: 4px !important; color: #17384b !important; font-size: 20px !important; line-height: 1.18 !important; }
	.gdl-kofi-box p { color: #5f747f !important; font-size: 13px !important; line-height: 1.45 !important; }
	.gdl-kofi-box .gdl-kofi-eyebrow,.gdl-kofi-box .gdl-kofi-kicker { color: #ef6f61 !important; font-size: 9px !important; }
	.gdl-kofi-box > a { grid-column: 1/-1; justify-self: start; margin-top: 2px; padding: 10px 14px; border-radius: 11px; background: #ef6f61; color: #fff !important; font-size: 13px; }
	.gdl-kofi-box > a:hover,.gdl-kofi-box > a:focus-visible { background: #d95e52; color: #fff !important; }
}
@media (max-width:380px) {
	.gdl-catalog-hero { min-height: 365px; padding: 27px 18px; }
	.gdl-catalog-hero h2 { font-size: 28px !important; }
	.gdl-hero-robot { display: none; }
	.gdl-kofi-box { padding: 16px; }
}

/* Versione 1.0.5: riquadri più compatti e gerarchia cromatica più leggera. */
.gdl-catalog-hero { min-height: 410px; padding: 48px 5%; background: linear-gradient(125deg,#174b61 0%,#2f8290 100%); }
.gdl-catalog-hero h2 { max-width: 760px; color: #fff8e9 !important; font-size: clamp(43px,4.8vw,66px) !important; }
.gdl-catalog-eyebrow { color: #ffd06b !important; }
.gdl-hero-copy > p:last-of-type { color: #d9f0ef !important; font-size: 19px !important; }
.gdl-hero-robot { height: 310px; transform: scale(.88); }

.gdl-kofi-box { width: min(88%,1120px); margin: 28px auto 0; padding: 22px 26px; grid-template-columns: 56px minmax(0,1fr) auto; gap: 18px; border: 1px solid #efdfbd; border-radius: 19px; background: #fff8e9; box-shadow: 0 8px 24px rgba(23,56,75,.06); color: #17384b; }
.gdl-kofi-cup { width: 56px; height: 56px; border-radius: 15px; background: #fff; font-size: 28px; }
.gdl-kofi-box h3 { margin-bottom: 3px !important; color: #24566a !important; font-size: 24px !important; }
.gdl-kofi-box p { color: #657b85 !important; font-size: 14px !important; }
.gdl-kofi-box .gdl-kofi-eyebrow,.gdl-kofi-box .gdl-kofi-kicker { color: #df675b !important; }
.gdl-kofi-box > a { margin: 0; padding: 11px 16px; border-radius: 11px; background: #ef6f61; color: #fff !important; font-size: 14px; }
.gdl-kofi-box > a:hover,.gdl-kofi-box > a:focus-visible { background: #d95e52; color: #fff !important; }

.gdl-paths { padding-top: 42px; }
.gdl-paths-heading h2,.gdl-library-heading h2,.gdl-catalog-card h3 { color: #24566a !important; }
.gdl-paths-heading p,.gdl-library-heading p { color: #df675b !important; }
.gdl-catalog-card > p,.gdl-path-card small,.gdl-library-count { color: #657b85 !important; }

@media (max-width:1000px) {
	.gdl-catalog-hero { min-height: 440px; }
	.gdl-hero-robot { height: 260px; }
	.gdl-kofi-box { width: 92%; }
}
@media (max-width:680px) {
	.gdl-catalog-hero { min-height: 330px; padding: 26px 20px; }
	.gdl-catalog-hero h2 { max-width: 280px; margin-bottom: 13px !important; font-size: clamp(27px,8.2vw,32px) !important; }
	.gdl-hero-copy > p:last-of-type { max-width: 90%; font-size: 13px !important; line-height: 1.42 !important; }
	.gdl-hero-action { margin-top: 13px; padding: 9px 13px; font-size: 13px; }
	.gdl-hero-robot { right: -15%; bottom: -25%; width: 40%; height: 180px; opacity: .13; }
	.gdl-kofi-box { width: 92%; margin-top: 14px; padding: 15px; grid-template-columns: 42px 1fr; gap: 11px; border-radius: 16px; }
	.gdl-kofi-cup { width: 42px; height: 42px; border-radius: 11px; font-size: 21px; }
	.gdl-kofi-box h3 { font-size: 18px !important; }
	.gdl-kofi-box p { font-size: 12px !important; }
	.gdl-kofi-box > a { padding: 9px 12px; font-size: 12px; }
	.gdl-paths { padding-top: 34px; }
}
@media (max-width:380px) {
	.gdl-catalog-hero { min-height: 310px; }
	.gdl-kofi-box { width: 94%; }
}

/* Hero ulteriormente compatta: lo sfondo colorato occupa meno spazio. */
.gdl-catalog-hero { min-height: 330px; padding: 34px 5%; }
.gdl-catalog-hero h2 { margin-bottom: 17px !important; font-size: clamp(38px,4.2vw,56px) !important; }
.gdl-hero-copy > p:last-of-type { font-size: 17px !important; }
.gdl-hero-action { margin-top: 17px; padding: 11px 16px; }
.gdl-hero-robot { height: 245px; transform: scale(.76); }
@media (max-width:1000px) {
	.gdl-catalog-hero { min-height: 350px; }
	.gdl-hero-robot { height: 210px; }
}
@media (max-width:680px) {
	.gdl-catalog-hero { min-height: 260px; padding: 22px 18px; }
	.gdl-catalog-hero h2 { max-width: 260px; margin-bottom: 10px !important; font-size: clamp(25px,7.7vw,29px) !important; }
	.gdl-hero-copy > p:last-of-type { max-width: 91%; font-size: 12px !important; line-height: 1.4 !important; }
	.gdl-hero-action { margin-top: 10px; padding: 8px 11px; font-size: 12px; }
	.gdl-hero-robot { right: -17%; bottom: -34%; width: 35%; height: 145px; opacity: .09; }
}
@media (max-width:380px) {
	.gdl-catalog-hero { min-height: 245px; }
	.gdl-hero-robot { display: none; }
}

/* Versione 1.0.6: separazione dall'header mobile e robot sempre visibile. */
@media (max-width:680px) {
	.gdl-full-bleed { padding-top: 82px; }
	.gdl-catalog-hero { min-height: 285px; }
	.gdl-hero-copy { max-width: 76%; }
	.gdl-hero-robot { display: block; right: -4%; bottom: -9%; width: 42%; height: 190px; opacity: .72; }
	.gdl-robot { transform: scale(.58) rotate(4deg); transform-origin: center; }
	.gdl-orbit { opacity: .55; }
	.gdl-math-chip { font-size: 10px; padding: 6px 8px; }
	.gdl-planet { width: 46px; height: 46px; font-size: 20px; }
}
@media (max-width:380px) {
	.gdl-full-bleed { padding-top: 76px; }
	.gdl-catalog-hero { min-height: 275px; }
	.gdl-hero-copy { max-width: 79%; }
	.gdl-hero-robot { display: block; right: -7%; bottom: -7%; width: 40%; height: 170px; opacity: .66; }
}
