/* =========================================================================
   SPIRITUS EDITORA — folha de estilo principal
   Paleta extraída da logo (folha em grafite-oliva sobre papel).
   ========================================================================= */

:root{
  /* --- cores --- */
  --tinta:        #24261f;   /* grafite-oliva da logo */
  --tinta-2:      #3c3f35;
  --tinta-3:      #6b6e62;
  --papel:        #f8f6f1;   /* papel de miolo */
  --papel-2:      #efeae0;
  --papel-3:      #e4ddcf;
  --verde:        #5b6a4d;   /* folha / oliva */
  --verde-claro:  #8b9a7b;
  --ouro:         #9a7b3f;   /* dourado sóbrio */
  --ouro-claro:   #c2a469;
  --linha:        rgba(36,38,31,.16);
  --linha-forte:  rgba(36,38,31,.32);

  /* --- tipografia --- */
  --display: "Cormorant Garamond", "Iowan Old Style", Georgia, "Times New Roman", serif;
  --texto:   "Lora", Georgia, "Times New Roman", serif;

  /* --- métrica --- */
  --largura: 1180px;
  --estreito: 760px;
  --raio: 2px;
  --sombra: 0 1px 2px rgba(36,38,31,.06), 0 8px 24px -12px rgba(36,38,31,.22);
  --sombra-alta: 0 2px 6px rgba(36,38,31,.10), 0 22px 46px -18px rgba(36,38,31,.34);
  --transicao: 220ms cubic-bezier(.4,.1,.25,1);
}

*,*::before,*::after{ box-sizing:border-box; }

html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
}

body{
  margin:0;
  background:var(--papel);
  color:var(--tinta);
  font-family:var(--texto);
  font-size:1.0625rem;
  line-height:1.75;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

img{ max-width:100%; height:auto; display:block; }

h1,h2,h3,h4{
  font-family:var(--display);
  font-weight:600;
  line-height:1.12;
  letter-spacing:.005em;
  margin:0 0 .5em;
  color:var(--tinta);
}
h1{ font-size:clamp(2.35rem, 5.4vw, 3.9rem); }
h2{ font-size:clamp(1.85rem, 3.6vw, 2.7rem); }
h3{ font-size:clamp(1.3rem, 2.2vw, 1.6rem); }
h4{ font-size:1.1rem; }

p{ margin:0 0 1.15em; }
a{ color:var(--verde); text-decoration:underline; text-underline-offset:.18em; text-decoration-thickness:.06em; transition:color var(--transicao); }
a:hover{ color:var(--ouro); }

:focus-visible{
  outline:2.5px solid var(--ouro);
  outline-offset:3px;
  border-radius:1px;
}

hr{ border:0; border-top:1px solid var(--linha); margin:3rem 0; }

/* --------------------------------------------------- utilidades ---------- */
.container{ width:100%; max-width:var(--largura); margin-inline:auto; padding-inline:clamp(1.15rem,4vw,2.5rem); }
.estreito{ max-width:var(--estreito); }
.centro{ text-align:center; }
.pular-para-conteudo{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--tinta); color:var(--papel);
  padding:.75rem 1.25rem; font-family:var(--display); font-size:1rem;
}
.pular-para-conteudo:focus{ left:.75rem; top:.75rem; }

.olho{
  font-family:var(--display);
  font-size:.82rem;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--ouro);
  font-weight:600;
  margin:0 0 .9rem;
  display:block;
}
.olho--claro{ color:var(--ouro-claro); }

.ornamento{
  display:block;
  text-align:center;
  color:var(--verde-claro);
  font-size:1.1rem;
  letter-spacing:.6em;
  margin:2.2rem 0;
  user-select:none;
}

.linha-fina{ height:1px; background:var(--linha); border:0; }

