:root {
  --cg-ink: #0f172a;
  --cg-ink-2: #17243a;
  --cg-muted: #526173;
  --cg-subtle: #768398;
  --cg-line: #dbe5ef;
  --cg-line-soft: #e8eef6;
  --cg-surface: #f8fafc;
  --cg-surface-blue: #eef6ff;
  --cg-panel: #ffffff;
  --cg-blue: #0284c7;
  --cg-blue-strong: #2563eb;
  --cg-blue-dark: #0b3b69;
  --cg-green: #10b981;
  --cg-terracotta: #ea580c;
  --cg-warm: #fff7ed;
  --cg-radius-sm: 8px;
  --cg-radius: 8px;
  --cg-radius-lg: 18px;
  --cg-shadow: 0 16px 45px rgba(15, 35, 62, 0.08);
  --cg-shadow-soft: 0 8px 24px rgba(15, 35, 62, 0.06);
  --cg-font-body: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --cg-font-display: "Plus Jakarta Sans", "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

html {
  scroll-behavior: smooth;
}

body {
  background: var(--cg-surface);
  color: var(--cg-ink);
  font-family: var(--cg-font-body);
  letter-spacing: 0;
}

body .wp-site-blocks {
  overflow-x: clip;
  background:
    radial-gradient(circle at 1px 1px, rgba(2, 132, 199, 0.16) 1px, transparent 0) 0 0 / 28px 28px,
    linear-gradient(180deg, #fbfdff 0%, var(--cg-surface) 38%, #ffffff 100%);
}

.wp-block-site-title,
.wp-block-site-title a,
h1,
h2,
h3,
h4 {
  font-family: var(--cg-font-display);
  letter-spacing: 0;
}

.wp-block-site-title a {
  color: var(--cg-ink) !important;
  font-weight: 800;
}

.cg-site-logo {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  line-height: 1;
  text-decoration: none !important;
}

.cg-site-logo img {
  display: block;
  width: auto;
  height: auto;
  object-fit: contain;
}

.cg-site-logo-header img {
  width: clamp(168px, 18vw, 244px);
}

.cg-site-logo-footer {
  margin-bottom: 12px;
}

.cg-site-logo-footer img {
  width: min(260px, 100%);
}

.wp-block-navigation a {
  font-family: var(--cg-font-body);
  font-weight: 650;
}

body .wp-site-blocks > header.wp-block-template-part {
  width: min(100% - 88px, 1180px);
  margin: 0 auto;
}

body .wp-site-blocks > header.wp-block-template-part > .wp-block-group.alignfull {
  width: 100%;
  margin-right: 0 !important;
  margin-left: 0 !important;
}

body .wp-site-blocks > header.wp-block-template-part .has-global-padding {
  padding-right: 0 !important;
  padding-left: 0 !important;
}

body .wp-site-blocks > header.wp-block-template-part .wp-block-group.alignwide {
  width: 100%;
  max-width: none !important;
  padding-top: 14px !important;
  padding-bottom: 14px !important;
}

.wp-block-navigation {
  max-width: 100%;
}

.wp-block-navigation .cg-main-menu {
  align-items: center;
  gap: 8px 18px;
}

.wp-block-navigation .cg-main-menu a {
  color: var(--cg-ink);
  font-size: 0.95rem;
  line-height: 1.2;
  text-decoration: none;
}

.wp-block-navigation .cg-main-menu a:hover {
  color: var(--cg-blue);
  text-decoration: none;
}

.wp-block-navigation .cg-menu-cta a {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 18px !important;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--cg-blue), var(--cg-blue-strong));
  box-shadow: 0 12px 26px rgba(37, 99, 235, 0.2);
  color: #ffffff !important;
  font-weight: 800;
  white-space: nowrap;
}

.wp-block-navigation .cg-menu-cta a:hover {
  transform: translateY(-1px);
  color: #ffffff !important;
}

.wp-block-navigation .cg-menu-lang a {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 34px;
  min-width: 34px;
  min-height: 34px;
  padding: 0 !important;
  border: 1px solid transparent;
  border-radius: 999px;
  background: transparent;
  color: var(--cg-ink) !important;
  font-size: 1.05rem;
  font-weight: 850;
  box-shadow: none;
}

.wp-block-navigation .cg-menu-lang.is-active a {
  border-color: rgba(14, 165, 233, 0.26);
  background: #eaf7ff;
  color: #006194 !important;
  box-shadow: 0 5px 14px rgba(14, 165, 233, 0.1);
}

.wp-block-navigation .cg-menu-flag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.wp-block-navigation .cg-menu-flag img {
  display: block;
  width: 24px !important;
  height: 16px !important;
  margin: 0 !important;
  border-radius: 3px;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.18);
}

.wp-block-navigation .cg-menu-lang-label {
  display: none;
}

.wp-block-navigation__responsive-container-open {
  min-width: 42px;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--cg-line-soft);
  border-radius: 999px;
  background: #ffffff;
  box-shadow: var(--cg-shadow-soft);
}

.cg-section,
.cg-home-hero,
.cg-service-page,
.cg-search-page {
  width: min(100% - 40px, 1280px);
}

.cg-kicker,
.cg-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  margin: 0 0 16px;
  padding: 7px 12px;
  border: 1px solid rgba(2, 132, 199, 0.18);
  border-radius: 999px;
  background: #e7f5ff;
  color: #006194;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0;
  line-height: 1.2;
  text-transform: uppercase;
}

.cg-home-hero-image {
  border: 1px solid rgba(2, 132, 199, 0.12);
  border-radius: var(--cg-radius-lg);
  box-shadow: var(--cg-shadow);
}

.cg-home-hero h1,
.cg-service-page h1,
.cg-search-page h1,
.cg-cognome h1,
.cg-comune h1,
.cg-provincia h1,
.cg-regione h1 {
  color: var(--cg-ink);
  font-family: var(--cg-font-display);
  font-weight: 800;
}

.cg-home-hero-image h1,
.cg-home-hero-image .cg-lede {
  color: #ffffff;
}

.cg-home-hero-image .cg-kicker {
  color: #dff6ff;
  background: rgba(2, 132, 199, 0.22);
  border-color: rgba(255, 255, 255, 0.24);
}

.cg-lede {
  color: var(--cg-muted);
}

.cg-search {
  position: relative;
  min-width: 0;
}

