/* ACR SCHOOL · pages/guia-da-familia.css
   Exclusivo da página do Guia da Família, em :where(), especificidade zero.

   Documento de consulta, não de leitura corrida: a família abre o guia
   procurando uma regra, não para ler do começo ao fim. Por isso o índice
   fica fixo e sempre visível no desktop, a busca mora dentro dele, e a
   rolagem é só vertical. A versão horizontal anterior foi descartada
   porque duas rolagens na mesma tela brigam entre si.

   No celular o índice vira painel, aberto por uma barra que também diz em
   qual capítulo a pessoa está. É a mesma informação do desktop, na única
   forma que cabe em 380 px sem roubar a tela do texto. */

/* ------------------------------------------------------------------ *
 * Porta de entrada
 * ------------------------------------------------------------------ */
/* O wp_login_form() entrega cada campo dentro de um <p> e o "continuar
   conectado" como <label><input type=checkbox> texto</label>. Por isso a
   regra de rótulo empilhado é escrita campo por campo: aplicada a todo
   label, ela pegava também o label do checkbox e jogava a caixinha para
   cima do próprio texto. */
/* O espaço entre o painel e o texto de ajuda é gap do contêiner, não
   margin do parágrafo: a base zera margin de <p> por seletor de elemento
   e venceria qualquer margin escrita aqui dentro de :where(). */
:where(.guia-porta){display:grid;gap:var(--acr-s4);
  max-width:30rem;margin-inline:auto}
:where(.guia-porta) form{display:grid;gap:var(--acr-s4);
  padding:var(--acr-s5);background:var(--acr-surface-alt);
  border:var(--acr-rule) solid var(--acr-line);
  border-radius:var(--acr-radius)}
:where(.guia-porta) .login-username label,
:where(.guia-porta) .login-password label{display:block;margin-bottom:8px;
  font-family:var(--acr-font-nav);font-weight:var(--acr-weight-nav);
  font-size:var(--acr-label);text-transform:uppercase;
  letter-spacing:var(--acr-tracking-label);color:var(--acr-ink-3)}
:where(.guia-porta) input[type="text"],
:where(.guia-porta) input[type="password"]{display:block;width:100%;
  padding:13px 15px;font-family:var(--acr-font-text);font-size:16px;
  color:var(--acr-ink);background:var(--acr-surface);
  border:var(--acr-rule) solid var(--acr-line-3);
  border-radius:var(--acr-radius-field)}
/* flex-start e não center: em tela estreita o texto quebra em duas linhas
   e a caixinha centralizada fica flutuando entre elas. */
:where(.guia-porta) .login-remember label{display:flex;align-items:flex-start;
  gap:10px;font-family:var(--acr-font-text);font-size:15px;line-height:1.5;
  text-transform:none;letter-spacing:0;color:var(--acr-ink-2);cursor:pointer}
:where(.guia-porta) .login-remember input{flex:none;width:auto;margin:4px 0 0}
:where(.guia-porta) input[type="submit"]{width:100%;cursor:pointer;
  padding:15px 28px;font-family:var(--acr-font-nav);font-weight:600;
  font-size:13px;text-transform:uppercase;letter-spacing:var(--acr-tracking-btn);
  color:var(--acr-on-accent);background:var(--acr-accent);border:0;
  border-radius:var(--acr-radius-field)}
/* O .acr-text da base limita a 54ch com especificidade de classe e venceria
   um :where(). Por isso este parágrafo não usa .acr-text: ele herda a
   largura da coluna da porta e dispensa a disputa. */
:where(.guia-porta__ajuda){text-align:center;
  font-family:var(--acr-font-text);font-size:15px;line-height:1.55;
  color:var(--acr-ink-2)}
:where(.guia-porta__ajuda) a{text-decoration:underline}

/* ------------------------------------------------------------------ *
 * Grade: índice à esquerda, documento à direita
 * ------------------------------------------------------------------ */
:where(.guia){--guia-col:272px;
  /* --guia-off e a altura real do cabecalho do site, escrita pelo JS.
     Token nao serve aqui: a topbar fica fora do elemento fixo e o
     cabecalho encolhe de 76 para 64 px quando gruda, entao qualquer
     valor fixo erra por dezenas de pixels e abre fresta para o texto
     passar. O fallback cobre o instante antes do script rodar. */
  --guia-off:76px;
  position:relative;padding-block:var(--acr-s6) var(--acr-s7)}
