@font-face{font-family:Cy Grotesk Wide;src:url('cy-grotesk-wide-demi.woff2') format('woff2');font-weight:400 600;font-display:swap}
@font-face{font-family:Montserrat;src:url('montserrat-regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Montserrat;src:url('montserrat-bold.woff2') format('woff2');font-weight:600 900;font-display:swap}

  :root {
    --brand: #1f4e79; --brand-strong: #163a5c; --brand-soft: #e8eff6;
    --text: #1d2733; --muted: #5b6776; --line: #d9e0e7; --bg: #f4f6f8; --card: #ffffff;
    --error: #b3261e; --error-soft: #fdecea; --ok: #1e7b45; --ok-soft: #e7f5ec;
    --radius: 12px;
  }
  * { box-sizing: border-box; }
  body { margin: 0; background: var(--bg); color: var(--text);
         font: 16px/1.5 system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; }
  header.top { background: var(--brand); color: #fff; padding: 18px 16px; }
  header.top .wrap { max-width: 760px; margin: 0 auto; }
  header.top h1 { margin: 0; font-size: 1.25rem; font-weight: 650; letter-spacing: .01em; }
  header.top p { margin: 4px 0 0; opacity: .85; font-size: .95rem; }
  main { max-width: 760px; margin: 0 auto; padding: 20px 16px 48px; }

  .progress { margin: 0 0 18px; }
  .progress .bar { height: 6px; background: var(--line); border-radius: 99px; overflow: hidden; }
  .progress .bar span { display: block; height: 100%; width: 0; background: var(--brand); transition: width .25s; }
  .progress .label { display: flex; justify-content: space-between; font-size: .85rem; color: var(--muted); margin-top: 6px; }

  .card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 22px 20px; }
  .step { display: none; }
  .step.active { display: block; }
  .step h2 { margin: 0 0 4px; font-size: 1.2rem; color: var(--brand-strong); }
  .step .lead { margin: 0 0 18px; color: var(--muted); }

  .field { margin-bottom: 16px; }
  .field > label, .field > .q { display: block; font-weight: 600; margin-bottom: 6px; }
  .req { color: var(--error); margin-left: 2px; }
  .hint { display: block; font-size: .87rem; color: var(--muted); margin-top: 4px; font-weight: 400; }
  input[type=text], input[type=email], input[type=date], input[type=number], select, textarea {
    width: 100%; padding: 11px 12px; border: 1px solid var(--line); border-radius: 8px; background: #fff;
    font: inherit; color: inherit; }
  textarea { min-height: 150px; resize: vertical; }
  input:focus, select:focus, textarea:focus { outline: 2px solid var(--brand); outline-offset: 1px; border-color: var(--brand); }
  .row { display: grid; grid-template-columns: 1fr; gap: 0 14px; }
  @media (min-width: 560px) { .row.two { grid-template-columns: 1fr 1fr; } .row.city { grid-template-columns: 1fr 120px; } }

  .choices { display: flex; flex-wrap: wrap; gap: 8px; }
  .choices label { display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border: 1px solid var(--line);
                   border-radius: 99px; cursor: pointer; font-weight: 500; background: #fff; }
  .choices input { accent-color: var(--brand); }
  .choices label:has(input:checked) { border-color: var(--brand); background: var(--brand-soft); }

  .field.invalid input, .field.invalid select, .field.invalid textarea, .field.invalid .drop { border-color: var(--error); }
  .err { display: none; color: var(--error); font-size: .87rem; margin-top: 4px; }
  .field.invalid .err { display: block; }

  details.ref { margin-top: 8px; font-size: .9rem; }
  details.ref summary { cursor: pointer; color: var(--brand); }
  details.ref img { display: block; max-width: 100%; margin-top: 8px; border-radius: 8px; border: 1px solid var(--line); }
  details.ref .noimg { margin-top: 8px; padding: 10px; background: var(--bg); border-radius: 8px; color: var(--muted); }

  .notice { background: var(--brand-soft); border-left: 4px solid var(--brand); padding: 12px 14px; border-radius: 8px;
            margin-bottom: 18px; font-size: .95rem; }
  .drop { border: 1.5px dashed var(--line); border-radius: 10px; padding: 14px; background: #fafbfc; }
  .drop input[type=file] { width: 100%; }
  .thumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
  .thumbs figure { margin: 0; width: 96px; }
  .thumbs img { width: 96px; height: 96px; object-fit: cover; border-radius: 8px; border: 1px solid var(--line); display: block; }
  .thumbs .pdf { width: 96px; height: 96px; display: grid; place-items: center; border-radius: 8px; border: 1px solid var(--line);
                 background: #fff; font-weight: 700; color: var(--brand); }
  .thumbs figcaption { font-size: .75rem; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

  .review dl { margin: 0; }
  .review h3 { font-size: 1rem; margin: 18px 0 6px; color: var(--brand-strong); display: flex; justify-content: space-between; }
  .review h3 button { font-size: .85rem; }
  .review .item { display: grid; grid-template-columns: 1fr; padding: 6px 0; border-bottom: 1px solid var(--line); }
  @media (min-width: 560px) { .review .item { grid-template-columns: 42% 1fr; gap: 12px; } }
  .review dt { color: var(--muted); font-size: .9rem; }
  .review dd { margin: 0; white-space: pre-wrap; word-break: break-word; }
  .consent { display: flex; gap: 10px; align-items: flex-start; margin-top: 18px; }
  .consent input { margin-top: 4px; accent-color: var(--brand); width: 18px; height: 18px; }

  .nav { display: flex; justify-content: space-between; gap: 10px; margin-top: 20px; }
  button { font: inherit; cursor: pointer; border-radius: 8px; }
  .btn { padding: 11px 20px; border: 1px solid var(--brand); font-weight: 600; }
  .btn.primary { background: var(--brand); color: #fff; }
  .btn.primary:hover { background: var(--brand-strong); }
  .btn.ghost { background: #fff; color: var(--brand); }
  .btn:disabled { opacity: .6; cursor: wait; }
  .link { background: none; border: 0; color: var(--brand); text-decoration: underline; padding: 0; }

  .alert { display: none; margin-top: 16px; padding: 12px 14px; border-radius: 8px; background: var(--error-soft); color: var(--error); }
  .alert.show { display: block; }
  .alert ul { margin: 6px 0 0; padding-left: 18px; }
  .success { text-align: center; padding: 26px 8px; }
  .success .badge { width: 64px; height: 64px; border-radius: 50%; background: var(--ok-soft); color: var(--ok); display: grid;
                    place-items: center; margin: 0 auto 12px; font-size: 32px; }
  .success .proto { font-size: 1.6rem; font-weight: 700; color: var(--brand-strong); margin: 6px 0 14px; }
  .hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
  footer { text-align: center; font-size: .82rem; color: var(--muted); margin-top: 18px; }

/* Sistema visual compartilhado com o Canal de Denúncias GTM. */
:root{--brand:#005679;--brand-strong:#00435e;--brand-soft:#edf3f4;--text:#0e2630;--muted:#597079;--line:#c6d6d8;--bg:#f4f4f4;--card:transparent;--radius:0;--aqua:#75c7cd;--orange:#e8540e;--error:#ad3434;--ok:#0d6c61}
html{scroll-behavior:smooth}
body{font-family:Montserrat,sans-serif;line-height:1.55}
.skip{position:absolute;left:-9999px;top:0;background:white;padding:12px 16px;z-index:9;color:var(--brand)}
.skip:focus{left:16px;top:16px}
header.top{background:#004e71;padding:0}
header.top .wrap{max-width:980px;min-height:112px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:32px;padding:0 24px}
.brand{display:block;width:200px;flex-shrink:0}
.brand img{display:block;width:100%;height:auto}
.site-nav{display:flex;gap:32px;align-items:center;font-size:14px;letter-spacing:.035em}
.site-nav a{color:white;text-decoration:none}
.site-nav a:hover{text-decoration:underline;text-underline-offset:6px}
.hero{max-width:1124px;margin:52px auto 0;padding:54px 48px 48px;border-bottom:1px solid var(--line)}
.eyebrow,.section-index{font-family:'Cy Grotesk Wide',sans-serif;color:var(--brand);text-transform:uppercase;font-weight:400;letter-spacing:-.02em}
.eyebrow{margin:0 0 20px;font-size:16px}
.hero h1{font-family:'Cy Grotesk Wide',sans-serif;font-size:clamp(32px,4.4vw,54px);line-height:1.05;letter-spacing:-.02em;text-transform:uppercase;font-weight:400;margin:0;max-width:1000px;color:var(--brand)}
.hero .intro-copy{max-width:690px;font-size:18px;margin:24px 0 0}
main{max-width:980px;padding:38px 0 64px}
.progress{margin-bottom:32px;scroll-margin-top:24px}
.progress .bar{height:3px;border-radius:0}
.progress .bar span{background:var(--orange)}
.progress .label{margin-top:12px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.card{border:0;padding:0;background:transparent;border-radius:0}
.step h2{font-family:'Cy Grotesk Wide',sans-serif;text-transform:uppercase;font-weight:400;font-size:clamp(24px,3vw,34px);line-height:1.15;letter-spacing:-.02em;color:var(--brand-strong);margin-bottom:18px;overflow-wrap:break-word}
.step .lead{max-width:760px;margin-bottom:30px}
.step{min-height:220px}
.section-index{display:block;font-size:13px;margin-bottom:16px}
.welcome-notes{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin:32px 0;border-top:1px solid var(--line);padding-top:24px}
.welcome-notes strong{font-weight:700;color:var(--brand);font-size:14px}
.welcome-notes p{margin:8px 0 0;font-size:14px;color:var(--muted)}
.field{margin-bottom:24px}
.field>label,.field>.q{font-size:14px;font-weight:700;margin-bottom:8px}
input[type=text],input[type=email],input[type=date],input[type=number],select,textarea{min-height:52px;border-radius:0;background:transparent;border-color:#a9c5ca}
input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--aqua);outline-offset:2px}
.hint,.err{font-size:13px}
.choices{gap:12px 24px}
.choices label{padding:10px 0;border:0;border-radius:0;background:transparent;font-size:14px;min-height:48px}
.choices label:has(input:checked){background:transparent;color:var(--brand);text-decoration:underline;text-underline-offset:5px}
.choices input{width:18px;height:18px}
.notice{border-radius:0;background:var(--brand-soft);border-left:3px solid var(--aqua);padding:16px 20px;font-size:14px}
.drop{border-radius:0;padding:20px;background:transparent;border-color:#a9c5ca}
input[type=file]{font-family:inherit;font-size:14px}
input[type=file]::file-selector-button{font:700 12px Montserrat,sans-serif;color:var(--brand);border:1px solid var(--brand);background:transparent;padding:12px;margin-right:12px;cursor:pointer}
.nav{border-top:1px solid var(--line);padding-top:24px;margin-top:32px}
.btn{border-radius:0;min-height:52px;padding:14px 24px;font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;transition:background .2s}
.btn.ghost{background:transparent}
.link{min-height:44px}
.review h3{margin-top:28px;gap:16px;align-items:center}
.consent{font-size:14px}.consent input{flex-shrink:0}
.alert{border-radius:0}.success .proto{overflow-wrap:anywhere}
footer{border-top:1px solid var(--line);margin-top:32px;padding-top:24px;font-size:12px;text-align:left}
footer a{color:var(--brand);text-underline-offset:3px}
.footer-brand{font-family:'Cy Grotesk Wide',sans-serif;font-size:15px;color:var(--brand);text-transform:uppercase;margin-bottom:8px}
@media(max-width:1100px){main{margin:0 40px}.hero{margin-left:24px;margin-right:24px;padding-left:16px;padding-right:16px}}
@media(max-width:720px){header.top .wrap{min-height:126px;display:block;padding:12px 24px}.brand{width:128px}.site-nav{gap:24px;font-size:12px;margin-top:14px;min-height:36px;flex-wrap:wrap}.hero{margin:24px 24px 0;padding:24px 0 32px}.hero h1{font-size:clamp(27px,7.5vw,42px)}.hero .intro-copy{font-size:16px}.eyebrow{font-size:12px}main{margin:0 24px;padding-top:28px}.welcome-notes{grid-template-columns:1fr;gap:20px}.step h2{font-size:24px}.nav{gap:12px}.btn{padding:14px 16px;font-size:11px}.progress .label{gap:16px;font-size:11px}.review h3{font-size:14px}.row{min-width:0}.field{min-width:0}input[type=file]{max-width:100%;font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