/* --------------------------------------------------- botões -------------- */
.btn{
  display:inline-flex; align-items:center; gap:.55rem;
  font-family:var(--display); font-size:1rem; font-weight:600;
  letter-spacing:.12em; text-transform:uppercase;
  padding:.85rem 1.7rem;
  border:1px solid var(--tinta);
  background:var(--tinta); color:var(--papel);
  text-decoration:none; border-radius:var(--raio);
  cursor:pointer;
  transition:background var(--transicao), color var(--transicao), border-color var(--transicao), transform var(--transicao);
}
.btn:hover{ background:var(--verde); border-color:var(--verde); color:#fff; transform:translateY(-1px); }
.btn--vazado{ background:transparent; color:var(--tinta); }
.btn--vazado:hover{ background:var(--tinta); color:var(--papel); border-color:var(--tinta); }
.btn--claro{ background:transparent; color:var(--papel); border-color:rgba(248,246,241,.55); }
.btn--claro:hover{ background:var(--papel); color:var(--tinta); border-color:var(--papel); }
.btn--pequeno{ padding:.6rem 1.15rem; font-size:.85rem; }

/* --------------------------------------------------- cabeçalho ----------- */
.cabecalho{
  position:sticky; top:0; z-index:100;
  background:rgba(248,246,241,.93);
  backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid var(--linha);
}
.cabecalho__interno{
  display:flex; align-items:center; justify-content:space-between;
  gap:1.5rem; min-height:74px;
}
.marca{ display:flex; align-items:center; gap:.7rem; text-decoration:none; }
.marca img{ height:44px; width:auto; }
.marca__texto{ display:none; }

.nav-principal ul{
  list-style:none; display:flex; align-items:center; gap:clamp(1rem,2.4vw,2.1rem);
  margin:0; padding:0;
}
.nav-principal a{
  font-family:var(--display);
  font-size:1.02rem; font-weight:600;
  letter-spacing:.09em; text-transform:uppercase;
  color:var(--tinta); text-decoration:none;
  padding:.35rem 0; position:relative; white-space:nowrap;
}
.nav-principal a::after{
  content:""; position:absolute; left:0; right:0; bottom:-2px;
  height:1.5px; background:var(--ouro);
  transform:scaleX(0); transform-origin:left; transition:transform var(--transicao);
}
.nav-principal a:hover::after,
.nav-principal a[aria-current="page"]::after{ transform:scaleX(1); }
.nav-principal a[aria-current="page"]{ color:var(--verde); }

.menu-botao{
  display:none; background:none; border:1px solid var(--linha-forte);
  width:46px; height:42px; border-radius:var(--raio); cursor:pointer;
  align-items:center; justify-content:center; padding:0;
}
.menu-botao span{ display:block; width:20px; height:1.5px; background:var(--tinta); position:relative; transition:background var(--transicao); }
.menu-botao span::before,.menu-botao span::after{
  content:""; position:absolute; left:0; width:20px; height:1.5px; background:var(--tinta);
  transition:transform var(--transicao), top var(--transicao);
}
.menu-botao span::before{ top:-6px; } .menu-botao span::after{ top:6px; }
.menu-botao[aria-expanded="true"] span{ background:transparent; }
.menu-botao[aria-expanded="true"] span::before{ top:0; transform:rotate(45deg); }
.menu-botao[aria-expanded="true"] span::after{ top:0; transform:rotate(-45deg); }

@media (max-width: 900px){
  .menu-botao{ display:inline-flex; }
  .nav-principal{
    position:absolute; left:0; right:0; top:100%;
    background:var(--papel); border-bottom:1px solid var(--linha);
    box-shadow:var(--sombra);
    display:none;
  }
  .nav-principal.aberto{ display:block; }
  .nav-principal ul{
    flex-direction:column; align-items:stretch; gap:0;
    padding:.5rem clamp(1.15rem,4vw,2.5rem) 1.4rem;
  }
  .nav-principal li{ border-bottom:1px solid var(--linha); }
  .nav-principal li:last-child{ border-bottom:0; }
  .nav-principal a{ display:block; padding:.95rem 0; font-size:1.08rem; }
}

/* --------------------------------------------------- hero ---------------- */
.hero{
  position:relative; overflow:hidden;
  background:var(--tinta);
  color:var(--papel);
  padding:clamp(4.5rem,11vw,8.5rem) 0 clamp(4rem,9vw,7rem);
  isolation:isolate;
}
.hero__fundo{
  position:absolute; inset:0; z-index:-2;
  background-size:cover; background-position:center 38%;
  opacity:.20; filter:grayscale(1) contrast(1.1);
}
.hero::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg, rgba(20,22,17,.55) 0%, rgba(24,26,20,.78) 55%, rgba(20,22,17,.94) 100%);
}
.hero h1{ color:var(--papel); max-width:16ch; margin-bottom:.35em; }
.hero__lead{
  font-size:clamp(1.06rem,1.9vw,1.3rem);
  color:rgba(248,246,241,.86);
  max-width:52ch; margin-bottom:2.1rem;
}
.hero__acoes{ display:flex; flex-wrap:wrap; gap:.9rem; }
.hero__folha{
  position:absolute; right:-4%; bottom:-12%; width:min(42vw,430px);
  opacity:.07; z-index:-1; pointer-events:none;
  filter:brightness(0) invert(1);
}

