/* Seções do site público: faixas, benefícios, rodapé e listagens. */
/* Institutional HDA: scoped additions, shared platform tokens and components. */
.hda-site {
  overflow:clip
}

.hda-site section[id] {
  scroll-margin-top:112px
}

.site-container {
  width:min(1200px,calc(100% - clamp(32px,5vw,64px)));
  margin:auto
}

.site-header {
  position:sticky;
  top:0;
  z-index:30;
  border-bottom:1px solid var(--line);
  background:#0d0d11f5;
  backdrop-filter:blur(14px)
}

.site-header-inner {
  min-height:92px;
  display:flex;
  align-items:center;
  gap:24px
}

.site-logo {
  color:var(--text);
  text-decoration:none;
  flex-shrink:0
}

.site-logo .brand {
  font-size:23px
}

.site-nav {
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:21px
}

.site-nav a:not(.btn),.site-footer a {
  color:var(--muted);
  text-decoration:none;
  font-size:14px
}

.site-nav a:not(.btn):hover,.site-nav a:not(.btn):focus-visible,.site-footer a:hover {
  color:#ff438c
}

.site-menu {
  display:none
}

.site-hero {
  padding:clamp(40px,6.4vw,82px) 0 clamp(32px,5vw,64px);
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:clamp(20px,4vw,48px)
}

.site-hero h1 {
  font-size:clamp(38px,4.25vw,62px);
  line-height:1.08;
  letter-spacing:-2px;
  max-width:620px;
  margin:18px 0 24px
}

.site-hero .site-intro {
  font-size:18px;
  color:var(--muted);
  max-width:560px;
  line-height:1.7
}

.site-hero .actions {
  margin:30px 0 20px
}

.hda-site .btn {
  font-size:14px
}

.site-caption {
  font-size:14px;
  color:var(--muted);
  margin-top:17px
}

.site-preview {
  background:linear-gradient(135deg,#21101c,#111118 60%);
  border:1px solid #532035;
  border-radius:18px;
  padding:22px;
  box-shadow:0 28px 65px #0005
}

.site-preview-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:22px;
  font-size:14px
}

.site-preview .card {
  padding:19px
}

.site-preview h3 {
  font-size:16px
}

.site-preview .list-row {
  font-size:14px
}

.site-preview-score {
  display:flex;
  align-items:center;
  gap:20px
}

.site-preview-score p {
  font-size:14px;
  color:var(--muted);
  margin-top:6px
}

.site-preview-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin-top:14px
}

.site-preview-course {
  margin-top:14px;
  display:flex;
  gap:14px;
  align-items:center
}

.site-strip {
  display:flex;
  gap:32px;
  justify-content:space-between;
  flex-wrap:wrap;
  padding:23px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  font-size:14px;
  color:var(--muted)
}

.site-strip span {
  display:flex;
  align-items:center;
  gap:10px
}

.site-strip .icon {
  color:#ff438c
}

.site-section {
  padding:clamp(48px,6.25vw,80px) 0
}

.site-section+.site-section {
  border-top:1px solid #202029
}

.site-section-head {
  max-width:680px;
  margin-bottom:32px
}

.site-section h2 {
  font-size:clamp(28px,3vw,40px);
  line-height:1.17;
  letter-spacing:-1.1px
}

.site-section-head p {
  font-size:16px;
  color:var(--muted);
  margin-top:16px;
  line-height:1.75
}

.site-kicker {
  font-size:13px;
  font-weight:700;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:#ff438c;
  margin-bottom:12px
}

.site-steps {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));
  gap:14px;
  list-style:none;
  padding:0;
  margin:0
}

.site-step {
  padding:22px 18px
}

.site-step-number {
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  background:#341426;
  color:#ff68a2;
  border:1px solid #5e1b39;
  border-radius:9px;
  margin-bottom:20px;
  font-weight:700
}

.site-step p {
  margin-top:12px;
  color:var(--muted);
  font-size:14px;
  line-height:1.65
}

.site-benefits {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));
  gap:18px
}

.site-benefit .course-mini {
  width:43px;
  height:43px;
  margin-bottom:20px
}

.site-benefit p {
  font-size:16px;
  line-height:1.6;
  color:var(--muted);
  margin-top:10px
}

.site-company {
  background:#0d0d12
}

.site-company .site-benefit .course-mini {
  background:#182735;
  color:var(--blue)
}

.site-company-workflow {
  margin-top:28px;
  padding:24px
}

.site-company-workflow h3 {
  margin-bottom:16px
}

.site-flow {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  list-style:none;
  padding:0;
  margin:0
}

