/* Cabeçalho e rodapé de todas as páginas internas (o catálogo usa só essa parte) e a base das páginas de conteúdo
   (Sobre nós, Do pedido à obra, Contato), que levam a classe .pg no body. Mesma linguagem do index.html: azul-noite,
   amarelo da marca, linhas finas e cantos chanfrados. */
/* fontes servidas daqui (as mesmas do Google Fonts, só o alfabeto latino): a página não espera outro servidor pra pintar */
@font-face { font-family:Jost; font-weight:400 500; font-display:swap; src:url(../assets/fontes/jost.woff2) format('woff2') }
@font-face { font-family:Montserrat; font-weight:800; font-display:swap; src:url(../assets/fontes/montserrat-800.woff2) format('woff2') }
:root { --navy-900:#020B2E; --navy-800:#001A6F; --yellow:#FDC726; --wa:#25D366; --line:rgba(255,255,255,.14); --fraco:rgba(255,255,255,.68);
  --sai:cubic-bezier(.16,1,.3,1);
  --ch8:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px));
  --ch14:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,14px 100%,0 calc(100% - 14px));
  --ch22:polygon(0 0,calc(100% - 22px) 0,100% 22px,100% 100%,22px 100%,0 calc(100% - 22px)) }
@view-transition { navigation:auto }                       /* de uma página pra outra, uma dissolve na outra (sem clarão) */

