.geo-shell.capital-page {
  width: min(1500px, calc(100vw - 56px));
  padding-bottom: 48px;
}

.capital-page {
  --capital-green: #079b70;
  --capital-green-dark: #057151;
  --capital-blue: #2478e8;
  --capital-orange: #f0a11a;
  --capital-purple: #7a42a8;
  --capital-red: #e83f4f;
  --capital-ink: #05182b;
  --capital-muted: #5d6f84;
}

.capital-page h1,
.capital-page h2,
.capital-page h3 {
  color: var(--capital-ink);
  letter-spacing: 0;
}

.capital-page .button {
  min-height: 48px;
  border-radius: 8px;
  padding-inline: 23px;
  font-size: 14px;
}

.capital-page .button-primary {
  background: linear-gradient(180deg, #0ba87d, #078966);
  border-color: #078966;
  box-shadow: 0 14px 28px rgba(7, 148, 109, .22);
}

.capital-page .button-outline {
  background: #fff;
}

.capital-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(430px, .85fr);
  gap: 46px;
  align-items: center;
  padding: 6px 0 30px;
}

.capital-hero .title-line {
  align-items: center;
  gap: 12px;
}

.capital-hero h1 {
  min-width: 0;
  font-size: clamp(28px, 2.5vw, 38px);
  line-height: 1.1;
  letter-spacing: -.03em;
}

.capital-hero .hero-description {
  max-width: 620px;
  margin: 14px 0 22px;
  color: #4a5d73;
  font-size: 15px;
  line-height: 1.65;
}

.capital-hero .place-meta {
  margin-top: 10px;
  font-size: 15px;
}

.capital-hero .hero-actions {
  margin: 0;
}

.capital-score {
  position: relative;
  padding: 22px 26px 20px;
  border: 1px solid #e0e8ef;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 12px 34px rgba(7, 23, 41, .06);
}

.capital-score__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  font-size: 14px;
  font-weight: 800;
}

.capital-score__head a {
  color: #08785b;
  font-size: 12px;
  font-weight: 700;
}

.capital-score__gauge {
  width: min(100%, 340px);
  height: 240px;
  /* El gauge es media circunferencia: recorto el hueco inferior del canvas. */
  margin: 0 auto -44px;
}

.capital-score > p {
  max-width: 470px;
  margin: 2px auto 18px;
  color: var(--capital-muted);
  font-size: 13px;
  line-height: 1.6;
  text-align: center;
}

.capital-score__signals {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 18px;
}

.capital-score__signals span {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  align-items: center;
  row-gap: 1px;
  column-gap: 7px;
}

.capital-score__signals small {
  color: #62758b;
  font-size: 11px;
}

.capital-score__signals b {
  grid-column: 2;
  color: #11243b;
  font-size: 12px;
  font-weight: 800;
}

/* Iconos de señal: SVG de trazo, color por familia. */
.signal-icon {
  grid-row: span 2;
  width: 19px;
  height: 19px;
}

.signal-icon.is-demand,
.signal-icon.is-yield {
  color: #16304d;
}

.signal-icon.is-liquidity {
  color: #f0a11a;
}

.signal-icon.is-risk {
  color: #2478e8;
}

.signal-icon.is-safety {
  color: #12a071;
}

.capital-objectives {
  margin: 2px 0 36px;
}

.capital-objectives header {
  margin-bottom: 18px;
}

.capital-objectives header h2 {
  margin: 0;
  font-size: clamp(26px, 2.3vw, 38px);
  line-height: 1.12;
}

.capital-objectives header p {
  margin: 7px 0 0;
  color: var(--capital-muted);
  font-size: 15px;
}

.capital-objectives__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
}

