
:root {
  --ngpt-brand:#1f4b3f;
  --ngpt-page:#f4f7f5;
  --ngpt-surface:#ffffff;
  --ngpt-ink:#10201b;
  --ngpt-text:#26332f;
  --ngpt-muted:#66736f;
  --ngpt-border:rgba(31,75,63,.16);
  --ngpt-soft:#f5f8f7;
  --ngpt-layout-max:960px;
  --ngpt-copy-max:780px;
}

html, body { overflow-x:clip; }

/* Alguns temas abrem o <main class="site-main"> dentro do header.php.
   Neutralizamos apenas em artigos NGPT para o template não herdar grelhas,
   larguras ou paddings do tema. */
.site-main,
main.site-main,
#main-content.site-main {
  display:block !important;
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  background:var(--ngpt-page) !important;
}

.ngpt-single-content,
.ngpt-single-content * {
  box-sizing:border-box;
}

/* ÚNICO contentor principal do artigo. */
.ngpt-single-content {
  display:block !important;
  width:min(var(--ngpt-layout-max), calc(100% - 56px)) !important;
  max-width:var(--ngpt-layout-max) !important;
  min-width:0 !important;
  margin:clamp(30px,4vw,56px) auto 88px !important;
  padding:0 !important;
  color:var(--ngpt-text);
  background:transparent !important;
}

.ngpt-single-header {
  width:100%;
  max-width:940px;
  margin:0 0 30px;
  padding:0;
}

.ngpt-single-brand {
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
  margin:0 0 18px;
}

.ngpt-single-logo-wrap {
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  flex:0 0 auto;
  min-width:0;
  max-width:132px;
  max-height:38px;
}

.ngpt-single-logo-wrap img {
  display:block !important;
  width:auto !important;
  height:auto !important;
  max-width:132px !important;
  max-height:38px !important;
  margin:0 !important;
  padding:0 !important;
  object-fit:contain !important;
}

.ngpt-single-company {
  color:var(--ngpt-brand);
  font-size:.93rem;
  font-weight:800;
  line-height:1.3;
  letter-spacing:.01em;
}

