/* BNCC no plano de aula — complementa o design system da página inicial. */
.bncc-page { overflow: hidden; }
.bncc-page h1 { max-width: 640px; }
.bncc-page .section-heading > p { max-width: 680px; }

.bncc-hero { padding: 78px 0 86px; }
.bncc-hero__grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 58px; }
.bncc-hero__visual { position: relative; min-height: 560px; }
.bncc-phone { position: absolute; margin: 0; overflow: hidden; border: 7px solid var(--paper); border-radius: 27px; background: var(--paper); box-shadow: 0 25px 60px rgba(48,42,38,.2); }
.bncc-phone img { display: block; width: 100%; height: auto; border-radius: 19px; }
.bncc-phone--front { z-index: 2; left: 4%; top: 0; width: 262px; transform: rotate(-1.6deg); }
.bncc-phone--back { right: 2%; top: 46px; width: 240px; transform: rotate(2deg); }

.bncc-example { display: grid; grid-template-columns: .9fr 1.1fr; gap: 70px; align-items: start; }
.bncc-example__plan { padding: 28px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); }
.bncc-example__plan p { margin: 0; line-height: 1.7; }
.bncc-example__label { display: block; margin-bottom: 12px; color: var(--brand); font-size: .72rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.bncc-codes { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.bncc-codes li { padding: 18px 20px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); }
.bncc-codes strong { margin-right: 8px; }
.bncc-codes small { display: inline-block; padding: 2px 9px; border: 1px solid var(--line); border-radius: 999px; color: var(--brand-dark); font-weight: 750; }
.bncc-codes p { margin: 8px 0 0; color: var(--muted); font-size: .92rem; line-height: 1.6; }

.bncc-trust { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.bncc-trust article { padding: 28px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); }
.bncc-trust h3 { margin: 0 0 10px; font-size: 1.1rem; }
.bncc-trust p { margin: 0; color: var(--muted); font-size: .94rem; line-height: 1.7; }

.bncc-page .check-list { display: grid; gap: 15px; margin: 26px 0 0; padding: 0; list-style: none; }
.bncc-page .check-list li { position: relative; padding-left: 25px; color: var(--muted); }
.bncc-page .check-list li::before { content: "✓"; position: absolute; left: 0; color: var(--brand); font-weight: 900; }
.bncc-page .check-list strong { color: var(--ink); }

.bncc-page .faq-layout { grid-template-columns: .7fr 1.3fr; }
.related-section { padding: 45px 0; border-bottom: 1px solid var(--line); background: var(--paper-warm); }
.related-grid { display: grid; grid-template-columns: .45fr 1.55fr; align-items: start; gap: 55px; }
.related-grid h2 { margin: 0; font-size: 1rem; letter-spacing: 0; }
.related-grid nav { display: flex; flex-wrap: wrap; gap: 9px 23px; }
.related-grid a { color: var(--brand-dark); font-size: .86rem; font-weight: 700; text-underline-offset: 4px; }

@media (max-width: 1020px) {
  .bncc-hero__grid, .bncc-example { grid-template-columns: 1fr; }
  .bncc-trust { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .bncc-hero { padding: 52px 0 62px; }
  .bncc-page h1 { font-size: clamp(2.3rem,11vw,3.2rem); }
  .bncc-hero__visual { min-height: 400px; }
  .bncc-phone { border-width: 4px; border-radius: 19px; }
  .bncc-phone img { border-radius: 14px; }
  .bncc-phone--front { left: 0; width: 52%; }
  .bncc-phone--back { right: 0; top: 34px; width: 47%; }
  .bncc-page .faq-layout, .related-grid { grid-template-columns: 1fr; gap: 32px; }
  .related-grid nav { display: grid; }
}