:where(.guia-grade){display:grid;
  grid-template-columns:var(--guia-col) minmax(0,1fr);
  gap:var(--acr-s6);align-items:start}

/* O topo fixo do site já existe e tem altura própria: o índice gruda
   logo abaixo dele, nunca por cima. */
:where(.guia-indice){position:sticky;
  top:calc(var(--guia-off) + var(--acr-s3));
  max-height:calc(100dvh - var(--guia-off) - var(--acr-s5));
  display:flex;flex-direction:column;gap:var(--acr-s3)}
:where(.guia-indice__topo){display:flex;align-items:center;
  justify-content:space-between;gap:var(--acr-s2)}
:where(.guia-fechar){display:none}

:where(.guia-busca){position:relative;display:block}
:where(.guia-busca) svg{position:absolute;left:12px;top:50%;
  width:16px;height:16px;transform:translateY(-50%);pointer-events:none;
  fill:none;stroke:var(--acr-ink-3);stroke-width:1.6;stroke-linecap:round}
:where(.guia-busca) input{width:100%;padding:11px 12px 11px 36px;
  font-family:var(--acr-font-text);font-size:15px;color:var(--acr-ink);
  background:var(--acr-surface);border:var(--acr-rule) solid var(--acr-line-3);
  border-radius:var(--acr-radius-field)}
:where(.guia-busca) input::placeholder{color:var(--acr-ink-3)}

:where(.guia-indice__vazio){font-family:var(--acr-font-nav);
  font-weight:var(--acr-weight-nav);font-size:13px;color:var(--acr-ink-3)}

:where(.guia-indice__lista){overflow-y:auto;overscroll-behavior:contain;
  scrollbar-width:thin}
:where(.guia-indice__lista) ol{display:grid;gap:2px;
  list-style:none;margin:0;padding:0}
:where(.guia-indice__lista) li{margin:0}
:where(.guia-indice__cap){display:grid;grid-template-columns:1.9rem minmax(0,1fr);
  gap:10px;align-items:baseline;padding:8px 0;
  font-family:var(--acr-font-nav);font-weight:600;font-size:16px;
  line-height:1.35;color:var(--acr-ink-2)}
:where(.guia-indice__cap):hover{color:var(--acr-ink)}
:where(.guia-indice__n){font-size:13px;
  letter-spacing:var(--acr-tracking-label);color:var(--acr-ink-3)}

/* capítulo em que a pessoa está: filete dourado, o mesmo sinal de
   "você está aqui" do menu do site */
:where(.guia-indice) [data-guia-item].is-aqui>.guia-indice__cap{color:var(--acr-ink);
  box-shadow:inset 2px 0 0 var(--acr-accent);padding-left:10px}
:where(.guia-indice) [data-guia-item].is-aqui .guia-indice__n{color:var(--acr-accent-text)}

/* As seções do capítulo aberto, para pular direto ao item certo.
   Elas penduram num filete contínuo, recuado até debaixo do título do
   capítulo: sem isso a lista vira um bloco de itens soltos com o mesmo
   peso do capítulo, e some a relação de quem é filho de quem.

   O recuo vai no <li>, não no <ul>: o base.css zera margin e padding de
   ul com seletor de elemento, que vence o :where() desta folha. */
:where(.guia-indice__secoes){display:none}
:where(.guia-indice) [data-guia-item].is-aqui .guia-indice__secoes,
:where(.guia-indice).is-buscando .guia-indice__secoes{display:block;
  margin-block:2px 10px}
:where(.guia-indice__secoes) li{margin-left:1.9rem;
  border-left:var(--acr-rule) solid var(--acr-line)}
:where(.guia-indice__secoes) a{display:block;padding:7px 0 7px 14px;
  font-family:var(--acr-font-nav);font-weight:var(--acr-weight-nav);
  font-size:14px;line-height:1.3;color:var(--acr-ink-2)}
:where(.guia-indice__secoes) li:hover{border-left-color:var(--acr-accent)}
:where(.guia-indice__secoes) a:hover{color:var(--acr-ink)}

