/* Base estrutural do editor; identidade UCA definida ao final. */

:root{
  --azul:        #1E3A5F;
  --azul-fundo:  #172E4C;
  --azul-claro:  #2C5080;
  --bege:        #CFC7B6;
  --bege-forte:  #B9AF9A;
  --creme:       #FFFCF3;
  --creme-2:     #F7F2E6;
  --ouro:        #96642A;
  --ouro-claro:  #B98444;
  --ocre:        #96642A;   /* fundo das secoes a partir da 2a pagina */
  --ocre-fundo:  #7A5122;   /* rodape */
  --tinta:       #1E3A5F;
  --texto:       #4A5568;
  --texto-claro: rgba(var(--creme-rgb),.72);

  /* as mesmas cores em r,g,b — para transparências (sombras, véus, linhas).
     O editor de cores reescreve junto com a cor. */
  --azul-rgb:        30,58,95;
  --azul-fundo-rgb:  23,46,76;
  --creme-rgb:       255,252,243;
  --bege-rgb:        207,199,182;
  --ouro-rgb:        150,100,42;
  --escuro-quente-rgb: 24,14,4;   /* sombras e véus das seções ocre */
  --brilho-rgb:     232,186,124; /* brilho no topo das páginas */

  --linha:       rgba(var(--azul-rgb),.12);
  --linha-clara: rgba(var(--bege-rgb),.22);

  --s1: 0 1px 2px rgba(var(--azul-fundo-rgb),.04), 0 4px 10px rgba(var(--azul-fundo-rgb),.05);
  --s2: 0 2px 6px rgba(var(--azul-fundo-rgb),.05), 0 14px 34px rgba(var(--azul-fundo-rgb),.09);
  --s3: 0 6px 18px rgba(var(--azul-fundo-rgb),.08), 0 30px 70px rgba(var(--azul-fundo-rgb),.14);
  --s4: 0 10px 30px rgba(var(--azul-fundo-rgb),.12), 0 48px 110px rgba(var(--azul-fundo-rgb),.20);
  --s-escura: 0 20px 60px rgba(8,18,32,.45);

  --serif: "Cormorant Garamond", "Times New Roman", Georgia, serif;
  --sans:  "Montserrat", "Helvetica Neue", Arial, sans-serif;

  --header-h: 92px;
  --mx: clamp(24px, 6vw, 110px);
  --ease: cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:var(--header-h); -webkit-text-size-adjust:100%; }
body{
  margin:0; background:var(--creme); color:var(--texto);
  font-family:var(--sans); font-size:14px; font-weight:300; line-height:1.72;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
::selection{ background:var(--bege); color:var(--azul); }

h1,h2,h3,h4{ font-family:var(--serif); font-weight:300; color:var(--tinta); margin:0; line-height:1.14; }
h1{ font-size:clamp(1.9rem,4vw,3.1rem); }
h2{ font-size:clamp(1.55rem,2.9vw,2.3rem); }
h3{ font-size:clamp(1.08rem,1.5vw,1.32rem); }
p{ margin:0 0 1.15em; }

/* ---------- utilitarios ---------- */
.wrap{ width:100%; max-width:1180px; margin-inline:auto; padding-inline:var(--mx); }
.secao{ padding:clamp(62px,7.2vw,112px) 0; position:relative; }
.olho{
  font-family:var(--sans); font-size:.62rem; font-weight:400;
  letter-spacing:.3em; text-transform:uppercase; color:var(--ouro);
  display:flex; align-items:center; gap:12px; margin-bottom:20px;
}
.olho::after{ content:""; height:1px; width:44px; background:currentColor; opacity:.45; }
.olho--claro{ color:var(--bege); }
.lead{ font-family:var(--serif); font-size:clamp(1.05rem,1.5vw,1.25rem); line-height:1.5; color:var(--tinta); }
.fio{ height:1px; background:var(--linha); border:0; margin:0; }
.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; border:0; }

.btn{
  display:inline-flex; align-items:center; gap:12px;
  font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; font-weight:400;
  padding:13px 26px; border:1px solid var(--azul); color:var(--azul);
  background:transparent; border-radius:2px; transition:.45s var(--ease); box-shadow:var(--s1);
}
.btn:hover{ background:var(--azul); color:var(--creme); box-shadow:var(--s3); transform:translateY(-2px); }
.btn--claro{ border-color:var(--linha-clara); color:var(--bege); }
.btn--claro:hover{ background:var(--bege); color:var(--azul); border-color:var(--bege); }
.btn .seta{ transition:transform .45s var(--ease); }
.btn:hover .seta{ transform:translateX(5px); }

/* =====================================================================
   HEADER
   ===================================================================== */
.header{
  position:fixed; inset:0 0 auto 0; z-index:90; height:var(--header-h);
  background:var(--azul); color:var(--bege);
  display:flex; align-items:center;
  box-shadow:0 1px 0 rgba(var(--bege-rgb),.10), 0 18px 46px rgba(var(--azul-fundo-rgb),.30);
  transform:translateY(-100%); transition:transform .6s var(--ease);
}
.header.is-visivel{ transform:none; }
.header--fixo{ transform:none; }
.header__in{ width:100%; max-width:1440px; margin-inline:auto; padding-inline:var(--mx);
  display:flex; align-items:center; justify-content:space-between; gap:30px; }
.header__logo{ display:flex; align-items:center; transition:opacity .4s var(--ease); }
.header__logo:hover{ opacity:.82; }
.header__logo img{ height:46px; width:auto; }
.nav{ display:flex; align-items:center; gap:clamp(20px,2.6vw,42px); }
.nav a{
  position:relative; font-size:.66rem; letter-spacing:.2em; text-transform:uppercase;
  font-weight:300; color:var(--bege); opacity:.82; padding:6px 0; transition:opacity .3s;
}
.nav a::after{
  content:""; position:absolute; left:0; bottom:0; height:1px; width:0;
  background:var(--ouro-claro); transition:width .45s var(--ease);
}
.nav a:hover{ opacity:1; }
.nav a:hover::after,.nav a.is-ativo::after{ width:100%; }
.nav a.is-ativo{ opacity:1; }

.menu-btn{ display:none; width:34px; height:24px; position:relative; }
.menu-btn span{ position:absolute; left:0; right:0; height:1px; background:var(--bege); transition:.4s var(--ease); }
.menu-btn span:nth-child(1){ top:4px; } .menu-btn span:nth-child(2){ top:12px; } .menu-btn span:nth-child(3){ top:20px; }
body.menu-on .menu-btn span:nth-child(1){ transform:translateY(8px) rotate(45deg); }
body.menu-on .menu-btn span:nth-child(2){ opacity:0; }
body.menu-on .menu-btn span:nth-child(3){ transform:translateY(-8px) rotate(-45deg); }

.menu-mobile{
  position:fixed; inset:0; z-index:85; background:var(--azul);
  display:flex; flex-direction:column; justify-content:center; gap:8px; padding:0 var(--mx);
  opacity:0; visibility:hidden; transition:.5s var(--ease);
}
body.menu-on .menu-mobile{ opacity:1; visibility:visible; }
.menu-mobile a{ font-family:var(--serif); font-size:1.7rem; color:var(--bege); padding:10px 0; border-bottom:1px solid var(--linha-clara); }
.menu-mobile a span{ font-family:var(--sans); font-size:.58rem; letter-spacing:.24em; color:var(--ouro-claro); margin-right:16px; }

/* =====================================================================
   1 · CAPA
   ===================================================================== */
.capa{ height:100svh; min-height:520px; display:grid; grid-template-columns:2fr 1fr; overflow:hidden; }

.capa__esq{
  background:var(--azul); position:relative; overflow:hidden;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:clamp(18px,3.2vh,56px) clamp(20px,4vw,64px); gap:clamp(14px,2.6vh,34px);
}
.capa__esq::after{
  content:""; position:absolute; inset:auto -20% -30% -20%; height:60%;
  background:radial-gradient(60% 100% at 50% 100%, rgba(var(--ouro-rgb),.20), transparent 70%);
  pointer-events:none;
}
.capa__foto{
  position:relative; height:clamp(230px,72vh,820px); width:auto; aspect-ratio:3/4;
  max-width:100%; overflow:hidden; flex:0 1 auto;
  border-radius:2px; box-shadow:var(--s-escura); background:var(--azul-fundo);
}
.capa__foto img{ width:100%; height:100%; object-fit:cover; object-position:50% 22%;
  transform:scale(1.02); transition:transform 1.4s var(--ease); }
.capa__foto:hover img{ transform:scale(1.06); }
.capa__foto::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(to top, rgba(var(--azul-fundo-rgb),.55), rgba(var(--azul-fundo-rgb),0) 45%);
  box-shadow:inset 0 0 0 1px rgba(var(--bege-rgb),.18);
}
.capa__marca{ position:relative; text-align:center; z-index:1; }
.capa__marca img{ height:clamp(42px,9.6vh,142px); width:auto; margin-inline:auto; }
.capa__cargo{
  margin-top:clamp(8px,1.6vh,18px); font-size:.58rem; letter-spacing:.32em; text-transform:uppercase;
  color:var(--bege); opacity:.68;
}

