/* Emaús o Fermento — folha de estilo comum · common stylesheet */

/* Comic Sans MS quando existe no dispositivo; Comic Neue alojado aqui
   como reserva, para telemóveis e Linux. Nenhum pedido a servidores externos.
   Comic Sans MS where the device has it; Comic Neue self-hosted as fallback. */
@font-face{
  font-family:"Comic Neue";
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url("fonts/comic-neue-latin-400-normal.woff2") format("woff2");
}
@font-face{
  font-family:"Comic Neue";
  font-style:italic;
  font-weight:400;
  font-display:swap;
  src:url("fonts/comic-neue-latin-400-italic.woff2") format("woff2");
}
@font-face{
  font-family:"Comic Neue";
  font-style:normal;
  font-weight:700;
  font-display:swap;
  src:url("fonts/comic-neue-latin-700-normal.woff2") format("woff2");
}

:root{
  --paper:#F4F4EC;
  --paper-raised:#FCFBF5;
  --ink:#23281F;
  --ink-soft:#4C5344;
  --ink-faint:#83887A;
  --rule:#D8D8C9;
  --olive:#5F7233;
  --olive-soft:#EDEFE0;
  --wine:#7A2E3B;
  --shadow:rgba(35,40,31,.10);
  --medallion-shadow:0 0 0 1px var(--rule), 0 14px 34px var(--shadow);
  --overlay:rgba(35,40,31,.42);
  --serif:"Comic Sans MS","Comic Neue","Chalkboard SE",cursive;
  --display:"Comic Sans MS","Comic Neue","Chalkboard SE",cursive;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#181B16;
    --paper-raised:#20241D;
    --ink:#E7E7DA;
    --ink-soft:#BDBFAF;
    --ink-faint:#8C907F;
    --rule:#343A2D;
    --olive:#A9BE6B;
    --olive-soft:#262B1D;
    --wine:#D08A95;
    --shadow:rgba(0,0,0,.45);
    --medallion-shadow:0 0 0 1px rgba(233,232,220,.22), 0 0 46px rgba(169,190,107,.14);
    --overlay:rgba(8,10,7,.62);
  }
}
:root[data-theme="dark"]{
  --paper:#181B16;
  --paper-raised:#20241D;
  --ink:#E7E7DA;
  --ink-soft:#BDBFAF;
  --ink-faint:#8C907F;
  --rule:#343A2D;
  --olive:#A9BE6B;
  --olive-soft:#262B1D;
  --wine:#D08A95;
  --shadow:rgba(0,0,0,.45);
  --medallion-shadow:0 0 0 1px rgba(233,232,220,.22), 0 0 46px rgba(169,190,107,.14);
  --overlay:rgba(8,10,7,.62);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--serif);
  font-size:16.5px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--olive-soft);color:var(--ink)}
a{color:var(--olive);text-decoration-thickness:1px;text-underline-offset:3px}
a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--olive);outline-offset:3px;border-radius:2px}
img{max-width:100%}

/* ---------- barra de topo ---------- */
.topbar{
  position:sticky;
  top:env(safe-area-inset-top,0px);
  z-index:20;
  background:color-mix(in srgb,var(--paper) 88%,transparent);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--rule);
}
.topbar-inner{
  max-width:64rem;margin:0 auto;
  padding:.55rem 16px;
  display:flex;align-items:center;gap:.7rem 1rem;flex-wrap:wrap;
}
.wordmark{
  display:flex;align-items:center;gap:.6rem;
  font-family:var(--display);
  font-weight:700;
  font-size:1.02rem;
  letter-spacing:.01em;
  margin-right:auto;
  text-decoration:none;
  color:var(--ink);
}
.wordmark img{width:30px;height:30px;border-radius:50%;box-shadow:0 0 0 1px var(--rule)}
.wordmark em{font-style:normal;color:var(--olive)}
.nav{display:flex;gap:1.1rem;flex-wrap:wrap;align-items:center}
.nav a{
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.11em;
  color:var(--ink-soft);
  text-decoration:none;
}
.nav a:hover{color:var(--olive)}
.lang{
  display:flex;align-items:center;gap:.35rem;
  padding-left:1rem;margin-left:.1rem;
  border-left:1px solid var(--rule);
  font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;
}
.lang a{padding:.1rem .1rem}
.lang [aria-current="true"]{color:var(--olive);font-weight:700;text-decoration:none}
.lang .sep{color:var(--ink-faint)}