.site-flow li {
  padding:9px 12px;
  background:#1c1c24;
  border:1px solid var(--line);
  border-radius:8px;
  font-size:14px
}

.site-flow li b {
  color:var(--blue);
  margin-right:8px
}

.site-courses {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));
  gap:20px
}

.hda-site .course-card h3 {
  min-height:48px
}

.hda-site .course-card p {
  font-size:16px;
  line-height:1.6;
  min-height:78px
}

.hda-site .course-card .course-cover {
  height:115px
}

.hda-site .course-card .course-meta {
  display:flex;
  align-items:center;
  gap:8px;
  color:var(--muted);
  font-size:14px;
  margin:15px 0
}

.site-split {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));
  gap:clamp(24px,4vw,54px);
  align-items:center
}

.site-split .site-section-head {
  margin-bottom:20px
}

.site-evolution {
  padding:28px
}

.site-evolution .stat-value {
  font-size:42px
}

.site-evolution-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:24px 0
}

.site-evolution-grid .stat {
  margin:0
}

.site-evolution-grid .stat-value {
  font-size:25px
}

.site-match {
  padding:28px
}

.site-match .ring {
  --ring:var(--green)
}

.site-match .detail-list {
  margin-top:24px;
  font-size:16px
}

.site-match .detail-list li {
  margin:15px 0
}

.site-ai-points {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:24px
}

.site-ai-points div {
  display:flex;
  gap:10px;
  color:#c6c6d1;
  font-size:16px
}

.site-ai-points .icon {
  color:#ff438c
}

.site-ai .note {
  font-size:16px;
  line-height:1.6;
  margin-top:28px
}

.site-cta {
  padding:clamp(25px,4vw,42px);
  background:linear-gradient(110deg,#231020,#16101c 65%,#101016);
  border:1px solid #532035;
  border-radius:18px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:clamp(16px,3vw,32px);
  justify-content:space-between
}

.site-cta h2 {
  font-size:clamp(28px,3vw,32px);
  max-width:640px
}

.site-cta p {
  font-size:16px;
  color:var(--muted);
  margin-top:14px;
  max-width:620px
}

.site-cta .actions {
  flex-shrink:0;
  flex-direction:column;
  align-items:stretch
}

.site-footer {
  padding:42px 0 24px;
  border-top:1px solid var(--line);
  background:#0d0d11
}

.site-footer-top {
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:clamp(20px,3vw,40px)
}

.site-footer-top p {
  max-width:350px;
  color:var(--muted);
  font-size:13px;
  line-height:1.5;
  margin-top:14px
}

.site-footer-links {
  display:grid;
  grid-template-columns:repeat(2,minmax(140px,180px));
  gap:10px 24px;
  align-items:start;
  font-size:13px
}

.site-footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:16px;
  color:#9494a6;
  font-size:12px;
  border-top:1px solid var(--line);
  margin-top:28px;
  padding-top:16px
}

.site-demo {
  font-size:13px;
  color:#aaaab8
}

.site-skip {
  position:fixed;
  top:-100px;
  left:16px;
  z-index:100;
  background:var(--pink);
  color:white;
  padding:12px;
  border-radius:8px
}

.site-skip:focus {
  top:12px
}

.login-inner .site-back {
  width:auto;
  margin:0 0 20px;
  font-size:14px
}

.hda-site .badge {
  font-size:13px
}

.site-preview .progress {
  margin-top:12px
}

.hda-site .site-note {
  font-size:14px;
  line-height:1.7;
  color:var(--muted);
  margin-top:20px
}

.site-hero .btn {
  min-height:48px
}

.site-hero .badge {
  letter-spacing:.3px
}

.site-evolution .progress {
  height:8px;
  margin:13px 0 8px
}

.site-preview .stat-value {
  font-size:28px;
  margin:6px 0
}

.site-preview .stat-top {
  font-size:14px
}

.hda-site main:focus {
  outline:none
}

@media(max-width:1100px) {
  .site-hero {
    gap:clamp(16px,3vw,24px)
  }

  .site-preview-score {
    gap:12px
  }

}

