/* Ficha pública de provincia. Reutiliza la base de `.capital-page`
   (hero, gauge, objetivos, planes) y añade solo lo propio de provincia. */

.province-page .province-hero__claim {
  margin: 14px 0 0;
  font-size: clamp(18px, 1.5vw, 22px);
  line-height: 1.3;
}

.province-page .capital-hero {
  align-items: center;
}

/* Franja lineal de datos provinciales */
.province-strip {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0;
  margin-bottom: 34px;
  padding: 16px 8px;
  border: 1px solid #dfe8ef;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(7, 23, 41, .045);
}

.province-strip article {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 6px 16px;
  border-left: 1px solid #eef2f6;
}

.province-strip article:first-child {
  border-left: 0;
}

.province-strip__icon {
  display: grid;
  flex: none;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 9px;
  background: #eef7f3;
  color: #0b7d5d;
}

.province-strip__icon svg {
  width: 18px;
  height: 18px;
}

.province-strip strong {
  display: block;
  font-size: 19px;
  line-height: 1.1;
}

.province-strip strong em {
  font-size: 12px;
  font-style: normal;
  font-weight: 700;
}

.province-strip small {
  color: #6f7f93;
  font-size: 11px;
  line-height: 1.35;
}

.province-strip article.is-locked .province-strip__icon {
  background: #fdf4e3;
  color: #b07a12;
}

.province-strip article.is-locked strong {
  color: #93620c;
  font-size: 16px;
}

/* Situación actual + mapa */
.province-situation {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  align-items: stretch;
  gap: 16px;
  margin-bottom: 30px;
}

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

.province-situation__copy {
  padding: 24px 26px 22px !important;
}

.province-situation__copy h2 {
  margin: 0 0 10px;
  font-size: clamp(19px, 1.6vw, 23px);
}

.province-situation__copy > p {
  margin: 0 0 18px;
  color: #5d6f84;
  font-size: 14px;
  line-height: 1.6;
}

.province-situation__lists {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 20px;
}

.province-list {
  padding: 16px 18px;
  border: 1px solid #dcecdf;
  border-radius: 9px;
  background: #f5fbf7;
}

.province-list.is-warn {
  border-color: #f6dcdc;
  background: #fdf6f6;
}

.province-list h3 {
  margin: 0 0 10px;
  color: #0b7d5d;
  font-size: 12px;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.province-list.is-warn h3 {
  color: #c0392b;
}

.province-list ul {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.province-list li {
  position: relative;
  padding-left: 22px;
  color: #40536a;
  font-size: 13px;
  line-height: 1.45;
}

.province-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: #12a071;
  font-weight: 900;
}

.province-list.is-warn li::before {
  content: "⚠";
  color: #d9534f;
}

.province-situation__copy > .button {
  margin-top: auto;
  align-self: flex-start;
}

.province-map .public-map-canvas {
  /* Alto suficiente para que el encuadre de la provincia entre a zoom 8: por
     debajo, Leaflet baja un nivel y el mapa sale medio país. */
  height: 440px;
  margin: 0 20px;
  border: 1px solid #e2eaf1;
  border-radius: 8px;
}

.province-map .public-map-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  min-height: 0;
  padding: 20px 22px 12px;
  border: 0;
}

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

.province-map .public-map-head p {
  margin: 0;
  color: #6f7f93;
  font-size: 12px;
}

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

.province-map > .text-link {
  margin-top: auto;
  padding: 12px 22px 18px;
  color: #096bd8;
  font-size: 13px;
  font-weight: 800;
}

/* Fila: 4 datos + evolución + ranking */
.province-dashboard {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.15fr) minmax(0, .9fr);
  align-items: stretch;
  gap: 16px;
  margin-bottom: 22px;
}

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

.province-four,
.province-ranking {
  padding: 20px 22px 18px !important;
}

.province-four h3,
.province-ranking h3 {
  margin: 0 0 14px;
  font-size: 17px;
}

.province-four__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.province-four__grid > div {
  padding: 13px 14px;
  border: 1px solid #e6ecf2;
  border-radius: 9px;
}

.province-four__icon {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  margin-bottom: 9px;
  border-radius: 8px;
  background: #eef7f3;
  color: #0b7d5d;
}

.province-four__icon svg {
  width: 17px;
  height: 17px;
}

.province-four strong {
  display: block;
  font-size: 19px;
  line-height: 1.1;
}

.province-four strong em {
  font-size: 11px;
  font-style: normal;
  font-weight: 700;
}

.province-four small {
  color: #6f7f93;
  font-size: 11px;
}

.province-four__note {
  margin: 14px 0 0;
  color: #6f7f93;
  font-size: 12px;
  line-height: 1.5;
}

.province-evolution header {
  padding: 18px 20px 4px;
  border: 0;
}

