/* Alma Católica — estilos das páginas públicas (landing, conta, planos, legais).
   Mesmos tokens do app: verde profundo, esmeralda, dourado envelhecido, off-white. */
:root{
  --bg:#F7F5EF; --surface:#FFFFFF; --surface-2:#EFEDE6; --line:#E7E6DF; --line-2:#D9D7CD;
  --ink:#292D2B; --ink-2:#5C625E; --ink-3:#7D827E;
  --brand:#183C32; --brand-ink:#F7F5EF; --emerald:#176B50; --emerald-ink:#176B50;
  --gold:#B89A5A; --gold-ink:#7E6630; --gold-soft:#F1EBDD;
  --pane-1:#183C32; --pane-2:#1F4C3F; --pane-3:#176B50;
  --ok:#176B50; --warn:#8A5A12; --warn-bg:#FBF3E2; --err:#9B2C22; --err-bg:#FBEDEB;
  --shadow:0 1px 2px rgba(24,60,50,.06),0 8px 24px -12px rgba(24,60,50,.18);
  --serif:"Newsreader","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --sans:"Figtree","Segoe UI",system-ui,-apple-system,sans-serif;
}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#0E1A16; --surface:#14241E; --surface-2:#1A2E26; --line:#24382F; --line-2:#2E463B;
    --ink:#ECE9E1; --ink-2:#AEB7B1; --ink-3:#8A948E;
    --brand:#173A2F; --brand-ink:#F2EFE6; --emerald:#2E8F6A; --emerald-ink:#6FCBA3;
    --gold:#C8AD70; --gold-ink:#D6BE86; --gold-soft:#2A2A1E;
    --pane-1:#0F2A21; --pane-2:#16392D; --pane-3:#1F5A45;
    --ok:#6FCBA3; --warn:#E3B565; --warn-bg:#2B2416; --err:#F08A7E; --err-bg:#2E1A18;
    --shadow:0 1px 2px rgba(0,0,0,.3),0 10px 30px -14px rgba(0,0,0,.6);
    color-scheme:dark;
  }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:var(--emerald-ink)}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:6px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:1080px;margin:0 auto;padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right))}
.narrow{max-width:460px}
.prose-w{max-width:720px}
svg.i{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* topo */
.top{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;gap:12px;min-height:60px}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none}
.brand-mark{width:32px;height:32px;border-radius:9px;background:var(--brand);color:var(--gold);display:grid;place-items:center}
.brand-mark svg{width:21px;height:21px}
.brand-name{font-family:var(--serif);font-size:20px;font-weight:500}
.top nav{margin-left:auto;display:flex;align-items:center;gap:6px}
.top nav a.link{color:var(--ink-2);text-decoration:none;font-weight:600;font-size:14.5px;padding:8px 10px;border-radius:10px}
.top nav a.link:hover{color:var(--ink);background:var(--surface-2)}
@media (max-width:620px){.top nav a.link.hide-sm{display:none}}

/* tipografia */
.eyebrow{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-ink)}
.display{font-family:var(--serif);font-weight:500;font-size:clamp(38px,8vw,64px);line-height:1.03;letter-spacing:-.015em;margin:0;text-wrap:balance}
.h1{font-family:var(--serif);font-weight:500;font-size:clamp(30px,6vw,42px);line-height:1.1;margin:0;text-wrap:balance}
.h2{font-family:var(--serif);font-weight:500;font-size:clamp(25px,4.6vw,32px);line-height:1.15;margin:0;text-wrap:balance}
.h3{font-family:var(--serif);font-weight:500;font-size:20px;line-height:1.25;margin:0}
.lede{font-family:var(--serif);font-size:19px;line-height:1.5;color:var(--ink-2);margin:0;text-wrap:pretty}
.muted{color:var(--ink-2)}
.small{font-size:14px}
.note{font-size:13px;color:var(--ink-3);line-height:1.45}

/* botões e formulários */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 24px;border-radius:999px;font-weight:600;font-size:16px;border:0;cursor:pointer;text-decoration:none;transition:transform .12s,box-shadow .15s,background .15s}
.btn:active{transform:scale(.98)}
.btn-primary{background:var(--brand);color:var(--brand-ink)}
.btn-primary:hover{box-shadow:0 8px 22px -10px var(--brand)}
.btn-gold{background:var(--gold);color:#1d1a12}
.btn-ghost{background:transparent;border:1px solid var(--line-2);color:var(--ink)}
.btn-ghost:hover{background:var(--surface-2)}
.btn-sm{min-height:40px;padding:0 16px;font-size:14.5px}
.btn-block{width:100%}
.btn[disabled],.btn[aria-busy="true"]{opacity:.65;cursor:progress}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-weight:600;font-size:14px}
.input{min-height:50px;border:1px solid var(--line-2);border-radius:12px;padding:0 14px;background:var(--surface);width:100%;font-size:16px}
textarea.input{padding:12px 14px;min-height:110px;resize:vertical}
.input:focus{outline:2px solid var(--gold);outline-offset:0;border-color:transparent}
.input[aria-invalid="true"]{border-color:var(--err)}
.err{color:var(--err);font-size:13.5px;margin:0}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--ink-2)}
.check input{width:20px;height:20px;margin-top:2px;accent-color:var(--emerald);flex:none}
.alert{border-radius:12px;padding:12px 14px;font-size:14.5px;line-height:1.45}
.alert.ok{background:color-mix(in srgb,var(--ok) 13%,transparent);color:var(--ok)}
.alert.erro{background:var(--err-bg);color:var(--err)}
.alert.info{background:var(--surface-2);color:var(--ink-2)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:24px}
.stack{display:flex;flex-direction:column;gap:16px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.pill{display:inline-flex;align-items:center;height:26px;padding:0 11px;border-radius:999px;font-size:12px;font-weight:700;background:var(--gold-soft);color:var(--gold-ink)}

/* rodapé */
.foot{border-top:1px solid var(--line);margin-top:64px;padding-block:32px 40px;color:var(--ink-3);font-size:14px}
.foot .wrap{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;justify-content:space-between}
.foot nav{display:flex;flex-wrap:wrap;gap:8px 18px}
.foot a{color:var(--ink-2);text-decoration:none}
.foot a:hover{text-decoration:underline}

/* consentimento */
.consent{position:fixed;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));z-index:50;max-width:560px;margin:0 auto;background:var(--surface);border:1px solid var(--line-2);border-radius:16px;box-shadow:var(--shadow);padding:16px;display:flex;flex-direction:column;gap:12px;font-size:14px;color:var(--ink-2)}
.consent .row{justify-content:flex-end}

/* página legal */
.legal h2{font-family:var(--serif);font-weight:500;font-size:23px;margin:32px 0 8px}
.legal p,.legal li{max-width:68ch}
.legal .revisar{background:var(--warn-bg);color:var(--warn);border-radius:12px;padding:12px 14px;font-size:14px}

/* arco (marca) */
.arch{display:block;width:100%;height:auto}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