@media(max-width:760px) {
  .site-menu {
    display:grid
  }

  .site-header-inner {
    min-height:80px;
    flex-wrap:wrap
  }

  .site-header .site-nav {
    display:none;
    order:4;
    width:100%;
    margin:0;
    padding:0 0 20px;
    flex-direction:column;
    align-items:stretch;
    gap:0
  }

  .site-header .site-nav.open {
    display:flex
  }

  .site-nav a:not(.btn) {
    font-size:16px;
    padding:12px;
    border-radius:8px
  }

  .site-nav a:not(.btn):hover {
    background:var(--raised)
  }

  .site-hero {
    grid-template-columns:1fr;
    gap:clamp(20px,5vw,40px)
  }

  .site-hero h1 {
    max-width:700px
  }

  .site-preview {
    max-width:640px;
    width:100%
  }

  .site-split .card {
    max-width:700px
  }

  .site-footer-top {
    flex-direction:column
  }

  .site-strip {
    gap:20px
  }

  .site-footer-bottom {
    flex-wrap:wrap
  }

}

@media(max-width:560px) {
  .site-header-inner {
    gap:12px;
    min-height:76px
  }

  .site-logo .brand {
    font-size:19px;
    gap:8px
  }

  .site-logo .brand small {
    font-size:8px;
    letter-spacing:1px
  }

  .site-logo .brandmark {
    width:31px;
    height:36px;
    font-size:23px
  }

  .site-header .btn {
    padding:8px 12px;
    min-height:40px
  }

  .site-menu {
    width:38px;
    height:38px
  }

  .site-hero .site-intro {
    font-size:16px
  }

  .site-hero .actions {
    flex-wrap:wrap;
    gap:10px
  }

  .site-preview {
    padding:15px
  }

  .site-preview .card {
    padding:16px
  }

  .site-preview-head {
    font-size:13px;
    align-items:flex-start
  }

  .site-preview-score {
    flex-wrap:wrap
  }

  .site-preview-grid {
    grid-template-columns:1fr 1fr
  }

  .site-preview .stat {
    padding:14px
  }

  .site-preview .stat-top {
    font-size:13px
  }

  .site-step {
    display:grid;
    grid-template-columns:34px 1fr;
    gap:0 18px
  }

  .site-step-number {
    grid-row:1/3;
    margin:0
  }

  .site-step p {
    margin-top:6px
  }

  .site-company-workflow {
    padding:18px
  }

  .site-evolution,.site-match {
    padding:20px
  }

  .site-cta .actions {
    flex-direction:column;
    width:100%
  }

  .site-footer-links {
    gap:16px 22px
  }

  .site-evolution-grid {
    gap:10px
  }

  .site-evolution-grid .stat {
    padding:15px
  }

  .hda-site .course-card h3,.hda-site .course-card p {
    min-height:0
  }

  .site-strip {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px 12px
  }

  .site-strip span {
    font-size:13px
  }

  .site-preview-course {
    align-items:flex-start
  }

  .site-preview .course-mini {
    width:43px;
    height:48px
  }

  .site-preview .list-row {
    align-items:flex-start
  }

  .site-footer-bottom {
    font-size:13px
  }

}

@media(prefers-reduced-motion:reduce) {
  .hda-site * {
    animation:none!important;
    transition:none!important;
    scroll-behavior:auto!important
  }

}

/* Public additions reuse the current HDA theme, fonts, spacing, and cards. */
.site-header .brand {
  height:70px;
  min-height:70px
}

.site-footer .brand {
  height:78px;
  min-height:78px
}

.site-header-inner {
  gap:18px
}

.site-nav {
  gap:15px
}

.site-header .theme-control {
  font-size:12px;
  padding:6px 10px
}

.site-footer-links {
  max-width:680px
}

.hero-mark .brand {
  height:125px;
  min-height:125px;
  letter-spacing:normal
}

:root[data-theme="light"] .site-header,:root[data-theme="light"] .site-footer,:root[data-theme="light"] .site-company {
  background:var(--surface)
}

:root[data-theme="light"] .site-preview,:root[data-theme="light"] .site-cta {
  background:linear-gradient(110deg,#fdeaf2,var(--surface));
  border-color:var(--line);
  box-shadow:none
}

:root[data-theme="light"] .site-flow li {
  background:var(--raised)
}

:root[data-theme="light"] .site-ai-points div,:root[data-theme="light"] .site-footer-bottom {
  color:var(--muted)
}

.hda-pro-hero {
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);
  gap:clamp(24px,4vw,48px);
  align-items:start
}

.hda-pro-cover-grid {
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(280px,.95fr);
  gap:clamp(24px,4vw,56px);
  align-items:center
}

.hda-pro-cover-lead {
  max-width:38rem;
  margin:0;
  color:var(--muted);
  font-size:clamp(18px,2vw,22px);
  line-height:1.45
}

.hda-pro-cover-emphasis {
  display:block;
  margin-bottom:14px;
  color:var(--text);
  font-size:clamp(32px,4vw,52px);
  font-weight:750;
  letter-spacing:-1.2px;
  line-height:1.12
}

