/* ============================================================
   PATRONO · HOME
   Brandbook v1.0 — STIX Two Text (rosto) + Inter (moldura).
   Vermelho mártir #C42020 · gradiente fogo→ouro. Cerimonial latino.
   ============================================================ */

:root{
  --martir:#C42020; --fogo:#FF1800; --ouro:#FF9800; --brasa:#FF8500;
  --terracota:#DD4A22; --terracota-deep:#B9392E;
  --carvao:#1D1D1B; --petroleo:#3E4F5B; --areia:#DBAF78; --areia-claro:#E8C89E; --branco:#fff;
  --paper:#FBF7F0; --ink:#1D1D1B; --muted:#6a5f57;
  --soft:rgba(29,29,27,.10); --strong:rgba(29,29,27,.18); --on-dark:rgba(255,255,255,.12);
  --grad-fire:linear-gradient(180deg,#FF9800 0%,#FF8500 45%,#DD4A22 75%,#C42020 100%);
  --grad-fire-h:linear-gradient(100deg,#FF9800,#DD4A22 60%,#C42020);
  --serif:"STIX Two Text","Source Serif 4",Georgia,"Times New Roman",serif;
  --sans:"Inter","Helvetica Neue",Arial,sans-serif;
  --container:1180px; --narrow:740px;
  --ease:cubic-bezier(.22,1,.36,1);
}
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; scroll-padding-top:74px; -webkit-text-size-adjust:100%; }
img,svg{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
body{ background:#FBF7F0; color:var(--ink); font-family:var(--sans);
  font-size:1.0625rem; line-height:1.65; overflow-x:hidden;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }
.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:clamp(1.25rem,5vw,2.5rem); }
.container--narrow{ max-width:var(--narrow); }

.eyebrow{ display:inline-block; font-size:.75rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--martir); margin-bottom:1rem; }
.eyebrow--fire{ background:var(--grad-fire-h); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }

.sec-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:1.5rem; flex-wrap:wrap; margin-bottom:2.5rem; }
.sec-head__title{ font-family:var(--serif); font-size:clamp(1.9rem,3.4vw,2.9rem); font-weight:700; line-height:1.1; letter-spacing:-.01em; max-width:18ch; }
.sec-head__link{ font-size:.875rem; font-weight:600; color:var(--martir); white-space:nowrap; padding-bottom:.3rem; }
.sec-head__link:hover{ color:var(--terracota); }

/* ---- BOTÕES ---- */
.btn{ display:inline-flex; align-items:center; gap:.5rem; font-size:.9375rem; font-weight:600; letter-spacing:.01em;
  padding:.85rem 1.6rem; border-radius:4px; border:1px solid transparent; transition:all 220ms var(--ease); cursor:pointer; }