.cg-search-box {
  overflow: visible;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  margin: 26px auto;
  padding: 24px;
  border: 1px solid rgba(14, 165, 233, 0.42);
  border-radius: 22px;
  background:
    radial-gradient(circle at top left, rgba(255, 255, 255, 0.86), rgba(255, 255, 255, 0) 34%),
    linear-gradient(135deg, #dff4ff 0%, #bae8ff 48%, #e7f7ff 100%);
  box-shadow: 0 22px 54px rgba(2, 132, 199, 0.14);
}

.cg-search-box form {
  margin: 0;
  min-width: 0;
}

.cg-search input[type="search"],
.cg-contact-form input,
.cg-contact-form select,
.cg-contact-form textarea {
  border: 1px solid var(--cg-line) !important;
  border-radius: 14px !important;
  background: #ffffff !important;
  box-shadow: 0 8px 22px rgba(15, 35, 62, 0.05);
  color: var(--cg-ink);
  font-family: var(--cg-font-body);
}

.cg-search-box input[type="search"] {
  box-sizing: border-box;
  max-width: 100%;
  min-height: 60px;
  padding: 0 20px !important;
  border-color: rgba(2, 132, 199, 0.24) !important;
  border-radius: 16px !important;
  box-shadow: 0 14px 32px rgba(15, 35, 62, 0.1);
  font-size: 1rem;
}

.cg-search-box:focus-within {
  border-color: rgba(2, 132, 199, 0.58);
  box-shadow: 0 24px 58px rgba(2, 132, 199, 0.2);
}

.cg-blog-side-card .cg-search-box {
  margin: 14px 0 0;
  padding: 14px;
  border-radius: 18px;
  box-shadow: 0 14px 32px rgba(2, 132, 199, 0.12);
}

.cg-blog-side-card .cg-search-box input[type="search"] {
  min-height: 50px;
  box-shadow: 0 8px 20px rgba(15, 35, 62, 0.08);
}

.cg-suggest-wrap {
  position: absolute;
  inset-inline: 0;
  top: 8px;
  z-index: 30;
}

.cg-suggest-list {
  overflow: hidden;
  margin-top: 8px;
  border: 1px solid rgba(148, 163, 184, 0.26);
  border-radius: 16px;
  background: #ffffff;
  box-shadow: 0 22px 46px rgba(15, 35, 62, 0.14);
}

.cg-suggest-item {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-height: 50px;
  padding: 9px 14px;
  border-top: 1px solid rgba(226, 232, 240, 0.8);
  color: var(--cg-ink);
  text-decoration: none;
}

.cg-suggest-item:first-child {
  border-top: 0;
}

.cg-suggest-item:hover,
.cg-suggest-item:focus {
  outline: 0;
  background: rgba(239, 246, 255, 0.82);
}

.cg-suggest-mark {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 30px;
  border-radius: 10px;
}

.cg-suggest-mark .dashicons {
  width: 18px;
  height: 18px;
  font-size: 18px;
  line-height: 18px;
}

.cg-suggest-name {
  min-width: 0;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.cg-suggest-kind {
  justify-self: end;
  border-radius: 999px;
  padding: 4px 9px;
  font-size: 0.76rem;
  font-weight: 800;
  color: #475569;
  background: rgba(241, 245, 249, 0.9);
}

.cg-suggest-cognome {
  background: rgba(239, 246, 255, 0.72);
}

.cg-suggest-cognome .cg-suggest-mark,
.cg-suggest-cognome .cg-suggest-kind {
  color: #0369a1;
  background: rgba(186, 230, 253, 0.76);
}

.cg-suggest-comune,
.cg-suggest-provincia,
.cg-suggest-regione {
  background: rgba(240, 253, 250, 0.7);
}

.cg-suggest-comune .cg-suggest-mark,
.cg-suggest-comune .cg-suggest-kind {
  color: #047857;
  background: rgba(167, 243, 208, 0.68);
}

.cg-suggest-provincia .cg-suggest-mark,
.cg-suggest-provincia .cg-suggest-kind {
  color: #0f766e;
  background: rgba(153, 246, 228, 0.68);
}

.cg-suggest-regione .cg-suggest-mark,
.cg-suggest-regione .cg-suggest-kind {
  color: #5b21b6;
  background: rgba(221, 214, 254, 0.62);
}

.cg-home-hero-image .cg-search input[type="search"] {
  min-height: 62px;
  border-radius: 16px !important;
}

.cg-card,
.cg-service-link,
.cg-service-panel,
.cg-search-miss,
.cg-answer-box,
.cg-top-comuni,
.cg-contact-form {
  border: 1px solid var(--cg-line-soft);
  border-radius: var(--cg-radius);
  background: var(--cg-panel);
  box-shadow: var(--cg-shadow-soft);
}

.cg-card,
.cg-service-link,
.cg-service-panel {
  padding: 24px;
}

.cg-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  align-items: stretch;
  grid-auto-rows: 1fr;
}

.cg-service-page > .cg-card-grid {
  margin: 28px 0 38px;
}

.cg-card-grid > .cg-card {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

.cg-service-page:not(.cg-resources-page) > .cg-card-grid > .cg-card::before {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  margin-bottom: 18px;
  border-radius: 8px;
  font-family: dashicons;
  font-size: 22px;
  line-height: 1;
  color: #0073aa;
  background: #e7f5ff;
  box-shadow: 0 0 0 10px #e7f5ff;
}

.cg-service-page:not(.cg-resources-page) > .cg-card-grid > .cg-card:nth-child(1)::before { content: "\f110"; }
.cg-service-page:not(.cg-resources-page) > .cg-card-grid > .cg-card:nth-child(2)::before { content: "\f497"; color: #047857; background: #dcfce7; box-shadow: 0 0 0 10px #dcfce7; }
.cg-service-page:not(.cg-resources-page) > .cg-card-grid > .cg-card:nth-child(3)::before { content: "\f336"; color: #c2410c; background: #ffedd5; box-shadow: 0 0 0 10px #ffedd5; }
.cg-service-page:not(.cg-resources-page) > .cg-card-grid > .cg-card:nth-child(4)::before { content: "\f331"; color: #5b21b6; background: #ede9fe; box-shadow: 0 0 0 10px #ede9fe; }
.cg-service-page:not(.cg-resources-page) > .cg-card-grid > .cg-card:nth-child(5)::before { content: "\f110"; color: #0369a1; background: #dbeafe; box-shadow: 0 0 0 10px #dbeafe; }
.cg-service-page:not(.cg-resources-page) > .cg-card-grid > .cg-card:nth-child(6)::before { content: "\f466"; color: #9a3412; background: #ffedd5; box-shadow: 0 0 0 10px #ffedd5; }

.cg-card h3,
.cg-service-link h3,
.cg-service-panel h2 {
  color: var(--cg-ink);
  font-family: var(--cg-font-display);
  font-size: 1.15rem;
  line-height: 1.25;
}

.cg-card p,
.cg-service-link p,
.cg-service-panel p {
  color: var(--cg-muted);
}

.cg-card a,
.cg-service-link,
.cg-service-link h3,
.cg-answer-box a,
.cg-top-comuni a {
  color: #006194 !important;
  font-weight: 700;
}

.cg-card p:last-child {
  margin-top: auto;
}

.cg-note-band {
  clear: both;
  margin: 34px 0 34px;
  padding: 28px;
  border: 1px solid rgba(16, 185, 129, 0.22);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(240, 253, 250, 0.94), rgba(239, 246, 255, 0.94));
  box-shadow: var(--cg-shadow-soft);
}

.cg-note-band h2:first-child {
  margin-top: 0;
}

.cg-note-band p:last-child {
  margin-bottom: 0;
}

.cg-resource-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  align-items: stretch;
  grid-auto-rows: 1fr;
  margin-top: 22px;
}

.cg-resource-card {
  overflow: hidden;
  padding: 14px;
  min-height: 390px;
}

.cg-resource-card-media {
  display: block;
  margin: 0 0 18px;
}

.cg-resource-card-media img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  border-radius: 8px;
  object-fit: cover;
}

.cg-resource-card-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 0 6px 6px;
}

.cg-resource-card time,
.wp-block-latest-posts__post-date,
.wp-block-post-date {
  color: var(--cg-subtle);
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1.3;
  text-transform: uppercase;
}

.cg-resource-card h3 {
  margin: 10px 0 12px;
  font-size: 1.2rem;
  line-height: 1.18;
}

.cg-resource-card p {
  margin-bottom: 0;
  line-height: 1.58;
}

.cg-resources-intro-card {
  display: flex;
  flex-direction: column;
}

.cg-card-icon {
  display: inline-grid;
  width: 48px;
  height: 48px;
  place-items: center;
  margin-bottom: 18px;
  border-radius: 12px;
  background: #e7f5ff;
  color: var(--cg-blue);
  font-size: 1.28rem;
  line-height: 1;
}

.cg-resources-intro-card:nth-child(2) .cg-card-icon {
  background: #dcfce7;
  color: #059669;
}

.cg-resources-intro-card:nth-child(3) .cg-card-icon {
  background: #ffedd5;
  color: var(--cg-terracotta);
}

.cg-resources-layout .cg-resource-grid {
  grid-template-columns: 1fr;
  grid-auto-rows: auto;
  gap: 18px;
}

.cg-resources-layout .cg-resource-card {
  display: grid;
  grid-template-columns: minmax(180px, 230px) minmax(0, 1fr);
  gap: 22px;
  min-height: 0;
  padding: 14px;
}

.cg-resources-layout .cg-resource-card-media {
  margin: 0;
}

.cg-resources-layout .cg-resource-card-media img {
  height: 100%;
  min-height: 172px;
  max-height: 210px;
  aspect-ratio: 4 / 3;
}

.cg-resources-layout .cg-resource-card-body {
  justify-content: center;
  padding: 8px 10px 8px 0;
}

.cg-resources-layout .cg-resource-card time {
  display: inline-flex;
  align-self: flex-start;
  min-height: 28px;
  align-items: center;
  padding: 5px 11px;
  border: 1px solid rgba(14, 165, 233, 0.22);
  border-radius: 999px;
  background: #eaf7ff;
  color: #006194;
}

.cg-resources-layout .cg-resource-card h3 {
  margin: 12px 0 12px;
  font-size: 1.45rem;
  line-height: 1.16;
}

.cg-button,
.cg-contact-form button,
.cg-service-panel .cg-button {
  border-radius: 999px;
  background: linear-gradient(135deg, var(--cg-blue), var(--cg-blue-strong));
  box-shadow: 0 12px 28px rgba(37, 99, 235, 0.22);
  font-family: var(--cg-font-body);
  font-weight: 800;
}

.cg-contact-form button[type="submit"].cg-button {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  margin-top: 4px;
  padding: 0 22px;
  border: 1px solid transparent !important;
  border-radius: 999px !important;
  background: linear-gradient(135deg, var(--cg-blue), var(--cg-blue-strong)) !important;
  box-shadow: 0 12px 28px rgba(37, 99, 235, 0.22);
  color: #ffffff !important;
  font-family: var(--cg-font-body);
  font-size: 0.95rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0;
  cursor: pointer;
  transition: transform 160ms ease, box-shadow 160ms ease, filter 160ms ease;
}

.cg-contact-form button[type="submit"].cg-button:hover {
  transform: translateY(-1px);
  box-shadow: 0 16px 32px rgba(37, 99, 235, 0.28);
  filter: saturate(1.06);
}

.cg-contact-form button[type="submit"].cg-button:focus-visible {
  outline: 3px solid rgba(14, 165, 233, 0.34);
  outline-offset: 3px;
}

.cg-answer-box {
  padding: 20px 24px;
  border-color: rgba(16, 185, 129, 0.24);
  background: linear-gradient(135deg, #f0fdfa, #eff6ff);
  color: var(--cg-ink-2);
}

.cg-answer-box strong {
  color: #0f766e;
}

.cg-top-comuni {
  overflow: hidden;
  border-collapse: separate !important;
  border-spacing: 0;
}

.cg-top-comuni th {
  background: #f1f7ff !important;
  color: #41516a !important;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.cg-top-comuni td,
.cg-top-comuni th {
  padding: 14px 16px !important;
  border-color: var(--cg-line-soft) !important;
}

.cg-top-comuni tbody tr:nth-child(even) {
  background: #fbfdff !important;
}

.hja-wrap,
.hvml-wrap,
.hbh-wrap {
  border-radius: var(--cg-radius) !important;
  border-color: var(--cg-line-soft) !important;
  box-shadow: var(--cg-shadow);
}

.cg-cognome.cg-surname-redesign,
.cg-cognome.cg-surname-rich {
  width: min(100% - 40px, 1180px);
  max-width: 1180px;
  margin: 0 auto 80px;
}

.cg-surname-redesign .cg-breadcrumb,
.cg-surname-rich .cg-breadcrumb {
  margin: 24px 0 18px;
}

.cg-surname-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(290px, 330px);
  gap: 34px;
  align-items: center;
  margin: 0 0 28px;
  padding: 42px 38px;
  border: 1px solid var(--cg-line-soft);
  border-radius: 18px;
  background:
    radial-gradient(circle at 82% 18%, rgba(14, 165, 233, 0.18), transparent 30%),
    radial-gradient(circle at 18% 72%, rgba(37, 99, 235, 0.08), transparent 34%),
    rgba(255, 255, 255, 0.78);
  box-shadow: var(--cg-shadow);
}

.cg-surname-hero h1 {
  max-width: 760px;
  margin: 0;
  font-size: 3.7rem;
  line-height: 1.02;
}

.cg-surname-summary {
  max-width: 760px;
  margin: 18px 0 0;
  color: var(--cg-muted);
  font-size: 1.06rem;
  line-height: 1.65;
}

.cg-surname-summary strong {
  color: var(--cg-ink);
}

.cg-surname-stats {
  display: grid;
  gap: 12px;
}

.cg-surname-stat {
  position: relative;
  min-height: 104px;
  padding: 18px 18px 16px 58px;
  border: 1px solid var(--cg-line-soft);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: var(--cg-shadow-soft);
}

.cg-surname-stat::before {
  content: "";
  position: absolute;
  left: 18px;
  top: 22px;
  width: 26px;
  height: 26px;
  border-radius: 8px;
  background: var(--cg-stat-color, var(--cg-blue));
  box-shadow: 0 0 0 8px var(--cg-stat-bg, #e7f5ff);
}

.cg-surname-stat-blue {
  --cg-stat-color: var(--cg-blue);
  --cg-stat-bg: #e7f5ff;
}

.cg-surname-stat-green {
  --cg-stat-color: var(--cg-green);
  --cg-stat-bg: #dcfce7;
}

.cg-surname-stat-warm {
  --cg-stat-color: #f59e0b;
  --cg-stat-bg: #ffedd5;
}

.cg-surname-stat-label {
  display: block;
  margin: 0 0 5px;
  color: var(--cg-subtle);
  font-size: 0.74rem;
  font-weight: 800;
  line-height: 1.2;
  text-transform: uppercase;
}

.cg-surname-stat strong {
  display: block;
  color: var(--cg-ink);
  font-family: var(--cg-font-display);
  font-size: 1.8rem;
  line-height: 1.05;
}

.cg-surname-stat strong a {
  color: var(--cg-ink) !important;
  text-decoration: none;
}

.cg-surname-stat span:last-child {
  display: block;
  margin-top: 6px;
  color: var(--cg-muted);
  font-size: 0.82rem;
  font-weight: 700;
}

.cg-surname-origin,
.cg-surname-table-card {
  margin: 28px 0;
  padding: 34px;
  border: 1px solid var(--cg-line-soft);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: var(--cg-shadow-soft);
}

.cg-surname-origin h2,
.cg-surname-table-card h2,
.cg-surname-section-head h2 {
  margin: 0;
  font-family: var(--cg-font-display);
  font-size: 2.1rem;
  line-height: 1.08;
}

.cg-surname-origin-copy {
  max-width: 850px;
  margin-top: 18px;
}

.cg-surname-origin-copy p {
  color: var(--cg-ink-2);
  font-size: 1rem;
  line-height: 1.72;
}

.cg-surname-distribution {
  margin: 46px 0 0;
}

.cg-surname-section-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 340px);
  gap: 24px;
  align-items: end;
  margin-bottom: 22px;
}

.cg-surname-section-head > p {
  margin: 0;
  color: var(--cg-muted);
  font-weight: 700;
  text-align: right;
}

.cg-surname-map-block .hja-panel {
  margin: 0 0 26px;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.cg-surname-map-block .hja-panel-header {
  display: none;
}

.cg-surname-map-block .hja-wrap {
  overflow: hidden;
  border: 1px solid var(--cg-line-soft) !important;
  border-radius: 8px !important;
  background: #09172a;
}

.cg-surname-map-block .cg-heatmap {
  min-height: 480px;
}

.cg-surname-table-card {
  overflow-x: auto;
}

.cg-surname-table-card .cg-top-comuni {
  margin-bottom: 0;
  min-width: 680px;
}

.cg-surname-table-card h3 {
  margin: 0 0 18px;
  font-family: var(--cg-font-display);
  font-size: 1.45rem;
  line-height: 1.16;
}

.cg-surname-rich .cg-surname-summary,
.cg-surname-rich .cg-surname-summary p {
  color: var(--cg-ink-2);
}

.cg-surname-rich .cg-surname-summary p {
  margin: 0 0 12px;
}

.cg-surname-rich .cg-surname-summary p:last-child {
  margin-bottom: 0;
}

.cg-rich-section {
  margin: 28px 0;
  padding: 34px;
  border: 1px solid var(--cg-line-soft);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: var(--cg-shadow-soft);
}

.cg-rich-section h2 {
  max-width: 860px;
  margin: 0 0 18px;
  font-family: var(--cg-font-display);
  font-size: 2.1rem;
  line-height: 1.08;
}

.cg-rich-section p {
  color: var(--cg-ink-2);
  font-size: 1rem;
  line-height: 1.72;
}

.cg-rich-section > p:not(.cg-eyebrow),
.cg-rich-section > ul,
.cg-rich-section > .cg-surname-map-block,
.cg-rich-section > .cg-surname-table-card {
  margin-top: 18px;
}

.cg-rich-distribution .cg-surname-map-block {
  margin-top: 24px;
}

.cg-rich-distribution .cg-surname-table-card {
  margin-bottom: 0;
}

.cg-rich-heraldry {
  background:
    radial-gradient(circle at 100% 0%, rgba(245, 158, 11, 0.12), transparent 28%),
    rgba(255, 255, 255, 0.94);
}

.cg-ai-card-list.cg-ai-heraldry-items {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin: 22px 0 0;
}

.cg-ai-heraldry-card {
  position: relative;
  min-height: 100%;
  padding: 22px 22px 20px;
  border: 1px solid var(--cg-line-soft);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 8px 22px rgba(15, 35, 62, 0.05);
}

.cg-ai-heraldry-card::before {
  content: "";
  display: block;
  width: 30px;
  height: 30px;
  margin-bottom: 16px;
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(245, 158, 11, 0.95), rgba(234, 88, 12, 0.9));
  box-shadow: 0 0 0 9px #ffedd5;
}

.cg-ai-heraldry-card h4 {
  margin: 0 0 10px;
  color: var(--cg-ink);
  font-family: var(--cg-font-display);
  font-size: 1.08rem;
  line-height: 1.25;
}

.cg-ai-heraldry-card p {
  margin: 0 0 10px;
  color: var(--cg-muted);
}

.cg-ai-famous-people .cg-ai-list {
  display: grid;
  gap: 12px;
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
}

.cg-ai-famous-people .cg-ai-list li {
  margin: 0;
  padding: 18px 20px;
  border: 1px solid var(--cg-line-soft);
  border-radius: 8px;
  background: #fbfdff;
}

.cg-surname-rich .cg-service-cta {
  margin: 34px 0 22px;
  padding: 30px 34px;
  border: 0;
  border-radius: 18px;
  background:
    linear-gradient(135deg, var(--cg-blue) 0%, var(--cg-blue-strong) 62%, #1498c7 100%);
  box-shadow: 0 20px 50px rgba(37, 99, 235, 0.24);
  color: #ffffff;
  font-size: 1.05rem;
  line-height: 1.65;
}

.cg-surname-rich .cg-service-cta a {
  color: #ffffff !important;
  font-weight: 850;
  text-decoration-color: rgba(255, 255, 255, 0.7);
}

body.single-post main > .wp-block-group.alignfull,
body.blog main > .wp-block-group.alignfull,
body.archive main > .wp-block-group.alignfull {
  width: min(100% - 40px, 1120px);
  margin-right: auto !important;
  margin-left: auto !important;
  padding-top: 54px !important;
  padding-bottom: 72px !important;
}

body.single-post main > .wp-block-group.alignfull > .wp-block-post-title {
  width: min(100%, 940px);
  max-width: none;
  margin: 0 auto 0 0 !important;
  color: var(--cg-ink);
  font-family: var(--cg-font-display);
  font-size: 3.15rem;
  line-height: 1.04;
}

.cg-post-date-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  width: fit-content;
  margin: 18px 0 0;
  padding: 8px 13px;
  border: 1px solid rgba(2, 132, 199, 0.18);
  border-radius: 999px;
  background: #e7f5ff;
  color: #006194;
  font-size: 0.82rem;
  font-weight: 850;
  line-height: 1.2;
}

.cg-post-date-badge span {
  color: var(--cg-subtle);
  text-transform: uppercase;
}

.cg-post-date-badge time {
  color: #006194;
}

.cg-post-hero-image,
.wp-block-post-featured-image {
  margin: 28px 0 22px;
}

body.single-post main > .wp-block-group.alignfull > .wp-block-post-featured-image {
  width: 100%;
  margin: 28px auto 26px 0 !important;
}

body.single-post main > .wp-block-group.alignfull > .cg-post-hero-image {
  width: 100%;
}

.cg-post-hero-image img,
.wp-block-post-featured-image img {
  display: block;
  width: 100%;
  max-height: 470px;
  aspect-ratio: 16 / 9;
  border: 1px solid var(--cg-line-soft);
  border-radius: 8px;
  box-shadow: var(--cg-shadow);
  object-fit: cover;
}

body.single-post .entry-content > .cg-article-featured-photo,
body.single-post .entry-content > p:has(+ .cg-article-featured-photo),
body.single-post .entry-content > .cg-article-featured-photo + p,
body.single-post .entry-content > p:empty {
  display: none;
}

body.single-post .wp-block-post-title + .cg-post-date-badge + .wp-block-post-featured-image + .wp-block-group,
body.single-post .wp-block-post-title + .cg-post-date-badge + .cg-post-hero-image + .wp-block-group,
body.single-post main > .wp-block-group.alignfull > .wp-block-group.has-small-font-size {
  display: none !important;
}

body.single-post .wp-block-post-title + .cg-post-hero-image + .wp-block-group,
body.single-post .wp-block-post-title + .wp-block-post-featured-image + .wp-block-group,
body.single-post .wp-block-post-title + .wp-block-group {
  gap: 8px !important;
  margin-bottom: 36px !important;
  color: var(--cg-subtle) !important;
  font-size: 0.86rem !important;
  font-weight: 700;
}

body.single-post .wp-block-post-title + .cg-post-hero-image + .wp-block-group a,
body.single-post .wp-block-post-title + .wp-block-post-featured-image + .wp-block-group a,
body.single-post .wp-block-post-title + .wp-block-group a {
  color: #006194 !important;
}

body.single-post .entry-content.wp-block-post-content {
  width: min(100%, 760px);
  margin: 0 auto;
  padding-right: 0 !important;
  padding-left: 0 !important;
}

.cg-blog-layout,
.cg-resources-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 42px;
  align-items: start;
  width: min(100%, 1120px);
}

.cg-blog-layout {
  margin-top: 34px;
}

.cg-resources-layout {
  margin-top: 44px;
}

.cg-blog-main {
  min-width: 0;
}

.cg-blog-layout .entry-content.wp-block-post-content {
  width: 100%;
  margin: 0;
}

.cg-resources-main {
  min-width: 0;
}

.cg-resources-main > h2 {
  margin-top: 0;
}

.cg-blog-sidebar {
  display: grid;
  gap: 18px;
  position: sticky;
  top: 28px;
}

.cg-blog-side-card {
  padding: 22px;
  border: 1px solid var(--cg-line-soft);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: var(--cg-shadow-soft);
}

.cg-blog-side-card h2 {
  margin: 0 0 14px;
  font-family: var(--cg-font-display);
  font-size: 1.2rem;
  line-height: 1.2;
}

.cg-blog-side-card p {
  color: var(--cg-muted);
  font-size: 0.94rem;
  line-height: 1.55;
}

.cg-blog-side-card .cg-search {
  margin-top: 14px;
}

.cg-blog-side-card .cg-search input[type="search"] {
  min-height: 48px;
  font-size: 0.92rem;
}

.cg-blog-side-list {
  display: grid;
  gap: 14px;
}

.cg-blog-side-post {
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  color: var(--cg-ink) !important;
  text-decoration: none;
}

.cg-blog-side-post-media {
  display: block;
}

.cg-blog-side-post-media img {
  display: block;
  width: 74px;
  height: 62px;
  border-radius: 8px;
  object-fit: cover;
}

.cg-blog-side-post strong {
  display: block;
  color: var(--cg-ink);
  font-family: var(--cg-font-display);
  font-size: 0.92rem;
  line-height: 1.22;
}

.cg-blog-side-post time {
  display: block;
  margin-top: 6px;
  color: var(--cg-subtle);
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1.2;
  text-transform: uppercase;
}

.cg-blog-side-links {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.cg-blog-side-links a {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 6px 10px;
  border: 1px solid var(--cg-line-soft);
  border-radius: 999px;
  background: #f4f8ff;
  color: #006194 !important;
  font-size: 0.82rem;
  font-weight: 800;
}

.cg-blog-side-cta {
  background:
    linear-gradient(135deg, var(--cg-blue), var(--cg-blue-strong));
  color: #ffffff;
}

.cg-blog-side-cta h2,
.cg-blog-side-cta p,
.cg-blog-side-cta a {
  color: #ffffff !important;
}

.cg-blog-side-cta a {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  margin-top: 10px;
  padding: 0 14px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.16);
  font-weight: 850;
}

body.single-post .entry-content p {
  color: var(--cg-ink-2);
  font-size: 1.08rem;
  line-height: 1.78;
}

body.single-post .entry-content h2 {
  margin: 42px 0 14px;
  padding-top: 24px;
  border-top: 1px solid var(--cg-line-soft);
  color: var(--cg-ink);
  font-size: 2rem;
  line-height: 1.12;
}

body.single-post .entry-content h3 {
  margin: 30px 0 12px;
  color: var(--cg-ink);
  font-size: 1.35rem;
}

body.single-post .entry-content a {
  color: #006194 !important;
  font-weight: 700;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

body.single-post .wp-block-post-navigation-link {
  max-width: 45%;
  color: var(--cg-muted);
  font-size: 0.92rem;
  font-weight: 750;
  line-height: 1.35;
}

body.single-post .wp-block-post-navigation-link a {
  color: #006194 !important;
}

body.single-post .wp-block-comments {
  display: none;
}

body.single-post main > .wp-block-group.alignwide {
  width: min(100% - 40px, 1120px);
  margin-right: auto !important;
  margin-left: auto !important;
}

body.single-post main > .wp-block-group.alignwide > h2 {
  margin: 0 0 18px;
  color: #006194;
  font-size: 0.78rem !important;
  font-weight: 850 !important;
  letter-spacing: 0 !important;
}

body.single-post main > .wp-block-group.alignwide .wp-block-query .wp-block-post-template {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.single-post main > .wp-block-group.alignwide .wp-block-query .wp-block-post {
  position: relative;
  min-height: 270px;
  padding-top: 126px;
}

body.single-post main > .wp-block-group.alignwide .wp-block-query .wp-block-post::before {
  content: "";
  position: absolute;
  top: 14px;
  right: 14px;
  left: 14px;
  height: 94px;
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(15, 23, 42, 0.06), rgba(15, 23, 42, 0.16)),
    url("/wp-content/uploads/cg-assets/cg-archive-hero.webp") center / cover no-repeat;
}

body.single-post main > .wp-block-group.alignwide .wp-block-query .wp-block-post:nth-child(even)::before {
  background:
    linear-gradient(180deg, rgba(15, 23, 42, 0.06), rgba(15, 23, 42, 0.16)),
    url("/wp-content/uploads/cg-assets/cg-italian-town.webp") center / cover no-repeat;
}

body.single-post main > .wp-block-group.alignwide .wp-block-query .wp-block-group {
  display: block !important;
  padding: 0 !important;
  border: 0 !important;
}

body.single-post main > .wp-block-group.alignwide .wp-block-query .wp-block-post-title {
  width: auto;
  max-width: none;
  margin: 0 0 12px !important;
  color: var(--cg-ink);
  font-family: var(--cg-font-display);
  font-size: 1.12rem !important;
  line-height: 1.18;
  overflow-wrap: normal;
  word-break: normal;
}

body.single-post main > .wp-block-group.alignwide .wp-block-query .wp-block-post-title a {
  color: var(--cg-ink) !important;
}

body.single-post main > .wp-block-group.alignwide .wp-block-query .wp-block-post-date {
  margin: 0 !important;
  padding-top: 0 !important;
  text-align: left !important;
}

.wp-block-query .wp-block-post-template,
body.blog .wp-block-post-template,
body.archive .wp-block-post-template {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  align-items: stretch;
}

.wp-block-query .wp-block-post,
body.blog .wp-block-post,
body.archive .wp-block-post {
  display: flex;
  overflow: hidden;
  flex-direction: column;
  min-height: 390px;
  padding: 14px;
  border: 1px solid var(--cg-line-soft);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: var(--cg-shadow-soft);
}

.wp-block-query .wp-block-post-featured-image,
body.blog .wp-block-post-featured-image,
body.archive .wp-block-post-featured-image {
  margin: 0 0 18px;
}

.wp-block-query .wp-block-post-title,
body.blog .wp-block-post-title,
body.archive .wp-block-post-title {
  margin: 0 6px 10px;
  font-size: 1.2rem;
  line-height: 1.18;
}

.wp-block-query .wp-block-post-title a,
body.blog .wp-block-post-title a,
body.archive .wp-block-post-title a {
  color: var(--cg-ink) !important;
}

.wp-block-query .wp-block-post-excerpt,
body.blog .wp-block-post-excerpt,
body.archive .wp-block-post-excerpt {
  margin: 0 6px 6px;
  color: var(--cg-muted);
}

.wp-block-query .wp-block-post-date,
body.blog .wp-block-post-date,
body.archive .wp-block-post-date {
  margin: auto 6px 6px;
  padding-top: 16px;
}

.cg-site-footer {
  background: #ffffff;
  border-top: 1px solid var(--cg-line-soft);
}

.cg-footer-brand strong {
  font-family: var(--cg-font-display);
}

.cg-footer-col h2 {
  color: var(--cg-ink);
  letter-spacing: 0.04em;
}

.cg-footer-col a,
.cg-site-footer a {
  color: #006194;
  font-weight: 600;
}

.cg-rd-page {
  width: min(100% - 40px, 1280px);
  margin: 0 auto;
  isolation: isolate;
}

.cg-rd-section {
  margin: 72px auto;
}

.cg-rd-section-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 420px);
  gap: 32px;
  align-items: end;
  margin-bottom: 28px;
}

.cg-rd-section-head h2,
.cg-rd-hero h1,
.cg-rd-cta h2 {
  margin: 0;
  font-family: var(--cg-font-display);
  font-weight: 800;
  line-height: 1.02;
}

.cg-rd-section-head h2 {
  font-size: 2.25rem;
}

.cg-rd-section-head p,
.cg-rd-copy,
.cg-rd-card p,
.cg-rd-service-card p {
  color: var(--cg-muted);
}

.cg-rd-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(340px, 0.72fr);
  gap: 44px;
  align-items: center;
  min-height: 690px;
  padding: 72px 0 56px;
}