/* ------------------------------------------------------------------ *
 * Documento
 * ------------------------------------------------------------------ */
:where(.guia-doc){max-width:68ch}
:where(.guia-cap)+:where(.guia-cap){margin-top:var(--acr-s7);
  padding-top:var(--acr-s6);border-top:var(--acr-rule) solid var(--acr-line)}
:where(.guia-cap__cabeca){margin-bottom:var(--acr-s5)}
:where(.guia-cap__n){display:block;margin-bottom:var(--acr-s2);
  font-family:var(--acr-font-nav);font-weight:var(--acr-weight-nav);
  font-size:var(--acr-label);text-transform:uppercase;
  letter-spacing:var(--acr-tracking-label);color:var(--acr-accent-text)}
:where(.guia-cap__cabeca) h2{max-width:18ch;font-size:clamp(26px,3.4vw,38px)}

:where(.guia-sec)+:where(.guia-sec){margin-top:var(--acr-s5)}
:where(.guia-sec) h3{display:grid;gap:6px;margin-bottom:var(--acr-s3);
  font-family:var(--acr-font-display);font-weight:800;font-size:20px;
  line-height:1.2;color:var(--acr-ink)}
:where(.guia-sec__n){font-family:var(--acr-font-nav);
  font-weight:var(--acr-weight-nav);font-size:12px;
  letter-spacing:var(--acr-tracking-label);color:var(--acr-accent-text)}
:where(.guia-sec__corpo) p{color:var(--acr-ink-2);font-size:17px;
  line-height:var(--acr-leading-body);text-wrap:pretty}
:where(.guia-sec__corpo) p+p,
:where(.guia-sec__corpo) p+ul,:where(.guia-sec__corpo) ul+p,
:where(.guia-sec__corpo) p+dl,:where(.guia-sec__corpo) dl+p,
:where(.guia-sec__corpo) p+blockquote,
:where(.guia-sec__corpo) blockquote+p{margin-top:var(--acr-s3)}

:where(.guia-lista){display:grid;gap:12px}
:where(.guia-lista) li{position:relative;padding-left:var(--acr-s3);
  color:var(--acr-ink-2);font-size:17px;line-height:var(--acr-leading-body)}
:where(.guia-lista) li::before{content:"";position:absolute;left:0;top:.7em;
  width:8px;height:var(--acr-rule-accent);background:var(--acr-accent)}
:where(.guia-lista--ref) li{font-size:15px;line-height:1.5}

:where(.guia-dl) dt{margin-top:var(--acr-s3);
  font-family:var(--acr-font-display);font-weight:800;font-size:17px;
  color:var(--acr-ink)}
:where(.guia-dl) dd{margin-top:6px;color:var(--acr-ink-2);font-size:17px;
  line-height:var(--acr-leading-body)}

:where(.guia-destaque){font-family:var(--acr-font-display);font-weight:800;
  font-size:clamp(20px,2.2vw,26px);text-transform:uppercase;line-height:1.08;
  color:var(--acr-ink)}

:where(.guia-versiculo){margin-top:var(--acr-s4);padding-left:var(--acr-s4);
  border-left:var(--acr-rule-accent) solid var(--acr-accent);
  font-family:var(--acr-font-text);font-style:italic;font-size:19px;
  line-height:var(--acr-leading-lede);color:var(--acr-ink-2)}
:where(.guia-versiculo) cite{display:block;margin-top:10px;font-style:normal;
  font-family:var(--acr-font-nav);font-weight:var(--acr-weight-nav);
  font-size:12px;text-transform:uppercase;
  letter-spacing:var(--acr-tracking-label);color:var(--acr-ink-3)}

/* observação do manual: existe, mas não compete com a regra */
:where(.guia-nota){padding:var(--acr-s3);background:var(--acr-cinza-claro);
  border-left:var(--acr-rule-accent) solid var(--acr-line-3);font-size:15px}

:where(.guia-fim){margin-top:var(--acr-s7);padding-top:var(--acr-s4);
  border-top:var(--acr-rule) solid var(--acr-line);
  font-size:15px;color:var(--acr-ink-3)}
