:root{
  --fg:#1c2a24;
  --muted:#4d5f57;
  --bg:#f7f4ef;
  --bg-soft:#efeae2;
  --card:#fffdf9;
  --brand:#2f6f5e;
  --brand-d:#245749;
  --brand-soft:#e4f0eb;
  --accent:#c9863a;
  --line:#ddd5c8;
  --warn-bg:#fff3d9;
  --warn:#6b4508;
  --draft-bg:#ece7de;
  --draft-fg:#3d4a44;
  --header-fg:#f7f4ef;
  --shadow:0 1px 2px rgba(28,42,36,.04),0 8px 24px rgba(28,42,36,.06);
  --radius:14px;
  --radius-sm:10px;
  --focus:#c9863a;
  --max:44rem;
  --font:system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",Arial,sans-serif;
}
@media (prefers-color-scheme:dark){
  :root{
    --fg:#e8efe9;
    --muted:#a7b7af;
    --bg:#15201b;
    --bg-soft:#1c2a24;
    --card:#1b2923;
    --brand:#7eb8a8;
    --brand-d:#a6d4c8;
    --brand-soft:#24352e;
    --accent:#e0a85a;
    --line:#2f4038;
    --warn-bg:#3a2e14;
    --warn:#f0d39a;
    --draft-bg:#2a3832;
    --draft-fg:#c5d2cb;
    --header-fg:#f7f4ef;
    --shadow:0 1px 2px rgba(0,0,0,.2),0 8px 24px rgba(0,0,0,.28);
    --focus:#e0a85a;
  }
}
*{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:none!important;transition:none!important}
}
body{
  margin:0;
  font-family:var(--font);
  font-size:1.0625rem;
  line-height:1.65;
  color:var(--fg);
  background:
    radial-gradient(1200px 420px at 10% -10%,rgba(47,111,94,.08),transparent 60%),
    radial-gradient(900px 380px at 100% 0%,rgba(201,134,58,.07),transparent 55%),
    var(--bg);
  min-height:100vh;
}
img{max-width:100%;height:auto;display:block}
.wrap{max-width:var(--max);margin:0 auto;padding:0 1.1rem}
a{color:var(--brand);text-underline-offset:.18em}
a:hover{color:var(--brand-d)}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:4px}
.skip{
  position:absolute;left:-9999px;top:0;z-index:20;
  background:#111;color:#fff;padding:.65rem 1rem;border-radius:0 0 8px 0
}
.skip:focus{left:0}
.site-header{
  background:linear-gradient(135deg,#2f6f5e 0%,#245749 100%);
  color:var(--header-fg);
  padding:0;
  border-bottom:1px solid rgba(255,255,255,.08);
  position:sticky;top:0;z-index:5;
  backdrop-filter:saturate(1.1);
}
@media (prefers-color-scheme:dark){
  .site-header{background:linear-gradient(135deg,#1f3d34 0%,#152820 100%)}
}
.site-header .wrap{
  display:flex;flex-wrap:wrap;gap:0 .4rem;
  align-items:center;justify-content:space-between;
  min-height:52px;padding:0 .75rem
}
.brand{
  color:inherit;font-weight:750;text-decoration:none;font-size:.82rem;
  letter-spacing:-.015em;display:inline-flex;align-items:center;gap:.35rem;
  min-height:44px;flex:0 1 auto;white-space:nowrap;max-width:none;min-width:0
}
.brand[aria-current=page]{opacity:1}
.brand-mark{
  width:1.4rem;height:1.4rem;border-radius:6px;flex:none;
  background:transparent;
  display:inline-grid;place-items:center;overflow:hidden;
  box-shadow:0 0 0 1px rgba(255,255,255,.18)
}
.brand-mark img{width:100%;height:100%;object-fit:cover;display:block}
.brand-text{font-weight:750;letter-spacing:-.02em}
.brand-tag{display:none;font-weight:450;opacity:.9;font-size:.82rem}
/* Mobile: hide Início (brand links home) and Sobre (in footer); no horizontal scroll */
.nav-desk{display:none}
.site-header nav{
  flex:0 1 auto;min-width:0;overflow:visible
}
.site-header nav ul{
  list-style:none;margin:0;padding:0;display:flex;flex-wrap:nowrap;
  gap:0;justify-content:flex-end
}
.site-header nav a{
  color:inherit;text-decoration:none;
  padding:.4rem .38rem;border-radius:999px;display:inline-flex;align-items:center;
  min-height:44px;font-size:.8rem;white-space:nowrap
}
.site-header nav a[aria-current=page],
.site-header nav a:hover,
.brand[aria-current=page]{
  background:rgba(255,255,255,.12);text-decoration:none
}
.brand[aria-current=page]{border-radius:999px;padding:0 .45rem 0 .2rem}
main.wrap{padding:1.15rem 1.1rem 3rem}
h1{font-size:clamp(1.55rem,4vw,2.15rem);line-height:1.22;margin:.35rem 0 1rem;letter-spacing:-.02em}
h2{font-size:1.28rem;margin:2.1rem 0 .7rem;letter-spacing:-.01em}
h3{font-size:1.08rem;margin:0 0 .35rem;line-height:1.35}
p{overflow-wrap:anywhere}
blockquote{
  margin:1.1rem 0;padding:.9rem 1rem;
  background:var(--brand-soft);
  border-left:4px solid var(--brand);
  border-radius:0 var(--radius-sm) var(--radius-sm) 0
}
blockquote p{margin:.3rem 0}
blockquote ul{margin:.35rem 0;padding-left:1.2rem}
li{margin:.25rem 0;overflow-wrap:anywhere}
.lead{font-size:1.12rem;color:var(--muted);max-width:38rem}
.alert{
  background:var(--warn-bg);color:var(--warn);
  padding:.9rem 1rem;border-radius:var(--radius-sm);
  border:1px solid color-mix(in srgb,var(--warn) 18%,transparent)
}
.alert a{color:var(--warn);font-weight:650}
.hero{margin-bottom:1.5rem}
.hero-fig{
  margin:0 0 1rem;border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow);background:var(--bg-soft);
  max-height:180px
}
.hero-fig img{width:100%;height:180px;object-fit:cover}
.guia-hero{
  margin:0 0 1rem;border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow);background:var(--bg-soft);
  max-height:180px
}
.guia-hero img{width:100%;height:180px;object-fit:cover}
.cards{
  list-style:none;padding:0;margin:1rem 0 0;
  display:grid;gap:1rem
}
.card{
  position:relative;
  background:var(--card);border:1px solid var(--line);
  border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow);
  display:flex;flex-direction:column;
  transition:transform .15s ease,box-shadow .15s ease
}
.card:hover{transform:translateY(-2px);box-shadow:0 4px 18px rgba(28,42,36,.1)}
.card:hover .card-cta{color:var(--brand-d)}
.card:focus-within{
  outline:3px solid var(--focus);outline-offset:3px
}
.card-media{
  aspect-ratio:16/9;background:var(--bg-soft);overflow:hidden;max-height:160px
}
.card-media img{width:100%;height:100%;object-fit:cover}
.card-body{padding:1rem 1.05rem 1.15rem;display:flex;flex-direction:column;gap:.35rem;flex:1}
.card .card-title a{
  color:var(--fg);text-decoration:none;
  display:inline;background:linear-gradient(transparent 92%, color-mix(in srgb,var(--brand) 35%,transparent) 0);
  background-size:0 100%;background-repeat:no-repeat;transition:background-size .2s
}
.card .card-title a::after{
  content:"";position:absolute;inset:0;z-index:1;border-radius:inherit
}
.card .card-title a:hover{color:var(--brand);background-size:100% 100%}
.card .card-title a:focus-visible{outline:none}
.card p{margin:0;color:var(--muted);font-size:.98rem}
.card-cta{
  margin-top:auto;padding-top:.45rem;font-weight:650;font-size:.95rem;color:var(--brand);text-decoration:none
}
.meta,.crumb{color:var(--muted);font-size:.95rem}
.crumb{margin:0 0 .35rem}
.draft{
  background:var(--draft-bg);color:var(--draft-fg);
  border-radius:999px;padding:.1rem .55rem;font-size:.82rem;font-weight:650
}
.tbc{background:var(--warn-bg);color:var(--warn);padding:0 .3rem;border-radius:4px}
a.ext::after{content:" ↗";font-size:.78em;opacity:.75}
.signup{
  background:var(--card);border:1px solid var(--line);
  border-radius:var(--radius);padding:1.15rem 1.2rem;margin:2.2rem 0;
  box-shadow:var(--shadow)
}
.signup h2{margin-top:.2rem}
/* Contacto expansível (home): <details>/<summary>, sem JS */
.signup-collapsible{padding:0;overflow:hidden}
.contacto-details{margin:0;border:0}
.contacto-summary{
  list-style:none;cursor:pointer;user-select:none;
  display:flex;align-items:center;justify-content:space-between;gap:.75rem;
  min-height:48px;padding:.85rem 1.2rem;
  font-weight:750;font-size:1.02rem;color:var(--fg);
  background:var(--brand-soft);
  border-bottom:1px solid transparent;
  transition:background .15s ease
}
.contacto-summary::-webkit-details-marker{display:none}
.contacto-summary::marker{content:""}
.contacto-summary:hover{background:color-mix(in srgb,var(--brand-soft) 80%,var(--brand) 20%)}
.contacto-summary:focus-visible{outline:3px solid var(--focus);outline-offset:-3px;border-radius:var(--radius)}
.contacto-summary-label{flex:1;min-width:0;line-height:1.35}
.contacto-chevron{
  flex:none;width:1.15rem;height:1.15rem;
  border-right:2.5px solid var(--brand);border-bottom:2.5px solid var(--brand);
  transform:rotate(45deg);margin-top:-.25rem;
  transition:transform .2s ease
}
.contacto-details[open]>.contacto-summary{
  border-bottom-color:var(--line);background:transparent
}
.contacto-details[open]>.contacto-summary .contacto-chevron{
  transform:rotate(-135deg);margin-top:.2rem
}
.contacto-panel{padding:1rem 1.2rem 1.15rem}
@media (prefers-reduced-motion:reduce){
  .contacto-chevron{transition:none}
}
label{display:block;font-weight:650;margin-bottom:.3rem}
.check label{display:inline;font-weight:450}
fieldset.tipo{
  border:0;margin:0 0 1rem;padding:0;min-width:0
}
fieldset.tipo legend{
  font-weight:650;margin-bottom:.55rem;padding:0
}
.tipo-opcoes{
  display:flex;flex-wrap:wrap;gap:.55rem
}
.tipo-pill{
  display:inline-flex;align-items:center;justify-content:center;
  gap:.5rem;margin:0;padding:.55rem 1rem;
  min-height:44px;min-width:44px;
  border:1px solid var(--line);border-radius:999px;
  background:var(--bg-soft);color:var(--fg);
  font-weight:600;cursor:pointer;user-select:none;
  transition:background .15s ease,border-color .15s ease,color .15s ease
}
.tipo-pill input[type=radio]{
  width:1.1rem;height:1.1rem;margin:0;flex:none;
  accent-color:var(--brand)
}
.tipo-pill:has(input:checked){
  background:var(--brand-soft);border-color:var(--brand);color:var(--brand-d)
}
.tipo-pill:has(input:focus-visible){
  outline:3px solid var(--focus);outline-offset:3px
}