.province-evolution h3 {
  margin: 0;
  font-size: 17px;
}

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

.province-evolution .echart {
  height: 250px;
}

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

.province-evolution > .text-link,
.province-ranking > .text-link {
  margin-top: auto;
  color: #096bd8;
  font-size: 13px;
  font-weight: 800;
}

.province-evolution > .text-link {
  padding: 14px 20px 18px;
}

.province-ranking__note {
  margin: -8px 0 12px;
  color: #6f7f93;
  font-size: 12px;
  line-height: 1.45;
}

.province-ranking ol {
  display: grid;
  gap: 2px;
  margin: 0 0 12px;
  padding: 0;
  list-style: none;
}

.province-ranking li {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 9px 0;
  border-bottom: 1px solid #f0f4f8;
  font-size: 13px;
}

.province-ranking li:last-child {
  border-bottom: 0;
}

.province-ranking__pos {
  color: #8494a8;
  font-size: 12px;
  font-weight: 800;
}

.province-ranking__value {
  color: #6f7f93;
  font-size: 12px;
  font-weight: 700;
}

/* Preguntas frecuentes a ancho completo, en dos columnas */
.province-page .capital-faq {
  margin: 26px 0;
}

/* Banda de alerta: fila completa debajo de las señales */
.province-alert-band {
  margin-bottom: 26px;
}

.province-alert-band .capital-alert {
  border: 1px solid #cfe9df;
  border-radius: 12px;
}

.province-alert-band select {
  height: 50px;
  padding: 0 12px;
  border: 1px solid #cfdbe4;
  border-right: 0;
  border-radius: 8px 0 0 8px;
  background: #fff;
  font-size: 14px;
}

.province-alert-band input {
  border-radius: 0;
}

.ccaa-page .province-alert-band input {
  border-left: 0;
}

/* Visión + informe */
.province-vision {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, .75fr);
  align-items: stretch;
  gap: 16px;
  margin-bottom: 26px;
}

.province-vision__copy {
  padding: 24px 26px;
}

.province-vision__copy h2 {
  margin: 0 0 10px;
  font-size: clamp(19px, 1.6vw, 24px);
}

.province-vision__copy > p {
  margin: 0 0 18px;
  color: #5d6f84;
  font-size: 14px;
  line-height: 1.6;
}