/* ---------- estrutura ---------- */
.wrap{max-width:64rem;margin:0 auto;padding-inline:16px}

.hero{
  padding-block:clamp(2.5rem,7vw,4.5rem) clamp(2rem,5vw,3.25rem);
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:clamp(1.5rem,4vw,3rem);
  align-items:center;
}
.eyebrow{
  font-size:.74rem;
  text-transform:uppercase;
  letter-spacing:.2em;
  color:var(--olive);
  margin:0 0 1rem;
}
h1{
  font-family:var(--display);
  font-weight:700;
  font-size:clamp(2.2rem,6.2vw,3.5rem);
  line-height:1.08;
  letter-spacing:0;
  margin:0 0 1.1rem;
  text-wrap:balance;
}
.lede{
  font-size:clamp(1.08rem,2.1vw,1.22rem);
  color:var(--ink-soft);
  max-width:34ch;
  margin:0;
}
.cta{
  display:inline-flex;align-items:baseline;gap:.5rem;
  margin-top:1.5rem;
  padding:.6rem 1.25rem;
  border:1px solid var(--olive);
  border-radius:3px;
  color:var(--olive);
  font-weight:700;
  text-decoration:none;
}
.cta:hover{background:var(--olive-soft)}
.cta span{font-size:1.1em;line-height:1}

.medallion{
  width:clamp(160px,24vw,250px);
  height:auto;
  border-radius:50%;
  box-shadow:var(--medallion-shadow);
  justify-self:end;
}

section.block{
  display:grid;
  grid-template-columns:3.2rem minmax(0,64ch);
  gap:0 1.6rem;
  padding-block:clamp(2.2rem,5vw,3.2rem);
  border-top:1px solid var(--rule);
}
.numeral{
  font-family:var(--display);
  font-size:.95rem;
  font-weight:700;
  color:var(--olive);
  padding-top:.45rem;
  font-variant-numeric:tabular-nums;
}
.block h2{
  font-family:var(--display);
  font-weight:700;
  font-size:clamp(1.42rem,3vw,1.78rem);
  line-height:1.22;
  letter-spacing:0;
  margin:0 0 .9rem;
  text-wrap:balance;
}
.block p{margin:0 0 1rem}
.block p:last-child{margin-bottom:0}

/* ---------- sequência diária ---------- */
ol.steps{list-style:none;margin:1.6rem 0 0;padding:0;display:grid;gap:1.1rem}
ol.steps li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1rem;align-items:start}
.dot{
  width:1.7rem;height:1.7rem;flex:none;
  border-radius:50%;
  background:var(--olive-soft);
  color:var(--olive);
  display:grid;place-items:center;
  font-family:var(--display);font-size:.8rem;font-weight:700;
  margin-top:.2rem;
}
ol.steps strong{font-weight:700;display:block}
ol.steps span{color:var(--ink-soft)}

/* ---------- formas de partilha ---------- */
.forms{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem;margin:1.5rem 0 1.4rem}
.form{
  background:var(--paper-raised);
  border:1px solid var(--rule);
  border-radius:3px;
  padding:1.15rem 1.2rem;
  display:flex;flex-direction:column;gap:.45rem;
}
.form h3{font-family:var(--display);font-size:1.02rem;font-weight:700;margin:0}
.form p{margin:0;color:var(--ink-soft);font-size:.96rem}
.form .meta{font-size:.74rem;text-transform:uppercase;letter-spacing:.13em;color:var(--olive)}
.destino{border-left:2px solid var(--olive);padding-left:1.1rem;color:var(--ink-soft)}

/* ---------- portal ---------- */
dl.portal{margin:1.5rem 0 0;display:grid;gap:1.15rem}
dl.portal div{display:grid;gap:.25rem}
dl.portal dt{font-family:var(--display);font-weight:700}
dl.portal dd{margin:0;color:var(--ink-soft)}
.tag{
  display:inline-block;
  font-size:.7rem;text-transform:uppercase;letter-spacing:.13em;
  color:var(--wine);
  border:1px solid currentColor;
  border-radius:999px;
  padding:.05rem .5rem;
  margin-left:.5rem;
  vertical-align:.12em;
  white-space:nowrap;
}

