/* A-CLUSTER Macro Intelligence — region + theme navigator */
.macro-hero {
  padding: 82px 0 72px;
  background:
    radial-gradient(circle at 90% 8%, rgba(65,163,216,.13), transparent 28%),
    linear-gradient(180deg,#fbfdff,#ffffff);
  border-bottom: 1px solid var(--line);
}

.macro-hero-inner {
  max-width: 930px;
}

.macro-hero h1 {
  max-width: 880px;
  margin: 17px 0 20px;
  font-family: Georgia,"Times New Roman",serif;
  font-size: clamp(48px,6vw,78px);
  line-height: .99;
  font-weight: 500;
  letter-spacing: -.037em;
  color: var(--navy);
}

.macro-hero h1 span { color: var(--blue); }

.macro-hero p {
  max-width: 800px;
  margin: 0;
  color: #4c5f72;
  font-size: 17px;
  line-height: 1.72;
}

.macro-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 11px;
  margin-top: 29px;
}

.macro-section {
  padding: 74px 0;
}

.macro-section.section-alt {
  background: var(--canvas);
  border-top: 1px solid #edf1f4;
  border-bottom: 1px solid #edf1f4;
}

.macro-heading {
  display: grid;
  grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr);
  gap: 54px;
  align-items: end;
  margin-bottom: 34px;
}

.macro-heading.compact { margin-bottom: 27px; }

.macro-heading h2 {
  margin: 8px 0 0;
  font-family: Georgia,"Times New Roman",serif;
  font-size: clamp(34px,4vw,50px);
  line-height: 1.06;
  font-weight: 500;
  letter-spacing: -.027em;
  color: var(--navy);
}

.macro-heading p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.72;
}

.region-grid {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 16px;
}

.region-card {
  position: relative;
  min-height: 290px;
  display: flex;
  flex-direction: column;
  padding: 25px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  overflow: hidden;
}

.region-card::after {
  content: "";
  position: absolute;
  width: 150px;
  height: 150px;
  right: -82px;
  top: -82px;
  border-radius: 50%;
  background: var(--blue-soft);
}

.region-global {
  background: linear-gradient(145deg,#0b2742,#113b61);
  border-color: #0b2742;
}

.region-global::after { background: rgba(255,255,255,.07); }

.region-code {
  position: relative;
  z-index: 1;
  color: var(--blue);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .13em;
}

.region-global .region-code { color: #8bd1f2; }

.region-card h3 {
  position: relative;
  z-index: 1;
  margin: 30px 0 12px;
  color: var(--navy);
  font-family: Georgia,"Times New Roman",serif;
  font-size: 29px;
  font-weight: 500;
  letter-spacing: -.02em;
}

.region-global h3 { color: #fff; }

.region-card p {
  position: relative;
  z-index: 1;
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.68;
}

.region-global p { color: #c5d4e1; }

.region-foot {
  position: relative;
  z-index: 1;
  margin-top: auto;
  padding-top: 19px;
  border-top: 1px solid var(--line);
}

.region-global .region-foot { border-color: rgba(255,255,255,.18); }

.region-foot span {
  display: block;
  color: var(--muted-2);
  font-size: 8px;
  font-weight: 850;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.region-global .region-foot span { color: #91aac0; }

.region-foot strong,
.region-foot a {
  display: block;
  margin-top: 6px;
  color: var(--navy);
  font-size: 11px;
  line-height: 1.4;
  font-weight: 800;
}

.region-global .region-foot a { color: #fff; }
.region-global .region-foot a:hover { color: #8bd1f2; }

.theme-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 16px;
}

.theme-card {
  min-height: 235px;
  display: flex;
  flex-direction: column;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: #fff;
}

.theme-card.is-live {
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.theme-card.is-live:hover,
.theme-card.is-live:focus-visible {
  transform: translateY(-2px);
  border-color: #b7cbdc;
  box-shadow: var(--shadow);
  outline: none;
}

.theme-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.theme-top > span {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  color: var(--blue);
  background: var(--blue-soft);
  font-size: 9px;
  font-weight: 850;
}

.theme-top em {
  color: var(--muted-2);
  font-style: normal;
  font-size: 8px;
  font-weight: 850;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.theme-card.is-live .theme-top em { color: var(--success); }

.theme-card h3 {
  margin: 26px 0 9px;
  color: var(--navy);
  font-size: 18px;
  letter-spacing: -.012em;
}

.theme-card p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.63;
}

.theme-link {
  margin-top: auto;
  padding-top: 18px;
  color: var(--blue);
  font-size: 10px;
  font-weight: 850;
}

.theme-link.muted { color: var(--muted-2); }

.latest-research-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 16px;
}

.latest-research-card {
  min-height: 250px;
  display: flex;
  flex-direction: column;
  padding: 23px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: #fff;
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.latest-research-card:hover,
.latest-research-card:focus-visible {
  transform: translateY(-2px);
  border-color: #b6c9d9;
  box-shadow: var(--shadow);
  outline: none;
}

.latest-type {
  color: var(--blue);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.latest-research-card h3 {
  margin: 28px 0 10px;
  color: var(--navy);
  font-family: Georgia,"Times New Roman",serif;
  font-size: 23px;
  font-weight: 500;
  line-height: 1.12;
  letter-spacing: -.018em;
}

.latest-research-card p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.65;
}

.latest-research-card strong {
  margin-top: auto;
  padding-top: 20px;
  color: var(--blue);
  font-size: 10px;
}

.macro-principle {
  padding: 58px 0;
  background: var(--navy);
  color: #fff;
}

.macro-principle-inner {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 54px;
  align-items: center;
}

.macro-principle span {
  display: block;
  margin-bottom: 8px;
  color: #8bd1f2;
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.macro-principle h2 {
  margin: 0;
  font-family: Georgia,"Times New Roman",serif;
  font-size: clamp(31px,4vw,46px);
  font-weight: 500;
  line-height: 1.06;
}

.macro-principle p {
  margin: 0;
  color: #bacada;
  font-size: 14px;
  line-height: 1.72;
}

.desktop-nav a.active { color: var(--blue); }

@media (max-width: 1050px) {
  .region-grid { grid-template-columns: repeat(2,1fr); }
  .theme-grid { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 900px) {
  .macro-heading,
  .macro-principle-inner {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .latest-research-grid { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .macro-hero { padding: 56px 0 48px; }
  .macro-hero h1 { font-size: clamp(43px,13vw,59px); }
  .macro-hero p { font-size: 15px; }
  .macro-section { padding: 56px 0; }
  .region-grid,
  .theme-grid { grid-template-columns: 1fr; }
  .region-card { min-height: 255px; }
  .macro-principle { padding: 48px 0; }
}
