/* Runtime states only; the approved layout lives unchanged in prototype.css. */
[hidden] { display: none !important; }
.runtime-feedback { position: fixed; inset-block-start: 16px; inset-inline-end: 16px; z-index: 30; width: min(32rem, calc(100% - 32px)); max-height: min(50vh, 24rem); overflow: auto; padding: 16px; border: var(--line); background: var(--paper); color: var(--ink); min-width: 0; }
.runtime-status { margin: 16px 20px; max-width: 72ch; overflow-wrap: anywhere; }
.runtime-feedback > .runtime-status { margin: 0; }
.program-course li .program-date { display: inline; margin: 0; font-size: inherit; }
.runtime-reload { margin: 8px 0 0; }
.runtime-dismiss { display: block; min-height: 44px; margin-block-start: 8px; }
.runtime-dismiss:focus-visible { outline: 3px solid var(--method); outline-offset: 3px; }
/* Guidance that is not a failure (schedule clash, closed launch, updated price):
   the standard notice surface of DESIGN.md, never the pink error one. */
.form-feedback[data-tone="neutral"] { background: var(--cura-soft); }
/* Full-turma screen: choose another turma from the alternatives aside. */
.alternatives-aside .cohort-card > .text-link { margin: 0 12px 14px; }
[aria-busy="true"] { cursor: progress; }
button:disabled { cursor: not-allowed; }
.contract-document { white-space: pre-wrap; overflow-wrap: anywhere; }
[data-contract-dialog] { width: min(calc(100% - 32px), 1040px); max-height: 90vh; max-height: 90dvh; }
[data-contract-dialog] form { gap: 18px; padding: clamp(20px, 3vw, 32px); }
.contract-version { display: grid; gap: 14px; min-width: 0; }
.contract-version h3, .contract-version p { margin: 0; }
.contract-version a { text-underline-offset: 0.2em; }
.contract-pdf { display: block; width: 100%; height: clamp(360px, 64vh, 740px); height: clamp(360px, 64dvh, 740px); border: var(--line); background: var(--paper); }
.contract-pdf:focus-visible, .contract-version a:focus-visible { outline: 3px solid var(--method); outline-offset: 3px; }
[data-contract-dialog] .dialog-head { justify-content: flex-end; }
.contract-reader-content { display: grid; gap: 14px; min-width: 0; }
.contract-reader-controls { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.contract-reader-controls button:focus-visible, .contract-readable-text summary:focus-visible { outline: 3px solid var(--method); outline-offset: 3px; }
.contract-pages { overflow: auto; overscroll-behavior: contain; }
.contract-page-stack { width: 100%; }
.contract-page-stack.is-zoom-2 { width: 200%; }
.contract-page-stack.is-zoom-3 { width: 300%; }
.contract-page-stack img { display: block; width: 100%; height: auto; }
.contract-page-stack img + img { border-top: var(--line); }
.contract-reader-error { margin: 0; }
.contract-readable-text { min-width: 0; }
.contract-text-page { white-space: pre-wrap; overflow-wrap: anywhere; max-width: 72ch; margin-block-start: 18px; }
[data-contract-order] > .button { margin-top: 22px; }
[data-buyer-auth] { margin-block-start: 24px; }
[data-buyer-recent] { display: flex; flex-wrap: wrap; gap: 12px; margin-block-start: 20px; }
[data-payment-result] [role="status"] { overflow-wrap: anywhere; }

/* Pix instruction layout only; boleto and card keep their incumbent styles. */
.payment-pix {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
  gap: 24px;
  align-items: start;
  margin-block: 24px;
}
.payment-pix .payment-qr { height: auto; }
.payment-pix .payment-copy { display: grid; gap: 12px; min-width: 0; }
.payment-pix .payment-copy > label { display: grid; gap: 8px; min-width: 0; }
.payment-pix .payment-copy textarea {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 112px;
  padding: 12px;
  border: var(--line);
  border-radius: 0;
  background: var(--paper);
  line-height: 1.45;
  overflow-wrap: anywhere;
  resize: vertical;
}
.payment-pix .payment-copy > .button { justify-self: start; margin-top: 0; }

/* Boleto-only groups; payment commands, code bytes and expiry remain unchanged. */
.payment-boleto-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-block-start: 20px; }
.payment-boleto-actions > .button { margin-top: 0; }
.payment-boleto-actions > a { display: inline-flex; align-items: center; min-height: 44px; text-underline-offset: 0.2em; }
.payment-boleto-state > small { display: block; margin-block-start: 12px; }
.payment-boleto-copy { display: grid; gap: 12px; min-width: 0; margin-block: 24px; }
.payment-boleto-copy > label { display: grid; gap: 8px; min-width: 0; }
.payment-boleto-copy textarea {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 96px;
  padding: 12px;
  border: var(--line);
  border-radius: 0;
  background: var(--paper);
  line-height: 1.45;
  overflow-wrap: anywhere;
  resize: vertical;
}
.payment-boleto-copy > .button { justify-self: start; margin-top: 0; }