/* ---------- cabeçalho ---------- */
.topo { position:relative; z-index:30; display:flex; align-items:center; gap:10px 30px; padding:16px 48px; border-bottom:1px solid var(--line) }
.marca { display:flex; align-items:center; gap:12px; color:#fff; text-decoration:none }
.marca b { display:block; font:800 19px/1 Montserrat, sans-serif; letter-spacing:.04em }
.marca small { display:block; margin-top:5px; font-size:11px; letter-spacing:.14em; color:rgba(255,255,255,.6) }
.topo nav { margin-left:auto; display:flex; align-items:center; gap:28px; font-size:15px }
.topo nav a { color:rgba(255,255,255,.8); text-decoration:none; transition:color .2s }
.topo nav a:hover, .topo nav a[aria-current=page] { color:var(--yellow) }
.topo-cta { padding:10px 16px; color:var(--navy-900); background:var(--yellow); font:500 14px/1.2 Jost, sans-serif; text-decoration:none; clip-path:var(--ch8); transition:filter .2s }
.topo-cta:hover { filter:brightness(1.08) }
.topo-menu { display:none; margin-left:auto; padding:9px 14px; border:1px solid var(--line); color:#fff; background:rgba(255,255,255,.06); font:500 14px Jost, sans-serif; cursor:pointer; clip-path:var(--ch8) }
.topo :is(a, button):focus-visible, .rodape a:focus-visible { outline:2px solid var(--yellow); outline-offset:3px }
.topo-cta:focus-visible, .topo-menu:focus-visible { outline-offset:-3px; outline-color:currentColor }   /* o chanfro corta o contorno de fora: vai por dentro */
@media (max-width: 900px) {
  .topo { flex-wrap:wrap; padding:14px 20px }
  .topo-menu { display:block }
  .topo-cta { display:none }
  .topo nav { display:none; flex-basis:100%; margin:6px 0 0; flex-direction:column; align-items:stretch; gap:0 }
  .topo.aberto nav { display:flex }
  .topo nav a { padding:13px 0; border-top:1px solid var(--line); font-size:17px }
}
@media (max-width: 520px) { .marca small { display:none } }
@media (scripting: none) { .topo-menu { display:none } .topo nav { display:flex } }   /* sem JS o menu fica aberto */

/* ---------- rodapé: quem é, onde ir no site, como falar, onde fica, e a linha legal embaixo ---------- */
.rodape { position:relative; display:grid; grid-template-columns:1.25fr .8fr 1.35fr 1.2fr; gap:36px 48px; padding:64px 48px 30px; background:#000; font-size:15px }
.rodape a { color:rgba(255,255,255,.82); text-decoration:none; transition:color .2s } .rodape a:hover, .rodape a:focus-visible { color:var(--yellow) }
.rodape-marca { display:grid; grid-template-columns:auto 1fr; align-items:center; align-content:start; gap:16px 14px }
.rodape-marca b { display:block; font:800 20px/1 Montserrat, sans-serif; letter-spacing:.04em }
.rodape-marca small { display:block; margin-top:6px; font-size:11px; letter-spacing:.14em; color:rgba(255,255,255,.6) }
.rodape-marca p { grid-column:1 / -1; max-width:32ch; color:rgba(255,255,255,.7) }
.rodape address { font-style:normal; color:rgba(255,255,255,.82); overflow-wrap:anywhere }
.rodape :is(nav, address) > * { display:block; padding:3px 0 }
.rodape .rodape-lbl { margin-bottom:10px; padding:0; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.5) }
.rodape-fim { grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:6px 28px; padding-top:20px; border-top:1px solid var(--line); font-size:13px; color:rgba(255,255,255,.5) }
@media (max-width: 1000px) { .rodape { grid-template-columns:1fr 1fr; gap:30px 20px; padding:44px 20px 30px } }
@media (max-width: 720px) { .rodape { grid-template-columns:1fr } }

/* ---------- páginas de conteúdo ---------- */
.pg { margin:0; color:#fff; font:400 16px/1.5 Jost, sans-serif; background:var(--navy-900) }
.pg::before { content:""; position:fixed; inset:0; z-index:-1; pointer-events:none; background:radial-gradient(80% 60% at 88% -12%, #0a2a7a 0%, transparent 62%) }
.pg *, .pg *::before, .pg *::after { box-sizing:border-box }
:where(.pg) :where(h1, h2, h3, p, figure, ul, ol, dl, dd) { margin:0 }   /* :where não pesa: qualquer regra da página ganha desse zero */
:where(.pg) :where(ul, ol) { padding:0; list-style:none }
.pg main :is(a, button):focus-visible { outline:2px solid var(--yellow); outline-offset:3px }   /* os campos de formulário mostram o foco na linha de baixo */
.pg .sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap }
.pg em { font-style:normal; color:var(--yellow) }
.pg h1 { font:800 clamp(34px, 4.6vw, 58px)/1.03 Montserrat, sans-serif; text-transform:uppercase; letter-spacing:-.01em; text-wrap:balance }
.pg h2 { font:800 clamp(27px, 3.4vw, 42px)/1.06 Montserrat, sans-serif; text-transform:uppercase; letter-spacing:-.01em; text-wrap:balance }
.pg h3 { font:800 18px/1.2 Montserrat, sans-serif; text-transform:uppercase }
.eyebrow { display:block; font-size:13px; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.8) }
.lead { max-width:54ch; font-size:19px; line-height:1.55; color:rgba(255,255,255,.9) }
.pg main > section { padding:104px 48px }
.miolo { max-width:1180px; margin-inline:auto }
.btn { display:inline-block; padding:15px 24px; border:0; color:var(--navy-900); background:var(--yellow); font:500 16px/1.2 Jost, sans-serif; text-align:center; text-decoration:none;
  cursor:pointer; clip-path:var(--ch8); transition:filter .2s, background .3s, color .3s }
.btn:hover { filter:brightness(1.08) }
.btn.claro { color:#fff; background:rgba(255,255,255,.1) }
.btn.claro:hover { filter:none; color:var(--navy-900); background:#fff }
.pg main .btn:focus-visible { outline-color:var(--navy-900); outline-offset:-6px }
.pg main .btn.claro:focus-visible { outline-color:var(--yellow) }
.acoes { display:flex; flex-wrap:wrap; gap:12px }
.seta { display:inline-flex; align-items:center; gap:8px; color:#fff; font-size:16px; text-decoration:none; transition:color .2s }
.seta span { color:var(--yellow) }
.seta:hover { color:var(--yellow) }
/* foto e vídeo sempre na moldura chanfrada */
.quadro { position:relative; overflow:hidden; background:#06123f; clip-path:var(--ch22) }
.quadro :is(img, video) { display:block; width:100%; height:100%; object-fit:cover }
.quadro figcaption { position:absolute; left:0; bottom:0; padding:8px 14px 8px 12px; font-size:13px; background:rgba(2,11,46,.82) }

/* capa: o título da página de um lado e a imagem do outro */
.pg main > .capa { padding-top:72px; padding-bottom:88px }
.capa-in { display:grid; grid-template-columns:minmax(0, 1.08fr) minmax(0, .92fr); gap:clamp(32px, 5vw, 76px); align-items:center }
.capa h1 { margin-top:18px }
.capa .lead { margin-top:22px }
.capa .acoes { margin-top:32px }
.capa .quadro { aspect-ratio:4 / 5; max-height:min(640px, 78vh); justify-self:end; width:100% }
.capa .quadro :is(img, video) { animation:aproxima 14s var(--sai) both }   /* a imagem da capa chega devagar */
@keyframes aproxima { from { transform:scale(1.12) } }

/* os blocos entram quando aparecem na rolagem (js/pagina.mjs põe .visto); sem JS ou com movimento reduzido já estão no lugar */
.entra { opacity:0; transform:translateY(24px); transition:opacity .9s var(--sai), transform 1.1s var(--sai); transition-delay:calc(var(--i, 0) * 90ms) }
.entra.visto { opacity:1; transform:none }
@media (scripting: none) { .entra { opacity:1; transform:none } }

/* fachada da fábrica: o céu é o degradê medido na foto do post, e o nome da avenida sobe de trás do prédio quando o bloco aparece */
.fachada { position:relative; aspect-ratio:1080 / 1190; overflow:hidden; container-type:inline-size;
  background:linear-gradient(180deg, #acd2ef 0%, #c5dcf2 12%, #d0dded 20%, #dee8f5 26%, #e2eaf5 38%, #e7ecf4 45%, #edf2f9 52%); clip-path:var(--ch22) }
.fachada p { position:absolute; left:0; right:0; top:13%; text-align:center; font:800 42px/.98 Montserrat, sans-serif; font-size:7.6cqw; letter-spacing:-.01em; text-transform:uppercase;
  color:#0C398A; transform:translateY(120%); transition:transform 2.2s var(--sai) .25s }
.fachada.visto p { transform:none }
.fachada img { position:absolute; inset:0; width:100%; height:100% }
@media (scripting: none) { .fachada p { transform:none } }
.mapa { border:1px solid var(--line); clip-path:var(--ch14) }
.mapa iframe { display:block; width:100%; height:260px; border:0 }
.pausa { padding:0; border:0; background:none; color:rgba(255,255,255,.7); font:500 14px Jost, sans-serif; text-decoration:underline; text-underline-offset:4px; cursor:pointer }
.pausa:hover { color:var(--yellow) }
@media (scripting: none) { .pausa { display:none } }

/* chamada do fim de cada página */
.chamada-fim { text-align:center; border-top:1px solid var(--line) }
.chamada-fim h2 { max-width:20ch; margin:0 auto }
.chamada-fim .acoes { margin-top:30px; justify-content:center }

@media (max-width: 900px) {
  .pg main > section { padding:68px 20px }
  .pg main > .capa { padding-top:44px; padding-bottom:60px }
  .capa-in { grid-template-columns:1fr }
  .capa .quadro { max-height:none; aspect-ratio:4 / 3.4 }
  .lead { font-size:17px }
}
@media (prefers-reduced-motion: reduce) {
  .entra { transform:none; transition:opacity .3s linear; transition-delay:0s }
  .fachada p { transform:none; transition:none }
  .capa .quadro :is(img, video) { animation:none }
}
