/* Public pages share the course dashboard's colours and type scale. */
.publico {
  --bg: #f4f5fc;
  --bg2: #eceef9;
  --card: #fff;
  --ink: #242644;
  --muted: #656982;
  --line: #dfe2f0;
  --brand: #5b4bd8;
  --brand-ink: #fff;
  --brand-soft: #e9e5ff;
  --acc: #c9562d;
  --acc-soft: #fff0e6;
  --lime: #ffdb8c;
  --hero-bg: #eae7fc;
  --mint: #dcf3e9;
  --mint-ink: #226650;
  --coral: #ffeadf;
  --coral-ink: #974327;
  --yellow: #fff1ce;
  --yellow-ink: #796021;
  --sombra: 0 12px 32px #3532620a;
  font-size: 16px;
}
:root[data-theme='dark'] .publico {
  --bg: #17192b;
  --bg2: #1e2136;
  --card: #25283f;
  --ink: #f0effc;
  --muted: #b5b9d2;
  --line: #3b3e5d;
  --brand: #baadff;
  --brand-ink: #21153c;
  --brand-soft: #373151;
  --acc: #ffbe86;
  --acc-soft: #493323;
  --hero-bg: #27243f;
  --mint: #253d39;
  --mint-ink: #a6e5ca;
  --coral: #46332f;
  --coral-ink: #ffc3a6;
  --yellow: #403b2e;
  --yellow-ink: #f5dc9a;
}
.publico .topo { border-bottom: 1px solid var(--line); }
.publico .topo .wrap { height: 88px; }
.publico .marca { font-size: 20px; }
.publico .nav { gap: 24px; }
.publico .nav a { font-size: 14px; }
.publico .acoes { gap: 18px; }
.publico .acoes > .btn { font-size: 14px; padding: 12px 18px; border-radius: 10px; }
.publico .btn { border-radius: 11px; }
.publico .eyebrow { font-size: 11px; letter-spacing: 1.4px; font-weight: 800; }
.publico h2 { font: 800 clamp(30px,3.2vw,43px)/1.18 var(--sans); letter-spacing: -1.6px; }
.publico h2 em { font-style: normal; }
.publico .intro-section { padding-top: 28px; }
.publico .editorial-hero {
  background: var(--hero-bg);
  color: var(--ink);
  grid-template-columns: 1.03fr 1fr;
  gap: 32px;
  padding: 55px 48px 60px;
  min-height: 555px;
  border-radius: 24px;
  overflow: hidden;
}
.publico .hero-copy { padding: 15px 0; align-self: center; }
.publico .hero-copy .eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  background: var(--card);
  color: var(--brand);
  font-size: 10px;
  letter-spacing: .8px;
  border-radius: 8px;
}
.publico .status-dot { background: var(--brand); width: 7px; height: 7px; margin: 0; }
.publico .hero-copy h1 {
  font: 800 clamp(45px,4.8vw,66px)/1.08 var(--sans);
  letter-spacing: -3.2px;
  margin: 23px 0;
  white-space: normal;
}
.publico .hero-copy h1 em { color: var(--brand); font-weight: 800; font-style: normal; }
.publico .hero-copy > p { color: var(--muted); font-size: 16px; max-width: 430px; line-height: 1.85; margin-bottom: 28px; }
.publico .hero-actions { gap: 18px; }
.publico .hero-actions .btn { background: var(--brand); color: var(--brand-ink); font-size: 14px; padding: 16px 20px; gap: 18px; }
.publico .hero-secondary { font-size: 13px; color: var(--ink); font-weight: 700; gap: 10px; }
.publico .hero-assurance { color: var(--muted); font-size: 12px; gap: 18px; margin-top: 22px; flex-wrap: wrap; }
.publico .hero-assurance span::first-letter { color: var(--brand); }
.publico .hero-visual { align-self: center; display: block; padding: 0 0 12px; }
.publico .hero-visual::after { display: none; }
.course-preview { position: relative; z-index: 1; padding: 22px; border: 1px solid var(--line); border-radius: 17px; background: var(--card); box-shadow: 0 22px 55px #4c3c841a; }
.preview-top { display: flex; gap: 9px; align-items: center; font-size: 11px; font-weight: 700; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.preview-brand { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 7px; background: var(--brand); color: var(--brand-ink); font-size: 20px; }
.preview-label { color: var(--muted); font-size: 8px; letter-spacing: 1px; margin-left: auto; }
.preview-welcome { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 21px 0; }
.preview-welcome > div > span { font-size: 9px; font-weight: 800; letter-spacing: 1px; color: var(--muted); }
.publico .preview-welcome h2 { font-size: 26px; margin: 5px 0; letter-spacing: -.9px; }
.preview-welcome p { font-size: 12px; color: var(--muted); margin: 0; }
.preview-spark { font-size: 42px; color: var(--brand); line-height: 1; padding-right: 9px; }
.preview-numbers { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.preview-numbers > div { display: flex; align-items: center; gap: 12px; background: var(--mint); color: var(--mint-ink); border-radius: 10px; padding: 14px; }
.preview-numbers > div + div { background: var(--coral); color: var(--coral-ink); }
.preview-number-icon { font-size: 27px; }
.preview-numbers strong { font-size: 26px; line-height: 1.1; letter-spacing: -1px; }
.preview-numbers small { display: block; font-size: 9px; font-weight: 600; letter-spacing: 0; margin-top: 7px; line-height: 1.4; }
.preview-lesson { display: flex; justify-content: space-between; align-items: center; gap: 16px; text-decoration: none; background: #6250d9; color: white; padding: 23px 20px; border-radius: 12px; margin-top: 14px; transition: background .2s; }
.preview-lesson:hover { background: #5140c3; }
.preview-lesson > div > span { font-size: 9px; font-weight: 700; letter-spacing: 1px; color: #e1dbff; }
.preview-lesson h3 { font-size: 22px; font-weight: 700; line-height: 1.3; letter-spacing: -.5px; margin: 9px 0 10px; }
.preview-lesson p { font-size: 11px; margin: 0; color: #e1dbff; }
.preview-start { flex: 0 0 38px; height: 38px; display: grid; place-items: center; background: #ffdb8c; color: #392c50; font-size: 26px; border-radius: 11px; }
.preview-tools { display: flex; flex-wrap: wrap; gap: 8px 14px; padding-top: 17px; font-size: 10px; color: var(--muted); }
.preview-sticker { position: absolute; z-index: 2; right: -22px; bottom: -20px; padding: 13px 20px 14px 46px; background: #ffdb8c; color: #523e2e; border: 4px solid var(--hero-bg); border-radius: 15px; font-size: 11px; line-height: 1.5; transform: rotate(-5deg); }
.preview-sticker > span { position: absolute; left: 17px; top: 20px; font-size: 23px; }
.preview-sticker strong { font-size: 13px; }
.publico .course-facts { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; padding: 22px 0 0; border: 0; align-items: stretch; }
.publico .course-facts .fact-intro { display: none; }
.publico .course-facts > div:not(:first-child) { padding: 23px 25px; border: 0; border-radius: 14px; background: var(--brand-soft); }
.publico .course-facts > div:nth-child(3) { background: var(--coral); }
.publico .course-facts > div:nth-child(4) { background: var(--mint); }
.publico .course-facts > div:nth-child(5) { background: var(--yellow); }
.publico .course-facts strong { font-size: 29px; font-weight: 800; color: var(--ink); }
.publico .course-facts strong > span:not(.flag-pt) { font-size: 16px; font-weight: 600; }
.publico .course-facts small { font-size: 12px; margin-top: 7px; color: var(--ink); opacity: .8; }
.publico .course-facts .portugal-fact { font-size: 25px; line-height: 1.45; }
.publico .approach-section { padding: 85px 0; }
.publico .approach-grid { gap: 75px; align-items: center; }
.publico .approach-copy { max-width: 500px; }
.publico .approach-copy > p:first-child { font-size: 20px; font-weight: 600; line-height: 1.65; }
.publico .approach-copy p { font-size: 15px; line-height: 1.9; }
.publico .text-link { font-size: 14px; color: var(--brand); border-color: var(--brand); }
.publico .curriculum-section { padding: 75px 0; }
.publico .section-heading { margin-bottom: 36px; }
.publico .section-heading > p { font-size: 15px; max-width: 350px; }
.publico .curriculum-grid { gap: 24px; }
.publico .curriculum-card { border-radius: 16px; box-shadow: 0 4px 15px #28274604; }
.publico .curriculum-card:hover { border-color: var(--brand); box-shadow: 0 14px 28px #35326212; }
.publico .module-art { height: 185px; background: hsl(var(--mh) 78% 92%); color: hsl(var(--mh) 42% 43%); }
.publico .module-art .accent { stroke: currentColor; stroke-width: 2.6; }
.publico .module-art .solid { fill: currentColor; }
.publico .module-index { color: inherit; font-size: 10px; letter-spacing: 1.2px; top: 19px; left: 23px; }
.publico .module-art svg { stroke-width: 2; height: 156px; width: 245px; }
.publico .module-open { color: inherit; width: 33px; height: 33px; background: #ffffffa8; }
.publico .module-copy { padding: 26px; }
.publico .module-meta { font-size: 10px; letter-spacing: .6px; }
.publico .module-copy h3 { font: 800 24px/1.3 var(--sans); letter-spacing: -.7px; margin: 15px 0 13px; }
.publico .module-copy p { font-size: 14px; line-height: 1.85; margin-bottom: 22px; }
.publico .module-link { font-size: 13px; color: var(--brand); }
.publico .full-program { margin-top: 27px; }
.publico .full-program summary { font-size: 14px; padding: 18px; border-radius: 11px; background: var(--card); }
.publico .program-count { font-size: 12px; }
.publico .learning-section { padding: 80px 0; }
.publico .learning-grid { gap: 24px; margin-top: 38px; }
.publico .learning-grid article { background: var(--card); border: 1px solid var(--line); border-radius: 16px; padding: 28px; }
.publico .feature-icon { display: grid; place-items: center; width: 46px; height: 46px; background: var(--brand-soft); color: var(--brand); border-radius: 12px; font: 800 17px var(--sans); }
.publico .learning-grid article:nth-child(2) .feature-icon { background: var(--coral); color: var(--coral-ink); }
.publico .learning-grid article:nth-child(3) .feature-icon { background: var(--mint); color: var(--mint-ink); }
.publico .learning-grid h3 { font: 800 21px/1.35 var(--sans); letter-spacing: -.6px; margin: 22px 0 12px; }
.publico .learning-grid p { font-size: 14px; line-height: 1.85; max-width: none; margin: 0; }
.publico .simulator-section { background: var(--hero-bg); padding: 75px 0; }
.publico .simulator-grid { gap: 80px; }
.publico .simulator-intro > p { font-size: 16px; max-width: 420px; }
.publico .simulator-note > span { background: var(--brand); color: var(--brand-ink); border-radius: 12px; width: 45px; height: 45px; }
.publico .simulator-note p { font-size: 13px; }
.publico .growth-calculator { padding: 32px; border-radius: 18px; box-shadow: 0 15px 35px #4c3c840c; }
.publico .calculator-top { font-size: 16px; }
.publico .small-tag { font-size: 9px; background: var(--brand-soft); color: var(--brand); border: 0; padding: 5px 8px; }
.publico .calculator-inputs { gap: 23px; margin: 26px 0; }
.publico .calculator-inputs label { font-size: 13px; gap: 13px; }
.publico .calculator-inputs output { font-size: 14px; color: var(--brand); }
.publico .calculator-inputs input { height: 6px; }
.publico .calculator-inputs input::-webkit-slider-thumb { width: 18px; height: 18px; }
.publico .calculator-inputs input::-moz-range-thumb { width: 14px; height: 14px; }
.publico .calculator-result { padding: 18px 20px; border-radius: 12px; background: var(--mint); color: var(--mint-ink); }
.publico .calculator-result > span { color: inherit; font-size: 12px; }
.publico .calculator-result strong { font: 800 42px/1.3 var(--sans); letter-spacing: -1.5px; }
.publico .growth-chart { height: 125px; margin: 15px 0; }
.publico #chart-fill stop { stop-color: var(--brand); }
.publico .chart-legend { font-size: 11px; gap: 20px; flex-wrap: wrap; }
.publico .calculator-disclaimer { font-size: 11px!important; line-height: 1.85!important; }
.publico .faq-section { padding: 85px 0; }
.publico .faq-grid > div > p { font-size: 15px; }
.publico .faq-list { background: var(--card); padding: 10px 28px; border: 1px solid var(--line); border-radius: 16px; }
.publico .faq-list details { padding: 22px 0; }
.publico .faq-list details:last-child { border: 0; }
.publico .faq-list summary { font-size: 15px; font-weight: 700; }
.publico .faq-list summary span { color: var(--brand); }
.publico .faq-list details p { font-size: 14px; line-height: 1.9; }
.publico .closing-panel { background: #6250d9; color: #fff; border-radius: 22px; padding: 65px 28px; }
.publico .closing-panel .eyebrow { color: #e3deff; font-size: 11px; }
.publico .closing-panel h2 { font-size: 42px; margin: 20px 0; }
.publico .closing-panel h2 em { color: #ffdb8c; }
.publico .closing-panel > p { font-size: 16px; color: #e3deff; margin-bottom: 28px; }
.publico .closing-panel .btn { font-size: 15px; padding: 17px 23px; background: #ffdb8c; color: #392c50; }
.publico .footer-top .marca { font-size: 18px; }
.publico .footer-top > p { font-size: 13px; }
.publico .rodape .aviso-curto { font-size: 11px; max-width: 740px; }
.publico .footer-links { font-size: 12px; }
:root[data-theme='dark'] .publico .module-art { background: hsl(var(--mh) 30% 26%); color: hsl(var(--mh) 70% 79%); }
:root[data-theme='dark'] .publico .module-open { background: #ffffff13; }

@media (max-width: 1100px) {
  .publico .nav { gap: 17px; }
  .publico .nav a { font-size: 13px; }
  .publico .marca { font-size: 18px; }
  .publico .acoes { gap: 13px; }
  .publico .acoes > .btn { font-size: 13px; padding: 11px 14px; }
  .publico .editorial-hero { padding: 40px 32px 50px; gap: 26px; }
  .publico .hero-copy h1 { font-size: 52px; letter-spacing: -2.5px; }
  .publico .hero-copy > p { font-size: 15px; }
  .course-preview { padding: 18px; }
  .preview-numbers > div { gap: 8px; padding: 12px; }
  .preview-number-icon { font-size: 23px; }
  .preview-lesson { padding: 20px 16px; }
  .preview-lesson h3 { font-size: 20px; }
  .publico .course-facts > div:not(:first-child) { padding: 20px; }
  .publico .course-facts small { font-size: 11px; }
  .publico .approach-grid, .publico .simulator-grid { gap: 50px; }
  .publico .module-copy { padding: 22px; }
  .publico .module-copy h3 { font-size: 22px; }
}
@media (max-width: 860px) {
  .publico .topo .wrap { height: 74px; }
  .publico .acoes { margin-left: auto; }
  .publico .nav { top: 74px; gap: 5px; }
  .publico .nav a { font-size: 15px; }
  .publico .editorial-hero { grid-template-columns: 1fr; padding: 35px 38px 50px; gap: 32px; }
  .publico .hero-copy { padding: 0; }
  .publico .hero-copy h1 { font-size: 60px; }
  .publico .hero-copy > p { max-width: 550px; font-size: 16px; }
  .publico .hero-visual { width: 100%; max-width: 560px; justify-self: center; }
  .course-preview { padding: 24px; }
  .preview-numbers > div { padding: 17px; gap: 15px; }
  .preview-lesson { padding: 23px; }
  .preview-lesson h3 { font-size: 24px; }
  .publico .course-facts { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
  .publico .course-facts small { font-size: 13px; }
  .publico .approach-grid, .publico .simulator-grid, .publico .faq-grid { gap: 35px; grid-template-columns: 1fr; }
  .publico .approach-copy { max-width: none; }
  .publico .section-heading { align-items: start; flex-direction: column; gap: 18px; }
  .publico .section-heading > p { max-width: none; }
  .publico .curriculum-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .publico .learning-grid { gap: 15px; }
  .publico .learning-grid article { padding: 22px; }
  .publico .learning-grid h3 { font-size: 19px; }
  .publico .simulator-intro > p { max-width: 550px; }
  .publico .simulator-note { margin-top: 24px; }
  .publico .growth-calculator { max-width: 600px; width: 100%; justify-self: center; }
}
@media (max-width: 650px) {
  .publico .wrap { width: calc(100% - 32px); }
  .publico .topo .wrap { height: 70px; gap: 8px; }
  .publico .marca { font-size: 15px; gap: 7px; letter-spacing: -.65px; }
  .publico .marca svg { width: 27px; height: 27px; }
  .publico .acoes { gap: 10px; }
  .publico .acoes > .btn { font-size: 11px; padding: 10px; }
  .publico .acoes > .btn.sec { font-size: 13px; padding-inline: 0; }
  .publico .nav { top: 70px; }
  .publico .intro-section { padding-top: 16px; }
  .publico .editorial-hero { display: grid; padding: 29px 23px 41px; border-radius: 18px; gap: 26px; min-height: 0; }
  .publico .hero-copy .eyebrow { font-size: 8px; padding: 8px 9px; letter-spacing: .6px; }
  .publico .hero-copy h1 { font-size: clamp(37px,10.5vw,58px); letter-spacing: -2px; margin: 24px 0 20px; }
  .publico .hero-copy > p { font-size: 15px; line-height: 1.85; margin-bottom: 23px; }
  .publico .hero-actions { gap: 16px 20px; }
  .publico .hero-actions .btn { font-size: 14px; padding: 15px 17px; }
  .publico .hero-secondary { font-size: 13px; }
  .publico .hero-assurance { font-size: 11px; gap: 9px 15px; margin-top: 22px; }
  .publico .hero-visual { height: auto; margin-top: 6px; padding-bottom: 10px; }
  .course-preview { padding: 17px; border-radius: 13px; }
  .preview-top { font-size: 10px; gap: 7px; padding-bottom: 13px; }
  .preview-label { display: none; }
  .preview-welcome { margin: 17px 0; }
  .publico .preview-welcome h2 { font-size: 23px; margin: 6px 0; }
  .preview-welcome p { font-size: 11px; }
  .preview-spark { font-size: 33px; padding: 0; }
  .preview-numbers { gap: 8px; }
  .preview-numbers > div { padding: 13px 11px; gap: 8px; }
  .preview-number-icon { display: none; }
  .preview-numbers strong { font-size: 25px; }
  .preview-numbers small { font-size: 9px; margin-top: 5px; }
  .preview-lesson { padding: 18px 14px; gap: 10px; }
  .preview-lesson > div > span { font-size: 8px; letter-spacing: .6px; }
  .preview-lesson h3 { font-size: 19px; margin: 8px 0; }
  .preview-lesson p { font-size: 10px; }
  .preview-start { flex-basis: 31px; height: 31px; font-size: 21px; }
  .preview-tools { font-size: 9px; gap: 7px 10px; line-height: 1.5; padding-top: 14px; }
  .preview-sticker { right: -12px; bottom: -22px; font-size: 9px; padding: 10px 14px 10px 36px; border-width: 3px; }
  .preview-sticker > span { left: 12px; top: 15px; font-size: 19px; }
  .preview-sticker strong { font-size: 11px; }
  .publico .course-facts { gap: 12px; padding-top: 16px; }
  .publico .course-facts > div:not(:first-child) { padding: 18px 16px; border-radius: 12px; }
  .publico .course-facts strong { font-size: 27px; }
  .publico .course-facts strong > span:not(.flag-pt) { font-size: 13px; }
  .publico .course-facts .portugal-fact { font-size: 22px; line-height: 1.5; }
  .publico .course-facts small { font-size: 11px; }
  .publico h2 { font-size: 32px; letter-spacing: -1.1px; }
  .publico .eyebrow { font-size: 10px; letter-spacing: 1px; }
  .publico .approach-section, .publico .learning-section, .publico .faq-section { padding: 55px 0; }
  .publico .approach-grid { gap: 15px; }
  .publico .approach-copy > p:first-child { font-size: 19px; }
  .publico .approach-copy p { font-size: 15px; }
  .publico .curriculum-section, .publico .simulator-section { padding: 50px 0; }
  .publico .section-heading { margin-bottom: 28px; gap: 14px; }
  .publico .section-heading > p { font-size: 14px; margin-top: 0; }
  .publico .curriculum-grid { grid-template-columns: 1fr; gap: 20px; }
  .publico .module-art { height: 175px; }
  .publico .module-copy { padding: 24px; }
  .publico .module-copy h3 { font-size: 24px; }
  .publico .module-copy p { font-size: 14px; }
  .publico .full-program summary { font-size: 13px; padding: 16px 12px; gap: 10px; }
  .publico .program-count { font-size: 11px; }
  .publico .learning-grid { grid-template-columns: 1fr; gap: 15px; margin-top: 25px; }
  .publico .learning-grid article { padding: 25px; }
  .publico .feature-icon { position: static; width: 43px; height: 43px; }
  .publico .learning-grid h3 { font-size: 21px; margin: 18px 0 10px; }
  .publico .learning-grid p { font-size: 14px; }
  .publico .simulator-grid { gap: 28px; }
  .publico .simulator-intro > p { font-size: 15px; }
  .publico .growth-calculator { padding: 23px; border-radius: 15px; }
  .publico .calculator-top { font-size: 14px; gap: 10px; }
  .publico .small-tag { font-size: 8px; letter-spacing: .5px; }
  .publico .calculator-inputs label { font-size: 13px; }
  .publico .calculator-result { padding: 16px; }
  .publico .calculator-result strong { font-size: 37px; }
  .publico .chart-legend { gap: 8px 15px; font-size: 10px; }
  .publico .calculator-disclaimer { font-size: 11px!important; }
  .publico .faq-grid { gap: 20px; }
  .publico .faq-list { padding: 0 20px; }
  .publico .faq-list summary { font-size: 14px; gap: 16px; }
  .publico .faq-list details p { font-size: 14px; margin-right: 0; }
  .publico .closing-panel { padding: 43px 23px; border-radius: 17px; }
  .publico .closing-panel .eyebrow { font-size: 9px; }
  .publico .closing-panel h2 { font-size: 31px; }
  .publico .closing-panel > p { font-size: 14px; }
  .publico .closing-panel .btn { font-size: 13px; padding: 16px; gap: 16px; }
  .publico .footer-top > p { font-size: 12px; }
  .publico .rodape .aviso-curto { font-size: 11px; }
}