/* Visible optional-form feedback is separate from save and reload actions. */
[data-profile-feedback]:not(:empty) { margin-block-start: 20px; max-width: 72ch; overflow-wrap: anywhere; }
[data-profile-reload] { display: inline-flex; align-items: center; min-height: 44px; margin-block-start: 12px; }

/* Requested homepage refinement; faculty assets and lower metadata stay intact. */
body[data-screen="01-landing"] .landing-photo { display: none; }
body[data-screen="01-landing"] .landing-copy { grid-row: 1 / 4; align-items: center; text-align: center; }
body[data-screen="01-landing"] .landing-actions { justify-content: center; }
.landing-cohorts .cohort-card dl > div { border-right: 0; }
.landing-cohorts .cohort-card dl > div:first-child, .landing-cohorts .cohort-card dl > div:nth-child(2) { border-right: 0; }
@media (min-width: 701px) {
  body[data-screen="01-landing"] .site-header { grid-template-columns: minmax(0, 2fr) minmax(8rem, .5fr) minmax(0, 1.5fr); }
}
@media (min-width: 961px) {
  /* The cohort title is one third of the right half, with its existing 210px floor. */
  body[data-screen="01-landing"] .site-header { grid-template-columns: 50% max(210px, calc(100% / 6)) minmax(0, 1fr); }
}