/* --------------------------------------------------- seções -------------- */
.secao{ padding:clamp(3.5rem,8vw,6.5rem) 0; }
.secao--papel2{ background:var(--papel-2); }
.secao--tinta{ background:var(--tinta); color:rgba(248,246,241,.88); }
.secao--tinta h2,.secao--tinta h3{ color:var(--papel); }
.secao__cabeca{ margin-bottom:clamp(2rem,4vw,3.2rem); max-width:60ch; }
.secao__cabeca--centro{ margin-inline:auto; text-align:center; }

/* --------------------------------------------------- pilares ------------- */
.pilares{
  display:grid; gap:1px;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  background:var(--linha);
  border:1px solid var(--linha);
}
.pilar{ background:var(--papel); padding:2rem 1.7rem; }
.secao--papel2 .pilar{ background:var(--papel-2); }
.pilar h3{ font-size:1.28rem; margin-bottom:.4rem; }
.pilar p{ margin:0; color:var(--tinta-2); font-size:.98rem; line-height:1.7; }
.pilar__num{
  font-family:var(--display); font-size:.8rem; letter-spacing:.25em;
  color:var(--ouro); display:block; margin-bottom:.9rem; font-weight:600;
}

/* --------------------------------------------------- livros -------------- */
.grade-livros{
  display:grid; gap:clamp(1.8rem,3.6vw,3rem) clamp(1.3rem,2.6vw,2.2rem);
  grid-template-columns:repeat(auto-fill,minmax(215px,1fr));
  list-style:none; margin:0; padding:0;
}
.livro{ display:flex; flex-direction:column; }
.livro__capa{
  display:block; position:relative; overflow:hidden;
  background:var(--papel-3); border-radius:var(--raio);
  box-shadow:var(--sombra);
  aspect-ratio:2/3;
  transition:box-shadow var(--transicao), transform var(--transicao);
}
.livro__capa img{ width:100%; height:100%; object-fit:cover; }
.livro:hover .livro__capa{ transform:translateY(-4px); box-shadow:var(--sombra-alta); }
.livro__cat{
  font-family:var(--display); font-size:.72rem; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:var(--ouro);
  margin:1.1rem 0 .35rem;
}
.livro__titulo{ font-size:1.24rem; margin:0 0 .2rem; line-height:1.2; }
.livro__titulo a{ color:var(--tinta); text-decoration:none; }
.livro__titulo a:hover{ color:var(--verde); }
.livro__autor{ font-size:.95rem; color:var(--tinta-3); font-style:italic; margin:0 0 .7rem; }
.livro__resumo{ font-size:.95rem; color:var(--tinta-2); margin:0 0 1rem; }
.livro__mais{
  margin-top:auto;
  font-family:var(--display); font-weight:600; font-size:.88rem;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--verde); text-decoration:none;
  display:inline-flex; align-items:center; gap:.4rem;
  border-bottom:1px solid transparent; padding-bottom:2px; align-self:flex-start;
}
.livro__mais:hover{ border-bottom-color:var(--ouro); color:var(--ouro); }
.livro__mais::after{ content:"→"; transition:transform var(--transicao); }
.livro__mais:hover::after{ transform:translateX(3px); }