.ngpt-single-eyebrow {
  display:inline-flex;
  align-items:center;
  width:auto;
  margin:0 0 14px;
  color:var(--ngpt-brand);
  font-size:.76rem;
  line-height:1.4;
  font-weight:850;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.ngpt-single-title {
  width:100% !important;
  max-width:20ch !important;
  margin:0 0 18px !important;
  padding:0 !important;
  color:#0b2033 !important;
  background:none !important;
  border:0 !important;
  font-size:clamp(2.25rem,3.55vw,3.35rem) !important;
  line-height:1.035 !important;
  letter-spacing:-.035em !important;
  font-weight:700 !important;
  overflow-wrap:normal;
  word-break:normal;
  text-wrap:balance;
}

.ngpt-single-deck {
  max-width:860px;
  margin:0 0 20px !important;
  padding:0 !important;
  color:#53606b !important;
  font-size:clamp(1rem,1.35vw,1.12rem) !important;
  line-height:1.65 !important;
  text-wrap:pretty;
}

.ngpt-single-meta {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:7px 10px;
  margin:0;
  color:#697686;
  font-size:.92rem;
  line-height:1.45;
}

/* A imagem usa exatamente o mesmo contentor do título. */
.ngpt-single-featured {
  position:relative;
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  margin:0 0 clamp(34px,4.8vw,54px) !important;
  padding:0 !important;
  overflow:hidden !important;
  aspect-ratio:16/9;
  border:1px solid rgba(31,75,63,.10);
  border-radius:18px;
  background:#e6ece9;
  box-shadow:0 16px 42px rgba(16,32,27,.08);
}

.ngpt-single-featured img,
.ngpt-single-featured img.wp-post-image,
.ngpt-single-featured picture,
.ngpt-single-featured picture img {
  display:block !important;
  width:100% !important;
  max-width:none !important;
  height:100% !important;
  max-height:none !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  object-fit:cover !important;
  object-position:center center !important;
}

.ngpt-single-article-body {
  width:100% !important;
  max-width:100% !important;
  margin:0 !important;
  padding:0 !important;
}

/* ---------- Conteúdo renderizado pelo NGPT ---------- */
.ngpt-single-article-body .ngpt-article {
  --ngpt-border:rgba(31,75,63,.16);
  --ngpt-soft:#f5f8f7;
  --ngpt-text:#202a35;
  --ngpt-muted:#667085;
  width:100% !important;
  max-width:var(--ngpt-copy-max) !important;
  min-width:0 !important;
  margin:0 auto !important;
  padding:0 !important;
  color:var(--ngpt-text);
  font-size:clamp(17px,1.08vw,19px);
  line-height:1.78;
  text-rendering:optimizeLegibility;
  overflow-wrap:break-word;
}

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

/* Compatibilidade com artigos antigos: o header do template já mostra
   marca, autoria e imagem, portanto estas cópias guardadas no post somem. */
.ngpt-single-article-body .ngpt-article > .ngpt-brandline,
.ngpt-single-article-body .ngpt-article > .ngpt-byline,
.ngpt-single-article-body .ngpt-article > .ngpt-featured-image {
  display:none !important;
}

.ngpt-brandline { display:flex; align-items:center; gap:.75rem; color:var(--ngpt-brand); font-weight:700; font-size:.95rem; margin:0 0 .8rem; }
.ngpt-brand-logo { width:auto; height:32px; max-width:150px; object-fit:contain; }
.ngpt-byline { display:flex; gap:.55rem; align-items:center; flex-wrap:wrap; color:var(--ngpt-muted); font-size:.92rem; margin-bottom:1.5rem; }
.ngpt-featured-image { margin:1.3rem 0 2rem; }
.ngpt-featured-image img,.ngpt-preview-hero img { width:100%; height:auto; border-radius:18px; display:block; }

.ngpt-article br { line-height:1; }
.ngpt-brandline br,
.ngpt-byline br,
.ngpt-cta-meta br { display:none !important; }
.ngpt-article p:empty { display:none !important; }
.ngpt-article img {
  display:block;
  max-width:100% !important;
  height:auto !important;
  margin-left:auto;
  margin-right:auto;
}

.ngpt-summary,
.ngpt-key-points,
.ngpt-toc {
  margin:0 0 24px;
  border:1px solid var(--ngpt-border);
  border-radius:18px;
  background:rgba(255,255,255,.72);
  padding:clamp(20px,3vw,30px);
  box-shadow:0 8px 26px rgba(16,32,27,.035);
}

.ngpt-summary {
  border-left:4px solid var(--ngpt-brand);
  background:linear-gradient(135deg,rgba(31,75,63,.055),rgba(255,255,255,.82));
}
.ngpt-summary > strong,
.ngpt-toc > strong {
  display:block;
  margin-bottom:10px;
  color:var(--ngpt-brand);
  font-weight:800;
}
.ngpt-summary p:last-child,
.ngpt-key-points ul,
.ngpt-toc ol { margin-bottom:0; }
.ngpt-key-points h2 {
  font-size:1.22rem !important;
  line-height:1.3 !important;
  margin:0 0 .75rem !important;
  color:#17211e !important;
}
.ngpt-key-points li::marker { color:var(--ngpt-brand); }
.ngpt-key-points ul,
.ngpt-toc ol { padding-left:1.25em; }
.ngpt-key-points li + li,
.ngpt-toc li + li { margin-top:8px; }
.ngpt-toc-level-3 { margin-left:1rem !important; font-size:.96em; }
.ngpt-toc a,
.ngpt-body a { color:var(--ngpt-brand); text-underline-offset:3px; }

.ngpt-body { padding-top:6px; }
.ngpt-body h2,
.ngpt-faq h2 {
  margin:clamp(40px,5vw,58px) 0 15px !important;
  color:#0e1d2d !important;
  font-size:clamp(1.7rem,2.45vw,2.2rem) !important;
  line-height:1.18 !important;
  letter-spacing:-.02em;
  scroll-margin-top:100px;
  text-wrap:balance;
}
.ngpt-body h3 {
  margin:27px 0 10px !important;
  color:#142333 !important;
  font-size:clamp(1.2rem,1.6vw,1.42rem) !important;
  line-height:1.3 !important;
  scroll-margin-top:100px;
}
.ngpt-body p { margin:0 0 1.12em; }
.ngpt-body ul,
.ngpt-body ol { margin:0 0 1.25rem; padding-left:1.35em; }
.ngpt-body li + li { margin-top:.35rem; }
.ngpt-body blockquote {
  border-left:4px solid var(--ngpt-brand);
  background:var(--ngpt-soft);
  margin:1.7rem 0;
  padding:1.1rem 1.3rem;
  border-radius:0 14px 14px 0;
}
.ngpt-body table {
  display:block;
  width:100%;
  max-width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  border-collapse:collapse;
  margin:1.6rem 0;
  font-size:.96rem;
}
.ngpt-body th,
.ngpt-body td { border:1px solid var(--ngpt-border); padding:.75rem .85rem; text-align:left; }
.ngpt-body th { background:var(--ngpt-soft); }

.ngpt-faq { margin-top:3rem; }
.ngpt-faq details {
  border:1px solid var(--ngpt-border);
  background:#fff;
  border-radius:14px;
  padding:0;
  margin:.7rem 0;
  overflow:hidden;
}
.ngpt-faq summary {
  cursor:pointer;
  font-weight:800;
  color:#17211e;
  padding:1rem 1.15rem;
  list-style-position:inside;
}
.ngpt-faq details div { padding:0 1.15rem 1rem; color:#374151; }

.ngpt-cta {
  margin:3.2rem 0 0;
  border-radius:20px;
  padding:1.55rem;
  background:var(--ngpt-brand);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
}
.ngpt-cta h2 { color:#fff !important; margin:0 0 .4rem !important; font-size:1.55rem !important; }
.ngpt-cta p { margin:.2rem 0; opacity:.94; }
.ngpt-cta-meta { display:flex; flex-wrap:wrap; gap:.8rem; font-size:.9rem; opacity:.88; margin-top:.7rem; }
.ngpt-cta-button {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  min-width:155px;
  padding:.85rem 1.05rem;
  border-radius:999px;
  background:#fff;
  color:var(--ngpt-brand) !important;
  text-decoration:none !important;
  font-weight:850;
  white-space:nowrap;
}

.ngpt-body a,
.ngpt-toc a,
.ngpt-cta a { overflow-wrap:anywhere; }

/* Fallback se um builder externo impedir o template PHP próprio. */
body.ngpt-generated-post.ngpt-template-fallback .ngpt-page-title-fallback {
  box-sizing:border-box;
  display:block;
  width:min(var(--ngpt-layout-max),calc(100% - 48px)) !important;
  max-width:20ch !important;
  margin:40px auto 20px !important;
  padding:0 !important;
  color:#0b2033 !important;
  font-size:clamp(2.25rem,3.55vw,3.35rem) !important;
  line-height:1.035 !important;
  letter-spacing:-.035em !important;
  overflow-wrap:normal;
  word-break:normal;
  text-wrap:balance;
}
body.ngpt-generated-post.ngpt-template-fallback .ngpt-featured-fallback {
  display:block !important;
  width:min(var(--ngpt-layout-max),calc(100% - 48px)) !important;
  max-width:var(--ngpt-layout-max) !important;
  height:auto !important;
  max-height:620px !important;
  margin:0 auto 40px !important;
  border-radius:18px !important;
  object-fit:cover !important;
  object-position:center !important;
}

/* ---------- Preview público seguro ---------- */
.ngpt-preview-page { margin:0; background:#f5f7f6; color:#1f2933; }
.ngpt-preview-shell { max-width:980px; margin:40px auto; background:#fff; padding:42px; border-radius:24px; box-shadow:0 12px 45px rgba(16,24,40,.08); }
.ngpt-preview-badge { display:inline-block; font:700 12px/1.2 system-ui,sans-serif; letter-spacing:.06em; padding:.5rem .7rem; border-radius:999px; background:#fff4e5; color:#934b00; margin-bottom:1rem; }
.ngpt-preview-title { font:800 clamp(2rem,5vw,3.4rem)/1.08 system-ui,sans-serif; letter-spacing:-.03em; margin:.25rem 0 1.5rem; color:#111827; }
.ngpt-preview-hero { margin:0 0 2rem; }
.ngpt-public-preview-badge{
  position:fixed;
  z-index:999999;
  top:46px;
  left:50%;
  transform:translateX(-50%);
  padding:8px 14px;
  border-radius:999px;
  background:#fff4e5;
  color:#8a4b08;
  border:1px solid #f0c98b;
  font:700 12px/1.2 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.04em;
  box-shadow:0 6px 24px rgba(0,0,0,.12);
}

@media (max-width:760px) {
  .ngpt-single-content {
    width:calc(100% - 28px) !important;
    max-width:none !important;
    margin:28px auto 56px !important;
  }
  .ngpt-single-header { margin-bottom:22px; }
  .ngpt-single-brand { margin-bottom:14px; }
  .ngpt-single-logo-wrap,
  .ngpt-single-logo-wrap img { max-width:112px !important; max-height:32px !important; }
  .ngpt-single-company { font-size:.88rem; }
  .ngpt-single-eyebrow { margin-bottom:10px; }
  .ngpt-single-title {
    max-width:none !important;
    font-size:clamp(2.05rem,9.8vw,3rem) !important;
    line-height:1.06 !important;
    letter-spacing:-.026em !important;
    margin-bottom:14px !important;
  }
  .ngpt-single-deck { font-size:1rem !important; line-height:1.58 !important; margin-bottom:16px !important; }
  .ngpt-single-meta { font-size:.86rem; gap:5px 8px; }
  .ngpt-single-featured {
    aspect-ratio:4/3;
    margin-bottom:32px !important;
    border-radius:12px;
    box-shadow:none;
  }
  .ngpt-single-article-body .ngpt-article {
    max-width:100% !important;
    font-size:17px;
    line-height:1.72;
  }
  .ngpt-summary,
  .ngpt-key-points,
  .ngpt-toc { padding:1.1rem 1rem; border-radius:14px; }
  .ngpt-body h2,
  .ngpt-faq h2 { font-size:clamp(1.5rem,7vw,1.9rem) !important; margin-top:2.2rem !important; }
  .ngpt-body h3 { font-size:1.18rem !important; }
  .ngpt-cta { align-items:flex-start; flex-direction:column; padding:1.3rem; border-radius:16px; }
  .ngpt-cta-button { width:100%; min-width:0; white-space:normal; text-align:center; }
  .ngpt-faq summary { padding:.95rem 1rem; }
  .ngpt-faq details div { padding:0 1rem .95rem; }
  body.ngpt-generated-post.ngpt-template-fallback .ngpt-page-title-fallback,
  body.ngpt-generated-post.ngpt-template-fallback .ngpt-featured-fallback {
    width:calc(100% - 28px) !important;
  }
  .ngpt-preview-shell { margin:0; border-radius:0; padding:24px 18px; }
}

@media (max-width:420px) {
  .ngpt-single-content { width:calc(100% - 24px) !important; margin-top:22px !important; }
  .ngpt-single-title { font-size:clamp(1.95rem,10vw,2.55rem) !important; }
  .ngpt-single-brand { gap:9px; }
  .ngpt-single-company { display:none; }
  .ngpt-single-featured { aspect-ratio:1/1; }
}