:where(.guia-fim) a{color:var(--acr-ink);text-decoration:underline}

/* ------------------------------------------------------------------ *
 * Celular: o índice vira painel
 * ------------------------------------------------------------------ */
:where(.guia-movel){display:none}
:where(.guia-fundo){display:none}
:where(.guia-topo-btn){position:fixed;right:var(--acr-gutter);bottom:20px;
  z-index:150;display:grid;place-items:center;width:44px;height:44px;
  cursor:pointer;color:var(--acr-on-accent);background:var(--acr-accent);
  border:0}
:where(.guia-topo-btn) svg{width:20px;height:20px;fill:none;
  stroke:currentColor;stroke-width:1.8;stroke-linecap:round;
  stroke-linejoin:round}
:where(.guia-topo-btn)[hidden]{display:none}

@media (max-width:1024px){
  :where(.guia){--guia-col:0}
  :where(.guia-grade){grid-template-columns:minmax(0,1fr);gap:0}
  :where(.guia-doc){max-width:none}

  /* barra que diz onde você está e abre o índice. Gruda embaixo do
     cabeçalho do site, nunca por cima dele. */
  :where(.guia-movel){position:sticky;top:var(--guia-off);z-index:120;
    display:flex;align-items:center;justify-content:space-between;
    gap:var(--acr-s2);margin-bottom:var(--acr-s5);
    padding:10px var(--acr-gutter);background:var(--acr-surface);
    border-block:var(--acr-rule) solid var(--acr-line)}
  :where(.guia-movel__onde){min-width:0;overflow:hidden;
    text-overflow:ellipsis;white-space:nowrap;
    font-family:var(--acr-font-nav);font-weight:600;font-size:13px;
    text-transform:uppercase;letter-spacing:var(--acr-tracking-nav);
    color:var(--acr-ink-2)}
  :where(.guia-movel__botao){flex:none;display:inline-flex;align-items:center;
    gap:8px;cursor:pointer;padding:8px 14px;background:transparent;
    border:var(--acr-rule) solid var(--acr-line-3);
    font-family:var(--acr-font-nav);font-weight:600;font-size:12px;
    text-transform:uppercase;letter-spacing:var(--acr-tracking-nav);
    color:var(--acr-ink)}
  :where(.guia-movel__botao) svg{width:16px;height:16px;fill:none;
    stroke:currentColor;stroke-width:1.6;stroke-linecap:round}

  /* painel: entra pela direita e cobre a tela inteira, acima do
     cabeçalho do site, que tem z-index 200. */
  :where(.guia-indice){position:fixed;inset:0 0 0 auto;z-index:260;
    width:min(22rem,88vw);max-height:none;padding:var(--acr-s4);
    background:var(--acr-surface);
    border-left:var(--acr-rule) solid var(--acr-line);
    transform:translateX(100%);visibility:hidden;
    transition:transform var(--acr-dur-2) var(--acr-ease),
               visibility 0s linear var(--acr-dur-2)}
  :where(.guia).is-aberto .guia-indice{transform:none;visibility:visible;
    transition-delay:0s}
  :where(.guia-fechar){display:grid;place-items:center;width:36px;height:36px;
    cursor:pointer;background:transparent;border:0;color:var(--acr-ink)}
  :where(.guia-fechar) svg{width:20px;height:20px;fill:none;
    stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
  :where(.guia-indice__secoes){display:grid;gap:2px}

  :where(.guia-fundo){position:fixed;inset:0;z-index:250;display:block;
    background:rgba(var(--acr-azul-rgb),.5)}
  :where(.guia-fundo)[hidden]{display:none}

  /* no painel toda seção aparece: não há "capítulo atual" a destacar
     quando a lista inteira está à vista */
  :where(.guia-indice__cap){font-size:17px;padding:12px 0}
  :where(.guia-indice__secoes) a{font-size:15px;padding:9px 0 9px 14px}
}

@media (max-width:640px){
  :where(.guia-cap__cabeca) h2{max-width:none}
  :where(.guia-cap)+:where(.guia-cap){margin-top:var(--acr-s6);
    padding-top:var(--acr-s5)}
}

@media (prefers-reduced-motion:reduce){
  :where(.guia-indice){transition:none}
}