/* filtros do catálogo */
.filtros{
  display:flex; flex-wrap:wrap; gap:.55rem;
  margin:0 0 clamp(2rem,4vw,3rem); padding:0; list-style:none;
}
.filtro{
  font-family:var(--display); font-size:.86rem; font-weight:600;
  letter-spacing:.12em; text-transform:uppercase;
  padding:.5rem 1.1rem; border:1px solid var(--linha-forte);
  background:transparent; color:var(--tinta-2); cursor:pointer;
  border-radius:var(--raio); transition:all var(--transicao);
}
.filtro:hover{ border-color:var(--tinta); color:var(--tinta); }
.filtro[aria-pressed="true"]{ background:var(--tinta); border-color:var(--tinta); color:var(--papel); }
.sem-resultado{ color:var(--tinta-3); font-style:italic; }

/* --------------------------------------------------- página do livro ----- */
.ficha{
  display:grid; gap:clamp(2rem,5vw,4rem);
  grid-template-columns:minmax(0,340px) minmax(0,1fr);
  align-items:start;
}
@media (max-width:820px){ .ficha{ grid-template-columns:1fr; } .ficha__capa{ max-width:290px; margin-inline:auto; } }
.ficha__capa img{ width:100%; border-radius:var(--raio); box-shadow:var(--sombra-alta); }
.ficha h1{ margin-bottom:.15em; }
.ficha__sub{
  font-family:var(--display); font-size:clamp(1.15rem,2.2vw,1.5rem);
  font-style:italic; color:var(--tinta-3); font-weight:400;
  margin:0 0 1.4rem; line-height:1.35;
}
.ficha__autor{ font-size:1.05rem; margin-bottom:1.8rem; }
.ficha__autor a{ font-weight:600; }
.ficha__texto p:first-of-type::first-letter{
  font-family:var(--display); font-size:3.3em; float:left;
  line-height:.82; padding:.06em .12em 0 0; color:var(--verde); font-weight:600;
}
.dados{
  list-style:none; margin:2.4rem 0 0; padding:1.6rem 0 0;
  border-top:1px solid var(--linha);
  display:grid; gap:.75rem; grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
}
.dados div{ font-size:.94rem; }
.dados dt{
  font-family:var(--display); font-size:.72rem; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:var(--ouro); margin-bottom:.15rem;
}
.dados dd{ margin:0; color:var(--tinta-2); }
.citacao{
  border-left:2px solid var(--ouro-claro);
  padding:.3rem 0 .3rem 1.5rem; margin:2.2rem 0;
  font-family:var(--display); font-size:1.35rem; font-style:italic;
  color:var(--tinta-2); line-height:1.45;
}
.citacao cite{ display:block; font-size:.85rem; font-style:normal; letter-spacing:.14em; text-transform:uppercase; color:var(--tinta-3); margin-top:.7rem; font-family:var(--display); }