.cg-rd-hero::before {
  content: "";
  position: absolute;
  inset: 22px 0 72px;
  z-index: -1;
  border-radius: 18px;
  background:
    radial-gradient(circle at 82% 34%, rgba(14, 165, 233, 0.2), transparent 34%),
    radial-gradient(circle at 18% 22%, rgba(37, 99, 235, 0.11), transparent 38%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.72), rgba(248, 250, 252, 0.2));
}

.cg-rd-hero h1 {
  max-width: 780px;
  color: var(--cg-ink);
  font-size: 4.6rem;
}

.cg-rd-hero h1 mark {
  background: none;
  color: var(--cg-blue-strong);
}

.cg-rd-hero .cg-rd-copy {
  max-width: 720px;
  font-size: 1.14rem;
  line-height: 1.65;
}

.cg-rd-search-panel {
  max-width: 760px;
  margin-top: 28px;
  padding: 12px;
  border: 1px solid var(--cg-line-soft);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: var(--cg-shadow);
}

.cg-rd-search-panel .cg-search {
  max-width: 100% !important;
}

.cg-rd-search-panel .cg-search input[type="search"] {
  min-height: 62px;
}

.cg-rd-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
}

.cg-rd-chips a {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 5px 10px;
  border: 1px solid var(--cg-line-soft);
  border-radius: 999px;
  background: #f4f8ff;
  color: var(--cg-ink) !important;
  font-size: 0.84rem;
  font-weight: 700;
}