.hda-pro-cover-media {
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  min-height:340px;
  margin:0;
  padding:18px;
  border:1px solid var(--line);
  border-radius:18px;
  background:
    linear-gradient(165deg,rgba(245,9,101,.22),transparent 46%),
    var(--raised);
  aspect-ratio:4/3
}

.hda-pro-cover-frame {
  display:grid;
  place-items:center;
  width:88px;
  height:96px;
  margin-bottom:auto;
  padding:10px;
  border-radius:14px;
  background:#fff
}

.hda-pro-cover-frame img {
  width:100%;
  height:100%;
  object-fit:contain
}

.hda-pro-cover-media figcaption {
  max-width:28ch;
  color:var(--text);
  font-size:14px;
  line-height:1.45
}

.site-footer-grid {
  display:grid;
  grid-template-columns:minmax(180px,1.2fr) repeat(4,minmax(130px,1fr));
  gap:28px 22px;
  align-items:start
}

.site-footer-mark {
  display:inline-flex;
  width:52px;
  height:58px;
  background:transparent
}

.site-footer-mark img {
  width:100%;
  height:100%;
  object-fit:contain
}

.site-footer-logo-light {
  display:none
}

:root[data-theme="light"] .site-footer-logo-dark {
  display:none
}

:root[data-theme="light"] .site-footer-logo-light {
  display:block
}

.site-footer-brand p,
.site-footer-col p {
  max-width:32ch;
  margin:12px 0 0;
  color:var(--muted);
  font-size:13px;
  line-height:1.5
}

.site-footer-col {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:6px;
  min-width:0
}

.site-footer-col h2 {
  margin:0 0 6px;
  color:#ff438c;
  font-size:12px;
  font-weight:700;
  letter-spacing:1.2px;
  line-height:1.3;
  text-transform:uppercase
}

.site-footer-grid a {
  color:var(--text);
  font-size:13px;
  line-height:1.35
}

.site-footer-bottom {
  align-items:center;
  margin-top:26px;
  color:var(--muted);
  font-size:12px
}

.site-footer-legal {
  display:flex;
  flex-wrap:wrap;
  gap:8px 16px
}

@media(max-width:980px) {
  .hda-pro-cover-grid,.site-footer-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }

  .site-footer-brand {
    grid-column:1 / -1
  }
}

@media(max-width:640px) {
  .hda-pro-cover-grid,.site-footer-grid {
    grid-template-columns:1fr
  }

  .hda-pro-cover-media {
    min-height:240px
  }

  .site-footer-col a {
    display:inline-flex;
    align-items:center;
    min-height:36px
  }
}

.hda-pro-lead {
  font-size:clamp(20px,2.4vw,28px);
  color:var(--text);
  margin:12px 0
}

.hda-pro-actions {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin:20px 0 8px
}

.hda-pro-panel {
  padding:22px
}

.hda-pro-level {
  font-size:32px;
  margin:12px 0
}

.hda-pro-stats {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin:18px 0
}

.hda-pro-stats div {
  padding:12px;
  border:1px solid var(--line);
  border-radius:8px
}

.hda-pro-stats span {
  display:block;
  color:var(--muted);
  font-size:12px
}

.hda-pro-stats strong {
  font-size:22px
}

.hda-pro-mission {
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  margin-bottom:14px
}

.hda-pro-steps {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  list-style:none;
  padding:0;
  margin:0
}

.hda-pro-steps li {
  padding:20px
}

.hda-pro-steps span {
  color:var(--pink,#e4004b);
  font-weight:700
}

.hda-pro-steps p,.hda-pro-faq p {
  color:var(--muted);
  margin-top:8px
}

.hda-pro-missions {
  display:grid;
  gap:12px;
  list-style:none;
  padding:0;
  margin:0
}

.hda-pro-missions li {
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:center;
  padding:16px 18px
}

.hda-pro-missions span {
  color:var(--muted);
  font-size:13px;
  white-space:nowrap
}

.hda-pro-faq details {
  border-top:1px solid var(--line);
  padding:14px 0
}

.hda-pro-faq summary {
  cursor:pointer;
  font-weight:650
}

.hda-share {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  margin-top:14px
}

.hda-share-bar {
  margin:18px 0 8px
}

.hda-share-note {
  flex-basis:100%;
  margin:0;
  color:var(--muted);
  font-size:12px
}

@media(max-width:900px) {
  .hda-pro-hero,.hda-pro-steps {
    grid-template-columns:1fr
  }

  .hda-pro-mission,.hda-pro-missions li {
    flex-direction:column;
    align-items:flex-start
  }
}