.capa__dir{
  background:var(--creme); display:flex; flex-direction:column; justify-content:center;
  padding:clamp(26px,5vh,90px) var(--mx); position:relative; overflow:hidden;
}
.capa__dir::before{
  content:""; position:absolute; left:0; top:12%; bottom:12%; width:1px;
  background:linear-gradient(to bottom, transparent, var(--linha), transparent);
}
.capa__titulo{ margin-bottom:10px; letter-spacing:-.01em; font-size:clamp(1.9rem,min(5.6vw,8.2vh),4.4rem); }
.capa__sub{ font-size:.66rem; letter-spacing:.3em; text-transform:uppercase; color:var(--ouro); margin-bottom:clamp(16px,3.4vh,56px); }
.sumario{ list-style:none; margin:0; padding:0; border-top:1px solid var(--linha); max-width:560px; }
.sumario li{ border-bottom:1px solid var(--linha); }
.sumario a{
  display:grid; grid-template-columns:auto 1fr auto; align-items:baseline; gap:2px 12px;
  padding:clamp(10px,1.9vh,24px) 4px; transition:.45s var(--ease); position:relative;
}
.sumario a::before{
  content:""; position:absolute; inset:0 -22px; background:var(--creme-2); border-radius:2px;
  opacity:0; transform:scaleX(.96); transition:.45s var(--ease); box-shadow:var(--s2); z-index:0;
}
.sumario a:hover::before{ opacity:1; transform:none; }
.sumario a > *{ position:relative; z-index:1; }
.sumario .num{ font-size:.6rem; letter-spacing:.2em; color:var(--ouro); min-width:26px; }
.sumario .nome{ font-family:var(--serif); font-size:clamp(1.05rem,min(2.1vw,3vh),1.6rem); color:var(--tinta); transition:transform .45s var(--ease); }
.sumario a:hover .nome{ transform:translateX(10px); }
.sumario .desc{ grid-column:2 / 3; grid-row:2; font-size:.62rem; letter-spacing:.08em; color:var(--texto); opacity:.58; margin-top:1px; }
.sumario .mais{ grid-column:3; grid-row:1 / 3; align-self:center; justify-self:end;
  color:var(--ouro); opacity:0; transform:translateX(-8px); transition:.45s var(--ease); }
.sumario a:hover .mais{ opacity:1; transform:none; }
.capa__rodape{
  margin-top:clamp(14px,3vh,54px); display:flex; flex-wrap:wrap; gap:6px 28px;
  font-size:.66rem; letter-spacing:.12em; color:var(--texto); opacity:.75;
}
.capa__rodape a:hover{ color:var(--ouro); }
.rolar{ position:absolute; left:var(--mx); bottom:clamp(12px,2.4vh,34px); display:flex; align-items:center; gap:12px;
  font-size:.56rem; letter-spacing:.24em; text-transform:uppercase; color:var(--texto); opacity:.55; }
.rolar i{ display:block; width:44px; height:1px; background:currentColor; transform-origin:left;
  animation:rolar 2.4s var(--ease) infinite; }
@keyframes rolar{ 0%{transform:scaleX(0)} 55%{transform:scaleX(1)} 100%{transform:scaleX(0); transform-origin:right} }

/* =====================================================================
   2 · CARROSSEL — tela cheia, full-bleed, navegacao por passos
   ===================================================================== */
.carrossel{
  position:relative; z-index:2; height:100svh; min-height:520px; overflow:hidden;
  background:var(--ocre); color:var(--bege);
  box-shadow:0 26px 70px -18px rgba(var(--escuro-quente-rgb),.55);
}
/* a linha de sombra do pe do carrossel */
.carrossel::after{
  content:""; position:absolute; inset:auto 0 0 0; height:1px; z-index:6;
  background:linear-gradient(to right, transparent, rgba(var(--creme-rgb),.42) 22%, rgba(var(--creme-rgb),.42) 78%, transparent);
  box-shadow:0 -14px 40px rgba(var(--escuro-quente-rgb),.55);
}
.carrossel__palco{ position:absolute; inset:0; }

/* cabecalho de bloco (titulo a esquerda, acao a direita) */
.bloco-topo{ display:flex; justify-content:space-between; align-items:flex-end; gap:24px; position:relative; }

.slide{ position:absolute; inset:0; opacity:0; visibility:hidden; transition:opacity 1s var(--ease); }
.slide.is-ativo{ opacity:1; visibility:visible; }
.slide__fundo{ position:absolute; inset:0; transform:scale(1.07); transition:transform 9s linear; }
.slide.is-ativo .slide__fundo{ transform:scale(1); }
.slide__scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(98deg, rgba(var(--escuro-quente-rgb),.90) 0%, rgba(var(--escuro-quente-rgb),.72) 36%, rgba(var(--escuro-quente-rgb),.26) 72%, rgba(var(--escuro-quente-rgb),.10) 100%),
    linear-gradient(to top, rgba(var(--escuro-quente-rgb),.58), rgba(var(--escuro-quente-rgb),0) 40%);
}
.slide__conteudo{
  position:relative; height:100%; display:flex; flex-direction:column; justify-content:center;
  padding-top:var(--header-h); padding-bottom:clamp(92px,11.5vh,132px);
  text-shadow:0 1px 20px rgba(var(--escuro-quente-rgb),.6);
}
.slide__conteudo > *{ max-width:min(620px,54vw); }
.slide__num{ font-family:var(--serif); font-size:clamp(1.4rem,2.4vw,2rem); color:rgba(var(--creme-rgb),.4); line-height:1; margin:0 0 12px; }
.slide__cat{ font-size:.6rem; letter-spacing:.3em; text-transform:uppercase; color:var(--ouro-claro); margin-bottom:14px; }
.slide h3{ color:var(--creme); font-size:clamp(1.5rem,3vw,2.5rem); margin-bottom:16px; }
.slide__resumo{ color:rgba(var(--creme-rgb),.88); max-width:min(52ch,50vw); }
.slide__meta{
  display:flex; gap:20px; flex-wrap:wrap; font-size:.58rem; letter-spacing:.18em; text-transform:uppercase;
  color:rgba(var(--creme-rgb),.66); margin:14px 0 22px;
}

.carrossel__olho{ position:absolute; inset:calc(var(--header-h) + clamp(20px,4vh,42px)) 0 auto 0; z-index:4; }
.carrossel__barra{ position:absolute; inset:auto 0 0 0; z-index:5; padding-bottom:clamp(22px,3.6vh,40px); }
.passos{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(10px,2vw,30px); }
.passo{
  position:relative; display:flex; align-items:baseline; gap:10px; min-width:0; text-align:left;
  padding:14px 0 0; border-top:1px solid rgba(var(--creme-rgb),.24);
  opacity:.5; transition:opacity .5s var(--ease);
}
.passo:hover{ opacity:.88; }
.passo.is-ativo{ opacity:1; }
.passo__num{ font-size:.56rem; letter-spacing:.2em; color:var(--ouro-claro); }
.passo__rot{
  font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; color:var(--creme);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.passo__prog{ position:absolute; left:0; top:-1px; height:1px; width:0; background:var(--creme); }
.passo.is-ativo .passo__prog{ animation:passo 8s linear forwards; }
@keyframes passo{ from{ width:0 } to{ width:100% } }

/* =====================================================================
   3 · SOBRE
   ===================================================================== */
.sobre__grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(40px,6vw,96px); align-items:center; }
.sobre__foto{ position:relative; }
.sobre__foto img{ border-radius:2px; box-shadow:var(--s4); position:relative; z-index:1; }
.sobre__foto::before{
  content:""; position:absolute; inset:26px -26px -26px 26px; border:1px solid var(--bege-forte); opacity:.55; border-radius:2px;
}
.sobre__citacao{
  margin-top:clamp(30px,4vw,44px); padding-left:26px; border-left:1px solid var(--ouro);
  font-family:var(--serif); font-size:1.08rem; line-height:1.5; color:var(--tinta);
}
.dados{ list-style:none; padding:0; margin:clamp(34px,4vw,50px) 0 0; display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.dados li{ border-top:1px solid var(--linha); padding-top:16px; }
.dados dt,.dados .rot{ font-size:.58rem; letter-spacing:.24em; text-transform:uppercase; color:var(--ouro); margin-bottom:8px; }
.dados .val{ font-family:var(--serif); font-size:1rem; color:var(--tinta); line-height:1.35; }

/* =====================================================================
   4 · PROJETOS / CARDS
   ===================================================================== */
.secao--creme2{ background:var(--creme-2); }
.grid-cards{ display:grid; grid-template-columns:repeat(auto-fit,minmax(288px,1fr)); gap:clamp(24px,3vw,40px); }
.card{
  background:var(--creme); border-radius:2px; overflow:hidden; box-shadow:var(--s2);
  display:flex; flex-direction:column; transition:.55s var(--ease); position:relative;
}
.card:hover{ transform:translateY(-8px) scale(1.022); box-shadow:var(--s4); }
.card__media{ aspect-ratio:16/11; position:relative; overflow:hidden; }
.card__media::after{ content:""; position:absolute; inset:0; background:linear-gradient(160deg, rgba(var(--azul-fundo-rgb),.05), rgba(var(--azul-fundo-rgb),.35)); }
.card__tag{
  position:absolute; z-index:2; left:18px; top:18px; padding:7px 14px; background:rgba(var(--creme-rgb),.92);
  font-size:.55rem; letter-spacing:.22em; text-transform:uppercase; color:var(--azul); box-shadow:var(--s1);
}
.card__corpo{ padding:clamp(24px,2.4vw,32px); display:flex; flex-direction:column; flex:1; }
.card__corpo h3{ margin-bottom:12px; }
.card__corpo p{ font-size:.88rem; }
.card__pe{ margin-top:auto; padding-top:20px; border-top:1px solid var(--linha);
  display:flex; justify-content:space-between; align-items:center;
  font-size:.6rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ouro); }
