/**
 * The admission form.
 *
 * Enqueued by unexmed_ficha_assets() in inc/componentes/ficha-inscricao.php, on the admission
 * routes only. It holds just what is lost by not using .default-form and #form-inscricao, which
 * were simultaneously the bundle's CSS and JavaScript hooks. Every other rule for this form
 * (.default-input, .default-select, .default-checkbox, .error-message, .box-form, .title-form,
 * .CaptionCont) is a plain selector and applies unchanged.
 *
 * The values are copied from the bundle's source (css/style.css.map, sourcesContent). Do not adjust
 * them by eye: what proves the design has not changed is .claude/scripts/ficha-medidas.js against
 * the baseline in .claude/scripts/baselines/.
 *
 * One of the five rules differs in specificity: #form-inscricao is (0,1,0,0) and .ficha-form is
 * (0,0,1,0). Nothing else in the bundle targets this element, and this file is enqueued after
 * css/style.css, so the cascade resolves the same way. It is the one rule where identical
 * declarations do not automatically mean an identical result, which is why the measurement exists.
 *
 * The indentation follows the extracted source, where SCSS nested rules come out indented in the
 * compiled CSS, as in css/academico.css and css/login.css.
 *
 * The last section, "Body text colours", is not about the form: it is the colour of the page body
 * beside it. It lives here because this is the one hand-written stylesheet already loaded on
 * exactly these routes, after the bundle, and the change was not to add a file.
 */
.ficha-form {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 25px; }
  .ficha-form .submit {
    display: flex; }
    .ficha-form .submit-center {
      justify-content: center; }
    .ficha-form .submit-right {
      justify-content: flex-end; }

.sessao-estude-aqui-content-single .sidebar .box-form .ficha-form {
  background-color: #0F264F;
  padding: 30px; }
  @media only screen and (min-width: 1200px) {
    .sessao-estude-aqui-content-single .sidebar .box-form .ficha-form {
      padding: 40px; } }
  .sessao-estude-aqui-content-single .sidebar .box-form .ficha-form .default-select .SumoSelect > .optWrapper > .options {
    max-height: none; }

/**
 * The campus select, with <optgroup> headers.
 *
 * The `max-height` above is the one declaration in this file that is not a copy of the bundle's
 * source. The bundle's value is 125px, chosen when the select held four plain options; listing the
 * admission processes from the API gives the same select several group headers and ten or more
 * options, which is hundreds of pixels of content inside 125px, so only about three rows of
 * thirteen would be visible. Measured in a real Chrome by .claude/scripts/ficha-dropdown.js, which
 * exists for this and should be run again after any change here.
 *
 * The list does not scroll: it shows every row.
 *
 * `none` rather than a `calc(100vh - …)`, and the reason was measured. `.optWrapper` computes to
 * `position: fixed`, which suggests anything past the bottom of the window would be unreachable and
 * a viewport-height limit would be mandatory. That is not the case: scrolling the page 150px moves
 * the dropdown 150px with it (measured in a real Chrome by .claude/scripts/ficha-captura.js). Its
 * containing block is an ancestor rather than the window, so it is anchored to the page and
 * anything off-screen is reached by scrolling like any other content. A limit would only
 * reintroduce a scrollbar: on a 660px phone `calc(100vh - 140px)` yields 520px for slightly more
 * content, which is the worst of both.
 *
 * That is the same fact behind the clipping handled at the end of this file: a `fixed` element
 * whose containing block is an ancestor is clipped by that ancestor's `overflow`. Following the
 * scroll and being cut off by .box-form are one cause seen from two sides.
 *
 * The rules below style the group header, which has no rule anywhere in the bundle. Without them
 * SumoSelect's default applies, black at 16px, larger and darker than the options it labels, which
 * are #244E99 at 0.875rem.
 *
 * Typography alone is not enough to separate them. A header and an option both rendered as blue
 * text on the same white, differing only in size, still read as one more row of the list. What
 * separates them is the band: a background of its own (#E8EEF7) with a hairline above and below
 * takes the header out of the flow of options before a single letter is read, and the typography
 * then confirms it, at weight 700 in the theme's darkest blue (#0F264F), the same as the form's
 * background, against the mid #244E99 of the campuses.
 *
 * `display: block` is what makes the band span the full width; without it the background paints
 * only behind the text. The 20px side padding matches `li.opt`, so the header's text aligns
 * vertically with the options beneath it. The first group drops its top hairline, which would meet
 * the dropdown's border and draw a double line.
 */