/* Selection and contract present the same editorial faculty component. */
[data-contract-faculty] { border-bottom: var(--line); }
.program-header:has(> [data-contract-faculty-title]) { background: var(--cura); }
.program-header [data-contract-faculty-title] { max-width: 16ch; margin: 0; font-size: clamp(1.6rem, 2.2vw, 2.25rem); }
.program-aside.method > .program-header:has([data-contract-faculty-title]) { background: var(--method); }
.program-aside.both > .program-header:has([data-contract-faculty-title]) { background: var(--paper); }
:is([data-program-content], [data-contract-faculty]) .teacher-course { padding: 0; border-bottom: 0; }
:is([data-program-content], [data-contract-faculty]) .teacher-course h3 { display: none; }
:is([data-program-content], [data-contract-faculty]) .teacher-profile figcaption { min-height: 8rem; padding: 12px 10px; }
:is([data-program-content], [data-contract-faculty]) .teacher-course.method figcaption { background: var(--method-soft); }
:is([data-program-content], [data-contract-faculty]) .teacher-course.archicad figcaption { background: var(--cura-soft); }
:is([data-program-content], [data-contract-faculty]):not(.is-dual) .teacher-profile { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
:is([data-program-content], [data-contract-faculty]):not(.is-dual) .teacher-profile figcaption { justify-content: center; border-left: var(--line); }
:is([data-program-content], [data-contract-faculty]):not(.is-dual) .teacher-profile:has(.teacher-portrait[hidden]) { grid-template-columns: minmax(0, 1fr); }
:is([data-program-content], [data-contract-faculty]):not(.is-dual) .teacher-portrait[hidden] + figcaption { border-left: 0; }
:is([data-program-content], [data-contract-faculty]).is-dual .teacher-course { display: grid; border-right: 0; }
:is([data-program-content], [data-contract-faculty]).is-dual .teacher-course:first-child figcaption { border-right: var(--line); }
:is([data-program-content], [data-contract-faculty]).is-dual .teacher-profile { display: grid; grid-template-rows: auto 1fr; height: 100%; }
:is([data-program-content], [data-contract-faculty]).is-dual .teacher-profile figcaption { min-height: 0; padding-block: 9px; }
.program-aside :is([data-contract-program], [data-selection-program]).is-dual { align-items: stretch; }

/* Course-base names are highlights, not full-height colored grid cells. */
.base-course-card { text-align: center; }
.base-course-card h2 { margin: 20px; align-self: center; justify-self: center; border: 0; }
.base-course-card p { display: flex; align-items: center; justify-content: center; margin: 0; border-left: var(--line); }
.base-course-card a { justify-content: center; text-align: center; margin: 0; }
@media (max-width: 700px) {
  .base-course-card p { border-left: 0; }
}

/* NORMAL: installment figure leads; immutable total remains visible below. */
.investment-cell.is-normal dd strong, .combined-total.is-normal strong { font-size: clamp(1.3rem, 2vw, 1.8rem); }
.normal-investment { display: grid; gap: 4px; min-width: 0; }
.normal-investment { font-size: clamp(1.1rem, 1.5vw, 1.4rem); font-variant-numeric: tabular-nums; }
.normal-investment small, .combined-total.is-normal small { font-size: .8rem; }
.normal-investment small { font-weight: 400; }
.totals.is-normal dd { font-size: .9rem; }

/* All sidebar flows share one masthead/journey grid, including FREE steps. */
body:not([data-screen="01-landing"]) .product-label { display: flex; }
body:not([data-screen="01-landing"]) .site-header { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body:not([data-screen="01-landing"]) .global-journey { border-bottom: 0; }
body:not([data-screen="01-landing"]) :is(.flow-grid, .checkout-grid, .success-grid) { grid-template-areas: "journey" "content" "aside"; }
body:not([data-screen="01-landing"]) :is(.flow-grid, .checkout-grid, .success-grid) > .global-journey { grid-area: journey; min-width: 0; align-self: start; }
body:not([data-screen="01-landing"]) :is(.flow-main, .checkout-main, .success-copy) { grid-area: content; }
body:not([data-screen="01-landing"]) :is(.flow-grid, .checkout-grid, .success-grid) > :is(aside, .success-details) { grid-area: aside; }
@media (min-width: 961px) {
  body:not([data-screen="01-landing"]) .site-header { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
  body:not([data-screen="01-landing"]) :is(.flow-grid, .checkout-grid, .success-grid) { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); grid-template-rows: auto 1fr; grid-template-areas: "journey aside" "content aside"; min-height: calc(100dvh - 72px); }
  body:not([data-screen="01-landing"]) .global-journey { width: 100%; grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); }
  body:not([data-screen="01-landing"]) .global-journey ol { grid-template-columns: repeat(var(--journey-count, 4), minmax(0, 1fr)); }
  body:not([data-screen="01-landing"]) .global-journey li :is(strong, small) { white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; }
}

/* Phase 2: a base course is its own item right below its turma; one total and
   the installments close the list. Turma-only orders keep the rules above. */
.selection-list.is-bundle { grid-template-columns: minmax(0, 1fr); }
.selection-list.is-bundle .bundle-group { display: grid; align-content: start; min-width: 0; }
.selection-list.is-bundle .bundle-group + .bundle-group { border-top: var(--line); }
.selection-list.is-bundle .selection-summary + .selection-summary { border-top: var(--line); }
.selection-list.is-bundle .base-course-summary header h2 { background: var(--accent-soft); }
.combined-total.is-bundle strong { font-size: clamp(1.3rem, 2vw, 1.8rem); line-height: 1.15; overflow-wrap: anywhere; }
.combined-total.is-bundle small { font-size: .9rem; font-variant-numeric: tabular-nums; }
.checkout-item.base-course-item .course-chip, .mini-selection.base-course-item .course-chip { background: var(--accent-soft); }
@media (min-width: 1181px) {
  .selection-list.is-bundle:not(.is-dual) .base-course-summary dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 701px) {
  /* Two turmas: one column each, turma above its course on shared rows. */
  .selection-list.is-bundle.is-dual { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto auto; }
  .selection-list.is-bundle.is-dual .bundle-group { grid-row: span 2; grid-template-rows: subgrid; }
  .selection-list.is-bundle.is-dual .bundle-group + .bundle-group { border-top: 0; border-left: var(--line); }
  .selection-list.is-bundle.is-dual .bundle-group > .selection-summary:only-child { border-bottom: var(--line); }
  .selection-list.is-bundle.is-dual .selection-summary dl > div { border-right: 0; border-bottom: 0; }
  .selection-list.is-bundle.is-dual .selection-summary:not(.base-course-summary) dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .selection-list.is-bundle.is-dual .selection-summary:not(.base-course-summary) dl > div:first-child { border-right: var(--line); }
  .selection-list.is-bundle.is-dual .selection-summary:not(.base-course-summary) dl > .investment-cell { grid-column: 1 / -1; border-top: var(--line); }
  .selection-list.is-bundle.is-dual .base-course-summary dl { grid-template-columns: minmax(0, 1fr); }
  .selection-list.is-bundle.is-dual .base-course-summary dl > div + div { border-top: var(--line); }
}

/* Screen 05 in-order offer: the explicit action stays in the reading column. */
.base-course-offer { display: grid; min-width: 0; }
.base-course-offer > .base-course-feedback:not(:empty) { margin-top: 16px; max-width: 72ch; overflow-wrap: anywhere; }
.base-course-offer > .base-course-add { justify-self: start; margin-top: 24px; }
.base-course-offer > .text-link { justify-self: start; margin-top: 12px; }
.base-course-offer > .base-course-note { max-width: 60ch; margin-top: 14px; color: var(--muted); font-size: .875rem; line-height: 1.45; }
@media (max-width: 700px) {
  .base-course-offer > .base-course-add { justify-self: stretch; }
}
/* Repasse da taxa do cartão: total no cartão logo abaixo das parcelas. */
.checkout-form .card-fields > .card-total-note { grid-column: 1 / -1; margin: -4px 0 0; font-size: 0.875rem; line-height: 1.45; }
.checkout-form .card-fields > .card-total-note[hidden] { display: none; }
/* Preço em destaque (decisão do dono em 07/10/2026; referência visual do dono):
   pequeno "5x de", grande "R$ 170", pequeno "ou R$ 850 à vista · menos de R$ 48 por encontro".
   Seletores com "body" para vencer as regras antigas de .investment-cell/.cohort-card (mesma especificidade, cascata posterior). */
body dd.price-lead, body .normal-investment.price-lead { display: grid; justify-items: start; gap: 2px; margin-top: 4px; }
body .price-lead > small.price-count, body .price-lead > small.price-alt { display: block; margin: 0; color: var(--muted); font-size: 1rem; font-weight: 400; line-height: 1.3; white-space: normal; font-variant-numeric: proportional-nums; }
body .price-lead > strong.price-amount { display: block; margin: 0; color: var(--ink); font-size: clamp(2.75rem, 5vw, 4.5rem); font-weight: 600; line-height: 1; letter-spacing: -0.035em; white-space: nowrap; font-variant-numeric: proportional-nums; }
body .price-lead > small.price-alt { overflow-wrap: anywhere; }
/* Cartões das turmas (dono, 07/10/2026 à noite): o mesmo tamanho de card de antes — o preço fica na
   sua coluna (grade original), com a mesma hierarquia em escala menor: a página volta a caber sem rolar. */
body .cohort-card .price-lead { gap: 0; margin-top: 2px; }
body .cohort-card .price-lead > strong.price-amount { font-size: clamp(1.75rem, 2.3vw, 2.25rem); letter-spacing: -0.02em; }
body .cohort-card .price-lead > small.price-count, body .cohort-card .price-lead > small.price-alt { font-size: .8rem; line-height: 1.3; }
/* Resumo do pedido (contrato) e checkout: o mesmo padrão, menor. */
.selection-summary dl.has-price-lead { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.selection-summary dl.has-price-lead > div:nth-child(2) { border-right: 0; }
.selection-summary dl.has-price-lead > .investment-cell.is-price-lead { grid-column: 1 / -1; border-top: var(--line); border-right: 0; }
body .selection-summary .price-lead > strong.price-amount { font-size: clamp(2.25rem, 4vw, 3.25rem); }
body .combined-total.price-lead > strong.price-amount { font-size: clamp(2.1rem, 3.6vw, 2.9rem); }
body .combined-total.price-lead > small.price-count, body .combined-total.price-lead > small.price-alt { text-align: center; }
body .normal-investment.price-lead { justify-items: end; text-align: right; }
body .normal-investment.price-lead > strong.price-amount { font-size: clamp(1.6rem, 2.6vw, 2.2rem); }
body .normal-investment.price-lead > small.price-count, body .normal-investment.price-lead > small.price-alt { font-size: .8rem; }
body .normal-investment.price-lead > small.price-alt { max-width: 15rem; }
@media (max-width: 700px) {
  body .price-lead > small.price-count, body .price-lead > small.price-alt { font-size: .875rem; }
  body .price-lead > strong.price-amount { font-size: clamp(2.5rem, 13vw, 3.5rem); }
  body .selection-summary .price-lead > strong.price-amount { font-size: clamp(2.1rem, 11vw, 3rem); }
}
/* Checkout em coluna única (<=960 px: resumo no formulário e coluna lateral embaixo): o preço numa
   linha inteira abaixo do título, alinhado à esquerda e maior que o total (1.65rem/1.8rem); sem isso
   caía na coluna de 14 px do .checkout-item (<=430 px) ou ficava menor que o total (701-960 px). */
@media (max-width: 960px) {
  body .checkout-item > .normal-investment.price-lead { grid-column: 1 / -1; justify-items: start; text-align: left; }
  body .checkout-item > .normal-investment.price-lead > small.price-alt { max-width: none; }
  body .checkout-item > .normal-investment.price-lead > strong.price-amount { font-size: clamp(2.25rem, 11vw, 2.75rem); }
}