/* ---------- colofão bíblico ---------- */
.scripture{
  border-top:1px solid var(--rule);
  padding-block:clamp(2.8rem,7vw,4.5rem);
  display:grid;justify-items:center;text-align:center;gap:1.1rem;
}
.scripture blockquote{
  margin:0;max-width:44ch;
  font-family:var(--display);
  font-style:italic;font-weight:400;
  font-size:clamp(1.3rem,3.4vw,1.85rem);
  line-height:1.4;
  color:var(--wine);
  text-wrap:balance;
}
.scripture cite{
  font-style:normal;
  font-size:.78rem;text-transform:uppercase;letter-spacing:.18em;
  color:var(--ink-faint);
}
.grain{width:2.4rem;height:auto;color:var(--olive)}

/* ---------- páginas de texto legal ---------- */
.legal{
  padding-block:clamp(2.2rem,6vw,3.4rem) clamp(2rem,5vw,3rem);
  max-width:68ch;
}
.legal h1{font-size:clamp(1.9rem,5vw,2.6rem);margin-bottom:.6rem}
.legal .updated{
  font-size:.78rem;text-transform:uppercase;letter-spacing:.14em;
  color:var(--ink-faint);margin:0 0 2rem;
}
.legal h2{
  font-family:var(--display);font-weight:700;
  font-size:clamp(1.18rem,2.6vw,1.4rem);
  line-height:1.3;
  margin:2.4rem 0 .7rem;
  text-wrap:balance;
}
.legal h3{font-family:var(--display);font-weight:700;font-size:1.02rem;margin:1.6rem 0 .4rem}
.legal p{margin:0 0 1rem}
.legal ul{margin:0 0 1rem;padding-left:1.2rem;color:var(--ink-soft)}
.legal li{margin-bottom:.45rem}
.legal .note{
  background:var(--paper-raised);
  border:1px solid var(--rule);
  border-left:2px solid var(--olive);
  border-radius:3px;
  padding:1rem 1.2rem;
  color:var(--ink-soft);
}
.legal .note p:last-child{margin-bottom:0}
.legal button[data-cc-open]{
  background:none;border:0;padding:0;
  font:inherit;color:var(--olive);cursor:pointer;
  text-decoration:underline;text-underline-offset:3px;
}
.legal a[hreflang]{white-space:nowrap}

table.cookies{
  width:100%;
  border-collapse:collapse;
  margin:1rem 0 1.6rem;
  font-size:.94rem;
}
.table-scroll{overflow-x:auto;margin-bottom:1.6rem}
.table-scroll table.cookies{margin-bottom:0;min-width:34rem}
table.cookies th,table.cookies td{
  text-align:left;
  vertical-align:top;
  padding:.6rem .8rem;
  border-bottom:1px solid var(--rule);
}
table.cookies th{
  font-family:var(--display);font-weight:700;font-size:.82rem;
  text-transform:uppercase;letter-spacing:.09em;
  color:var(--ink-faint);
}
table.cookies td{color:var(--ink-soft)}
table.cookies td:first-child{color:var(--ink);white-space:nowrap}

/* ---------- rodapé ---------- */
footer{
  border-top:1px solid var(--rule);
  padding-block:1.6rem 2.4rem;
  display:flex;gap:.6rem 1.4rem;flex-wrap:wrap;align-items:baseline;
  color:var(--ink-faint);
  font-size:.88rem;
}
footer .site{color:var(--ink-soft)}
footer nav{display:flex;gap:.6rem 1.2rem;flex-wrap:wrap;margin-left:auto}
footer nav a,footer nav button{color:var(--ink-soft);text-decoration:none}
footer nav a:hover,footer nav button:hover{color:var(--olive);text-decoration:underline}
footer nav button{
  background:none;border:0;padding:0;
  font:inherit;color:var(--ink-soft);cursor:pointer;
}