.cg-rd-visual {
  padding: 22px;
  border: 1px solid var(--cg-line-soft);
  border-radius: 18px;
  background: #ffffff;
  box-shadow: var(--cg-shadow);
}

.cg-rd-visual img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 8px;
  object-fit: cover;
}

.cg-rd-visual-placeholder {
  display: grid;
  place-items: center;
  min-height: 310px;
  border: 1px solid rgba(2, 132, 199, 0.16);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(15, 23, 42, 0.96), rgba(11, 59, 105, 0.96)),
    radial-gradient(circle at 1px 1px, rgba(14, 165, 233, 0.3) 1px, transparent 0) 0 0 / 22px 22px;
  color: #eaf7ff;
  text-align: center;
}

.cg-rd-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  align-items: stretch;
  grid-auto-rows: 1fr;
}

.cg-rd-stat,
.cg-rd-card,
.cg-rd-service-card,
.cg-rd-blog-panel {
  border: 1px solid var(--cg-line-soft);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: var(--cg-shadow-soft);
}

.cg-rd-stat {
  box-sizing: border-box;
  min-height: 100%;
  padding: 20px 22px;
}

.cg-rd-stats > .cg-rd-stat {
  margin-block-start: 0 !important;
}

.cg-rd-stat strong {
  display: block;
  color: var(--cg-ink);
  font-family: var(--cg-font-display);
  font-size: 2rem;
  line-height: 1;
}