.sessao-estude-aqui-content-single .sidebar .box-form .ficha-form .default-select .SumoSelect > .optWrapper > .options li.group > label {
  display: block;
  padding: 9px 20px;
  background-color: #E8EEF7;
  color: #0F264F;
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  border-top: 1px solid #D3DFEE;
  border-bottom: 1px solid #D3DFEE; }
  .sessao-estude-aqui-content-single .sidebar .box-form .ficha-form .default-select .SumoSelect > .optWrapper > .options li.group:first-child > label {
    border-top: 0; }

/* SumoSelect indents a group's options by default. It is removed here because the header already
   separates them, and the indent only shortens the space available to long labels such as
   "Vitória da Conquista (Prova 18/10)". */
.sessao-estude-aqui-content-single .sidebar .box-form .ficha-form .default-select .SumoSelect > .optWrapper > .options li.group ul li.opt {
  padding-left: 20px; }

/**
 * The dropdown has to overlay the form rather than being trapped inside it.
 *
 * The bundle gives `.box-form` an `overflow: hidden`, and that is what clips the list. Verified
 * with a screenshot from a real Chrome (.claude/scripts/ficha-captura.js): the dropdown ends
 * exactly at the blue box's lower edge, hiding most of the campuses. Measuring rectangles is not
 * enough to prove this, and reading a point above the dropdown leads to the opposite conclusion,
 * so look at the image before trusting a number.
 *
 * That `overflow: hidden` is not an oversight: it is what makes the box's `border-radius: 8px` clip
 * its children. Removing it alone squares the corners, because the green header and the blue body
 * both paint to the edge. The radius therefore moves onto the children, each taking its own two
 * corners, so the rendered result is the same and the box stops clipping what leaves it.
 *
 * These rules live here rather than in the bundle because the bundle is not editable in this
 * repository, and this file loads after it. The selector repeats the whole chain
 * (.sessao-estude-aqui-content-single .sidebar .box-form) to match the specificity of the original
 * rule, which is exactly that.
 */
.sessao-estude-aqui-content-single .sidebar .box-form {
  overflow: visible; }
  .sessao-estude-aqui-content-single .sidebar .box-form .title-form {
    border-radius: 8px 8px 0 0; }
  .sessao-estude-aqui-content-single .sidebar .box-form .ficha-form {
    border-radius: 0 0 8px 8px; }

/**
 * Opening upward.
 *
 * The class is applied by js/ficha-inscricao.js (ligaDirecao/ajustaDirecao) when the list does not
 * fit below the select and there is more room above. SumoSelect's own `.up` convention has no rule
 * in this theme, so both halves belong to the component: without this rule the class would do
 * nothing.
 *
 * The bundle rule this overrides is
 * `.default-select .SumoSelect.open > .optWrapper { top: 100%; }`, hence the explicit `top: auto`:
 * without it `bottom: 100%` is not enough, because with `top` and `bottom` both set and the height
 * automatic, `top` wins.
 *
 * The border swaps sides with the direction. The bundle sets `border-top: 0` on the wrapper so the
 * seam against the select box does not draw two lines; opening upward it is the bottom border that
 * meets the select, and that is the one that has to go, or there is a double line at the seam and
 * none at the top.
 */
.sessao-estude-aqui-content-single .sidebar .box-form .ficha-form .default-select .SumoSelect.ficha-select-cima > .optWrapper {
  top: auto;
  bottom: 100%;
  border-top: 1px solid #fff;
  border-bottom: 0; }

/* ================= BODY TEXT COLOURS ================= */
/**
 * Body text colours on the admission routes, requested on 2026-10-02: the light text read too
 * light, and the bold text not dark enough.
 *
 * The values the bundle gives every [data-content] block, measured in Chrome on
 * /estude-aqui/vestibular-tradicional before this section existed:
 *
 *   paragraph        #757575   4.61:1 on white
 *   list item        #A0A0A0   2.61:1, below the 4.5:1 WCAG AA minimum for body text
 *   bold (b/strong)  #757575   the paragraph's own colour, so only the weight told them apart
 *
 * Paragraphs, list items and table cells now share one darker grey, #4D4D4D (8.45:1), and bold
 * takes the headings' navy, #0F264F (14.89:1), the bundle's darkest token, so a bold run such as
 * "Como funciona" reads as a step above the text around it rather than the same grey in a heavier
 * weight. DM Sans Bold is a real face in the bundle's @font-face list, so the weight was never
 * synthesised; colour was the whole problem.
 *
 * Why :where([data-content]): it keeps each selector at exactly the bundle's specificity, (0,1,1)
 * for `[data-content] p` and (0,1,2) for `[data-content] ul li`, so these rules win only because
 * this file prints after css/style.css, and every MORE specific bundle rule still wins. That keeps
 * the exceptions without restating them: `[data-content] a strong` and `[data-content] h2 strong`
 * stay green, `[data-content] h3 b` keeps inheriting the heading's navy, and
 * `[data-content] blockquote p` stays green. Scoped with a plain descendant selector instead, at
 * (0,2,1), the bold rule would turn the green of a bold link into navy and the paragraph rule would
 * turn a green blockquote grey.
 *
 * Scoped to .sessao-estude-aqui-content-single, the section holding the page body
 * (inc/estude-aqui/single/content.php). The same bundle values apply to every other
 * [data-content] block on the site (blog posts, FAQ, campus pages, /estude-aqui/bolsas-e-financiamento,
 * which runs on another template), which this section deliberately does not touch.
 */
.sessao-estude-aqui-content-single :where([data-content]) p,
.sessao-estude-aqui-content-single :where([data-content]) ul li,
.sessao-estude-aqui-content-single :where([data-content]) ol li,
.sessao-estude-aqui-content-single :where([data-content]) table th,
.sessao-estude-aqui-content-single :where([data-content]) table td {
  color: #4D4D4D; }

.sessao-estude-aqui-content-single :where([data-content]) strong,
.sessao-estude-aqui-content-single :where([data-content]) b {
  color: #0F264F; }