.check{display:flex;gap:.6rem;align-items:flex-start}
.check input{
  margin-top:.35rem;width:1.25rem;height:1.25rem;flex:none;
  accent-color:var(--brand)
}
input[type=text],input[type=email],textarea{
  width:100%;font:inherit;padding:.75rem .8rem;
  border:1px solid color-mix(in srgb,var(--muted) 45%,var(--line));
  border-radius:10px;background:var(--card);color:var(--fg);
  min-height:44px
}
textarea{min-height:8rem;resize:vertical;line-height:1.5}
input[type=text]:focus-visible,input[type=email]:focus-visible,textarea:focus-visible{border-color:var(--brand)}
small{display:block;color:var(--muted);margin-top:.25rem}
.opt{font-weight:450;color:var(--muted)}
button{
  font:inherit;font-weight:750;background:var(--brand);color:#fff;
  border:0;border-radius:999px;padding:.8rem 1.35rem;cursor:pointer;
  min-height:44px;min-width:44px
}
button:hover{background:var(--brand-d)}
.hp{position:absolute;left:-9999px;height:0;overflow:hidden}
.note{color:var(--muted);font-size:.95rem}
.back{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--line)}
.site-footer{
  border-top:1px solid var(--line);
  background:var(--bg-soft);
  padding:1.35rem 0 2.2rem;color:var(--muted);font-size:.92rem
}
.site-footer .wrap{display:grid;gap:.55rem}
.site-footer strong{color:var(--fg)}
table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse}
pre,code{overflow-wrap:anywhere;word-break:break-word}
/* Very small phones: keep one compact row (brand + 3 nav items) */
@media (max-width:22.49rem){
  .site-header .wrap{flex-wrap:nowrap;gap:.2rem;padding:.05rem .5rem;min-height:48px}
  .brand{font-size:.74rem;gap:.28rem;min-height:44px}
  .brand-mark{width:1.25rem;height:1.25rem;border-radius:5px}
  .brand[aria-current=page]{padding:0 .3rem 0 .15rem}
  .site-header nav a{padding:.35rem .28rem;font-size:.74rem;min-height:44px}
}
@media (min-width:40rem){
  .nav-desk{display:list-item}
  .brand{font-size:1rem;max-width:none;gap:.4rem}
  .brand-mark{width:1.55rem;height:1.55rem;border-radius:7px}
  .brand[aria-current=page]{padding:0;background:transparent;border-radius:0}
  .site-header .wrap{flex-wrap:nowrap;min-height:60px;gap:.35rem .75rem;padding:0 1.1rem}
  .site-header nav a{padding:.5rem .7rem;font-size:.92rem}
  .hero-fig{max-height:280px}
  .hero-fig img{height:280px}
  .guia-hero{max-height:260px}
  .guia-hero img{height:260px}
  .card-media{max-height:180px}
  .cards{grid-template-columns:1fr 1fr}
  .cards .card:last-child:nth-child(odd){grid-column:1 / -1}
}
@media (min-width:64rem){
  :root{--max:52rem}
  .brand-tag{display:inline}
  .site-header .wrap{min-height:60px}
  .hero-fig{max-height:320px}
  .hero-fig img{height:320px}
  .guia-hero{max-height:280px}
  .guia-hero img{height:280px}
  .cards{grid-template-columns:1fr 1fr}
}

