/* novelstarter.com — a loja.
   Padrão da categoria (herói → catálogo → FAQ), executado sem ironia, na estética que ela
   pinou: cores vivas, geometria, coisa organizada, blueprint, arquitetura.
   O blueprint aqui é ORGANIZAÇÃO, não fantasia: a grade da folha, a faixa de título de cada
   seção com contagem, a cor de camada que diz o tipo (vermelho = outline, verde = world). */

:root{
  --sheet:#F7F8FA;  --ink:#0E1B2E;  --muted:#5B6578;  --grid:#DDE2EA;  --line:#C9D0DB;
  --blue:#1B4FD8;   --blue-dk:#12379A;
  --btn:#0E1B2E;    /* ação = o tinta, a cor mais escura da página (faixa da lista, rodapé); texto branco. Pedido dela em 04/09 */
  --red:#C8102E;    --teal:#0E7C6B;  --yellow:#F5B700;
  --sans:"Barlow",system-ui,sans-serif;  --cond:"Barlow Condensed","Barlow",system-ui,sans-serif;
  --wrap:1200px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;color:var(--ink);background:var(--sheet);font:17px/1.6 var(--sans)}
/* A grade de desenho é o papel das FOLHAS (o espécime do herói, a caixa de compra, a gaveta
   vazia), não papel de parede da página inteira — uma prancheta tem folhas quadriculadas
   sobre uma mesa lisa. */