/* ---------- consentimento de cookies ---------- */
.cc-banner{
  position:fixed;
  left:0;right:0;bottom:0;
  z-index:60;
  background:var(--paper-raised);
  border-top:1px solid var(--rule);
  box-shadow:0 -10px 34px var(--shadow);
  padding:1.1rem 16px calc(1.1rem + env(safe-area-inset-bottom,0px));
}
.cc-banner-inner{
  max-width:64rem;margin:0 auto;
  display:flex;gap:1rem 1.6rem;flex-wrap:wrap;align-items:center;
}
.cc-text{margin:0;flex:1 1 22rem;min-width:0;font-size:.95rem;color:var(--ink-soft)}
.cc-text strong{
  display:block;color:var(--ink);
  font-family:var(--display);font-weight:700;font-size:1.02rem;
  margin-bottom:.2rem;
}
.cc-actions{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}
.cc-btn{
  font:inherit;font-size:.9rem;
  padding:.5rem 1.1rem;
  border-radius:3px;
  border:1px solid var(--olive);
  background:none;
  color:var(--olive);
  cursor:pointer;
}
.cc-btn:hover{background:var(--olive-soft)}
.cc-btn-primary{background:var(--olive);color:var(--paper-raised);border-color:var(--olive)}
.cc-btn-primary:hover{filter:brightness(1.08);background:var(--olive)}
.cc-btn-quiet{border-color:transparent;color:var(--ink-soft);text-decoration:underline;padding-inline:.4rem}
.cc-btn-quiet:hover{background:none;color:var(--olive)}

.cc-overlay{
  position:fixed;inset:0;z-index:70;
  background:var(--overlay);
  display:grid;place-items:center;
  padding:16px;
}
.cc-panel{
  background:var(--paper);
  border:1px solid var(--rule);
  border-radius:4px;
  box-shadow:0 24px 60px var(--shadow);
  width:min(36rem,100%);
  max-height:min(82vh,44rem);
  overflow-y:auto;
  padding:1.5rem clamp(1.1rem,3vw,1.8rem) 1.3rem;
}
.cc-panel h2{
  font-family:var(--display);font-weight:700;
  font-size:1.3rem;margin:0 0 .4rem;
}
.cc-panel > p{margin:0 0 1.2rem;color:var(--ink-soft);font-size:.95rem}
.cc-group{
  border-top:1px solid var(--rule);
  padding:1rem 0;
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:.2rem .9rem;
}
.cc-group input{margin:.45rem 0 0;width:1.05rem;height:1.05rem;accent-color:var(--olive)}
.cc-group label{font-family:var(--display);font-weight:700;cursor:pointer}
.cc-group input[disabled]{cursor:default}
.cc-group input[disabled]+label{cursor:default}
.cc-group p{grid-column:2;margin:.15rem 0 0;font-size:.92rem;color:var(--ink-soft)}
.cc-group .always{
  grid-column:2;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;
  color:var(--olive);margin:.25rem 0 0;
}
.cc-panel-actions{
  display:flex;gap:.6rem;flex-wrap:wrap;justify-content:flex-end;
  border-top:1px solid var(--rule);
  padding-top:1.1rem;margin-top:.4rem;
}

/* espaço reservado para conteúdos incorporados bloqueados */
.cc-placeholder{
  border:1px dashed var(--rule);
  border-radius:3px;
  background:var(--paper-raised);
  padding:1.4rem;
  text-align:center;
  color:var(--ink-soft);
  display:grid;gap:.7rem;justify-items:center;
}

@media (max-width:540px){
  .nav{gap:.78rem}
  .nav a{font-size:.7rem;letter-spacing:.08em}
  .wordmark{font-size:.95rem}
  .lang{padding-left:.7rem}
  .cc-actions{width:100%}
  .cc-actions .cc-btn{flex:1 1 auto;text-align:center}
}

@media (max-width:760px){
  .hero{grid-template-columns:minmax(0,1fr);gap:1.75rem}
  .medallion{justify-self:start;width:clamp(140px,40vw,190px)}
  .lede{max-width:none}
  section.block{grid-template-columns:minmax(0,1fr);gap:0}
  .numeral{padding-top:0;margin-bottom:.35rem}
  footer nav{margin-left:0}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
}