.btn--fire{ background:var(--grad-fire-h); color:#fff; box-shadow:0 8px 24px rgba(196,32,32,.28); }
.btn--fire:hover{ transform:translateY(-2px); box-shadow:0 14px 34px rgba(196,32,32,.4); }
.btn--line{ border-color:var(--strong); color:var(--ink); }
.btn--line:hover{ border-color:var(--martir); color:var(--martir); }
.btn--ghost{ border-color:rgba(255,255,255,.4); color:#fff; }
.btn--ghost:hover{ border-color:#fff; background:rgba(255,255,255,.08); }

/* ---- TOPNAV ---- */
.topnav{ position:fixed; inset:0 0 auto 0; z-index:100; transition:background 300ms,border-color 300ms;
  background:linear-gradient(to bottom,rgba(10,8,6,.6),transparent); }
.topnav.is-stuck{ background:rgba(29,29,27,.92); backdrop-filter:blur(16px) saturate(140%); -webkit-backdrop-filter:blur(16px) saturate(140%); border-bottom:1px solid var(--on-dark); }
.topnav__inner{ max-width:var(--container); margin-inline:auto; padding:.8rem clamp(1.25rem,5vw,2.5rem); display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.topnav__logo{ display:flex; align-items:center; gap:.6rem; }
.topnav__sinete{ height:30px; width:auto; }
.topnav__name{ font-family:var(--serif); font-weight:600; font-size:1.25rem; letter-spacing:.02em; color:#fff; }
.topnav__menu{ display:flex; gap:1.6rem; align-items:center; }
.topnav__menu a{ font-size:.875rem; font-weight:500; color:rgba(255,255,255,.82); transition:color 200ms; white-space:nowrap; }
.topnav__menu a:hover{ color:var(--areia); }
.topnav__cta{ padding:.4rem 1rem; border:1px solid rgba(255,255,255,.4); border-radius:4px; }
.topnav__cta:hover{ background:var(--grad-fire-h); border-color:transparent; color:#fff; }
.topnav__burger{ display:none; width:30px; height:22px; flex-direction:column; justify-content:space-between; padding:3px 0; background:none; border:0; cursor:pointer; }
.topnav__burger span{ display:block; height:2px; background:#fff; }

/* ---- HERO ---- */
.hero{ position:relative; height:100svh; min-height:620px; max-height:960px; overflow:hidden; background:#100d0b; }
.hero__stage{ position:absolute; inset:0; z-index:1; }
.hero__slide{ position:absolute; inset:0; opacity:0; transition:opacity 1300ms var(--ease); }
.hero__slide.is-active{ opacity:1; }
.hero__parallax{ position:absolute; inset:-7%; will-change:transform; transition:transform 700ms var(--ease); }
.hero__img{ position:absolute; inset:0; background-size:cover; background-position:center; transform:scale(1.05); filter:saturate(.92) contrast(1.02); }
.hero__slide.is-active .hero__img{ animation:kenburns 9s linear forwards; }
@keyframes kenburns{ from{transform:scale(1.05)} to{transform:scale(1.18)} }
.hero__scrim{ position:absolute; inset:0; z-index:2; pointer-events:none;
  background:linear-gradient(to top,rgba(16,10,8,.96) 3%,rgba(16,10,8,.6) 34%,rgba(16,10,8,.18) 62%,rgba(40,12,6,.4) 100%); }
.hero__scrim::after{ content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 76% 12%,rgba(255,136,0,.22),transparent 52%); mix-blend-mode:screen; }
.hero__sinete{ position:absolute; right:-4%; top:50%; transform:translateY(-50%); width:min(46vw,560px); z-index:2; opacity:.14; pointer-events:none; filter:drop-shadow(0 0 40px rgba(255,120,0,.3)); }
.hero__content{ position:absolute; inset:auto 0 0 0; z-index:3; padding-bottom:clamp(3.5rem,9vh,7rem); }
.hero__caption{ will-change:transform,opacity; transition:opacity 500ms var(--ease),transform 500ms var(--ease); max-width:44rem; }
.hero__caption.is-swapping{ opacity:0; transform:translateY(20px); }
.hero__ed{ display:inline-flex; align-items:center; gap:.65rem; font-size:.8125rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--ouro); margin-bottom:1.25rem; }
.hero__ed::before{ content:''; width:28px; height:2px; background:currentColor; }
.hero__title{ font-family:var(--serif); font-weight:700; font-size:clamp(2.4rem,6vw,4.8rem); line-height:1.04; letter-spacing:-.015em; color:#fff; text-shadow:0 2px 50px rgba(0,0,0,.5); }
.hero__sub{ font-size:clamp(1rem,1.6vw,1.2rem); color:rgba(255,255,255,.84); max-width:48ch; margin-top:1.4rem; line-height:1.55; }
.hero__actions{ display:flex; gap:.85rem; flex-wrap:wrap; margin-top:2rem; }
.hero__nav{ display:flex; align-items:center; gap:.6rem; margin-top:2.4rem; }
.hero__dot{ width:36px; height:3px; border-radius:2px; background:rgba(255,255,255,.28); overflow:hidden; position:relative; cursor:pointer; border:0; padding:0; }
.hero__dot::after{ content:''; position:absolute; inset:0; width:0; background:var(--ouro); }
.hero__dot.is-active::after{ width:100%; transition:width var(--dur,7000ms) linear; }
.hero__dot:hover{ background:rgba(255,255,255,.5); }
.hero__cue{ position:absolute; right:clamp(1.25rem,5vw,2.5rem); bottom:clamp(2rem,5vh,3rem); z-index:3; font-size:.6875rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,224,200,.7); writing-mode:vertical-rl; font-family:var(--serif); font-style:italic; }

/* ---- MANIFESTO ---- */
.manifesto{ padding:clamp(5rem,10vw,8.5rem) 0; background:#FBF7F0; text-align:center; position:relative; }
.manifesto::before{ content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 50% 0,rgba(255,136,0,.06),transparent 55%); pointer-events:none; }
.manifesto__lead{ font-family:var(--serif); font-size:clamp(2rem,4vw,3rem); font-weight:700; line-height:1.2; letter-spacing:-.01em; color:var(--ink); }
.manifesto__body{ font-size:1.1875rem; line-height:1.75; color:#403832; max-width:60ch; margin:1.75rem auto 0; }
.manifesto__body em{ font-style:italic; color:var(--martir); }
.manifesto__verse{ font-family:var(--serif); font-style:italic; font-size:clamp(1.15rem,2vw,1.5rem); line-height:1.5; color:var(--terracota-deep); margin:2.5rem auto 0; max-width:40ch; position:relative; }
.manifesto__verse cite{ display:block; margin-top:.75rem; font-size:.8125rem; font-style:normal; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.manifesto__sign{ margin-top:2rem; font-family:var(--serif); font-style:italic; font-size:1.25rem; color:var(--martir); }

/* ---- TODO SANTO DIA (DARK FEATURE) ---- */
.tsd{ padding:clamp(5rem,9vw,8rem) 0; background:var(--carvao); color:#fff;
  background-image:url(/assets/svg/textura-pergaminho.svg); background-size:cover; }
.tsd__grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(2rem,5vw,4rem); align-items:center; }
.tsd__title{ font-family:var(--serif); font-weight:700; font-size:clamp(2.4rem,5vw,3.8rem); line-height:1; margin-top:.5rem; }
.tsd__lead{ font-family:var(--serif); font-style:italic; font-size:clamp(1.2rem,2vw,1.5rem); color:var(--areia-claro); margin-top:1.25rem; line-height:1.45; }
.tsd__body{ color:rgba(255,255,255,.78); margin-top:1.25rem; max-width:52ch; line-height:1.7; }
.tsd__actions{ display:flex; gap:.85rem; flex-wrap:wrap; margin-top:2rem; }
.tsd__card{ position:relative; padding:2.5rem 2rem; border:1px solid var(--on-dark); border-radius:10px; text-align:center;
  background:radial-gradient(ellipse at 50% 30%,rgba(255,136,0,.16),transparent 65%); }
.tsd__card-kicker{ font-size:.6875rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--ouro); }
.tsd__sticker{ width:min(78%,260px); margin:1.5rem auto; filter:drop-shadow(0 14px 40px rgba(255,90,0,.35)); }
.tsd__card-note{ font-family:var(--serif); font-style:italic; color:var(--areia); font-size:1.0625rem; }

/* ---- ATRIBUTOS ---- */
.attrs{ background:#FBF7F0; padding:3rem 0; border-top:1px solid var(--soft); border-bottom:1px solid var(--soft); }
.attrs__row{ display:flex; align-items:center; justify-content:center; gap:clamp(2rem,6vw,5rem); flex-wrap:wrap; }
.attrs__row img{ height:clamp(34px,5vw,52px); width:auto; opacity:.5; transition:opacity 300ms,transform 300ms var(--ease); }
.attrs__row img:hover{ opacity:1; transform:translateY(-4px); }

/* ---- ENSAIOS (DINÂMICO) ---- */
.frombog{ padding:clamp(5rem,9vw,7.5rem) 0; }
.grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.card{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--soft); border-radius:8px; overflow:hidden; transition:transform 250ms var(--ease),box-shadow 250ms,border-color 200ms; }
.card:hover{ transform:translateY(-3px); box-shadow:0 14px 40px rgba(29,29,27,.10); border-color:var(--strong); }
.card__top{ height:5px; background:var(--c-accent,var(--martir)); }
.card__body{ padding:1.6rem 1.5rem 1.5rem; display:flex; flex-direction:column; flex:1; }
.card__ed{ font-size:.6875rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--c-accent,var(--martir)); margin-bottom:.75rem; }
.card__title{ font-family:var(--serif); font-size:1.35rem; font-weight:700; line-height:1.18; letter-spacing:-.01em; }
.card:hover .card__title{ color:var(--c-accent,var(--martir)); }
.card__excerpt{ font-size:.9375rem; color:var(--muted); line-height:1.6; margin-top:.75rem; flex:1; }
.card__meta{ display:flex; align-items:center; gap:.5rem; margin-top:1.25rem; padding-top:1rem; border-top:1px solid var(--soft); font-size:.8125rem; color:var(--muted); }
.card__meta strong{ color:var(--ink); font-weight:600; }
.card__dot{ width:3px; height:3px; border-radius:50%; background:var(--areia); }
.blog-skeleton{ height:230px; border-radius:8px; background:linear-gradient(100deg,#f1e9db 30%,#e9dcc7 50%,#f1e9db 70%); background-size:200% 100%; animation:shimmer 1.4s linear infinite; }
@keyframes shimmer{ to{ background-position:-200% 0; } }
.empty{ grid-column:1/-1; padding:3.5rem 2rem; text-align:center; background:#fff; border-radius:10px; border:1px dashed var(--strong); }
.empty p{ color:var(--muted); font-family:var(--serif); font-style:italic; font-size:1.15rem; }
.empty a{ color:var(--martir); font-weight:600; font-style:normal; font-family:var(--sans); }

/* ---- SOCIAL ---- */
.social{ padding:clamp(4rem,7vw,6rem) 0; background:var(--carvao); color:#fff; text-align:center; }
.social__line{ font-family:var(--serif); font-style:italic; font-size:clamp(1.4rem,3vw,2rem); color:var(--areia-claro); }
.social__links{ display:flex; justify-content:center; gap:clamp(1.25rem,4vw,2.5rem); flex-wrap:wrap; margin-top:1.75rem; }
.social__links a{ font-size:.9375rem; font-weight:600; letter-spacing:.04em; color:rgba(255,255,255,.8); padding-bottom:.3rem; border-bottom:2px solid transparent; transition:all 200ms; }
.social__links a:hover{ color:#fff; border-color:var(--ouro); }

/* ---- FOOTER ---- */
.footer{ background:#100d0b; color:#fff; padding-block:clamp(3rem,5vw,4.5rem); border-top:3px solid transparent; border-image:var(--grad-fire-h) 1; }
.footer__top{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1.5rem; padding-bottom:1.75rem; border-bottom:1px solid var(--on-dark); margin-bottom:1.75rem; }
.footer__word{ height:54px; width:auto; }
.footer__tag{ font-family:var(--serif); font-style:italic; font-size:1.15rem; color:var(--areia); }
.footer__meta{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem; font-size:.8125rem; color:rgba(255,255,255,.6); }
.footer__meta a{ color:var(--areia); }
.footer__meta a:hover{ color:#fff; }

/* ---- REVEAL ---- */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity 700ms var(--ease),transform 700ms var(--ease); }
.reveal.is-in{ opacity:1; transform:none; }

/* ---- RESPONSIVO ---- */
@media (max-width:960px){
  .topnav__menu{ display:none; } .topnav__burger{ display:flex; }
  .topnav__menu.is-open{ display:flex; position:absolute; top:100%; left:0; right:0; flex-direction:column; background:rgba(29,29,27,.97); backdrop-filter:blur(16px); padding:1.25rem clamp(1.25rem,5vw,2.5rem); gap:1rem; border-bottom:1px solid var(--on-dark); }
  .tsd__grid{ grid-template-columns:1fr; } .tsd__card{ order:-1; }
  .grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:620px){
  .grid{ grid-template-columns:1fr; } .hero__cue{ display:none; } .hero{ min-height:560px; }
  .hero__sinete{ opacity:.1; }
}
@media (prefers-reduced-motion:reduce){
  .hero__slide.is-active .hero__img{ animation:none; transform:scale(1.05); }
  .hero__parallax{ transition:none; } .hero__dot.is-active::after{ transition:none; width:100%; }
  .blog-skeleton{ animation:none; } .reveal{ opacity:1; transform:none; transition:none; }
}