/* --------------------------------------------------- autores ------------- */
.grade-autores{
  display:grid; gap:clamp(2rem,4vw,3rem);
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  list-style:none; margin:0; padding:0;
}
.autor{ text-align:center; }
.retrato{
  width:180px; height:180px; margin:0 auto 1.3rem;
  border-radius:50%; overflow:hidden; background:var(--papel-3);
  box-shadow:var(--sombra); position:relative;
}
.retrato img{ width:100%; height:100%; object-fit:cover; }
.retrato--monograma{
  display:grid; place-items:center;
  background:linear-gradient(155deg,var(--papel-2),var(--papel-3));
  border:1px solid var(--linha);
}
.retrato--monograma span{
  font-family:var(--display); font-size:3.6rem; font-weight:600;
  letter-spacing:.06em; color:var(--verde);
}
.autor h3{ margin-bottom:.25rem; }
.autor__temas{
  font-family:var(--display); font-size:.75rem; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:var(--ouro); margin:0 0 .8rem;
}
.autor p{ color:var(--tinta-2); font-size:.98rem; }

.perfil{ display:grid; gap:clamp(2rem,5vw,3.5rem); grid-template-columns:minmax(0,240px) minmax(0,1fr); align-items:start; }
@media (max-width:760px){ .perfil{ grid-template-columns:1fr; justify-items:center; text-align:center; } .perfil__corpo{ text-align:left; } }
.perfil .retrato{ width:100%; max-width:240px; height:auto; aspect-ratio:1; }

/* --------------------------------------------------- blog ---------------- */
.posts{ list-style:none; margin:0; padding:0; display:grid; gap:2.4rem; }
.post{ border-bottom:1px solid var(--linha); padding-bottom:2.2rem; }
.post:last-child{ border-bottom:0; }
.post__data{
  font-family:var(--display); font-size:.75rem; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:var(--ouro); display:block; margin-bottom:.5rem;
}
.post h3{ margin-bottom:.4rem; }
.post h3 a{ color:var(--tinta); text-decoration:none; }
.post h3 a:hover{ color:var(--verde); }
.post p{ color:var(--tinta-2); margin-bottom:.8rem; }
.aviso-editorial{
  background:var(--papel-2); border:1px dashed var(--linha-forte);
  padding:1.4rem 1.6rem; border-radius:var(--raio);
  font-size:.95rem; color:var(--tinta-2); margin:0 0 2.6rem;
}
.aviso-editorial strong{ color:var(--tinta); }

.artigo{ max-width:68ch; margin-inline:auto; }
.artigo h2{ margin-top:2.4rem; }

/* --------------------------------------------------- formulários --------- */
.form{ display:grid; gap:1.15rem; }
.campo{ display:grid; gap:.35rem; }
.campo label{
  font-family:var(--display); font-size:.8rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--tinta-2);
}
.campo input,.campo textarea,.campo select{
  font-family:var(--texto); font-size:1rem; color:var(--tinta);
  background:var(--papel); border:1px solid var(--linha-forte);
  border-radius:var(--raio); padding:.8rem .95rem; width:100%;
  transition:border-color var(--transicao), box-shadow var(--transicao);
}
.campo input:focus,.campo textarea:focus{
  border-color:var(--verde); box-shadow:0 0 0 3px rgba(91,106,77,.14); outline:none;
}
.campo textarea{ min-height:150px; resize:vertical; }
.form__ajuda{ font-size:.88rem; color:var(--tinta-3); margin:0; }
.mel{ position:absolute; left:-9999px; }

.newsletter{
  background:var(--tinta);
  color:rgba(248,246,241,.88);
  padding:clamp(3rem,7vw,5rem) 0;
  position:relative; overflow:hidden;
}
.newsletter h2{ color:var(--papel); }
.newsletter__caixa{ max-width:660px; }
.newsletter .form{ grid-template-columns:1fr auto; gap:.7rem; align-items:end; }
@media (max-width:620px){ .newsletter .form{ grid-template-columns:1fr; } }
.newsletter .campo label{ color:rgba(248,246,241,.65); }
.newsletter .campo input{
  background:rgba(248,246,241,.06); border-color:rgba(248,246,241,.28); color:var(--papel);
}
.newsletter .campo input::placeholder{ color:rgba(248,246,241,.45); }
.newsletter .campo input:focus{ border-color:var(--ouro-claro); box-shadow:0 0 0 3px rgba(194,164,105,.2); }
.newsletter .form__ajuda{ color:rgba(248,246,241,.55); grid-column:1/-1; }
.newsletter__folha{
  position:absolute; right:-2%; top:-30%; width:min(34vw,330px);
  opacity:.06; filter:brightness(0) invert(1); pointer-events:none;
}