.card__pe .seta{ transition:transform .45s var(--ease); }
.card:hover .card__pe .seta{ transform:translateX(6px); }

/* texturas de apoio (placeholders elegantes ate entrarem as imagens reais) */
.tex-1{ background:linear-gradient(140deg,var(--azul),var(--azul-claro) 55%,var(--azul-fundo)); }
.tex-2{ background:linear-gradient(140deg,var(--ouro),var(--ouro-claro) 50%,#7C5023); }
.tex-3{ background:linear-gradient(140deg,var(--bege),#EDE7DA 55%,var(--bege-forte)); }
.tex-4{ background:linear-gradient(140deg,var(--azul-fundo),#3A6491 60%,var(--azul)); }
.tex-5{ background:linear-gradient(140deg,#6B7D93,var(--bege-forte) 62%,#46596F); }
.tex-6{ background:linear-gradient(140deg,var(--bege-forte),var(--ouro) 70%,#5E3F1B); }
.tex-marca{ position:relative; }
.tex-marca::before{
  content:""; position:absolute; inset:0; z-index:1; opacity:.16;
  background:none;
}

/* =====================================================================
   5 · GALERIA
   ===================================================================== */
.galeria{ display:grid; grid-template-columns:repeat(12,1fr);
  grid-auto-rows:clamp(112px,12.2vw,172px); gap:clamp(12px,1.4vw,20px); }
.gal{ position:relative; overflow:hidden; border-radius:2px; box-shadow:var(--s2); transition:.55s var(--ease); }
.gal:hover{ box-shadow:var(--s4); transform:translateY(-5px) scale(1.012); }
.gal img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease); }
.gal:hover img{ transform:scale(1.06); }
.gal figcaption{
  position:absolute; inset:auto 0 0 0; padding:18px 20px; z-index:2;
  background:linear-gradient(to top, rgba(var(--azul-fundo-rgb),.86), transparent);
  color:var(--creme); font-size:.6rem; letter-spacing:.18em; text-transform:uppercase;
  opacity:0; transform:translateY(8px); transition:.45s var(--ease);
}
.gal:hover figcaption{ opacity:1; transform:none; }
.gal--hero{ grid-column:1 / span 8; grid-row:span 2; }
.gal--foto{ grid-column:9 / span 4; grid-row:span 2; }
.gal--p{    grid-column:span 3;      grid-row:span 1; }

/* =====================================================================
   6 · CONTATO + RODAPE
   ===================================================================== */
.contato{ background:var(--ocre); color:var(--bege); position:relative; overflow:hidden; }
.contato::before{
  content:""; position:absolute; left:-12%; bottom:-40%; width:60vw; height:60vw;
  background:radial-gradient(circle, rgba(var(--creme-rgb),.16), transparent 62%);
}
.contato__grid{ display:grid; grid-template-columns:1fr .9fr; gap:clamp(40px,6vw,90px); position:relative; }
.contato h2{ color:var(--creme); margin-bottom:22px; }
.contato p{ color:var(--texto-claro); max-width:46ch; }
.canais{ list-style:none; padding:0; margin:clamp(30px,4vw,44px) 0 0; }
.canais li{ border-top:1px solid var(--linha-clara); }
.canais a,.canais span{ display:flex; align-items:baseline; gap:18px; padding:20px 0; transition:.4s var(--ease); }
.canais a:hover{ padding-left:10px; }
.canais .rot{ font-size:.56rem; letter-spacing:.26em; text-transform:uppercase; color:var(--ouro-claro); min-width:86px; }
.canais .val{ font-family:var(--serif); font-size:clamp(1.05rem,1.6vw,1.3rem); color:var(--creme); }

.form{ background:rgba(var(--creme-rgb),.07); border:1px solid var(--linha-clara); padding:clamp(28px,3vw,40px); border-radius:2px; box-shadow:var(--s-escura); }
.campo{ margin-bottom:22px; }
.campo label{ display:block; font-size:.56rem; letter-spacing:.24em; text-transform:uppercase; color:var(--bege); opacity:.7; margin-bottom:9px; }
.campo input,.campo textarea{
  width:100%; background:transparent; border:0; border-bottom:1px solid var(--linha-clara);
  color:var(--creme); font-family:var(--sans); font-size:.9rem; font-weight:300; padding:10px 0; transition:.4s var(--ease);
}
.campo textarea{ resize:vertical; min-height:92px; }
.campo input:focus,.campo textarea:focus{ outline:0; border-color:var(--ouro-claro); }
.form .aviso{ font-size:.64rem; letter-spacing:.06em; color:var(--bege); opacity:.55; margin:14px 0 0; }

.rodape{ background:var(--azul); color:var(--bege); padding:clamp(60px,7vw,90px) 0 32px; }
.rodape__grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:clamp(34px,5vw,70px); align-items:start; }
.rodape__logo img{ height:54px; margin-bottom:24px; }
.rodape p{ color:var(--texto-claro); font-size:.86rem; max-width:40ch; }
.rodape h4{ color:var(--bege); font-family:var(--sans); font-size:.58rem; letter-spacing:.26em; text-transform:uppercase; margin-bottom:20px; opacity:.75; }
.rodape ul{ list-style:none; padding:0; margin:0; display:grid; gap:12px; }
.rodape ul a{ font-size:.83rem; color:var(--texto-claro); transition:.3s; }
.rodape ul a:hover{ color:var(--creme); }
.rodape__base{
  margin-top:clamp(44px,5vw,64px); padding-top:26px; border-top:1px solid var(--linha-clara);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;
  font-size:.64rem; letter-spacing:.1em; color:var(--bege); opacity:.6;
}

/* ---------------------------------------------------------------------
   Secoes ocre: recalibra os tokens claros para manter contraste e
   troca o dourado de destaque por creme (dourado sobre ocre some).
   --------------------------------------------------------------------- */
.carrossel, .contato, .pagina-topo{
  --bege:        #F6EFE1;
  --bege-forte:  #E6DAC4;
  --ouro-claro:  #FFF3DF;
  --linha-clara: rgba(var(--creme-rgb),.26);
  --texto-claro: rgba(var(--creme-rgb),.82);
  --s-escura:    0 20px 60px rgba(var(--escuro-quente-rgb),.40);
}
.carrossel .slide__cat,
.contato .canais .rot,
.pagina-topo .migalha{ opacity:.78; }
.btn--claro:hover{ background:var(--creme); color:var(--ocre); border-color:var(--creme); }

/* =====================================================================
   PAGINA TRABALHOS
   ===================================================================== */
.pagina-topo{ background:var(--ocre); color:var(--bege); padding:calc(var(--header-h) + clamp(70px,8vw,110px)) 0 clamp(60px,7vw,96px); position:relative; overflow:hidden; }
.pagina-topo::before{ content:""; position:absolute; right:-10%; top:-40%; width:56vw; height:56vw;
  background:radial-gradient(circle, rgba(var(--brilho-rgb),.22), transparent 64%); }
.pagina-topo h1{ color:var(--creme); position:relative; }
.pagina-topo p{ color:var(--texto-claro); max-width:58ch; margin-top:18px; position:relative; }
.migalha{ font-size:.6rem; letter-spacing:.24em; text-transform:uppercase; color:var(--bege); opacity:.6; margin-bottom:22px; position:relative; }
.migalha a:hover{ color:var(--ouro-claro); }

.filtros{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:clamp(34px,4vw,52px); }
.filtros button{
  font-size:.6rem; letter-spacing:.2em; text-transform:uppercase; padding:9px 18px;
  border:1px solid var(--linha); color:var(--texto); border-radius:2px; transition:.4s var(--ease); background:var(--creme);
}
.filtros button:hover{ box-shadow:var(--s2); transform:translateY(-2px); }
.filtros button.is-ativo{ background:var(--azul); color:var(--bege); border-color:var(--azul); box-shadow:var(--s2); }

.lista-trab{ display:grid; gap:clamp(18px,2vw,26px); }
.trab{
  display:grid; grid-template-columns:150px 1fr auto; gap:clamp(20px,3vw,44px); align-items:center;
  background:var(--creme); padding:clamp(20px,2.2vw,28px); border-radius:2px; box-shadow:var(--s1);
  transition:.5s var(--ease);
}
.trab:hover{ box-shadow:var(--s3); transform:translateY(-4px) scale(1.008); }
.trab__media{ aspect-ratio:4/3; border-radius:2px; overflow:hidden; box-shadow:var(--s1); }
.trab__cat{ font-size:.56rem; letter-spacing:.24em; text-transform:uppercase; color:var(--ouro); margin-bottom:10px; }
.trab h3{ font-size:clamp(1.05rem,1.5vw,1.3rem); margin-bottom:9px; }
.trab p{ font-size:.87rem; margin:0; max-width:64ch; }
.trab__meta{ font-size:.6rem; letter-spacing:.18em; text-transform:uppercase; color:var(--texto); opacity:.6; margin-top:12px; }
.trab__acao{ font-size:.6rem; letter-spacing:.2em; text-transform:uppercase; color:var(--azul); white-space:nowrap; display:flex; align-items:center; gap:10px; }
.trab:hover .trab__acao .seta{ transform:translateX(6px); }
.trab__acao .seta{ transition:transform .45s var(--ease); }

/* =====================================================================
   ANIMACAO DE ENTRADA
   ===================================================================== */
.rv{ opacity:0; transform:translateY(26px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.rv.is-vis{ opacity:1; transform:none; }
.rv[data-d="1"]{ transition-delay:.09s } .rv[data-d="2"]{ transition-delay:.18s }
.rv[data-d="3"]{ transition-delay:.27s } .rv[data-d="4"]{ transition-delay:.36s }

/* =====================================================================
   RESPONSIVO
   ===================================================================== */
@media (max-width:1080px){
  .sobre__grid,.contato__grid{ grid-template-columns:1fr; }
  .slide__conteudo > *{ max-width:none; }
  .slide__resumo{ max-width:56ch; }
  .rodape__grid{ grid-template-columns:1fr 1fr; }
  .rodape__logo{ grid-column:1/-1; }
}
@media (max-width:900px){
  :root{ --header-h:74px; }
  .header__logo img{ height:36px; }
  .nav{ display:none; }
  .menu-btn{ display:block; }
  .capa{ grid-template-columns:1fr; height:auto; min-height:100svh; overflow:visible; }
  .passos{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 16px; }
  .passo__rot{ font-size:.56rem; }
  .slide__scrim{ background:linear-gradient(to top, rgba(var(--escuro-quente-rgb),.92) 30%, rgba(var(--escuro-quente-rgb),.55) 70%, rgba(var(--escuro-quente-rgb),.35) 100%); }
  .capa__esq{ padding-top:clamp(56px,10vw,90px); }
  .capa__foto{ height:clamp(200px,36svh,380px); }
  .capa__marca img{ height:clamp(34px,6.4svh,78px); }
  .capa__dir{ padding-block:clamp(54px,9vw,80px); }
  .capa__dir::before{ display:none; }
  .rolar{ display:none; }
  .dados{ grid-template-columns:1fr 1fr; }
  .galeria{ grid-template-columns:repeat(6,1fr); }
  .gal--hero{ grid-column:1 / span 6; } .gal--foto{ grid-column:auto / span 3; } .gal--p{ grid-column:span 3; }
  .trab{ grid-template-columns:120px 1fr; }
  .trab__acao{ grid-column:2; justify-self:start; }
}
@media (max-width:560px){
  .dados{ grid-template-columns:1fr; }
  .rodape__grid{ grid-template-columns:1fr; }
  .galeria{ grid-template-columns:1fr 1fr; grid-auto-rows:33vw; }
  .gal--hero{ grid-column:1 / span 2; } .gal--foto{ grid-column:auto / span 2; } .gal--p{ grid-column:span 1; grid-row:span 1; }
  .trab{ grid-template-columns:1fr; }
  .trab__acao{ grid-column:1; }
  .bloco-topo{ flex-direction:column; align-items:flex-start; }
  .passos{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
}
@media (max-height:700px){ .rolar{ display:none; } }
@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition-duration:.01ms !important; }
  html{ scroll-behavior:auto; }
  .rv{ opacity:1; transform:none; }
}

/* =====================================================================
   TOGGLE DE IDIOMA (bandeiras redondas)
   ===================================================================== */
.lang{ display:flex; align-items:center; gap:10px; margin-left:clamp(8px,1.4vw,20px); }
.lang__b{
  width:30px; height:30px; border-radius:50%; overflow:hidden; display:grid; place-items:center;
  opacity:.42; filter:saturate(.55); transition:.45s var(--ease);
  box-shadow:0 0 0 1px rgba(var(--bege-rgb),.30), var(--s1);
}
.lang__b svg{ width:100%; height:100%; display:block; border-radius:50%; }
.lang__b:hover{ opacity:.9; transform:translateY(-1px); }
.lang__b.is-ativo{
  opacity:1; filter:none;
  box-shadow:0 0 0 1px var(--ouro-claro), 0 0 0 4px rgba(var(--ouro-rgb),.20), var(--s2);
}
.lang--capa{ position:absolute; top:clamp(22px,4vw,44px); right:var(--mx); z-index:3; }
.lang--capa .lang__b{ box-shadow:0 0 0 1px rgba(var(--azul-rgb),.16), var(--s1); }
.lang--capa .lang__b.is-ativo{ box-shadow:0 0 0 1px var(--ouro), 0 0 0 4px rgba(var(--ouro-rgb),.14), var(--s2); }
.lang--mobile{ margin:36px 0 0; }
.lang--mobile .lang__b{ width:40px; height:40px; }

/* menu mobile: numero + nome */
.menu-mobile a{ display:flex; align-items:baseline; }
.menu-mobile a i{ font-style:normal; }

/* preenchimento de midia (texturas e fotos) */
.preencher{ position:absolute; inset:0; }
.card__media img,.gal .preencher,.trab__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.card__media img{ transition:transform 1s var(--ease); }
.card:hover .card__media img{ transform:scale(1.07); }
.gal img{ position:absolute; inset:0; }

/* descricao do sumario (so em telas largas) */


/* =====================================================================
   PAGINA SOBRE — percurso, temas e chamada final
   ===================================================================== */
.percurso{ list-style:none; margin:0; padding:0; border-top:1px solid var(--linha); counter-reset:p; }
.percurso li{
  display:grid; grid-template-columns:160px 1fr; gap:clamp(18px,3vw,44px);
  padding:clamp(20px,2.4vw,32px) 0; border-bottom:1px solid var(--linha);
  transition:.5s var(--ease);
}
.percurso li:hover{ background:var(--creme-2); box-shadow:var(--s1); }
.percurso .ano{ font-size:.6rem; letter-spacing:.22em; text-transform:uppercase; color:var(--ouro); padding-top:5px; }
.percurso h3{ margin-bottom:5px; }
.percurso .local{ font-size:.56rem; letter-spacing:.2em; text-transform:uppercase; color:var(--texto); opacity:.6; margin-bottom:11px; }
.percurso p{ margin:0; max-width:64ch; font-size:.88rem; }

.temas{ display:grid; grid-template-columns:repeat(auto-fit,minmax(224px,1fr)); gap:clamp(16px,2vw,26px); }
.tema{
  background:var(--creme); border-radius:2px; padding:clamp(20px,2.2vw,28px);
  box-shadow:var(--s1); border-top:2px solid var(--ouro); transition:.5s var(--ease);
}
.tema:hover{ box-shadow:var(--s3); transform:translateY(-5px) scale(1.02); }
.tema h3{ margin-bottom:9px; }
.tema p{ margin:0; font-size:.85rem; }

.cta{ background:var(--ocre); color:var(--bege); text-align:center; position:relative; overflow:hidden; }
.cta::before{
  content:""; position:absolute; left:50%; top:-60%; width:70vw; height:70vw; transform:translateX(-50%);
  background:radial-gradient(circle, rgba(var(--creme-rgb),.14), transparent 62%); pointer-events:none;
}
.cta h2{ color:var(--creme); margin-bottom:14px; position:relative; }
.cta p{ color:var(--texto-claro); max-width:52ch; margin-inline:auto; position:relative; }
.cta__acoes{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-top:clamp(24px,3vw,34px); position:relative; }

/* meia-largura no mosaico da galeria completa */
.gal--m{ grid-column:span 6; grid-row:span 2; }

/* =====================================================================
   LIGHTBOX — pop-up de foto com zoom, arraste e navegação
   ===================================================================== */
.lightbox{
  position:fixed; inset:0; z-index:120; display:grid; place-items:center;
  background:rgba(var(--escuro-quente-rgb),.92); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  padding:clamp(66px,8vh,96px) clamp(54px,8vw,110px);
  opacity:0; transition:opacity .38s var(--ease);
}
.lightbox.is-aberto{ opacity:1; }
/* sem isto o display:grid vence o [hidden] do navegador e o lightbox,
   invisivel, cobre a pagina inteira e bloqueia o header */
.lightbox[hidden]{ display:none; }

.lightbox__fig{ margin:0; width:min(100%,1080px); max-height:100%; display:flex; flex-direction:column; gap:16px; }
.lightbox__palco{
  flex:1; min-height:0; display:grid; place-items:center; overflow:hidden;
  cursor:zoom-in; touch-action:none;
}
.lightbox.tem-zoom .lightbox__palco{ cursor:grab; }
.lightbox.tem-zoom .lightbox__palco:active{ cursor:grabbing; }
.lightbox__media{
  position:relative; border-radius:3px; overflow:hidden; transform-origin:center;
  transition:transform .28s cubic-bezier(.22,.61,.36,1);
  box-shadow:0 40px 110px rgba(0,0,0,.6);
  opacity:0; animation:lb-entra .5s var(--ease) .04s forwards;
}
@keyframes lb-entra{ from{ opacity:0; transform:scale(.97) } to{ opacity:1 } }
.lightbox.tem-zoom .lightbox__media{ transition:none; }
.lightbox__media--tex{ width:min(100%, calc(58vh * 3 / 2)); aspect-ratio:3/2; }
.lightbox__media img{ display:block; max-height:66vh; width:auto; max-width:100%; user-select:none; }
.lightbox figcaption{
  flex:0 0 auto; text-align:center;
  font-size:.62rem; letter-spacing:.22em; text-transform:uppercase; color:var(--bege);
}
.lightbox figcaption i{
  display:block; font-style:normal; letter-spacing:.05em; text-transform:none;
  font-family:var(--serif); font-size:1.02rem; color:var(--creme); margin-top:6px;
}

.lightbox__barra{
  position:absolute; top:clamp(14px,2.2vw,26px); right:clamp(14px,2.2vw,26px);
  display:flex; align-items:center; gap:8px; z-index:2;
}
.lightbox__conta{ font-size:.6rem; letter-spacing:.2em; color:rgba(var(--creme-rgb),.6); margin-right:6px; }
.lightbox__b{
  width:38px; height:38px; border-radius:50%; border:1px solid rgba(var(--creme-rgb),.24);
  color:var(--creme); font-size:1.05rem; line-height:1; display:grid; place-items:center;
  transition:.35s var(--ease); backdrop-filter:blur(6px);
}
.lightbox__nav{
  position:absolute; top:50%; transform:translateY(-50%); z-index:2;
  width:46px; height:46px; border-radius:50%; border:1px solid rgba(var(--creme-rgb),.22);
  color:var(--creme); display:grid; place-items:center; transition:.35s var(--ease); backdrop-filter:blur(6px);
}
.lightbox__nav--ant{ left:clamp(12px,2.2vw,30px); }
.lightbox__nav--prox{ right:clamp(12px,2.2vw,30px); }
.lightbox--solo .lightbox__nav{ display:none; }
.lightbox__b:hover,.lightbox__nav:hover{ background:var(--creme); color:rgb(var(--escuro-quente-rgb)); border-color:var(--creme); }
body.lightbox-on{ overflow:hidden; }
.galeria .gal{ cursor:zoom-in; }

/* =====================================================================
   PÁGINA DE LEITURA DO TRABALHO
   ===================================================================== */
.artigo__cat{ position:relative; font-size:.6rem; letter-spacing:.3em; text-transform:uppercase;
  color:var(--ouro-claro); margin-bottom:14px; }
.pagina-topo .artigo__meta{ font-size:.62rem; letter-spacing:.18em; text-transform:uppercase;
  color:rgba(var(--creme-rgb),.7); margin-top:18px; }
.artigo__secao{ padding-top:clamp(40px,5vw,70px); }
.artigo__capa{ margin:0 0 clamp(34px,4.4vw,60px); }
.artigo__foto{ position:relative; aspect-ratio:3/2; overflow:hidden; border-radius:2px;
  box-shadow:var(--s3); cursor:zoom-in; }
.artigo__foto img{ width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease); }
.artigo__foto:hover img{ transform:scale(1.03); }
.artigo__capa figcaption{ margin-top:14px; font-size:.78rem; color:var(--texto); opacity:.7; max-width:62ch; }
.artigo__corpo{ max-width:68ch; }
.artigo__corpo p{ font-size:1rem; line-height:1.85; }
.artigo__corpo .lead{ font-size:clamp(1.1rem,1.6vw,1.32rem); line-height:1.55; margin-bottom:1.4em; }
.artigo__nav{
  display:grid; grid-template-columns:1fr auto 1fr; gap:clamp(16px,3vw,40px); align-items:start;
  margin-top:clamp(50px,6vw,84px); padding-top:clamp(24px,3vw,36px); border-top:1px solid var(--linha);
}
.artigo__ir{ display:block; transition:.4s var(--ease); }
.artigo__ir .rot{ display:block; font-size:.6rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ouro); }
.artigo__ir .tit{ display:block; font-family:var(--serif); font-size:1.02rem; color:var(--tinta); margin-top:7px; max-width:26ch; }
.artigo__ir--prox{ text-align:right; justify-self:end; }
.artigo__ir--prox .tit{ margin-left:auto; }
.artigo__ir:hover .tit{ color:var(--ouro); }

@media (max-width:700px){
  .artigo__nav{ grid-template-columns:1fr; gap:22px; }
  .artigo__ir--prox{ text-align:left; justify-self:start; }
  .artigo__ir--prox .tit{ margin-left:0; }
  .lightbox{ padding:64px 14px; }
  .lightbox__nav{ top:auto; bottom:16px; transform:none; }
  .lightbox__media img{ max-height:52vh; }
}
@media (max-width:700px){
  .percurso li{ grid-template-columns:1fr; gap:8px; }
  .percurso .ano{ padding-top:0; }
  .lightbox{ padding:70px 16px; }
  .lightbox__nav{ top:auto; bottom:18px; transform:none; }
  .lightbox__media--tex{ width:100%; aspect-ratio:4/3; }
  .lightbox__media img{ max-height:54vh; }
}
@media (max-width:900px){
  .gal--m{ grid-column:span 6; }
}
@media (max-width:560px){
  .gal--m{ grid-column:span 2; grid-row:span 2; }
}

/* pausa o avanco automatico enquanto o visitante esta lendo o slide */
.carrossel:hover .passo.is-ativo .passo__prog,
.carrossel:focus-within .passo.is-ativo .passo__prog{ animation-play-state:paused; }
.slide__num span{ opacity:.55; }

/* =====================================================================
   FOTOS DO BANCO PROVISORIO
   ===================================================================== */
.slide__fundo--foto{ background-size:cover; background-position:center; }
.trab__media{ position:relative; }
.trab__media .preencher{ position:absolute; inset:0; }

.prov{
  position:absolute; z-index:4; right:9px; bottom:9px; padding:4px 8px;
  font-size:.46rem; letter-spacing:.16em; text-transform:uppercase;
  background:rgba(var(--escuro-quente-rgb),.5); color:rgba(var(--creme-rgb),.9);
  border-radius:2px; pointer-events:none;
}
.prov--slide{ right:var(--mx); bottom:auto; top:calc(var(--header-h) + 20px); z-index:5; }
.gal figcaption{ z-index:3; }

/* =====================================================================
   HOME COMO DECK — uma seção por tela, com encaixe (scroll-snap)
   Mesmo mecanismo da apresentação de referência: o scroll encaixa numa
   seção por vez e o conteúdo da seção ativa sobe em cascata.
   ===================================================================== */
html.deck{ scroll-snap-type:y mandatory; scroll-padding-top:0; }

html.deck .cap{
  min-height:100dvh; scroll-snap-align:start; scroll-snap-stop:always;
  display:flex; align-items:center; position:relative;
  padding-block:calc(var(--header-h) + 2.2vh) 6vh;
}
html.deck .cap > .wrap{ width:100%; }
html.deck #capa{ padding:0; display:grid; align-items:stretch; }

html.deck #destaques{ padding:0; display:block; }
html.deck .rodape{ scroll-snap-align:end; scroll-snap-stop:always; }

/* entrada em cascata do conteúdo da seção ativa */
html.deck .cap .rv{
  opacity:0; transform:translateY(20px);
  transition:opacity .6s ease, transform .6s cubic-bezier(.2,.7,.3,1);
  transition-delay:calc(var(--d,0) * 85ms);
}
html.deck .cap.ativo .rv{ opacity:1; transform:none; }
.rv[data-d="1"]{ --d:1 } .rv[data-d="2"]{ --d:2 }
.rv[data-d="3"]{ --d:3 } .rv[data-d="4"]{ --d:4 }

/* --- compactação para caber em uma tela --- */
html.deck #sobre .sobre__foto img{ max-height:56vh; width:100%; object-fit:cover; }
html.deck #sobre .sobre__grid{ gap:clamp(32px,4.4vw,72px); }
html.deck #noticias .grid-cards{ grid-template-columns:repeat(3,minmax(0,1fr)); }
html.deck #noticias .card:nth-child(n+4){ display:none; }
html.deck #noticias .card__media{ aspect-ratio:16/10; }
html.deck #noticias .card__corpo{ padding:clamp(18px,1.8vw,24px); }
html.deck #noticias .card__corpo p{ font-size:.84rem; }
/* na home a galeria é só prévia: uma fileira de quadros de proporção
   inteira. O mosaico de 12 quadros fica em galeria.html. Vale de 901px
   para cima — abaixo o deck está desligado e o grid volta ao normal.     */
@media (min-width:901px){
  html.deck #galeria .galeria{ grid-template-columns:repeat(4,minmax(0,1fr)); grid-auto-rows:auto; }
  /* proporção fixa: o quadro acompanha a largura e nunca achata */
  html.deck #galeria .gal{ grid-column:auto / span 1; grid-row:auto / span 1; aspect-ratio:1/1; }
  html.deck #galeria .gal:nth-child(n+5){ display:none; }
}
html.deck #contato .canais a,
html.deck #contato .canais span{ padding:clamp(10px,1.5vh,18px) 0; }
html.deck #contato .campo{ margin-bottom:clamp(10px,1.7vh,20px); }
html.deck #contato .campo textarea{ min-height:64px; }

/* barra de progresso e trilho de pontos */
.progresso{ position:fixed; inset:0 0 auto 0; height:2px; z-index:95; background:rgba(var(--azul-rgb),.10); }
.progresso i{ display:block; height:100%; width:0; background:var(--ouro); transition:width .12s linear; }
.trilho{
  position:fixed; right:clamp(14px,1.6vw,26px); top:50%; transform:translateY(-50%);
  z-index:88; display:flex; flex-direction:column; gap:13px;
}
.trilho button{
  position:relative; width:8px; height:8px; padding:0; border-radius:50%;
  background:rgba(var(--azul-rgb),.26); transition:background .25s var(--ease), transform .25s var(--ease);
}
.trilho button:hover{ transform:scale(1.4); }
.trilho button.on{ background:var(--ouro); transform:scale(1.4); }
.trilho button span{
  position:absolute; right:18px; top:50%; transform:translateY(-50%) translateX(6px); white-space:nowrap;
  font-size:.56rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--creme); background:rgba(var(--azul-rgb),.92); padding:5px 10px; border-radius:2px;
  opacity:0; pointer-events:none; transition:opacity .2s, transform .2s; box-shadow:var(--s2);
}
.trilho button:hover span{ opacity:1; transform:translateY(-50%) translateX(0); }
/* sobre as seções escuras o trilho inverte */
body.secao-escura .trilho button{ background:rgba(var(--creme-rgb),.34); }
body.secao-escura .trilho button.on{ background:var(--creme); }
body.secao-escura .progresso{ background:rgba(var(--creme-rgb),.14); }
body.secao-escura .progresso i{ background:var(--creme); }

@media (max-width:900px){
  html.deck{ scroll-snap-type:none; }
  html.deck .cap{ min-height:0; padding-block:clamp(56px,9vw,90px); }
  html.deck #capa{ min-height:100svh; }
  html.deck #destaques{ min-height:100svh; }
  html.deck #noticias .grid-cards{ grid-template-columns:1fr; }
  html.deck #noticias .card:nth-child(n+4){ display:flex; }
  html.deck .cap .rv{ opacity:1; transform:none; }
  .trilho{ display:none; }
}
@media (prefers-reduced-motion:reduce){
  html.deck{ scroll-snap-type:none; }
  html.deck .cap .rv{ opacity:1; transform:none; transition:none; }
}

/* o nome no rodapé leva ao editor — discreto, parece só o nome */
.rodape__editor{ color:inherit; transition:color .3s var(--ease); }
.rodape__editor:hover{ color:var(--creme); }

/* página de créditos das imagens */
.creditos{ display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:clamp(18px,2vw,28px); }
.credito{ margin:0; background:var(--creme); border-radius:2px; overflow:hidden; box-shadow:var(--s1); transition:.4s var(--ease); }
.credito:hover{ box-shadow:var(--s3); transform:translateY(-4px); }
.credito img{ width:100%; aspect-ratio:3/2; object-fit:cover; display:block; }
.credito figcaption{ padding:16px 18px 18px; display:flex; flex-direction:column; gap:6px; font-size:.84rem; }
.credito strong{ font-family:var(--serif); font-weight:500; font-size:1.08rem; color:var(--tinta); }
.credito a{ color:var(--ouro); }
.credito a:hover{ color:var(--tinta); }
.rodape__cred{ color:inherit; text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(var(--bege-rgb),.4); }
.rodape__cred:hover{ color:var(--creme); }

/* álbuns: cartões na galeria e página de cada álbum */
.grid-albuns{ grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); }
.album .card__media{ aspect-ratio:3/2; }
.album .card__media > .preencher{ position:absolute; inset:0; }
.album .card__corpo p{ display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.album-pag__texto:empty{ display:none; }
html.cp-editando .album-pag__texto:empty{ display:block; }
.album-pag__vazio{ opacity:.6; font-size:.9rem; }
#secAvulsas[hidden]{ display:none; }

/* formulário: a isca para robôs fica fora da tela; o aviso de envio aparece forte */
.campo--isca{ position:absolute !important; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form .aviso--status{ opacity:1; font-size:.72rem; margin-top:10px; }
.creditos__vazio{ opacity:.7; }

/* links acadêmicos (contato e rodapé) e arquivos dos trabalhos */
.links-acad{ list-style:none; padding:0; margin:22px 0 0; display:flex; flex-wrap:wrap; gap:10px; }
.links-acad a{
  display:inline-flex; align-items:center; gap:8px; padding:9px 14px; border-radius:999px;
  border:1px solid var(--linha-clara); color:var(--bege); font-size:.72rem; letter-spacing:.06em; transition:.3s var(--ease);
}
.links-acad a:hover{ background:var(--creme); color:var(--ocre); border-color:var(--creme); }
.rodape__links{ margin-top:14px !important; }
.rodape__links a{ display:inline-flex; align-items:center; gap:8px; }
.links-acad .is-vazio, .rodape__links .is-vazio{ opacity:.35; }
.artigo__acoes{ display:flex; flex-wrap:wrap; gap:12px; margin-top:clamp(30px,4vw,48px); }
.btn--vazado{ background:transparent; }
.trab__pdf{
  display:inline-block; margin-top:8px; font-size:.52rem; letter-spacing:.18em; padding:4px 7px; border-radius:2px;
  color:var(--ouro); border:1px solid rgba(var(--ouro-rgb),.45);
}

/* páginas novas: blocos em coluna de leitura, no ritmo do resto do site */
.blocos{ max-width:760px; margin-inline:auto; display:flex; flex-direction:column; gap:clamp(40px,5vw,64px); }
.bloco__titulo{ margin:0 0 16px; }
.bloco__corpo p{ font-size:1rem; line-height:1.75; }
.bloco--imagem{ margin-inline:calc(-1 * clamp(0px, 6vw, 110px)); }
.bloco__foto{ position:relative; margin:0; aspect-ratio:16/9; overflow:hidden; border-radius:2px; box-shadow:var(--s3); }
.bloco__foto img, .bloco__foto .preencher{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.bloco__legenda{ margin:12px 0 0; font-size:.72rem; letter-spacing:.08em; color:var(--texto); opacity:.8; text-align:center; }
.bloco--citacao blockquote{ margin:0; padding:clamp(20px,3vw,36px) 0 clamp(20px,3vw,36px) clamp(22px,3vw,40px); border-left:2px solid var(--ouro); }
.bloco--citacao blockquote p{ font-family:var(--serif); font-size:clamp(1.35rem,2.4vw,1.9rem); line-height:1.35; color:var(--tinta); margin:0; }
.bloco--citacao cite{ display:block; margin-top:14px; font-style:normal; font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ouro); }
.bloco--botao{ text-align:center; }
.bloco--botao .bloco__titulo{ font-size:clamp(1.2rem,2vw,1.5rem); }
.bloco__galeria{ margin-bottom:22px; }
.bloco__vazio{ opacity:.6; font-style:italic; }

/* ===================================================== UCA: marca em texto
   Enquanto não há logo, o nome faz o papel dela. */
.marca-txt{ font-family:var(--serif); font-size:1.05rem; letter-spacing:.06em; line-height:1.15;
  text-transform:uppercase; display:inline-block; max-width:14ch; }
.header__logo .marca-txt{ color:var(--creme); max-width:none; white-space:nowrap; font-size:.92rem; letter-spacing:.14em; }
.rodape__logo .marca-txt{ color:var(--creme); font-size:1.15rem; margin-bottom:.8rem; }
.capa__marca .marca-txt{ color:var(--creme); font-size:1.3rem; max-width:none; }
@media (max-width:700px){
  .marca-txt{ font-size:.92rem; max-width:11ch; }
  .header__logo .marca-txt{ font-size:.72rem; letter-spacing:.1em; }
}

/* ------------------------------------------------------- documentos */
.docs{ display:grid; gap:14px; }
.doc{ position:relative; display:flex; gap:24px; align-items:center; justify-content:space-between;
  padding:22px 24px; background:var(--creme); border:1px solid var(--linha); border-radius:6px; }
.doc__tipo{ font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ocre); margin:0 0 .35rem; }
.doc h3{ font-family:var(--serif); font-size:1.28rem; font-weight:400; margin:0 0 .3rem; }
.doc__data{ font-size:.8rem; color:var(--tinta-2); margin:0 0 .5rem; }
.doc__txt p:last-child{ margin:0; color:var(--tinta-2); max-width:62ch; }
.doc__b{ flex:0 0 auto; }
@media (max-width:760px){
  .doc{ flex-direction:column; align-items:flex-start; gap:14px; }
}

/* -------------------------------------------------------- participe */
.participe__texto h2{ font-family:var(--serif); font-weight:400; font-size:1.6rem; margin:0 0 1.4rem; }
#participar .form{ max-width:640px; }
#participar select{ width:100%; padding:.7rem .8rem; font:inherit; color:inherit;
  background:var(--creme); border:1px solid var(--linha); border-radius:4px; }

/* Negrito e itálico escritos dentro do texto pelo editor. O peso é o mesmo que
   o editor já chama de negrito no resto do site — sem isso, um <b> herdaria
   peso relativo e mal apareceria sobre um parágrafo de peso leve. */
strong, b{ font-weight:700; }
em, i{ font-style:italic; }

/* Respiro em volta da seção, escolhido no editor. Três degraus nomeados em vez
   de margem em pixels: a pessoa escolhe a intenção, não o número. */
section.secao--compacta{ padding-top:clamp(34px,3.6vw,56px); padding-bottom:clamp(34px,3.6vw,56px); }
section.secao--espacosa{ padding-top:clamp(92px,10.5vw,168px); padding-bottom:clamp(92px,10.5vw,168px); }
/* seção com foto de fundo: o texto precisa continuar legível por cima dela */
section.secao--comFoto{ background-attachment:scroll; color:var(--creme); }
section.secao--comFoto .olho{ color:var(--bege); }
/* Seção escondida pelo editor. Precisa de !important: as próprias seções
   declaram display (flex, grid), e isso venceria o atributo hidden. */
section[hidden]{ display:none !important; }

/* Texto com foto ao lado. Inverte de lado a cada uso, para uma sequência
   deles não virar uma escada. */
.bloco__lado{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,56px); align-items:center; }
.bloco--textoFoto:nth-of-type(even) .bloco__lado{ direction:rtl; }
.bloco--textoFoto:nth-of-type(even) .bloco__lado > *{ direction:ltr; }
.bloco__lado-foto{ margin:0; }
.bloco__lado-foto img{ width:100%; height:auto; display:block; border-radius:4px; }
@media (max-width:780px){
  .bloco__lado{ grid-template-columns:1fr; }
  .bloco--textoFoto:nth-of-type(even) .bloco__lado{ direction:ltr; }
}

/* Números em destaque. Só funciona quando os números são bons — e fica vazio
   quando não são, o que também é uma informação. */
/* ---- cartaz: proporção fixa, posições em % da caixa ------------------
   A caixa é um container e os textos vão em cqw, então o cartaz encolhe
   inteiro no celular em vez de refluir. O preço é geometria: texto pensado
   para o computador fica pequeno no telefone, e a conferência avisa. */
.cartaz{
  position:relative; container-type:inline-size; width:100%; margin-top:8px;
  overflow:hidden; border-radius:var(--raio,10px); isolation:isolate;
}
.cartaz--16-9{ aspect-ratio:16/9; }
.cartaz--1-1 { aspect-ratio:1/1; }
.cartaz--4-5 { aspect-ratio:4/5; }
.cartaz__fundo{ position:absolute; inset:0; background-size:cover; background-position:center; z-index:0; }
/* o mesmo recurso do carrossel: sem o véu, texto claro sobre foto clara some */
.cartaz__veu{
  position:absolute; inset:0; z-index:0; pointer-events:none;
  background:linear-gradient(to top, rgba(var(--escuro-quente-rgb),.62), rgba(var(--escuro-quente-rgb),.18) 55%, rgba(var(--escuro-quente-rgb),.06) 100%);
}
.cartaz__peca{ position:absolute; z-index:1; color:#FFFCF3; text-shadow:0 1px 10px rgba(var(--escuro-quente-rgb),.45); }
.cartaz__peca p{ margin:0; line-height:1.22; }
.cartaz__peca img{ display:block; width:100%; height:auto; border-radius:calc(var(--raio,10px) * .6); }
.cartaz__peca.t-pequeno p{ font-size:2.4cqw; }
.cartaz__peca.t-medio   p{ font-size:3.6cqw; }
.cartaz__peca.t-grande  p{ font-size:5.4cqw; }
.cartaz__peca.t-enorme  p{ font-size:8.4cqw; }
.cartaz__peca.al-centro { text-align:center; }
.cartaz__peca.al-direita{ text-align:right; }

.bloco__numeros{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:clamp(20px,3vw,40px); margin-top:26px; }
.numero{ text-align:center; }
.numero strong{
  display:block; font-family:var(--serif); font-weight:400;
  font-size:clamp(2.4rem,5vw,3.6rem); line-height:1; color:var(--ouro);
}
.numero span{
  display:block; margin-top:8px; font-family:var(--sans); font-size:.78rem;
  letter-spacing:.14em; text-transform:uppercase; opacity:.82;
}

/* Sem espaço: opção do controle de respiro no editor. */
section.secao--sem-respiro{padding-block:0!important;margin-block:0!important;min-height:0!important}

/* Identidade UCA: editorial cívico, sem herdar a capa dividida do modelo anterior. */
:root{
  --azul:#15323B; --azul-fundo:#102932; --azul-claro:#2C626A;
  --bege:#E3F1EB; --bege-forte:#C7DED3; --creme:#FCFDF9;
  --creme-2:#F1F6F1; --ouro:#167B73; --ouro-claro:#8BD0BD;
  --ocre:#15323B; --ocre-fundo:#102932; --tinta:#142F35; --texto:#455D5F;
  --azul-rgb:21,50,59; --azul-fundo-rgb:16,41,50; --creme-rgb:252,253,249;
  --bege-rgb:227,241,235; --ouro-rgb:22,123,115;
  --escuro-quente-rgb:9,34,40; --brilho-rgb:139,208,189;
  --sans:"DM Sans",Arial,sans-serif; --serif:"Manrope",Arial,sans-serif;
  --header-h:82px; --mx:clamp(22px,5vw,88px); --linha:rgba(21,50,59,.13);
}
body{font-size:16px;font-weight:400;line-height:1.65}
h1,h2,h3,h4{font-weight:700;letter-spacing:-.045em;line-height:1.12}
h2{font-size:clamp(2rem,4vw,3.9rem)}
.wrap{max-width:1380px}
.secao{padding-block:clamp(76px,9vw,144px)}
.olho{font-size:.72rem;font-weight:700;letter-spacing:.14em;margin-bottom:22px}
.olho::after{width:28px}
.lead{font-family:var(--sans);font-size:clamp(1.15rem,1.6vw,1.4rem);font-weight:500;line-height:1.58}
.btn{font-size:.78rem;font-weight:700;letter-spacing:0;text-transform:none;border-radius:100px;padding:13px 22px;box-shadow:none;min-height:48px}
.btn--cheio{background:var(--azul);color:white}
.btn--cheio:hover{background:var(--ouro);border-color:var(--ouro)}
.btn:focus-visible,.nav a:focus-visible,.sumario a:focus-visible,.menu-btn:focus-visible{outline:3px solid var(--ouro);outline-offset:4px}

.header,.header.is-visivel,.header--fixo{height:var(--header-h);background:rgba(252,253,249,.97);color:var(--tinta);box-shadow:0 1px 0 var(--linha);transform:none}
.header__in{max-width:1480px}
.header__logo{gap:11px;min-width:0}
.header__logo::before{content:"✳";display:grid;place-items:center;flex:none;width:39px;height:39px;background:var(--ouro);border-radius:12px;color:white;font-size:1.45rem;line-height:1}
.header__logo .marca-txt{color:var(--tinta);font-family:var(--serif);font-weight:800;font-size:.91rem;letter-spacing:-.035em;text-transform:none;white-space:normal;max-width:175px}
.nav{gap:clamp(12px,1.9vw,30px)}
.nav a{color:var(--tinta);font-size:.78rem;font-weight:600;letter-spacing:0;text-transform:none;opacity:.85}
.nav a::after{background:var(--ouro);height:2px}
.menu-btn span{height:2px;background:var(--tinta)}
.menu-mobile{background:var(--creme);padding-top:var(--header-h)}
.menu-mobile a{color:var(--tinta);font-family:var(--sans);font-size:1.25rem;font-weight:700;border-color:var(--linha)}
.menu-mobile a span{color:var(--ouro)}

.capa{display:block;height:auto;min-height:0;overflow:visible;padding:calc(var(--header-h) + 86px) 0 clamp(70px,8vw,118px);
  background-color:var(--creme);background-image:radial-gradient(rgba(22,123,115,.12) .8px,transparent .8px);
  background-size:22px 22px;background-position:center top}
.capa__conteudo{position:relative;text-align:center}
.capa__selo{display:inline-block;margin:0 0 28px;padding:8px 15px;background:var(--bege);border:1px solid #CEE6DA;border-radius:100px;
  color:var(--ouro);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.capa h1{max-width:1050px;margin:0 auto;font-size:clamp(3.1rem,7.2vw,7.4rem);font-weight:800;line-height:1.04;letter-spacing:-.075em;color:var(--tinta);text-wrap:balance}
.capa__resumo{max-width:730px;margin:30px auto 0;color:var(--texto);font-size:clamp(1.03rem,1.6vw,1.25rem);line-height:1.65;text-wrap:pretty}
.capa__acoes{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:30px}
.capa__rotulo{display:flex;align-items:center;justify-content:center;gap:18px;margin:clamp(62px,7vw,100px) 0 23px;
  color:var(--ouro);font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.capa__rotulo::before,.capa__rotulo::after{content:"";width:36px;height:1px;background:currentColor;opacity:.55}
.sumario{max-width:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;border:0;text-align:left}
.sumario li{min-width:0;border:1px solid var(--linha);border-radius:18px;background:#fff;box-shadow:0 8px 26px rgba(21,50,59,.035);overflow:hidden;transition:transform .3s,box-shadow .3s}
.sumario li:hover{transform:translateY(-5px);box-shadow:0 18px 35px rgba(21,50,59,.1)}
.sumario a{height:100%;min-height:145px;padding:23px;grid-template-columns:1fr auto;align-content:start;gap:6px}
.sumario a::before{display:none}
.sumario .num{grid-column:1 / -1;font-size:.7rem;font-weight:700;color:var(--ouro)}
.sumario .nome{grid-column:1;font-family:var(--serif);font-size:clamp(1.18rem,1.7vw,1.55rem);font-weight:700;letter-spacing:-.04em}
.sumario a:hover .nome{transform:none}
.sumario .desc{grid-column:1 / -1;grid-row:auto;font-size:.79rem;letter-spacing:0;opacity:.88;line-height:1.35}
.sumario .mais{grid-column:2;grid-row:2;opacity:1;transform:none;font-size:1.1rem;color:var(--ouro)}

#noticias.secao--creme2{background:var(--creme-2)}
.grid-cards{gap:18px}
.card{border:1px solid var(--linha);border-radius:18px;box-shadow:none}
.card:hover{transform:translateY(-5px) scale(1.005);box-shadow:0 18px 36px rgba(21,50,59,.1)}
.card__media{aspect-ratio:16/10}
.sobre__grid{grid-template-columns:1fr 1fr;gap:clamp(50px,7vw,110px)}
.sobre__foto img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:22px;box-shadow:none}
.sobre__foto::before{inset:18px -18px -18px 18px;border-radius:22px;border-color:var(--ouro)}
.carrossel{height:min(78svh,780px);min-height:560px;box-shadow:none}
.slide__scrim{background:linear-gradient(100deg,rgba(9,34,40,.91),rgba(9,34,40,.32) 80%)}
.slide h3{font-size:clamp(2rem,4vw,4rem);font-weight:700;max-width:800px}
.slide__num{font-family:var(--sans);font-weight:700}
.passo__rot{font-size:.7rem;letter-spacing:0;text-transform:none}
.contato{background:var(--azul);color:var(--bege)}
.rodape{background:var(--azul-fundo)}
.rodape__logo .marca-txt{font-family:var(--serif);font-weight:800;letter-spacing:-.035em;text-transform:none}
.pagina-topo{background:var(--azul);color:var(--bege)}
.pagina-topo h1,.contato h2,.cta h2{color:var(--creme)}
.tex-1{background:linear-gradient(140deg,var(--azul),var(--ouro))}
.tex-4{background:linear-gradient(140deg,var(--azul-fundo),var(--azul-claro))}
.doc,.bloco__foto{border-radius:16px}
@media(max-width:1100px){.nav{gap:14px}.nav a{font-size:.72rem}}
@media(max-width:900px){
  :root{--header-h:70px}
  .header__logo .marca-txt{font-size:.85rem}
  .capa{padding-top:calc(var(--header-h) + 60px)}
  .sumario{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sobre__grid{grid-template-columns:1fr}
  .sobre__foto{max-width:650px}
}
@media(max-width:600px){
  .capa{padding-top:calc(var(--header-h) + 50px);padding-bottom:70px}
  .capa h1{font-size:clamp(2.55rem,12vw,4.4rem)}
  .capa__resumo{margin-top:22px}
  .capa__rotulo{margin-top:62px}
  .sumario{grid-template-columns:1fr;gap:10px}
  .sumario a{min-height:115px;padding:18px 20px}
  .capa__acoes .btn{width:100%;justify-content:center}
  .carrossel{height:75svh;min-height:530px}
  .passo__rot{font-size:.61rem}
}

/* A abertura editorial rola naturalmente; o deck antigo não deve escondê-la. */
html.deck{scroll-snap-type:none;scroll-padding-top:var(--header-h)}
html.deck .cap{min-height:0;display:block;align-items:initial;scroll-snap-align:none;scroll-snap-stop:normal;padding:clamp(76px,9vw,144px) 0}
html.deck #capa{display:block;min-height:0;padding:calc(var(--header-h) + 86px) 0 clamp(70px,8vw,118px)}
html.deck #destaques{height:min(78svh,780px);min-height:560px;padding:0}
html.deck .cap .rv{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s ease}
html.deck .cap .rv.is-vis{opacity:1;transform:none}
html.deck .rodape{scroll-snap-align:none}
@media(max-width:900px){
 html.deck #capa{min-height:0;padding-top:calc(var(--header-h) + 60px);padding-bottom:70px}
 html.deck #destaques{min-height:530px;height:75svh}
 html.deck .cap .rv{opacity:1;transform:none}
}
@media(max-width:600px){html.deck #capa{padding-top:calc(var(--header-h) + 50px)}}
@media(prefers-reduced-motion:reduce){html.deck .cap .rv{opacity:1;transform:none;transition:none}}

/* Logo opcional do cabeçalho; o nome e a marca do modelo continuam como padrão. */
.header__logo.tem-logo{gap:12px;min-width:0}
.header__logo.tem-logo::before{display:none!important}
.header__logo.tem-logo [data-logo-padrao]{display:none!important}
.header__logo [data-logo-nome][hidden],.header__logo img.header__logo-img[hidden]{display:none!important}
.header .header__logo img.header__logo-img{display:block;width:auto;height:clamp(34px,4vw,50px);max-width:min(220px,42vw);object-fit:contain;object-position:left center;flex:none}
.header__logo.logo-com-nome img.header__logo-img{max-width:72px}
.header__logo.logo-sem-nome img.header__logo-img{max-width:min(220px,54vw)}
.header__logo .marca-txt--nova{color:var(--creme);font:500 .85rem/1.2 var(--sans);letter-spacing:.03em}
@media(max-width:700px){.header .header__logo img.header__logo-img{height:38px}.header__logo.logo-com-nome img.header__logo-img{max-width:42px}}

/* Imagem livre na seção. */
body > section { position: relative; }
.imagem-livre { position: absolute; z-index: 2; left: 8%; top: 8%; width: min(280px, 42%); margin: 0; line-height: 0; }
.imagem-livre img { display: block; width: 100%; height: auto; border-radius: 8px; }
.imagem-livre--vazia { min-height: 140px; border: 2px dashed currentColor; border-radius: 8px; display: grid; place-items: center; line-height: 1.3; background: #fff; color: #445; }
@media (max-width: 540px) { .imagem-livre { width: min(220px, 55%); } }