/* Card title (h4 on home) */
.card-title{font-size:1.08rem;margin:0 0 .35rem;line-height:1.35}
/* Em resumo box */
.resumo{
  margin:0 0 1.4rem;padding:1rem 1.05rem .85rem;
  background:var(--card);border:1px solid var(--line);
  border-top:4px solid var(--accent);border-radius:var(--radius);
  box-shadow:var(--shadow)
}
.resumo-titulo{margin:0 0 .6rem;font-size:1.05rem;color:var(--brand-d)}
.resumo-lista{margin:0;display:grid;gap:.6rem}
.resumo-lista div{display:grid;gap:.1rem}
.resumo-lista dt{font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;color:var(--brand)}
.resumo-lista dd{margin:0;overflow-wrap:anywhere}
.resumo-mais{margin:.7rem 0 0;font-size:.93rem}
@media (min-width:40rem){
  .resumo-lista div{grid-template-columns:8.5rem 1fr;gap:.75rem;align-items:baseline}
}
/* Home groups */
.grupos-nav ul{list-style:none;margin:.4rem 0 1rem;padding:0;display:flex;flex-wrap:wrap;gap:.45rem}
.grupos-nav a{
  display:inline-flex;align-items:center;min-height:44px;padding:.3rem .85rem;
  border:1px solid var(--line);border-radius:999px;background:var(--card);
  color:var(--brand-d);text-decoration:none;font-size:.92rem;font-weight:600
}
.grupos-nav a:hover{background:var(--brand-soft)}
.grupo{margin:1.6rem 0 0;scroll-margin-top:72px}
.grupo-titulo{font-size:1.15rem;margin:0 0 .2rem;padding-left:.6rem;border-left:4px solid var(--accent)}
.grupo-desc{margin:0 0 .2rem;color:var(--muted);font-size:.97rem}
/* Prazos page */
.prazos{list-style:none;padding:0;margin:.6rem 0 0;display:grid;gap:.7rem}
.prazo{
  background:var(--card);border:1px solid var(--line);border-left:4px solid var(--brand);
  border-radius:var(--radius-sm);padding:.75rem .95rem
}
.prazo-tbc{border-left-color:var(--accent)}
.prazo p{margin:.15rem 0}
.prazo-quando{display:flex;flex-wrap:wrap;gap:.3rem .6rem;align-items:center}
.prazo-quando strong{font-size:1.05rem}
.prazo-links{font-size:.93rem}
.fonte{color:var(--muted)}
.estado{border-radius:999px;padding:.05rem .55rem;font-size:.78rem;font-weight:700}
.estado-ok{background:var(--brand-soft);color:var(--brand-d)}
.estado-tbc{background:var(--warn-bg);color:var(--warn)}