.recado{
  border-left:3px solid var(--verde);
  background:var(--papel-2);
  padding:1.1rem 1.3rem; border-radius:var(--raio);
  font-size:.96rem; margin:0 0 1.6rem;
}

/* --------------------------------------------------- contato ------------- */
.contato-grade{ display:grid; gap:clamp(2rem,5vw,4rem); grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); align-items:start; }
@media (max-width:820px){ .contato-grade{ grid-template-columns:1fr; } }
.contato-info{ list-style:none; margin:0; padding:0; display:grid; gap:1.6rem; }
.contato-info dt{
  font-family:var(--display); font-size:.75rem; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:var(--ouro); margin-bottom:.25rem;
}
.contato-info dd{ margin:0; color:var(--tinta-2); }

/* --------------------------------------------------- rodapé -------------- */
.rodape{
  background:var(--tinta); color:rgba(248,246,241,.7);
  padding:clamp(3rem,6vw,4.5rem) 0 2rem; font-size:.95rem;
}
.rodape a{ color:rgba(248,246,241,.82); text-decoration:none; }
.rodape a:hover{ color:var(--ouro-claro); text-decoration:underline; }
.rodape__grade{
  display:grid; gap:2.5rem;
  grid-template-columns:minmax(0,1.4fr) repeat(auto-fit,minmax(150px,1fr));
  padding-bottom:2.5rem; border-bottom:1px solid rgba(248,246,241,.14);
}
.rodape__marca img{ height:74px; width:auto; margin-bottom:1.1rem; }
.rodape__marca p{ max-width:34ch; font-size:.94rem; line-height:1.7; }
.rodape h4{
  font-family:var(--display); font-size:.78rem; font-weight:600;
  letter-spacing:.22em; text-transform:uppercase; color:var(--ouro-claro); margin-bottom:1rem;
}
.rodape ul{ list-style:none; margin:0; padding:0; display:grid; gap:.6rem; }
.rodape__base{
  display:flex; flex-wrap:wrap; gap:.6rem 1.6rem;
  justify-content:space-between; align-items:center;
  padding-top:1.7rem; font-size:.86rem; color:rgba(248,246,241,.55);
}
.rodape__base p{ margin:0; }
.rodape__legais{ display:flex; flex-wrap:wrap; gap:1.2rem; }

/* --------------------------------------------------- misc ---------------- */
.migalhas{ font-size:.85rem; color:var(--tinta-3); margin:0 0 1.8rem; }
.migalhas a{ color:var(--tinta-3); }
.migalhas a:hover{ color:var(--verde); }

.revela{ opacity:0; transform:translateY(14px); transition:opacity .7s ease, transform .7s ease; }
.revela.visivel{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .revela{ opacity:1; transform:none; } }

.destaque-duplo{ display:grid; gap:clamp(2rem,5vw,4rem); grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; }
@media (max-width:820px){ .destaque-duplo{ grid-template-columns:1fr; } }
.destaque-duplo img{ border-radius:var(--raio); box-shadow:var(--sombra); }
.legenda{ font-size:.82rem; color:var(--tinta-3); font-style:italic; margin-top:.7rem; }

@media print{
  .cabecalho,.rodape,.newsletter,.menu-botao{ display:none; }
  body{ background:#fff; }
}

/* leitores de tela */
.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

/* hairline nas capas claras, para não sumirem no fundo */
.livro__capa::after,
.ficha__capa::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(36,38,31,.10); border-radius:var(--raio);
}
.ficha__capa{ position:relative; }
