:root{
  --paper:#F3EFE6; --paper-2:#EAE4D6; --card:#FBF9F4;
  --ink:#15171B; --ink-2:#3D4048; --muted:#6E6F73; --line:#D9D2C2;
  --norte:#E5452B; --norte-2:#C7361F;
  --d:#E5452B; --i:#F0A92E; --s:#2F9E74; --c:#2C63D6;
  --r:18px;
  --f-display:"Bricolage Grotesque", system-ui, sans-serif;
  --f-body:"Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
  --f-mono:"Geist Mono", ui-monospace, monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3{font-family:var(--f-display);font-weight:700;letter-spacing:-.02em;line-height:1.05;margin:0}
p{margin:0}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.mono{font-family:var(--f-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase}

/* logo */
.logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.logo svg{width:30px;height:30px}
.logo span{font-family:var(--f-display);font-weight:700;font-size:24px;letter-spacing:-.04em}
.logo.light{color:var(--paper)}

/* botões */
.btn{appearance:none;border:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--f-display);font-weight:600;font-size:18px;letter-spacing:-.01em;
  background:var(--norte);color:#fff;padding:18px 28px;border-radius:999px;text-decoration:none;
  box-shadow:0 1px 0 rgba(0,0,0,.08), 0 10px 24px -10px rgba(229,69,43,.7);transition:transform .15s, background .15s}
.btn:hover{background:var(--norte-2);transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn:disabled{opacity:.6;cursor:wait;transform:none}
.btn .arr{transition:transform .2s}
.btn:hover .arr{transform:translateX(3px)}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--paper)}
.btn.block{width:100%}

/* modal de cadastro */
.modal{position:fixed;inset:0;z-index:50;display:none;align-items:center;justify-content:center;padding:16px;background:rgba(21,23,27,.55);backdrop-filter:blur(4px)}
.modal.open{display:flex;animation:fade .2s}
.modal-card{background:var(--card);width:100%;max-width:440px;border-radius:24px;padding:30px 26px 24px;position:relative;box-shadow:0 30px 80px -20px rgba(0,0,0,.45);animation:up .25s cubic-bezier(.2,.8,.2,1);max-height:calc(100vh - 32px);overflow:auto}
.modal-x{position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:50%;border:0;background:var(--paper-2);cursor:pointer;font-size:20px;line-height:1;color:var(--ink-2)}
.modal h3{font-size:28px;margin:10px 0 6px}
.modal .sub{color:var(--muted);font-size:15px;margin-bottom:20px}
.field{margin-bottom:14px}
.field label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:var(--ink-2)}
.input{width:100%;font:inherit;font-size:16px;padding:14px 15px;border-radius:12px;border:1.5px solid var(--line);background:#fff;color:var(--ink);outline:none;transition:border-color .15s, box-shadow .15s}
.input:focus{border-color:var(--ink);box-shadow:0 0 0 4px rgba(21,23,27,.08)}
.field.err .input,.field.err .phone{border-color:var(--norte)}
.field .msg{display:none;color:var(--norte-2);font-size:13px;margin-top:5px}
.field.err .msg{display:block}
.phone{display:flex;border:1.5px solid var(--line);border-radius:12px;background:#fff;position:relative;transition:border-color .15s, box-shadow .15s}
.phone:focus-within{border-color:var(--ink);box-shadow:0 0 0 4px rgba(21,23,27,.08)}
.phone .input{border:0;box-shadow:none;border-radius:0 12px 12px 0;padding-left:10px}
.ddi-btn{display:flex;align-items:center;gap:7px;border:0;background:transparent;padding:0 10px 0 13px;cursor:pointer;font:inherit;font-size:15px;color:var(--ink);border-right:1.5px solid var(--line);flex-shrink:0}
.ddi-btn img{width:22px;height:16px;border-radius:3px;object-fit:cover;box-shadow:0 0 0 1px rgba(0,0,0,.08)}
.ddi-btn .chev{font-size:10px;color:var(--muted)}
.ddi-list{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:5;background:#fff;border:1.5px solid var(--line);border-radius:12px;box-shadow:0 18px 40px -12px rgba(0,0,0,.25);display:none;overflow:hidden}
.ddi-list.open{display:block}
.ddi-list input{width:100%;border:0;border-bottom:1.5px solid var(--line);padding:12px 14px;font:inherit;font-size:15px;outline:none}
.ddi-list ul{list-style:none;margin:0;padding:4px;max-height:220px;overflow:auto}
.ddi-list li{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;cursor:pointer;font-size:15px}
.ddi-list li:hover,.ddi-list li.on{background:var(--paper)}
.ddi-list li img{width:22px;height:16px;border-radius:3px;object-fit:cover;box-shadow:0 0 0 1px rgba(0,0,0,.08)}
.ddi-list li em{font-style:normal;color:var(--muted);margin-left:auto;font-family:var(--f-mono);font-size:13px}
.legal{font-size:12px;color:var(--muted);text-align:center;margin-top:12px;line-height:1.45}
.form-err{display:none;background:#FDE8E4;color:var(--norte-2);font-size:14px;padding:10px 12px;border-radius:10px;margin-bottom:12px}

@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes up{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