.province-vision__signals {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.province-vision__signals h3 {
  margin: 0 0 9px;
  font-size: 13px;
}

.province-vision__signals ul {
  display: grid;
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.province-vision__signals li {
  position: relative;
  padding-left: 20px;
  color: #40536a;
  font-size: 13px;
  line-height: 1.45;
}

.province-vision__signals div:first-child li::before {
  content: "↑";
  position: absolute;
  left: 0;
  color: #12a071;
  font-weight: 900;
}

.province-vision__signals div:last-child li::before {
  content: "↓";
  position: absolute;
  left: 0;
  color: #d9534f;
  font-weight: 900;
}

.province-vision__list {
  margin-top: 20px;
}

.province-report {
  display: flex;
  flex-direction: column;
  padding: 24px;
  background: linear-gradient(160deg, #f2f9ff, #fff 60%);
}

.province-report__icon {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  margin-bottom: 12px;
  border: 1px solid #cfe0ef;
  border-radius: 10px;
  color: #0d3b52;
}

.province-report__icon svg {
  width: 22px;
  height: 22px;
}

.province-report h3 {
  margin: 0 0 8px;
  font-size: 19px;
  line-height: 1.25;
}

.province-report p {
  margin: 0 0 14px;
  color: #5d6f84;
  font-size: 13px;
  line-height: 1.6;
}

.province-report__families {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px 12px;
  margin-bottom: 18px;
}

.province-report__families span {
  position: relative;
  padding-left: 15px;
  color: #40536a;
  font-size: 12px;
  font-weight: 700;
}

.province-report__families span::before {
  content: "";
  position: absolute;
  top: 6px;
  left: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #12a071;
}

.province-report > .button {
  margin-top: auto;
}

/* Índice de municipios */
.province-municipalities {
  margin-bottom: 26px;
}

.province-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-bottom: 14px;
}

.province-chips a {
  padding: 8px 14px;
  border: 1px solid #cfe6da;
  border-radius: 999px;
  background: #f4fbf7;
  color: #0b6b52;
  font-size: 13px;
  font-weight: 700;
}

.province-chips a:hover {
  border-color: #12a071;
}

.province-municipalities .municipalities-panel {
  padding: 0;
}

/* CTA final */
.province-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  margin-bottom: 34px;
  padding: 28px 30px;
  border: 1px solid #cfe9df;
  border-radius: 12px;
  background: linear-gradient(135deg, #effbf6, #fff 60%, #eff7ff);
}

.province-cta h2 {
  margin: 0 0 6px;
  font-size: clamp(20px, 1.8vw, 27px);
}

.province-cta p {
  max-width: 620px;
  margin: 0;
  color: #5d6f84;
  font-size: 14px;
  line-height: 1.6;
}

@media (max-width: 1180px) {
  .province-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px 0;
  }

  .province-strip article:nth-child(3n + 1) {
    border-left: 0;
  }

  .province-dashboard,
  .province-situation,
  .province-vision {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 760px) {
  .province-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .province-strip article:nth-child(3n + 1) {
    border-left: 1px solid #eef2f6;
  }

  .province-strip article:nth-child(odd) {
    border-left: 0;
  }

  .province-situation__lists,
  .province-vision__signals,
  .province-four__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .province-cta .hero-actions {
    width: 100%;
    flex-direction: column;
  }
}

/* Comunidad autónoma: rejilla de provincias del interlinking */
.ccaa-provinces {
  margin-bottom: 26px;
}

.ccaa-province-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 14px;
}

.ccaa-province-card {
  display: flex;
  flex-direction: column;
  padding: 20px 22px;
  color: var(--capital-ink);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.ccaa-province-card:hover {
  transform: translateY(-3px);
  border-color: #abcfe0;
  box-shadow: 0 18px 40px rgba(7, 23, 41, .09);
}

.ccaa-province-card__icon {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  margin-bottom: 12px;
  border-radius: 9px;
  background: #eef7f3;
  color: #0b7d5d;
}

.ccaa-province-card__icon svg {
  width: 19px;
  height: 19px;
}

.ccaa-province-card h3 {
  margin: 0 0 5px;
  font-size: 18px;
}

.ccaa-province-card p {
  margin: 0 0 14px;
  color: #6f7f93;
  font-size: 13px;
}

.ccaa-province-card em {
  margin-top: auto;
  color: #096bd8;
  font-size: 13px;
  font-style: normal;
  font-weight: 800;
}

.ccaa-chips-title {
  margin: 22px 0 10px;
  font-size: 15px;
}


.ccaa-page .geo-search-panel {
  margin-bottom: 26px;
}

/* Índice de comunidades */
.ccaa-index-hero {
  padding: 8px 0 26px;
}

.ccaa-index-hero h1 {
  margin: 0 0 10px;
  font-size: clamp(28px, 2.6vw, 40px);
  line-height: 1.1;
}

.ccaa-index-hero > p {
  max-width: 680px;
  margin: 0 0 22px;
  color: #4a5d73;
  font-size: 15px;
  line-height: 1.65;
}

.ccaa-index-hero .province-strip {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 0;
}

@media (max-width: 760px) {
  .ccaa-index-hero .province-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Buscador territorial compartido con la home (allí va en un <style> inline) */
.ccaa-index-search {
  margin-bottom: 26px;
}

.ccaa-index-search .home-geo-search {
  position: relative;
  padding: 22px 24px;
  border: 1px solid #dfe8ef;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(7, 23, 41, .045);
}

.ccaa-index-search .home-geo-search > label {
  display: block;
  margin-bottom: 6px;
  font-size: 15px;
  font-weight: 800;
}

.ccaa-index-search .home-geo-search > p {
  margin: 0 0 14px;
  color: #6f7f93;
  font-size: 12px;
}

.ccaa-index-search .home-geo-filters {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}

.ccaa-index-search .home-geo-field {
  display: grid;
  gap: 6px;
}

.ccaa-index-search .home-geo-field label {
  margin: 0;
  color: #41516a;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.ccaa-index-search select {
  width: 100%;
  height: 42px;
  padding: 0 11px;
  border: 1px solid #cbd8e5;
  border-radius: 7px;
  background: #fff;
  font: inherit;
  font-size: 12px;
}

.ccaa-index-search .geo-main-search {
  position: relative;
}

.ccaa-index-search input[type="search"] {
  width: 100%;
  height: 51px;
  padding: 0 45px 0 15px;
  border: 1px solid #cbd8e5;
  border-radius: 7px;
  font: inherit;
}

.ccaa-index-search input[type="search"]:focus {
  border-color: #08a97f;
  box-shadow: 0 0 0 3px rgba(8, 198, 147, .11);
}

.ccaa-index-search .geo-suggestions {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 10px;
}

.ccaa-index-search .geo-suggestions button {
  min-height: 30px;
  padding: 0 10px;
  border: 1px solid #cfe0ec;
  border-radius: 999px;
  background: #f7fbfd;
  color: #37506b;
  font: inherit;
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
}

.ccaa-index-search .geo-suggestions button:hover {
  border-color: #92d6c1;
  background: #effaf6;
  color: #087c60;
}

.ccaa-index-search .geo-search-results {
  left: 24px;
  right: 24px;
  top: calc(100% + 6px);
}

@media (max-width: 900px) {
  .ccaa-index-search .home-geo-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