.cg-rd-stat span {
  display: block;
  margin-top: 6px;
  color: var(--cg-muted);
  font-size: 0.9rem;
  font-weight: 700;
}

.cg-rd-card-grid,
.cg-rd-service-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  align-items: stretch;
  grid-auto-rows: 1fr;
}

.cg-rd-card-grid > *,
.cg-rd-service-grid > * {
  box-sizing: border-box;
  min-height: 100%;
  margin-block-start: 0 !important;
}

.cg-rd-card,
.cg-rd-service-card {
  display: flex;
  flex-direction: column;
  padding: 28px;
}

.cg-rd-card {
  min-height: 300px;
}

.cg-rd-service-card {
  min-height: 310px;
}

.cg-rd-card .cg-rd-number {
  color: var(--cg-subtle);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}

.cg-rd-icon-row {
  display: inline-grid;
  place-items: center;
  width: 50px;
  height: 50px;
  margin: 0 0 18px;
  border-radius: 8px;
  background: var(--cg-icon-bg, #e7f5ff);
  color: var(--cg-icon-color, var(--cg-blue));
}

.cg-rd-icon-row .dashicons {
  width: 24px;
  height: 24px;
  font-size: 24px;
  line-height: 1;
}

.cg-rd-card-blue {
  --cg-icon-bg: #e7f5ff;
  --cg-icon-color: var(--cg-blue);
  --cg-pill-bg: #e8f1ff;
  --cg-pill-color: #075985;
  --cg-link-color: #006194;
}

.cg-rd-card-green {
  --cg-icon-bg: #dcfce7;
  --cg-icon-color: #059669;
  --cg-pill-bg: #e5fff5;
  --cg-pill-color: #047857;
  --cg-link-color: #047857;
}

.cg-rd-card-warm {
  --cg-icon-bg: #ffedd5;
  --cg-icon-color: var(--cg-terracotta);
  --cg-pill-bg: #fff7ed;
  --cg-pill-color: #c2410c;
  --cg-link-color: #c2410c;
}

.cg-rd-card h3,
.cg-rd-service-card h3 {
  margin: 10px 0 12px;
  font-family: var(--cg-font-display);
  font-size: 1.35rem;
  line-height: 1.2;
}

.cg-rd-card a,
.cg-rd-service-card a {
  color: var(--cg-link-color, #006194) !important;
  font-weight: 800;
}

.cg-rd-card-link {
  margin-top: auto;
  padding-top: 20px;
}

.cg-rd-service-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.cg-rd-service-top .cg-rd-icon-row {
  margin-bottom: 0;
}

.cg-rd-pill {
  width: fit-content;
  margin: 10px 0 0;
  padding: 7px 10px;
  border: 1px solid color-mix(in srgb, var(--cg-pill-color, #075985) 24%, transparent);
  border-radius: 7px;
  background: var(--cg-pill-bg, #e8f1ff);
  color: var(--cg-pill-color, #075985) !important;
  font-size: 0.74rem;
  font-weight: 800;
  line-height: 1.2;
}

.cg-rd-feature-band,
.cg-rd-cta {
  border: 1px solid var(--cg-line-soft);
  border-radius: 18px;
  box-shadow: var(--cg-shadow);
}

.cg-rd-feature-band {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.78fr);
  gap: 42px;
  align-items: center;
  padding: 48px;
  background: linear-gradient(135deg, #f7fbff, #edf6ff);
}

.cg-rd-feature-band h2 {
  max-width: 680px;
  margin: 0 0 18px;
  font-family: var(--cg-font-display);
  font-size: 2.65rem;
  line-height: 1.05;
}

.cg-rd-heatmap-frame {
  min-height: 290px;
  padding: 16px;
  border: 1px solid var(--cg-line-soft);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: var(--cg-shadow-soft);
}

.cg-rd-heatmap-frame img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 460px;
  border-radius: 8px;
  object-fit: contain;
}

.cg-rd-heatmap-placeholder {
  display: grid;
  place-items: center;
  min-height: 250px;
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(15, 23, 42, 0.98), rgba(11, 59, 105, 0.94)),
    radial-gradient(circle at 1px 1px, rgba(14, 165, 233, 0.24) 1px, transparent 0) 0 0 / 18px 18px;
  color: #dff6ff;
  font-weight: 800;
  text-align: center;
}

.cg-rd-services-blog {
  display: block;
}

.cg-rd-blog-panel {
  padding: 28px;
}

.cg-rd-story-band {
  display: grid;
  grid-template-columns: minmax(280px, 0.72fr) minmax(0, 1fr);
  gap: 34px;
  align-items: center;
  margin: 70px auto;
  padding: 54px 0;
  border-top: 1px solid var(--cg-line-soft);
  background:
    radial-gradient(circle at 86% 52%, rgba(2, 132, 199, 0.12), transparent 32%),
    linear-gradient(180deg, rgba(239, 246, 255, 0.42), rgba(248, 250, 252, 0));
}

.cg-rd-story-copy h2 {
  max-width: 620px;
  margin: 0 0 18px;
  font-family: var(--cg-font-display);
  font-size: 2.65rem;
  line-height: 1.08;
}

.cg-rd-story-copy p {
  max-width: 560px;
  color: var(--cg-muted);
  line-height: 1.62;
}

.cg-rd-story-copy .wp-block-buttons {
  margin-top: 24px;
}

.cg-rd-story-band .cg-rd-blog-panel {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.cg-rd-blog-panel h3 {
  margin-top: 0;
  font-family: var(--cg-font-display);
}

.cg-rd-blog-panel .wp-block-latest-posts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  margin: 0;
  padding: 0;
  grid-auto-rows: 1fr;
}

.cg-rd-blog-panel .wp-block-latest-posts li {
  display: flex;
  flex-direction: column;
  margin: 0;
  min-height: 360px;
  height: 100%;
  padding: 14px;
  border: 1px solid var(--cg-line-soft);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: var(--cg-shadow-soft);
}

.cg-rd-blog-panel .wp-block-latest-posts li:not(:has(.wp-block-latest-posts__featured-image))::before {
  content: "";
  display: block;
  aspect-ratio: 16 / 10;
  margin-bottom: 16px;
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(15, 23, 42, 0.08), rgba(15, 23, 42, 0.18)),
    url("/wp-content/uploads/cg-assets/cg-archive-hero.webp") center / cover no-repeat;
}

.cg-rd-blog-panel .wp-block-latest-posts li:nth-child(2):not(:has(.wp-block-latest-posts__featured-image))::before {
  background:
    linear-gradient(180deg, rgba(15, 23, 42, 0.08), rgba(15, 23, 42, 0.18)),
    url("/wp-content/uploads/cg-assets/cg-italian-town.webp") center / cover no-repeat;
}

.cg-rd-blog-panel .wp-block-latest-posts__featured-image {
  margin: 0 0 16px;
}

.cg-rd-blog-panel .wp-block-latest-posts__featured-image img {
  width: 100%;
  aspect-ratio: 16 / 10;
  border-radius: 8px;
  object-fit: cover;
}

.cg-rd-blog-panel .wp-block-latest-posts li > a {
  color: var(--cg-ink) !important;
  font-family: var(--cg-font-display);
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.25;
}

.cg-rd-blog-panel .wp-block-latest-posts__post-date {
  margin-top: auto;
  padding-top: 18px;
  color: var(--cg-subtle);
  font-size: 0.78rem;
  font-weight: 700;
}

.cg-rd-blog-panel .wp-block-latest-posts li:last-child {
  border-bottom: 1px solid var(--cg-line-soft);
}

.cg-rd-cta {
  position: relative;
  overflow: hidden;
  margin-bottom: 78px;
  padding: 54px;
  background:
    radial-gradient(circle at 86% 72%, rgba(125, 211, 252, 0.3), transparent 30%),
    radial-gradient(circle at 16% 18%, rgba(255, 255, 255, 0.18), transparent 24%),
    linear-gradient(135deg, #0284c7 0%, #2563eb 58%, #1d4ed8 100%);
  color: #ffffff;
}

.cg-rd-cta::after {
  content: "1861";
  position: absolute;
  right: 34px;
  bottom: 18px;
  color: rgba(255, 255, 255, 0.08);
  font-family: var(--cg-font-display);
  font-size: 7.2rem;
  font-weight: 800;
  line-height: 1;
}

.cg-rd-cta > * {
  position: relative;
  z-index: 1;
}

.cg-rd-cta h2 {
  max-width: 760px;
  color: #ffffff;
  font-size: 3rem;
}

.cg-rd-cta p {
  max-width: 740px;
  color: rgba(255, 255, 255, 0.88);
}

.cg-rd-cta .wp-block-button__link {
  border-radius: 999px;
  font-weight: 800;
}

@media (max-width: 1020px) {
  .cg-resources-layout {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .cg-blog-sidebar {
    position: static;
  }
}

@media (max-width: 720px) {
  body .wp-site-blocks > header.wp-block-template-part {
    width: min(100% - 28px, 1180px);
  }

  body .wp-site-blocks > header.wp-block-template-part .wp-block-group.alignwide {
    gap: 14px;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }

  .wp-block-site-title {
    max-width: calc(100vw - 104px);
    overflow-wrap: normal;
    white-space: nowrap;
  }

  .cg-site-logo-header img {
    width: clamp(148px, 44vw, 188px);
  }

  .wp-block-navigation .cg-main-menu {
    align-items: stretch;
    gap: 10px;
  }

  .wp-block-navigation .cg-main-menu a {
    font-size: 1rem;
  }

  .wp-block-navigation .cg-menu-cta a {
    width: 100%;
    min-height: 46px;
  }

  .cg-section,
  .cg-home-hero,
  .cg-service-page,
  .cg-search-page {
    width: min(100% - 28px, 1280px);
    max-width: min(100% - 28px, 1280px);
  }

  .cg-home-hero-image {
    border-radius: 12px;
  }

  .cg-rd-heatmap-frame {
    min-height: 0;
  }

  .cg-card,
  .cg-service-link,
  .cg-service-panel {
    padding: 20px;
  }

  .cg-card-grid,
  .cg-resource-grid,
  .wp-block-query .wp-block-post-template,
  body.blog .wp-block-post-template,
  body.archive .wp-block-post-template {
    grid-template-columns: 1fr;
  }

  .cg-resource-card,
  .wp-block-query .wp-block-post,
  body.blog .wp-block-post,
  body.archive .wp-block-post {
    min-height: 0;
  }

  .cg-resources-layout .cg-resource-card {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .cg-resources-layout .cg-resource-card-media img {
    min-height: 0;
    aspect-ratio: 16 / 10;
  }

  .cg-resources-layout .cg-resource-card-body {
    padding: 0 4px 6px;
  }

  body.single-post main > .wp-block-group.alignfull,
  body.blog main > .wp-block-group.alignfull,
  body.archive main > .wp-block-group.alignfull {
    width: min(100% - 28px, 920px);
    padding-right: 0 !important;
    padding-left: 0 !important;
    padding-top: 34px !important;
    padding-bottom: 54px !important;
  }

  body.single-post main > .wp-block-group.alignfull > .wp-block-post-title {
    width: 100%;
    font-size: 2.45rem;
    line-height: 1.06;
  }

  body.single-post main > .wp-block-group.alignfull > .wp-block-post-featured-image {
    width: 100%;
  }

  .cg-post-hero-image img,
  .wp-block-post-featured-image img {
    max-height: none;
    aspect-ratio: 4 / 3;
    border-radius: 8px;
  }

  body.single-post .entry-content.wp-block-post-content {
    width: 100%;
  }

  .cg-blog-layout,
  .cg-resources-layout {
    grid-template-columns: 1fr;
    gap: 28px;
    width: 100%;
    margin-left: 0;
  }

  .cg-blog-sidebar {
    position: static;
  }

  .cg-blog-side-card {
    padding: 20px;
  }

  .cg-search-box {
    width: 100%;
    margin: 18px auto;
    padding: 14px;
    border-radius: 18px;
  }

  .cg-search-box input[type="search"] {
    min-height: 50px;
    font-size: 0.96rem;
  }

  .cg-suggest-item {
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 10px;
    padding: 9px 10px;
  }

  .cg-suggest-mark {
    width: 30px;
    height: 28px;
  }

  .cg-suggest-kind {
    grid-column: 2;
    justify-self: start;
    margin-top: -4px;
  }

  body.single-post .entry-content p {
    font-size: 1rem;
    line-height: 1.72;
  }

  body.single-post .entry-content h2 {
    font-size: 1.65rem;
  }

  body.single-post .wp-block-post-navigation-link {
    max-width: 100%;
  }

  body.single-post main > .wp-block-group.alignwide {
    width: min(100% - 28px, 1120px);
  }

  body.single-post main > .wp-block-group.alignwide .wp-block-query .wp-block-post-template {
    grid-template-columns: 1fr;
  }

  .cg-rd-page {
    width: min(100% - 28px, 1280px);
  }

  .cg-rd-section {
    margin: 48px auto;
  }

  .cg-rd-section-head,
  .cg-rd-hero,
  .cg-rd-feature-band,
  .cg-rd-story-band,
  .cg-rd-services-blog,
  .cg-rd-stats,
  .cg-rd-card-grid,
  .cg-rd-service-grid {
    grid-template-columns: 1fr;
  }

  .cg-rd-hero {
    min-height: 0;
    padding: 42px 0 28px;
  }

  .cg-rd-hero > * {
    min-width: 0;
  }

  .cg-rd-hero::before {
    inset: 0 -14px 24px;
    border-radius: 14px;
  }

  .cg-rd-hero h1 {
    font-size: 2.65rem;
    line-height: 1.04;
    overflow-wrap: normal;
    word-break: normal;
  }

  .cg-rd-visual {
    padding: 14px;
    border-radius: 12px;
  }

  .cg-rd-feature-band,
  .cg-rd-story-band,
  .cg-rd-cta {
    padding: 30px 22px;
    border-radius: 12px;
  }

  .cg-rd-feature-band h2,
  .cg-rd-story-copy h2,
  .cg-rd-cta h2 {
    font-size: 2.25rem;
  }

  .cg-rd-card,
  .cg-rd-service-card,
  .cg-rd-blog-panel .wp-block-latest-posts li {
    min-height: 0;
  }

  .cg-rd-blog-panel .wp-block-latest-posts {
    grid-template-columns: 1fr;
  }

  .cg-rd-cta::after {
    right: 14px;
    bottom: 12px;
    font-size: 4.6rem;
  }

  .cg-cognome.cg-surname-redesign,
  .cg-cognome.cg-surname-rich {
    width: min(100% - 28px, 1180px);
    margin-bottom: 54px;
  }

  .cg-surname-hero,
  .cg-surname-section-head {
    grid-template-columns: 1fr;
  }

  .cg-surname-hero {
    gap: 24px;
    padding: 30px 22px;
    border-radius: 12px;
  }

  .cg-surname-hero h1 {
    font-size: 2.75rem;
  }

  .cg-surname-origin,
  .cg-surname-table-card,
  .cg-rich-section {
    padding: 24px 18px;
  }

  .cg-surname-origin h2,
  .cg-surname-table-card h2,
  .cg-surname-section-head h2,
  .cg-rich-section h2 {
    font-size: 1.85rem;
  }

  .cg-surname-section-head > p {
    text-align: left;
  }

  .cg-surname-map-block .cg-heatmap {
    min-height: 390px;
  }

  .cg-ai-card-list.cg-ai-heraldry-items {
    grid-template-columns: 1fr;
  }

  .cg-surname-rich .cg-service-cta {
    padding: 24px 20px;
    border-radius: 12px;
  }
}

body .cg-rd-hero.wp-block-group {
  display: grid !important;
}

body .cg-rd-section-head.wp-block-group,
body .cg-rd-stats.wp-block-group,
body .cg-rd-card-grid.wp-block-group,
body .cg-rd-feature-band.wp-block-group,
body .cg-rd-story-band.wp-block-group,
body .cg-rd-services-blog.wp-block-group,
body .cg-rd-service-grid.wp-block-group {
  display: grid !important;
}

body .cg-rd-services-blog.wp-block-group {
  display: block !important;
}

body .cg-rd-hero h1 {
  font-size: 4.6rem !important;
}

body .cg-rd-hero h1 mark {
  background: transparent !important;
  color: var(--cg-blue-strong) !important;
}

body .cg-rd-chips.wp-block-list {
  display: flex !important;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none !important;
}

body .cg-rd-chips.wp-block-list li {
  margin: 0 !important;
}

body .cg-rd-stat strong,
body .cg-rd-stat span {
  display: block !important;
}

@media (max-width: 720px) {
  body .cg-rd-hero.wp-block-group,
  body .cg-rd-section-head.wp-block-group,
  body .cg-rd-stats.wp-block-group,
  body .cg-rd-card-grid.wp-block-group,
  body .cg-rd-feature-band.wp-block-group,
  body .cg-rd-story-band.wp-block-group,
  body .cg-rd-services-blog.wp-block-group,
  body .cg-rd-service-grid.wp-block-group {
    grid-template-columns: 1fr !important;
  }

  body .cg-rd-hero h1 {
    font-size: 2.65rem !important;
  }
}

@media (max-width: 420px) {
  body .cg-rd-hero h1 {
    font-size: 2.35rem !important;
  }
}

/* Compact, readable data rows across public directory listings. */
.cg-data-row:not(.cg-town-row) .cg-rank {
  display: inline-grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1px solid rgba(14, 165, 233, 0.24);
  border-radius: 8px;
  background: #eaf7ff;
  color: #0073aa !important;
  font-family: var(--cg-font-display);
  font-size: 1.08rem;
  font-weight: 800;
  line-height: 1;
}

.cg-surname-table-unit {
  display: none;
}

@media (max-width: 720px) {
  /* The off-canvas navigation becomes a touch-friendly menu instead of a right-aligned list. */
  .wp-block-navigation__responsive-container.is-menu-open {
    padding: 76px 24px 30px !important;
    background-color: #f7fbff !important;
    background-image: radial-gradient(rgba(14, 165, 233, 0.22) 1px, transparent 1px) !important;
    background-size: 24px 24px !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close {
    position: fixed !important;
    top: 16px;
    right: 16px;
  }

  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close button {
    display: inline-grid !important;
    place-items: center;
    width: 44px;
    height: 44px;
    padding: 0 !important;
    border: 1px solid rgba(14, 165, 233, 0.28) !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: var(--cg-ink) !important;
    box-shadow: 0 8px 20px rgba(15, 35, 62, 0.08);
  }

  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    display: flex !important;
    width: 100% !important;
    min-height: 100% !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open .cg-main-menu {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: calc(100vw - 48px) !important;
    max-width: 340px !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 10px !important;
    list-style: none !important;
    position: relative;
    left: 50%;
    transform: translateX(calc(-50% - 9px));
  }

  .wp-block-navigation__responsive-container.is-menu-open .cg-main-menu > li:not(.cg-menu-lang) {
    grid-column: 1 / -1;
    width: 100% !important;
    margin: 0 !important;
    position: relative;
    z-index: 1;
    pointer-events: auto !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open .cg-main-menu > li:not(.cg-menu-cta):not(.cg-menu-lang) > a {
    display: flex !important;
    width: 100% !important;
    box-sizing: border-box;
    align-items: center;
    justify-content: flex-start;
    min-height: 52px;
    padding: 0 18px !important;
    border: 1px solid var(--cg-line-soft) !important;
    border-radius: 8px !important;
    background: #fff !important;
    box-shadow: 0 8px 20px rgba(15, 35, 62, 0.05);
    color: var(--cg-ink) !important;
    font-size: 1rem !important;
    font-weight: 800 !important;
    pointer-events: auto !important;
    touch-action: manipulation;
  }

  .wp-block-navigation__responsive-container.is-menu-open .cg-menu-cta > a {
    display: flex !important;
    width: 100% !important;
    min-height: 54px;
    align-items: center;
    justify-content: center;
    padding: 0 18px !important;
    border-radius: 8px !important;
    font-size: 1rem !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open .cg-menu-lang {
    width: auto !important;
    margin: 0 !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open .cg-menu-lang > a {
    display: flex !important;
    width: 100% !important;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 12px !important;
    border: 1px solid rgba(14, 165, 233, 0.26) !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: var(--cg-ink) !important;
    box-shadow: 0 8px 20px rgba(15, 35, 62, 0.05);
  }

  .wp-block-navigation .cg-menu-lang-label {
    display: inline;
    font-size: 0.9rem;
    font-weight: 800;
  }

  .cg-search-box {
    width: 100% !important;
    max-width: 100% !important;
    margin: 18px 0 !important;
    padding: 14px !important;
    box-sizing: border-box !important;
  }

  .cg-search-box form,
  .cg-search-box input[type="search"] {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .cg-search-box input[type="search"] {
    padding-right: 16px !important;
    padding-left: 16px !important;
  }

  .cg-data-row:not(.cg-town-row) {
    grid-template-columns: 48px minmax(0, 1fr) auto !important;
    grid-template-rows: auto auto !important;
    gap: 3px 10px !important;
    min-height: 74px;
    padding: 12px 14px !important;
  }

  .cg-data-row:not(.cg-town-row) .cg-rank {
    grid-column: 1;
    grid-row: 1 / span 2;
    width: 44px;
    height: 44px;
    font-size: 1.28rem;
  }

  .cg-data-row:not(.cg-town-row) strong {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    overflow-wrap: anywhere;
    font-size: 1.04rem;
  }

  .cg-data-row:not(.cg-town-row) span:nth-of-type(2) {
    grid-column: 3;
    grid-row: 1;
    align-self: center;
    color: var(--cg-ink) !important;
    font-size: 0.88rem;
    font-weight: 800;
    white-space: nowrap;
  }

  .cg-data-row:not(.cg-town-row) span:nth-of-type(3) {
    grid-column: 2 / -1;
    grid-row: 2;
    font-size: 0.79rem;
  }

  .cg-data-row.cg-town-row {
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-rows: auto auto !important;
    gap: 3px 12px !important;
    padding: 13px 14px !important;
  }

  .cg-data-row.cg-town-row strong {
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .cg-data-row.cg-town-row span:nth-of-type(1) {
    grid-column: 1;
    grid-row: 2;
    font-size: 0.79rem;
  }

  .cg-data-row.cg-town-row span:nth-of-type(2) {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
    color: var(--cg-ink) !important;
    font-size: 0.82rem;
    font-weight: 800;
    text-align: right;
  }

  .cg-surname-table-card {
    overflow: visible !important;
  }

  .cg-surname-table-card .cg-top-comuni.cg-surname-table,
  .cg-surname-table-card .cg-top-comuni.cg-surname-table tbody {
    display: block;
    width: 100% !important;
    min-width: 0 !important;
  }

  .cg-surname-table-card .cg-top-comuni.cg-surname-table thead {
    display: none;
  }

  .cg-surname-table-card .cg-top-comuni.cg-surname-table tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    gap: 2px 14px;
    padding: 14px 0;
    border-top: 1px solid var(--cg-line-soft);
  }

  .cg-surname-table-card .cg-top-comuni.cg-surname-table tr:first-child {
    border-top: 0;
  }

  .cg-surname-table-card .cg-top-comuni.cg-surname-table td {
    display: block;
    min-width: 0;
    padding: 0 !important;
    border: 0 !important;
  }

  .cg-surname-table-card .cg-top-comuni.cg-surname-table td:nth-child(1) {
    grid-column: 1;
    grid-row: 1;
    font-size: 1rem;
    font-weight: 800;
    overflow-wrap: anywhere;
  }

  .cg-surname-table-card .cg-top-comuni.cg-surname-table td:nth-child(2) {
    display: none;
  }

  .cg-surname-table-card .cg-top-comuni.cg-surname-table td:nth-child(3) {
    grid-column: 1;
    grid-row: 2;
    color: var(--cg-muted);
    font-size: 0.82rem;
  }

  .cg-surname-table-card .cg-top-comuni.cg-surname-table td:nth-child(4) {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
    color: var(--cg-blue-strong);
    font-family: var(--cg-font-display);
    font-size: 1.25rem;
    font-weight: 800;
    line-height: 1;
    text-align: right !important;
    white-space: nowrap;
  }

  .cg-surname-table-card .cg-surname-table-number,
  .cg-surname-table-card .cg-surname-table-unit {
    display: block;
  }

  .cg-surname-table-card .cg-surname-table-unit {
    margin-top: 4px;
    color: var(--cg-muted);
    font-family: var(--cg-font-body);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: uppercase;
  }
}
