/* Conecta Frontend Shell v2.58.4.2 — Home composition with approved Portal typography scale
 * Scope: Portal Home only. Header, Footer, Community sticky and domain page
 * geometry intentionally remain outside this file. */

body.cc-shell--portal .conecta-app.conecta-home-view {
  --cc-home-page-max: var(--cc-shell-page-max, 1180px);
  --cc-home-gutter: var(--cc-shell-page-gutter, 24px);
  --cc-home-card-gap: 20px;
  --cc-home-block-gap: 36px;
  --cc-home-surface: var(--conecta-card-bg, #fff);
  --cc-home-soft-surface: linear-gradient(135deg, #fff 0%, #f0f4ea 100%);
  --cc-home-border: var(--conecta-border-soft, rgba(77,94,83,.10));
  --cc-home-hero-title-size: clamp(30px, 3.2vw, 42px);
  --cc-home-metric-size: 34px;
  --cc-home-card-title-size: var(--conecta-card-title-size, 16px);
  --cc-home-card-text-size: var(--conecta-card-text-size, 13.5px);
  --cc-home-section-title-size: var(--conecta-section-title-size, clamp(20px, 1.45vw, 26px));
}

body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-hero,
body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-stats,
body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-banner,
body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-section {
  width: min(100%, var(--cc-home-page-max)) !important;
  max-width: var(--cc-home-page-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}

/* Hero: a readable mobile composition while preserving its approved desktop
 * editorial character. */
body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-hero {
  position: relative !important;
  min-height: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 24px !important;
  padding: clamp(30px, 5vw, 44px) clamp(24px, 5vw, 42px) !important;
  overflow: hidden !important;
  border: 1px solid var(--cc-home-border) !important;
  border-radius: var(--cc-shell-radius, 18px) !important;
  background: var(--cc-home-soft-surface) !important;
}

body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-hero::after {
  content: "" !important;
  position: absolute !important;
  right: -72px !important;
  bottom: -96px !important;
  width: 260px !important;
  height: 260px !important;
  border: 1px solid rgba(78,110,50,.08) !important;
  border-radius: 50% !important;
  background: rgba(78,110,50,.035) !important;
  pointer-events: none !important;
}

body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-hero > div {
  position: relative !important;
  z-index: 1 !important;
  max-width: 720px !important;
}

body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-hero > div > span {
  margin-bottom: 12px !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: .1em !important;
}

body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-hero h1 {
  max-width: 680px !important;
  margin: 0 0 14px !important;
  font-size: var(--cc-home-hero-title-size) !important;
  line-height: 1.08 !important;
  font-weight: 400 !important;
  letter-spacing: -.035em !important;
}

body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-hero p {
  max-width: 620px !important;
  font-size: 16px !important;
  line-height: 1.7 !important;
}

/* Counts are actions, not decorative tiles. Their geometry collapses in a
 * controlled sequence: four columns → two columns → one column. */
body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-stats {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: var(--cc-home-card-gap) !important;
  margin-top: 0 !important;
  margin-bottom: var(--cc-home-block-gap) !important;
}

body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-stats .conecta-dashboard-card {
  min-width: 0 !important;
  min-height: 164px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  padding: 26px 24px !important;
  overflow: hidden !important;
  border: 1px solid var(--cc-home-border) !important;
  border-radius: var(--cc-shell-radius, 18px) !important;
  background: var(--cc-home-surface) !important;
}

body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-stats .conecta-dashboard-number {
  margin-bottom: 18px !important;
  font-size: var(--cc-home-metric-size) !important;
  line-height: 1 !important;
  font-weight: 400 !important;
}

body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-stats .conecta-dashboard-card h2 {
  margin: 0 0 10px !important;
  font-size: var(--cc-home-card-title-size) !important;
  line-height: 1.22 !important;
  font-weight: 400 !important;
}

body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-stats .conecta-dashboard-card p {
  margin: 0 !important;
  font-size: var(--cc-home-card-text-size) !important;
  line-height: 1.5 !important;
}

/* Banner contract
 * - wide screens: stable 4:1 media slot;
 * - mobile art supplied: 3:2 composition;
 * - no mobile art: compact 16:5 fallback to avoid severely cropping the
 *   existing desktop creative. The editor can add the mobile asset later. */
body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-banner {
  position: relative !important;
  aspect-ratio: 4 / 1 !important;
  min-height: 0 !important;
  height: auto !important;
  margin-top: 0 !important;
  margin-bottom: var(--cc-home-block-gap) !important;
  overflow: hidden !important;
  border: 1px solid var(--cc-home-border) !important;
  border-radius: var(--cc-shell-radius, 18px) !important;
  background: #f4f6ef !important;
  box-shadow: var(--conecta-shadow-soft, 0 14px 36px rgba(40,56,38,.08)) !important;
}

body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-banner > .cc-portal-home-banner__media,
body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-banner > .cc-portal-home-banner__media img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}

body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-banner > .cc-portal-home-banner__media {
  position: absolute !important;
  inset: 0 !important;
}

body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-banner > .cc-portal-home-banner__media img {
  object-fit: cover !important;
  object-position: var(--cc-portal-home-banner-desktop-focal, center center) !important;
}

body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-banner > .cc-portal-home-banner__cta {
  position: absolute !important;
  right: 18px !important;
  bottom: 18px !important;
  z-index: 2 !important;
  min-height: 42px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 0 17px !important;
  border: 1px solid rgba(255,255,255,.42) !important;
  border-radius: 999px !important;
  background: var(--cc-shell-primary, #4E6E32) !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  box-shadow: 0 10px 24px rgba(23,48,26,.18) !important;
  transition: transform .18s ease, background-color .18s ease !important;
}

body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-banner > .cc-portal-home-banner__cta:hover,
body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-banner > .cc-portal-home-banner__cta:focus-visible {
  background: var(--conecta-button-hover, #3F5A28) !important;
  color: #fff !important;
  transform: translateY(-1px) !important;
  outline: none !important;
}

body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-banner > .cc-portal-home-banner__cta span {
  font-size: 16px !important;
  line-height: 1 !important;
}

/* Recent blocks use the same vertical rhythm as hero, indicators and banners.
 * The domain cards retain their own content contract; only Home composition is
 * normalized here. */
body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-section {
  margin-top: 0 !important;
  margin-bottom: var(--cc-home-block-gap) !important;
  padding: clamp(24px, 3vw, 32px) !important;
  border: 1px solid var(--cc-home-border) !important;
  border-radius: var(--cc-shell-radius, 18px) !important;
  background: var(--cc-home-surface) !important;
}

body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-section .conecta-section-title {
  align-items: flex-start !important;
  gap: 18px !important;
  margin-bottom: 22px !important;
}

body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-section .conecta-section-title h2 {
  margin-top: 0 !important;
  font-size: var(--cc-home-section-title-size) !important;
  line-height: 1.16 !important;
  font-weight: 400 !important;
}

body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-section .conecta-home-updates-grid,
body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-section .conecta-home-docs-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 20px !important;
}

body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-section .conecta-home-card-item,
body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-section .conecta-home-doc-card {
  min-width: 0 !important;
}

body.cc-shell--portal.conecta-a11y-dark .conecta-app.conecta-home-view > .cc-portal-home-hero,
body.cc-shell--portal.conecta-a11y-dark .conecta-app.conecta-home-view > .cc-portal-home-stats .conecta-dashboard-card,
body.cc-shell--portal.conecta-a11y-dark .conecta-app.conecta-home-view > .cc-portal-home-section,
body.cc-shell--portal.conecta-dark .conecta-app.conecta-home-view > .cc-portal-home-hero,
body.cc-shell--portal.conecta-dark .conecta-app.conecta-home-view > .cc-portal-home-stats .conecta-dashboard-card,
body.cc-shell--portal.conecta-dark .conecta-app.conecta-home-view > .cc-portal-home-section {
  background: var(--conecta-dark-mode-card, #1E2E23) !important;
  border-color: var(--conecta-dark-mode-border, #415437) !important;
}

body.cc-shell--portal.conecta-a11y-dark .conecta-app.conecta-home-view > .cc-portal-home-banner,
body.cc-shell--portal.conecta-dark .conecta-app.conecta-home-view > .cc-portal-home-banner {
  border-color: var(--conecta-dark-mode-border, #415437) !important;
  background: var(--conecta-dark-mode-surface, #19261D) !important;
}

@media (max-width: 980px) {
  body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-section .conecta-home-updates-grid,
  body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-section .conecta-home-docs-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 767px) {
  body.cc-shell--portal .conecta-app.conecta-home-view {
    --cc-home-card-gap: 14px;
    --cc-home-block-gap: 28px;
    --cc-home-hero-title-size: clamp(32px, 9vw, 38px);
    --cc-home-metric-size: 34px;
  }

  body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-hero {
    margin-bottom: 20px !important;
    padding: 28px 24px 30px !important;
    border-radius: 16px !important;
  }

  body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-hero::after {
    right: -104px !important;
    bottom: -116px !important;
    width: 230px !important;
    height: 230px !important;
  }

  body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-hero > div > span {
    font-size: 11px !important;
    letter-spacing: .09em !important;
  }

  body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-hero h1 {
    max-width: 100% !important;
    margin-bottom: 16px !important;
    font-size: var(--cc-home-hero-title-size) !important;
    line-height: 1.1 !important;
    letter-spacing: -.04em !important;
  }

  body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-hero p {
    max-width: 100% !important;
    font-size: 17px !important;
    line-height: 1.66 !important;
  }

  body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-stats {
    grid-template-columns: 1fr !important;
    margin-bottom: var(--cc-home-block-gap) !important;
  }

  body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-stats .conecta-dashboard-card {
    min-height: 0 !important;
    padding: 24px !important;
    border-radius: 16px !important;
  }

  body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-stats .conecta-dashboard-number {
    margin-bottom: 14px !important;
    font-size: var(--cc-home-metric-size) !important;
  }

  body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-banner {
    aspect-ratio: 3 / 2 !important;
    margin-bottom: var(--cc-home-block-gap) !important;
    border-radius: 16px !important;
  }

  body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-banner.is-desktop-fallback {
    aspect-ratio: 16 / 5 !important;
  }

  body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-banner > .cc-portal-home-banner__media img {
    object-position: var(--cc-portal-home-banner-mobile-focal, center center) !important;
  }

  body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-banner > .cc-portal-home-banner__cta {
    right: 12px !important;
    bottom: 12px !important;
    min-height: 38px !important;
    padding: 0 14px !important;
    font-size: 12px !important;
  }

  body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-section {
    margin-bottom: var(--cc-home-block-gap) !important;
    padding: 24px 20px !important;
    border-radius: 16px !important;
  }

  body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-section .conecta-section-title {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 12px !important;
    margin-bottom: 20px !important;
  }

  body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-section .conecta-section-title h2 {
    font-size: var(--cc-home-section-title-size) !important;
  }

  body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-section .conecta-section-title > a {
    align-self: end !important;
    padding-bottom: 2px !important;
    white-space: nowrap !important;
    font-size: 14px !important;
  }

  body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-section .conecta-home-updates-grid,
  body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-section .conecta-home-docs-grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
}

@media (max-width: 390px) {
  body.cc-shell--portal .conecta-app.conecta-home-view {
    --cc-home-hero-title-size: clamp(30px, 9.6vw, 34px);
  }

  body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-hero {
    padding: 25px 20px 28px !important;
  }


  body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-section .conecta-section-title {
    grid-template-columns: 1fr !important;
  }

  body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-section .conecta-section-title > a {
    justify-self: start !important;
    align-self: auto !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.cc-shell--portal .conecta-app.conecta-home-view > .cc-portal-home-banner > .cc-portal-home-banner__cta {
    transition: none !important;
  }
}