.capital-objective {
  position: relative;
  display: flex;
  min-height: 250px;
  flex-direction: column;
  padding: 20px;
  border: 1px solid #d7e5ee;
  border-radius: 10px;
  background: #fff;
  color: var(--capital-ink);
  box-shadow: 0 16px 36px rgba(7, 23, 41, .06);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.capital-objective:hover {
  transform: translateY(-4px);
  border-color: #abcfe0;
  box-shadow: 0 24px 52px rgba(7, 23, 41, .11);
}

.capital-objective__art {
  position: relative;
  display: grid;
  place-items: center;
  height: 112px;
  margin-bottom: 17px;
  border-radius: 9px;
  overflow: hidden;
  background: linear-gradient(135deg, #e5f7f1, #f7fcfa);
}

.capital-objective.is-rent .capital-objective__art {
  background: linear-gradient(135deg, #edf4ff, #f8fbff);
}

.capital-objective.is-invest .capital-objective__art {
  background: linear-gradient(135deg, #fff4dc, #fffdf7);
}

.capital-objective.is-compare .capital-objective__art {
  background: linear-gradient(135deg, #f6eafa, #fffafe);
}

.capital-objective strong {
  font-size: 18px;
  line-height: 1.2;
}

.capital-objective p {
  margin: 9px 0 20px;
  color: #52667d;
  font-size: 13px;
  line-height: 1.55;
}

.capital-objective > b {
  position: absolute;
  right: 20px;
  bottom: 16px;
  color: var(--capital-green);
  font-size: 24px;
}

.capital-objective.is-rent > b {
  color: var(--capital-blue);
}

.capital-objective.is-invest > b {
  color: var(--capital-orange);
}

.capital-objective.is-compare > b {
  color: var(--capital-purple);
}

.objective-visual {
  position: relative;
  display: block;
  width: 150px;
  height: 80px;
}

.objective-visual i {
  position: absolute;
  display: block;
}

.visual-home i {
  bottom: 5px;
  width: 43px;
  height: 38px;
  border: 4px solid #11936e;
  border-top: 0;
  border-radius: 3px;
}

.visual-home i::before {
  content: "";
  position: absolute;
  left: 3px;
  right: 3px;
  top: -20px;
  height: 34px;
  border: 4px solid #11936e;
  border-right: 0;
  border-bottom: 0;
  transform: rotate(45deg);
}

.visual-home i:nth-child(1) { left: 11px; transform: scale(.85); }
.visual-home i:nth-child(2) { left: 52px; width: 50px; height: 45px; }
.visual-home i:nth-child(3) { right: 8px; transform: scale(.75); }

.visual-rent i {
  bottom: 4px;
  width: 48px;
  height: 58px;
  border-radius: 4px 4px 2px 2px;
  background:
    linear-gradient(#2478e8 0 0) 10px 12px/8px 8px no-repeat,
    linear-gradient(#2478e8 0 0) 29px 12px/8px 8px no-repeat,
    linear-gradient(#2478e8 0 0) 10px 31px/8px 8px no-repeat,
    linear-gradient(#2478e8 0 0) 29px 31px/8px 8px no-repeat,
    #dceaff;
  border: 3px solid #2478e8;
}

.visual-rent i:nth-child(1) { left: 16px; height: 48px; opacity: .68; }
.visual-rent i:nth-child(2) { left: 52px; height: 68px; }
.visual-rent i:nth-child(3) { left: 93px; height: 43px; opacity: .78; }

.visual-invest {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 9px;
}

.visual-invest i {
  position: static;
  width: 24px;
  border-radius: 5px 5px 1px 1px;
  background: linear-gradient(180deg, #f7c55d, #ec8e14);
}

.visual-invest i:nth-child(1) { height: 22px; }
.visual-invest i:nth-child(2) { height: 38px; }
.visual-invest i:nth-child(3) { height: 56px; }
.visual-invest i:nth-child(4) { height: 73px; }

.visual-compare i {
  width: 25px;
  height: 25px;
  border: 6px solid #7a42a8;
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
}

.visual-compare i::after {
  content: "";
  position: absolute;
  inset: 5px;
  border-radius: 50%;
  background: #7a42a8;
}

.visual-compare i:nth-child(1) { left: 20px; top: 36px; }
.visual-compare i:nth-child(2) { left: 64px; top: 10px; transform: rotate(-45deg) scale(1.25); }
.visual-compare i:nth-child(3) { right: 17px; top: 41px; }

.capital-current,
.capital-market,
.capital-evolution,
.capital-profile,
.capital-vision,
.capital-faq,
.capital-related {
  scroll-margin-top: 92px;
  margin-top: 34px;
}

.capital-current > .section-title {
  align-items: center;
  margin-bottom: 0;
  padding-top: 8px;
}

.capital-current > .section-title h2 {
  font-size: clamp(32px, 3vw, 48px);
  line-height: 1.04;
  text-transform: uppercase;
}

.capital-current > .section-title .button {
  min-height: 42px;
}

.capital-tabs {
  position: sticky;
  top: 76px;
  z-index: 80;
  margin: 17px 0 22px;
  background: rgba(247, 250, 252, .96);
  backdrop-filter: blur(10px);
}

.capital-tabs a {
  padding-block: 17px 16px;
  font-size: 13px;
}

.capital-current__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, .92fr) minmax(0, .92fr);
  gap: 18px;
}

.capital-current__grid > .panel {
  min-height: 225px;
  padding: 26px;
}

.capital-summary {
  display: grid;
  grid-template-columns: 86px 1fr;
  gap: 22px;
}

.capital-summary .illustration-badge {
  width: 82px;
  height: 82px;
}

.capital-summary h3,
.capital-opportunities h3,
.capital-risks h3 {
  margin: 2px 0 13px;
  font-size: 20px;
}

.capital-summary p {
  margin: 0;
  color: #40556d;
  font-size: 15px;
  line-height: 1.7;
}

.capital-opportunities {
  border-top: 4px solid var(--capital-blue);
}

.capital-risks {
  border-top: 4px solid var(--capital-red);
}

.capital-opportunities h3 {
  color: #1469ce;
}

.capital-risks h3 {
  color: #cf2133;
}

.capital-opportunities ul,
.capital-risks ul {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
  color: #40566e;
  font-size: 14px;
  line-height: 1.45;
}

.capital-opportunities li,
.capital-risks li {
  display: grid;
  grid-template-columns: 18px 1fr;
  gap: 8px;
}

.capital-opportunities li::before {
  content: "\2713";
  color: #167ddc;
  font-weight: 900;
}

.capital-risks li::before {
  content: "!";
  color: #e13949;
  font-weight: 900;
}

.capital-market {
  padding-top: 8px;
}

.capital-market .section-title h2,
.capital-evolution .section-title h2,
.capital-profile .section-title h2,
.capital-vision .section-title h2,
.capital-faq .section-title h2 {
  font-size: clamp(25px, 2vw, 34px);
}

.capital-metrics {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 12px;
}

.capital-metrics article {
  display: flex;
  min-height: 158px;
  flex-direction: column;
  padding: 17px 16px;
  border: 1px solid #dfe8ef;
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(7, 23, 41, .045);
}

.capital-metrics small {
  color: #465d75;
  font-size: 12px;
  font-weight: 900;
}

.capital-metrics strong {
  margin: 12px 0 6px;
  font-size: 27px;
  line-height: 1;
}

.capital-metrics strong em {
  font-size: 13px;
  font-style: normal;
}

.capital-metrics .metric-delta {
  margin-bottom: 8px;
  color: #12a071;
  font-size: 12px;
  font-weight: 800;
}

.capital-metrics .metric-delta.is-down {
  color: #d9534f;
}

.capital-metrics span {
  color: #62758b;
  font-size: 12px;
  line-height: 1.45;
}

.capital-metrics a {
  margin-top: auto;
  padding-top: 18px;
  color: #096bd8;
  font-size: 12px;
  font-weight: 900;
}

.capital-metrics article.is-locked {
  background: linear-gradient(145deg, #fff, #fff7e7);
  border-color: #ecdcb8;
}

.capital-metrics article.is-locked strong {
  color: #93620c;
  font-size: 21px;
}

.capital-evolution__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 16px;
}

.capital-evolution__grid > .panel {
  display: flex;
  flex-direction: column;
  padding: 0;
  border-radius: 10px;
}

.capital-evolution .echart-card header {
  padding: 18px 20px 4px;
  border: 0;
}

.capital-evolution .echart-card h3 {
  margin: 0;
  font-size: 17px;
}

.capital-evolution .echart-card h3 em {
  color: #6c7c90;
  font-size: 13px;
  font-style: normal;
  font-weight: 600;
}

.capital-evolution .echart-card .echart {
  height: 258px;
}

.capital-evolution .echart-card > p {
  margin: 0;
  padding: 6px 20px 0;
  color: #65778a;
  font-size: 12px;
}

.capital-evolution__grid .text-link {
  margin-top: auto;
  padding: 14px 20px 18px;
  color: #096bd8;
  font-size: 13px;
  font-weight: 800;
}

.capital-evolution .public-map-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 0;
  padding: 18px 20px 10px;
  border: 0;
}

.capital-evolution .public-map-head h3 {
  margin: 0;
  font-size: 17px;
}

.capital-evolution .public-map-canvas {
  height: 258px;
  margin: 0 20px;
  border: 1px solid #e2eaf1;
  border-radius: 8px;
}

.capital-evolution .public-map-status {
  padding: 8px 20px 0;
  border: 0;
  background: none;
  color: #65778a;
  font-size: 12px;
}

/* Pin del mapa de la capital: burbuja con el nombre a la derecha. */
.public-map-pin {
  display: flex;
  align-items: center;
  gap: 6px;
  width: max-content;
  transform: translate(-9px, -30px);
}

.public-map-pin i {
  position: relative;
  width: 18px;
  height: 18px;
  border: 3px solid #fff;
  border-radius: 50% 50% 50% 0;
  background: #12a071;
  box-shadow: 0 2px 6px rgba(7, 23, 41, .35);
  transform: rotate(-45deg);
}

.public-map-pin b {
  padding: 4px 8px;
  border-radius: 6px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(7, 23, 41, .18);
  color: #12233a;
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
}

@media (max-width: 1080px) {
  .capital-evolution__grid {
    grid-template-columns: 1fr;
  }

  .capital-metrics {
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  }
}

.capital-context {
  margin-top: 18px;
}

.capital-context summary {
  min-height: 62px;
  font-size: 15px;
}

.capital-context .echart-grid {
  padding-top: 20px;
}

.capital-chart-empty {
  display: grid;
  place-items: center;
  min-height: 275px;
  padding: 22px;
  color: #76869a;
  font-size: 13px;
  text-align: center;
}

.capital-profile__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 15px;
}

.capital-profile__card {
  position: relative;
  display: flex;
  min-height: 250px;
  flex-direction: column;
  padding: 23px;
}

.capital-profile__card h3 {
  margin: 13px 0 14px;
  font-size: 18px;
}

.capital-profile__icon {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 9px;
  background: #e7f8f1;
  color: #078a65;
  font-size: 19px;
  font-weight: 900;
}

.capital-profile__icon.is-blue { background: #edf4ff; color: #1f70d8; }
.capital-profile__icon.is-orange { background: #fff4df; color: #c77a00; }
.capital-profile__icon.is-purple { background: #f7eefd; color: #7541a7; }

.capital-profile__card dl {
  display: grid;
  gap: 0;
  margin: 0;
}

.capital-profile__card dl div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 0;
  border-bottom: 1px solid #edf1f4;
}

.capital-profile__card dt {
  color: #64778c;
  font-size: 12px;
}

.capital-profile__card dd {
  margin: 0;
  color: #12253c;
  font-size: 13px;
  font-weight: 900;
  text-align: right;
}

.capital-profile__card ul {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
  color: #536a80;
  font-size: 13px;
  line-height: 1.5;
}

.capital-profile__card li {
  display: grid;
  grid-template-columns: 16px 1fr;
  gap: 7px;
}

.capital-profile__card li::before {
  content: "\2713";
  color: #079b70;
  font-weight: 900;
}

.capital-profile__card p {
  margin: 0;
  color: #536a80;
  font-size: 13px;
  line-height: 1.65;
}

.capital-profile__card > a {
  margin-top: auto;
  padding-top: 18px;
  color: #0869d5;
  font-size: 13px;
  font-weight: 900;
}

.capital-profile__card.is-protected {
  border-color: #e9dfc9;
  background: linear-gradient(140deg, #fff, #fff8e8);
}

.capital-profile__card.is-protected > a {
  color: #087d5e;
}

.capital-vision__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 18px;
}

.capital-vision .signals-panel {
  margin: 0;
  padding: 26px;
}

.capital-vision .signals-panel > h3 {
  margin: 0 0 7px;
  font-size: 20px;
}

.capital-vision .signals-panel > p {
  margin: 0 0 17px;
  color: #65778a;
  font-size: 13px;
}

.capital-vision .signal-row {
  min-height: 61px;
  font-size: 13px;
}

.capital-vision .signal-row strong {
  font-size: 13px;
}

.capital-alert {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 22px 26px;
  background: linear-gradient(145deg, #f0faf6, #fff);
}

.capital-alert > div {
  flex: 1;
  min-width: 220px;
}

.capital-alert__icon {
  display: grid;
  flex: none;
  place-items: center;
  width: 56px;
  height: 56px;
  border: 1px solid #9fd9c8;
  border-radius: 50%;
  background: #fff;
  font-size: 24px;
}

.capital-alert h3 {
  margin: 0 0 5px;
  font-size: 19px;
}

.capital-alert p {
  margin: 0;
  color: #607187;
  font-size: 13px;
  line-height: 1.6;
}

.capital-alert form {
  display: flex;
  width: min(100%, 420px);
  flex: none;
  margin: 0;
}

.capital-alert input {
  min-width: 0;
  flex: 1;
  height: 50px;
  padding: 0 15px;
  border: 1px solid #cfdbe4;
  border-radius: 8px 0 0 8px;
}

.capital-alert .button {
  border-radius: 0 8px 8px 0;
}

.capital-report {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(360px, .85fr);
  gap: 40px;
  align-items: center;
  margin: 34px 0 30px;
  padding: 36px;
  border: 1px solid #cfe9df;
  border-radius: 12px;
  background: linear-gradient(135deg, #effbf6, #fff 58%, #eff7ff);
  box-shadow: 0 24px 64px rgba(7, 23, 41, .08);
}

.capital-report h2 {
  max-width: 720px;
  margin: 8px 0 15px;
  font-size: clamp(26px, 2.2vw, 36px);
  line-height: 1.15;
}

.capital-report__copy > p {
  max-width: 760px;
  color: #40566e;
  font-size: 16px;
  line-height: 1.7;
}

.capital-report__questions {
  display: grid;
  gap: 10px;
  margin: 24px 0;
}

.capital-report__questions span {
  display: grid;
  grid-template-columns: 38px 1fr;
  gap: 11px;
  align-items: center;
  padding: 14px;
  border: 1px solid #dcebe5;
  border-radius: 8px;
  background: rgba(255, 255, 255, .82);
}

.capital-report__questions b {
  color: var(--capital-green);
  font-size: 12px;
}

.capital-report__questions em {
  font-size: 15px;
  font-style: normal;
  font-weight: 900;
}

.capital-report__preview {
  padding: 28px;
  border: 1px solid #cbdad5;
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 26px 60px rgba(7, 23, 41, .16);
  transform: rotate(1deg);
}

.capital-report__preview > small {
  color: #68798d;
  font-size: 10px;
}

.capital-report__preview > strong {
  display: block;
  margin: 16px 0 5px;
  padding: 25px;
  border-radius: 8px;
  background: #071f31;
  color: #fff;
  font-size: 34px;
}

.capital-report__preview > span {
  display: block;
  padding: 0 25px 18px;
  color: #6f8093;
  font-size: 12px;
}

.capital-report__preview > div {
  display: grid;
  grid-template-columns: 1.3fr .8fr 1fr .65fr;
  gap: 7px;
  height: 70px;
  align-items: end;
  margin: 18px 0;
}

.capital-report__preview i {
  height: 55%;
  background: #0e9d78;
}

.capital-report__preview i:nth-child(2) { height: 80%; background: #2f7de1; }
.capital-report__preview i:nth-child(3) { height: 68%; background: #f2ad38; }
.capital-report__preview i:nth-child(4) { height: 92%; }

.capital-report__preview p {
  color: #5e7085;
  font-size: 12px;
}

.capital-actions {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin: -10px 0 42px;
}

.capital-actions article {
  padding: 25px;
  border: 1px solid #dce7ed;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 12px 26px rgba(7, 23, 41, .04);
}

.capital-actions span {
  color: #07855f;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.capital-actions h3 {
  margin: 9px 0 10px;
  font-size: 22px;
}

.capital-actions p {
  min-height: 46px;
  margin: 0;
  color: #536a80;
  font-size: 14px;
  line-height: 1.55;
}

.capital-actions a {
  display: inline-block;
  margin-top: 15px;
}

.capital-faq__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 18px;
}

.capital-faq details {
  align-self: start;
  border: 1px solid #dce5ec;
  border-radius: 8px;
  background: #fff;
}

.capital-faq summary {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 17px 20px;
  cursor: pointer;
  list-style: none;
  font-size: 14px;
  font-weight: 900;
}

.capital-faq summary::-webkit-details-marker {
  display: none;
}

.capital-faq summary span {
  color: #087f60;
  font-size: 20px;
}

.capital-faq details[open] summary span {
  transform: rotate(45deg);
}

.capital-faq details p {
  margin: 0;
  padding: 0 20px 18px;
  color: #536a80;
  font-size: 14px;
  line-height: 1.65;
}

.capital-page .plan-catalog {
  margin: 58px 0 8px;
}

.capital-page .plan-catalog__grid {
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}

.capital-page .plan-catalog__card {
  min-height: 450px;
  padding: 22px;
}

.capital-page .plan-catalog__description {
  min-height: 54px;
}

.capital-page .plan-catalog__price strong {
  font-size: 36px;
}

.capital-pricing-link {
  margin: 12px 0 34px;
  text-align: center;
}

.capital-method {
  margin: 38px 0;
  padding: 28px 30px 22px;
  border: 1px solid #dce5ec;
  border-radius: 10px;
  background: #fff;
}

.capital-method h2 {
  margin: 6px 0 9px;
  font-size: clamp(22px, 1.8vw, 28px);
}

.capital-method__lead {
  max-width: 880px;
  margin: 0;
  color: #607086;
  font-size: 14px;
  line-height: 1.6;
}

.capital-method__grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  margin: 22px 0 4px;
}

.capital-method__grid article {
  padding: 4px 18px;
  border-left: 1px solid #e5ebf1;
}

.capital-method__grid article:first-child {
  padding-left: 0;
  border-left: 0;
}

.capital-method__icon {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  margin-bottom: 12px;
  border: 1px solid #d9e3ec;
  border-radius: 9px;
  color: #0d3b52;
}

.capital-method__icon svg {
  width: 20px;
  height: 20px;
}

.capital-method__grid h3 {
  margin: 0 0 6px;
  font-size: 14px;
  line-height: 1.3;
}

.capital-method__grid p {
  margin: 0;
  color: #6f7f93;
  font-size: 12px;
  line-height: 1.5;
}

.capital-method__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  flex-wrap: wrap;
  margin-top: 22px;
  padding-top: 16px;
  border-top: 1px solid #eef2f6;
}

.capital-method__foot p {
  margin: 0;
  color: #6f7f93;
  font-size: 13px;
}

.capital-related .related-grid {
  grid-template-columns: repeat(5, 1fr);
}

.capital-related__more {
  margin-top: 12px;
  padding: 15px 18px;
  border: 1px solid #dce5ec;
  border-radius: 8px;
  background: #fff;
}

.capital-related__more summary {
  cursor: pointer;
  font-size: 13px;
  font-weight: 900;
}

.capital-related__more > div {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  padding-top: 14px;
}

.capital-related__more a {
  color: #096bd8;
  font-size: 13px;
}

@media (max-width: 1180px) {
  .capital-hero {
    grid-template-columns: 1fr;
    min-height: 0;
    gap: 28px;
  }

  .capital-objectives__grid,
  .capital-profile__grid,
  .capital-page .plan-catalog__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .capital-current__grid {
    grid-template-columns: 1fr 1fr;
  }

  .capital-summary {
    grid-column: 1 / -1;
  }

  .capital-evolution__grid,
  .capital-vision__grid,
  .capital-report {
    grid-template-columns: 1fr;
  }

  .capital-evolution .public-map-canvas {
    height: 470px;
  }

  .capital-method__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px 0;
  }

  .capital-method__grid article:nth-child(3n + 1) {
    padding-left: 0;
    border-left: 0;
  }
}

/* Móvil/tablet: la barra de alerta deja de ser una fila y el formulario
   ocupa el ancho completo, si no el input+botón se salen de la pantalla. */
@media (max-width: 900px) {
  .capital-alert {
    align-items: flex-start;
    flex-direction: column;
    gap: 14px;
  }

  .capital-alert > div {
    min-width: 0;
  }

  .capital-alert form {
    width: 100%;
    flex-direction: column;
    gap: 10px;
  }

  .capital-alert input {
    width: 100%;
    border-radius: 8px;
  }

  .capital-alert .button {
    width: 100%;
    border-radius: 8px;
  }
}

@media (max-width: 760px) {
  .geo-shell.capital-page {
    width: min(100% - 28px, 680px);
  }

  .capital-page .button {
    width: 100%;
  }

  .capital-hero {
    padding-top: 14px;
  }

  .capital-hero h1 {
    font-size: 38px;
  }

  .capital-hero .title-line {
    align-items: flex-start;
    flex-direction: column;
  }

  .capital-hero .hero-actions,
  .capital-report .hero-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .capital-score {
    padding: 24px 20px;
  }

  .capital-score__signals {
    grid-template-columns: repeat(2, 1fr);
  }

  .capital-objectives__grid,
  .capital-current__grid,
  .capital-metrics,
  .capital-profile__grid,
  .capital-actions,
  .capital-faq__grid,
  .capital-page .plan-catalog__grid,
  .capital-method__grid,
  .capital-related .related-grid {
    grid-template-columns: 1fr;
  }

  .capital-current > .section-title {
    align-items: stretch;
    flex-direction: column;
  }

  .capital-current__grid > .panel {
    min-height: 0;
  }

  .capital-summary {
    grid-template-columns: 1fr;
  }

  .capital-evolution .echart-card .echart {
    height: 235px;
  }

  .capital-evolution .public-map-canvas {
    height: 360px;
  }

  .capital-alert form {
    flex-direction: column;
    gap: 8px;
  }

  .capital-alert input,
  .capital-alert .button {
    border-radius: 8px;
  }

  .capital-report {
    padding: 28px;
  }

  .capital-report__preview {
    transform: none;
  }
}

/* Servicios de la zona (hospitales, centros comerciales, universidades).
   Comparte la caja desplegable con el bloque de analisis: aqui solo va lo
   propio de la lista y de la linea de cobertura. */
.equipamientos__cuerpo{padding-top:6px}
.equipamientos__grupo{margin-bottom:22px}
.equipamientos__grupo:last-of-type{margin-bottom:0}
.equipamientos__grupo header{margin-bottom:10px}
.equipamientos__grupo h3{display:flex;align-items:center;gap:8px;margin:0;font-size:1rem;color:#12202e}
.equipamientos__cuenta{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:#eef4fb;color:#3b6b9c;font-size:.72rem;font-weight:600}
.equipamientos__cobertura{margin:4px 0 0;color:#4a5b6b;font-size:.85rem}
.equipamientos__cobertura strong{color:#0c8f6a;font-size:1rem}
.equipamientos__grupo ul{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.equipamientos__grupo li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:8px 12px;border:1px solid #edf2f7;border-radius:8px;background:#fbfdff}
.equipamientos__nombre{font-size:.88rem;color:#12202e}
.equipamientos__dir{color:#7c93aa;font-size:.76rem}

/* Analisis publico de mercado escrito por IA (desplegable de la ficha).
   Se lee como el informe basico: cabecera, tira de cifras, prosa a una
   columna y rankings con carril para comparar de un vistazo. */
.analisis-ia{border-top:3px solid #20b98b}
.analisis-ia__cabecera{display:block}
.analisis-ia__eyebrow{display:block;margin-bottom:2px;color:#0f9c74;font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.analisis-ia summary strong{display:block;font-size:1.28rem;line-height:1.25}
.analisis-ia__cuerpo{padding-top:6px}
.analisis-ia__kpis{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));margin-bottom:26px}
.analisis-ia__kpis article{position:relative;padding:16px 18px;border:1px solid #e2e8f0;border-radius:14px;background:#fff;overflow:hidden}
.analisis-ia__kpis article::before{position:absolute;top:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,#20b98b,#5ac8fa);content:""}
.analisis-ia__kpis small{display:block;color:#7c93aa;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.analisis-ia__kpis strong{display:block;margin:6px 0 3px;font-size:1.62rem;line-height:1.05;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.analisis-ia__kpis span{color:#607086;font-size:.78rem}
.analisis-ia__texto{max-width:78ch}
.analisis-ia__seccion{margin:0 0 22px}
.analisis-ia__seccion h3{margin:0 0 8px;padding-left:14px;border-left:4px solid #20b98b;font-size:1.16rem;line-height:1.3}
.analisis-ia__seccion p{margin:0 0 12px;color:#31465c;font-size:.97rem;line-height:1.75}
.analisis-ia__graficas{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-top:24px}
.analisis-ia__grafica{padding:18px 20px;border-radius:14px}
.analisis-ia__grafica header{margin-bottom:14px}
.analisis-ia__grafica header h3{margin:0;font-size:1.02rem}
.analisis-ia__grafica header span{color:#7c93aa;font-size:.76rem}
.analisis-ia__grafica ul{margin:0;padding:0;list-style:none}
.analisis-ia__grafica li{display:grid;align-items:center;gap:10px;grid-template-columns:minmax(84px,26%) 1fr auto;margin-bottom:9px;font-size:.82rem}
.analisis-ia__etiqueta{overflow:hidden;color:#31465c;text-overflow:ellipsis;white-space:nowrap}
.analisis-ia__carril{display:block;height:9px;border-radius:6px;background:#eef2f6}
.analisis-ia__carril i{display:block;height:100%;min-width:4px;border-radius:6px;background:#9fd8c4}
.analisis-ia__grafica li.is-top .analisis-ia__carril i{background:linear-gradient(90deg,#20b98b,#0f9c74)}
.analisis-ia__grafica b{color:#10243a;font-size:.8rem;font-variant-numeric:tabular-nums}
.analisis-ia__pie{display:flex;align-items:flex-start;gap:7px;margin-top:22px;padding-top:14px;border-top:1px solid #edf2f7;color:#7c93aa;font-size:.75rem;line-height:1.5}
.analisis-ia__pie svg{flex:0 0 14px;width:14px;height:14px;fill:none;stroke:#20b98b;stroke-width:1.6}

.municipality-score {
  color: var(--capital-green, #07855f);
  font-size: 15px;
}