.sheet,.buy,.drawer-empty{background-color:#fff;
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:24px 24px;background-position:-1px -1px}
a{color:var(--blue);text-decoration:underline;text-underline-offset:.15em}
a:hover{color:var(--blue-dk)}
img{max-width:100%;height:auto;display:block}
h1,h2,h3{margin:0;font-weight:700;letter-spacing:-.015em;line-height:1.08;text-wrap:balance}
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:32px}
.skip{position:absolute;left:-9999px;top:8px;background:var(--ink);color:#fff;padding:8px 12px;z-index:99}
.skip:focus{left:8px}
:where(a,button,summary,input):focus-visible{outline:3px solid var(--blue);outline-offset:2px}

/* ── Rótulos condensados: a caligrafia de prancheta. Só para dado, nunca para prosa. ── */
.lbl{font-family:var(--cond);font-weight:600;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.lbl.outline{color:var(--red)} .lbl.world{color:var(--teal)}

/* ── Botões: retângulo, canto vivo, uma cor. ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 24px;
  background:var(--btn);color:#fff;border:2px solid var(--btn);text-decoration:none;
  font-family:var(--cond);font-weight:700;font-size:1.02rem;letter-spacing:.06em;text-transform:uppercase;
  transition:background .18s,border-color .18s,color .18s}
.btn:hover{background:var(--blue-dk);border-color:var(--blue-dk);color:#fff}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:#fff}
.btn.lg{min-height:56px;padding:0 30px;font-size:1.1rem}
/* O payhip.js redesenha o botão em tempo de execução (verde, Helvetica, canto 5px) por cima
   desta folha. Especificidade maior não bastou. !important aqui é o caso legítimo: estilo
   injetado por script de terceiro, na ação mais importante da loja. */
.btn.payhip-buy-button,.btn.payhip-buy-button:link,.btn.payhip-buy-button:visited{
  background:var(--btn)!important;background-image:none!important;color:#fff!important;
  border:2px solid var(--btn)!important;border-radius:0!important;
  font-family:var(--cond)!important;font-weight:700!important;font-size:inherit!important;
  letter-spacing:.06em!important;text-transform:uppercase!important;
  box-shadow:none!important;text-shadow:none!important;line-height:1!important;
  padding:0 24px!important;min-height:48px!important;display:inline-flex!important;align-items:center!important}
.btn.lg.payhip-buy-button{padding:0 30px!important;min-height:56px!important;font-size:1.1rem!important}
.btn.payhip-buy-button:hover,.btn.payhip-buy-button:focus-visible{background:var(--blue-dk)!important;border-color:var(--blue-dk)!important;color:#fff!important}

/* ── Cabeçalho ── */
.top{position:sticky;top:0;z-index:20;background:rgba(247,248,250,.94);backdrop-filter:blur(10px);border-bottom:2px solid var(--ink)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:68px}
.brand{display:flex;align-items:baseline;gap:12px;text-decoration:none;color:var(--ink)}
.brand b{font-family:var(--cond);font-weight:700;font-size:1.55rem;letter-spacing:.02em;text-transform:uppercase}
.brand span{font-family:var(--cond);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.nav{display:flex;align-items:center;gap:26px}
.nav a{font-family:var(--cond);font-weight:600;font-size:.98rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);text-decoration:none}
.nav a:hover{color:var(--blue)}
.nav .btn{min-height:40px;padding:0 16px;font-size:.92rem;color:#fff}
.nav .btn:hover{color:#fff}

/* ── Herói ── */
.hero{padding:72px 0 64px}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:56px;align-items:center}
.hero h1{font-size:clamp(2.4rem,5vw,4.4rem);margin:14px 0 20px}
.hero .lead{font-size:1.2rem;color:var(--muted);max-width:50ch;margin:0 0 30px;text-wrap:pretty}
.cta{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:30px}
.facts{display:flex;flex-wrap:wrap;gap:8px 26px;padding-top:22px;border-top:2px solid var(--ink)}
.facts span{font-family:var(--cond);font-weight:600;font-size:.88rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.facts span::before{content:"";display:inline-block;width:10px;height:10px;background:var(--blue);margin-right:10px;vertical-align:-1px}

/* A folha de espécime do herói: a capa do produto que está à venda, com as cotas em volta.
   É prova (o objeto real), não ilustração. */
.sheet{position:relative;border:2px solid var(--ink);padding:28px 28px 24px}
.sheet::before{content:"";position:absolute;inset:10px;border:1px solid var(--line);pointer-events:none}
.sheet .row{display:grid;grid-template-columns:150px 1fr;gap:22px;align-items:start}
.sheet img{width:150px;aspect-ratio:2/3;object-fit:cover;border:1px solid var(--ink)}
.sheet dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:.98rem}
.sheet dt{font-family:var(--cond);font-weight:600;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding-top:3px}
.sheet dd{margin:0}
.sheet .tb{margin-top:22px;padding-top:14px;border-top:2px solid var(--ink);display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:12px}
.sheet .tb .lbl{color:var(--ink)}
.sheet h2 a{color:inherit;text-decoration:underline;text-decoration-color:var(--blue);text-underline-offset:.18em}
.sheet .tb .btn{min-height:42px;padding:0 16px;font-size:.92rem}
.sheet .price{font-family:var(--cond);font-weight:700;font-size:1.5rem;letter-spacing:.02em}
.sheet .empty{padding:48px 0;text-align:center;color:var(--muted)}

/* ── Catálogo ── */
.catalog{padding:56px 0 72px}
.catalog > .wrap > h2{font-size:clamp(1.9rem,3.4vw,2.7rem);margin-bottom:8px}
.catalog .sub{color:var(--muted);margin:0 0 36px;max-width:60ch}

/* Faixa de título de cada gaveta: nome da camada, cor da camada e contagem — informação, não enfeite. */
.drawer{margin-bottom:44px}
.drawer-head{display:flex;align-items:center;gap:16px;padding:10px 0;border-top:3px solid var(--ink);border-bottom:1px solid var(--ink);margin-bottom:22px}
.drawer-head .sw{width:16px;height:16px;flex:none}
.drawer-head.outline .sw{background:var(--red)} .drawer-head.world .sw{background:var(--teal)}
.drawer-head h3{font-family:var(--cond);font-weight:700;font-size:1.35rem;letter-spacing:.08em;text-transform:uppercase}
.drawer-head .count{margin-left:auto;font-family:var(--cond);font-weight:600;font-size:.9rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px}

/* Card: imagem em cima, texto embaixo, preço e compra no rodapé — o padrão da categoria,
   com a barra de cor da camada no topo dizendo o tipo antes do texto. */
.card{display:flex;flex-direction:column;background:#fff;border:2px solid var(--ink);text-decoration:none;color:inherit;
  transition:transform .18s,border-color .18s}
.card:hover{transform:translateY(-3px);border-color:var(--blue)}
.card .cover{display:block;aspect-ratio:2/3;object-fit:cover;width:100%;border-bottom:2px solid var(--ink)}
.card .body{display:flex;flex-direction:column;gap:8px;padding:18px 18px 16px;flex:1}
.card h4{margin:0;font-size:1.28rem;font-weight:700;line-height:1.15;letter-spacing:-.01em}
.card h4 a{color:inherit;text-decoration:none}
.card h4 a:hover{color:var(--blue)}
.card .blurb{margin:0;color:var(--muted);font-size:.98rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.card .foot{margin-top:auto;padding-top:14px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}
.card .price{font-family:var(--cond);font-weight:700;font-size:1.35rem}
.card .price small{display:block;font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.card .btn{min-height:42px;padding:0 16px;font-size:.92rem}
.card.sold .cover{filter:grayscale(1) contrast(.9);opacity:.75}
.tag-sold{display:inline-block;background:var(--yellow);color:var(--ink);font-family:var(--cond);font-weight:700;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;padding:6px 10px}

/* Gaveta vazia: dito com dignidade, e com a ação certa (a lista). */
.drawer-empty{border:2px dashed var(--line);padding:34px 28px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}
.drawer-empty p{margin:0;color:var(--muted);max-width:48ch}

/* ── Lista ── */
.list{padding-block:0 72px}
.list .box{background:var(--ink);color:#fff;padding:44px 40px;display:grid;grid-template-columns:minmax(0,1.2fr) auto;gap:32px;align-items:center}
.list h2{font-size:clamp(1.7rem,3vw,2.4rem);margin-bottom:10px}
.list p{margin:0;color:#C9D0DB;max-width:56ch}
.list .btn{background:#fff;border-color:#fff;color:var(--ink)}
.list .btn:hover{background:var(--blue-dk);border-color:var(--blue-dk);color:#fff}

/* ── FAQ ── */
.faq{padding-block:0 80px}
.faq h2{font-size:clamp(1.7rem,3vw,2.4rem);margin-bottom:22px}
.faq details{border-top:1px solid var(--ink);padding:16px 0}
.faq details:last-of-type{border-bottom:1px solid var(--ink)}
.faq summary{cursor:pointer;font-weight:700;font-size:1.08rem;list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--cond);font-weight:700;color:var(--blue);font-size:1.4rem;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:12px 0 0;color:var(--muted);max-width:68ch}

/* ── Rodapé ── */
.site-foot{border-top:2px solid var(--ink);padding-block:24px 36px;font-family:var(--cond);font-size:.9rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px}
.site-foot a{color:var(--ink);text-decoration:none}

/* ── Página de produto ── */
.crumb{padding-block:18px 0}
.crumb a{font-family:var(--cond);font-weight:600;font-size:.9rem;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;color:var(--muted)}
.crumb a:hover{color:var(--blue)}
.product{padding:28px 0 72px}
.product .wrap{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);grid-template-areas:"media head" "media body";gap:14px 56px;align-items:start}
.product .media{grid-area:media}.product .ph{grid-area:head}.product .pbody{grid-area:body}
.product .media{position:sticky;top:96px}
.product .media img{width:100%;max-width:460px;aspect-ratio:2/3;object-fit:cover;border:2px solid var(--ink)}
.product h1{font-size:clamp(2rem,4vw,3.4rem);margin:0 0 6px}
.product .quote{font-size:1.25rem;line-height:1.45;color:var(--muted);margin:0 0 26px;max-width:46ch;text-wrap:pretty}
.buy{display:flex;flex-wrap:wrap;align-items:center;gap:18px 26px;padding:22px 24px;border:2px solid var(--ink);margin-bottom:34px}
.buy .price{font-family:var(--cond);font-weight:700;font-size:2rem;line-height:1}
.buy .price small{display:block;font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.buy .note{flex-basis:100%;margin:0;font-size:.92rem;color:var(--muted)}
.receive{margin:0 0 34px;padding:20px 24px;border:2px solid var(--ink);background:#fff}
.receive h2{font-size:1.25rem;margin:0 0 12px}
.receive dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:8px 16px;font-size:.98rem}
.receive dt{font-family:var(--cond);font-weight:600;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding-top:3px}
.receive dd{margin:0}
.desc{max-width:66ch;font-size:1.06rem}
.desc h2{font-size:1.5rem;margin:34px 0 10px}
.desc h3{font-size:1.2rem;margin:26px 0 8px}
.desc p,.desc li{color:#2B3547}
.desc blockquote{margin:24px 0;padding:20px 24px;border:2px solid var(--ink);background:#fff;color:var(--ink);font-size:1.12rem}
.licence{margin-top:40px;padding:24px;background:#fff;border:2px solid var(--ink)}
.licence h2{font-size:1.25rem;margin-bottom:8px}
.licence p{margin:0;color:var(--muted)}

@media (max-width:900px){
  .hero .wrap{grid-template-columns:minmax(0,1fr);gap:36px}
  .product .wrap{grid-template-columns:minmax(0,1fr);grid-template-areas:"media" "head" "body";gap:20px}
  .product .media{position:static}
  .list .box{grid-template-columns:1fr;padding:32px 24px}
  .nav{gap:16px} .nav .hide-m{display:none}
}
@media (max-width:600px){
  .wrap{padding-inline:18px}
  .brand span,.nav .hide-s{display:none}
  .nav{gap:12px}
  .hero{padding:44px 0 40px}
  .sheet .row{grid-template-columns:110px 1fr;gap:16px} .sheet img{width:110px}
  .grid{grid-template-columns:1fr}
  /* Capa ao lado do título (não uma miniatura órfã), e a compra logo abaixo, antes da
     citação: canon de comprar acima da dobra sem rebaixar o objeto. */
  .product .wrap{grid-template-columns:140px minmax(0,1fr);grid-template-areas:"media head" "body body";gap:14px 16px;align-items:center}
  .product .media img{max-width:140px}
  .product h1{font-size:1.55rem}
  .product .pbody{display:flex;flex-direction:column}
  .product .pbody > .buy{order:-1;margin:8px 0 22px}
  .product .quote{margin-top:0}
}
@media (prefers-reduced-motion:reduce){ .card,.btn{transition:none} .card:hover{transform:none} }

/* ── Writer: planos (writer.php) ── */
.writer-hero .lbl{display:inline-block}
.plans{padding:24px 0 72px}
.plans h2{font-size:clamp(1.9rem,3.4vw,2.7rem);margin-bottom:8px}
.plans .sub{color:var(--muted);margin:0 0 30px;max-width:60ch}
.plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:22px;align-items:stretch}
.plan{display:flex;flex-direction:column;gap:12px;background:#fff;border:2px solid var(--ink);padding:28px}
.plan h3{font-family:var(--cond);font-weight:700;font-size:1.35rem;letter-spacing:.08em;text-transform:uppercase}
.plan-price{margin:0;font-family:var(--cond);font-weight:700;font-size:2.6rem;line-height:1}
.plan-price small{display:inline-block;margin-left:10px;font-size:.85rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.plan ul{margin:6px 0 10px;padding-left:1.1em;display:grid;gap:6px}
.plan .btn{align-self:flex-start;margin-top:auto}
.plan .note{margin:0;color:var(--muted);font-size:.95rem}
.plan-main{border-width:3px}
.plans .fine{margin:22px 0 0;color:var(--muted);font-size:.95rem;max-width:80ch}

/* ── Páginas legais (pagina.php) ── */
.legal{padding:40px 0 72px}
.legal .wrap{max-width:80ch}
.legal h1{font-size:clamp(2rem,4vw,3rem);margin-bottom:6px}
.legal h2{font-size:1.4rem;margin:34px 0 10px;padding-top:14px;border-top:2px solid var(--ink)}
.legal p,.legal li{color:var(--ink)}
.legal ul{padding-left:1.2em}
.legal table{width:100%;border-collapse:collapse;margin:14px 0;font-size:.95rem}
.legal th,.legal td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:10px 12px 10px 0}
.legal th{font-family:var(--cond);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.85rem;border-bottom:2px solid var(--ink)}
.legal-nav{display:flex;flex-wrap:wrap;gap:18px;margin-top:44px;padding-top:16px;border-top:2px solid var(--ink)}
.legal-nav a{font-family:var(--cond);font-weight:600;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:var(--ink)}
.legal-nav a[aria-current="page"]{color:var(--blue)}
@media (max-width:640px){.legal table,.legal thead,.legal tbody,.legal tr,.legal th,.legal td{display:block}.legal thead{display:none}.legal td{border:0;padding:4px 0}.legal tr{border-bottom:1px solid var(--line);padding:8px 0}}
/* Com o link do Writer no menu, o celular não comporta tudo: o nome da loja já leva ao catálogo. */
.brand b,.nav .btn{white-space:nowrap}
@media (max-width:600px){ .nav .hide-xs{display:none} }
@media (max-width:380px){ .brand b{font-size:1.3rem} .nav{gap:10px} }
