/* Seguir (notificações) — cartão, modal, sino, cards. Usa os tokens do tema:
   --brand (azul no marinho), --highlight (laranja = botão Siga), --brand-ink. */
:root{ --sg-accent: var(--highlight, #FF6B2C); --sg-accent-hover: var(--highlight-hover, #E85A1F);
       --sg-brand: var(--brand, #0B5FD6); --sg-ink: var(--brand-ink, #0A2540); --sg-soft: var(--highlight-soft, #FFE8DD); }

/* ---------- botão Siga (qualquer lugar) ---------- */
.sg-btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; overflow:hidden; min-width:0; max-width:100%; border:0; border-radius:14px; background:var(--sg-accent); color:#fff;
  font-weight:700; cursor:pointer; font-family:inherit; line-height:1; transition:background .15s, transform .05s; }
.sg-btn:hover{ background:var(--sg-accent-hover); color:#fff; }
.sg-btn:active{ transform:scale(.99); }
.sg-btn svg{ flex:0 0 auto; }
.sg-btn.is-following{ background:#fff; color:var(--sg-ink); border:2px solid var(--sg-accent); }
.sg-btn.is-following:hover{ background:var(--sg-soft); }
.sg-btn.is-following .sg-heart{ fill:var(--sg-accent); }
.sg-btn.is-busy{ opacity:.6; pointer-events:none; }
.sg-btn--lg{ width:100%; height:56px; font-size:16px; letter-spacing:.01em; }
.sg-btn--md{ height:46px; padding:0 22px; font-size:14px; }
.sg-btn--sm{ height:38px; padding:0 12px; font-size:13px; border-radius:8px; flex:1 1 0; }
.sg-btn .sg-label-off, .sg-btn .sg-label-on{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; display:inline-flex; align-items:center; gap:6px; }
.sg-btn .sg-label-on, .sg-btn.is-following .sg-label-off{ display:none; }
.sg-btn.is-following .sg-label-on{ display:inline; }
.sg-outline{ display:inline-flex; align-items:center; justify-content:center; height:38px; border:1px solid var(--sg-brand); border-radius:8px; background:#fff; color:var(--sg-brand);
  font-size:13px; font-weight:600; text-decoration:none; flex:1 1 0; }
.sg-outline:hover{ background:var(--brand-soft, #f3f6fb); color:var(--sg-brand); }
.sg-row{ display:flex; gap:8px; margin-top:10px; }

/* ---------- cartão na ficha (coluna direita) ---------- */
.sg-card{ margin-top:18px; }
.sg-card-count{ margin:10px 0 0; display:flex; align-items:center; gap:8px; font-size:13px; color:#374151; }
.sg-card-count strong{ color:#111827; }
.sg-card-benefits{ margin-top:16px; padding-top:14px; border-top:1px dashed #e5e7eb; }
.sg-card-benefits p{ margin:0 0 8px; font-size:13px; font-weight:600; color:#111827; }
.sg-card-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.sg-card-grid span{ display:flex; align-items:center; gap:7px; font-size:12.5px; color:#374151; }
.sg-card-grid svg{ flex:0 0 auto; stroke:var(--sg-brand); }
.sg-card-fine{ margin:12px 0 0; font-size:12px; color:#6b7280; }
.sg-card-state{ margin-top:14px; padding:12px 14px; border-radius:10px; background:var(--brand-soft, #EAF1FC); border:1px solid #C7D9F5; font-size:12.5px; color:var(--sg-ink); }
.sg-card-state p{ margin:0 0 4px; font-weight:600; }
.sg-card-state a{ margin-right:14px; font-weight:600; }
.sg-card-state a.sg-mute{ color:#6b7280; font-weight:500; }
.sg-card + .project-summary-cta{ margin-top:18px !important; }

/* ---------- construtora: cartão compacto na ficha / hero / card da lista ---------- */
.sg-builder{ background:#fff; border:1px solid #e5e7eb; border-radius:14px; padding:18px 20px; display:flex; align-items:center; gap:18px; margin:18px 0; }
.sg-builder-logo{ flex:0 0 72px; width:72px; height:72px; border-radius:12px; background:#f3f4f6; display:flex; align-items:center; justify-content:center; overflow:hidden; font-weight:800; color:var(--sg-ink); }
.sg-builder-logo img{ max-width:100%; max-height:100%; object-fit:contain; }
.sg-builder-info{ flex:1 1 auto; min-width:0; }
.sg-builder-info .sg-kicker{ margin:0; font-size:12px; color:#6b7280; }
.sg-builder-info .sg-name{ margin:0; font-size:20px; font-weight:700; line-height:1.15; }
.sg-builder-meta{ display:flex; gap:14px; flex-wrap:wrap; font-size:13px; color:#374151; margin-top:4px; }
.sg-builder-actions{ flex:0 0 auto; display:flex; flex-direction:column; gap:8px; align-items:stretch; }
.sg-builder-actions a.sg-link{ font-size:12.5px; text-align:center; font-weight:600; }
.sg-builder-hint{ margin:10px 0 0; font-size:12px; color:#6b7280; text-align:center; }
@media (max-width:640px){ .sg-builder{ flex-wrap:wrap; } .sg-builder-actions{ width:100%; } }

.sg-hero-reasons{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-top:14px; }
.sg-hero-reasons > div{ padding:12px; border-radius:10px; background:rgba(255,255,255,.92); color:#111827; display:flex; flex-direction:column; gap:6px; }
.sg-hero-reasons strong{ font-size:13px; }
.sg-hero-reasons span{ font-size:12px; color:#4b5563; line-height:1.4; }
.sg-hero-reasons svg{ stroke:var(--sg-brand); }
@media (max-width:900px){ .sg-hero-reasons{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.sg-hero-cta{ margin-top:14px; display:flex; flex-direction:column; gap:6px; align-items:center; text-align:center; width:100%; }
.sg-hero-cta small{ font-size:13px; color:#fff; opacity:1; text-shadow:0 1px 3px rgba(0,0,0,.45); }
.sg-hero-cta small strong{ color:#fff; }

/* ---------- card da vitrine: só a linha de botões ---------- */
.sg-card-actions{ display:flex; gap:8px; margin-top:10px; }

/* ---------- pílula flutuante (celular, ficha) ---------- */
.sg-float{ position:fixed; left:16px; bottom:16px; z-index:1050; height:48px; padding:0 18px 0 14px; border-radius:999px; display:none; align-items:center; gap:8px;
  box-shadow:0 6px 18px rgba(0,0,0,.22); font-size:15px; }
.sg-float.is-visible{ display:inline-flex; }
@media (min-width:992px){ .sg-float{ display:none !important; } }

/* ---------- sino ---------- */
.sg-bell{ position:relative; display:inline-flex; align-items:center; gap:6px; text-decoration:none; }
.sg-bell-badge{ position:absolute; top:-6px; right:-8px; min-width:18px; height:18px; padding:0 5px; border-radius:999px; background:var(--sg-accent); color:#fff;
  font-size:11px; font-weight:700; display:none; align-items:center; justify-content:center; line-height:1; }
.sg-bell-badge.is-on{ display:inline-flex; }

/* ---------- modal e-mail -> código ---------- */
.sg-modal{ position:fixed; inset:0; z-index:2000; display:none; align-items:center; justify-content:center; padding:16px; }
.sg-modal.is-open{ display:flex; }
.sg-modal__overlay{ position:absolute; inset:0; background:rgba(17,24,39,.55); }
.sg-modal__dialog{ position:relative; width:100%; max-width:440px; background:#fff; border-radius:16px; padding:24px; box-shadow:0 20px 50px rgba(0,0,0,.3); }
.sg-modal__close{ position:absolute; top:10px; right:10px; width:36px; height:36px; border:0; background:transparent; font-size:20px; cursor:pointer; color:#6b7280; }
.sg-modal__kicker{ margin:0 0 10px; font-size:11px; font-weight:700; letter-spacing:.08em; color:#6b7280; }
.sg-modal__title{ margin:0 0 8px; font-size:20px; font-weight:700; line-height:1.2; display:flex; align-items:center; gap:10px; }
.sg-modal__text{ margin:0 0 14px; font-size:14px; color:#374151; line-height:1.45; }
.sg-modal label{ display:block; font-size:13px; font-weight:600; margin:0 0 6px; }
.sg-modal input[type=email], .sg-modal input[type=text]{ width:100%; height:48px; border:1px solid #d1d5db; border-radius:10px; padding:0 14px; font-size:15px; font-family:inherit; box-sizing:border-box; }
.sg-modal input:focus{ outline:2px solid var(--sg-brand); outline-offset:1px; border-color:var(--sg-brand); }
.sg-consent{ display:flex; align-items:flex-start; gap:8px; margin:10px 0 14px; font-size:12px; color:#6b7280; line-height:1.4; }
.sg-consent input{ margin-top:3px; accent-color:var(--sg-accent); }
.sg-modal .sg-btn--lg{ height:50px; font-size:15px; }
.sg-code{ display:flex; gap:8px; justify-content:space-between; margin:6px 0 10px; }
.sg-code input{ width:100%; height:58px; text-align:center; font-size:24px; font-weight:700; border:1px solid #d1d5db; border-radius:10px; padding:0; }
.sg-code input.is-filled{ border:2px solid var(--sg-ink); }
.sg-modal__foot{ display:flex; justify-content:space-between; font-size:12.5px; color:#6b7280; margin-top:4px; }
.sg-modal__foot a{ font-weight:600; }
.sg-modal__later{ display:block; text-align:center; margin-top:12px; font-size:13px; color:#6b7280; }
.sg-error{ color:#b91c1c; font-size:13px; margin:8px 0 0; min-height:18px; }
.sg-step{ display:none; } .sg-step.is-active{ display:block; }

/* ---------- toast ---------- */
.sg-toast{ position:fixed; left:50%; bottom:24px; transform:translate(-50%, 20px); z-index:2100; background:var(--sg-ink); color:#fff; border-radius:10px; padding:12px 16px;
  font-size:13.5px; display:flex; align-items:center; gap:10px; opacity:0; pointer-events:none; transition:all .25s; max-width:calc(100vw - 32px); box-shadow:0 6px 18px rgba(0,0,0,.18); }
.sg-toast.is-show{ opacity:1; transform:translate(-50%, 0); }
.sg-toast svg{ flex:0 0 auto; }

/* ---------- página /seguindo ---------- */
.sg-page{ max-width:1100px; margin:0 auto; padding:24px 16px 48px; }
.sg-tabs{ display:flex; gap:6px; border-bottom:1px solid #e5e7eb; margin:16px 0 20px; }
.sg-tabs a{ padding:10px 14px; font-weight:600; color:#6b7280; text-decoration:none; border-bottom:2px solid transparent; }
.sg-tabs a.is-active{ color:var(--sg-ink); border-bottom-color:var(--sg-accent); }
.sg-day{ margin:18px 0 8px; font-size:12px; font-weight:700; letter-spacing:.06em; color:#6b7280; text-transform:uppercase; }
.sg-notif{ display:flex; gap:14px; padding:14px; border:1px solid #e5e7eb; border-radius:12px; background:#fff; margin-bottom:10px; text-decoration:none; color:inherit; }
.sg-notif:hover{ border-color:var(--sg-brand); }
.sg-notif.is-unread{ border-left:4px solid var(--sg-accent); }
.sg-notif-img{ flex:0 0 72px; width:72px; height:54px; border-radius:8px; background:#f3f4f6; object-fit:cover; }
.sg-notif-title{ margin:0; font-size:14.5px; font-weight:700; }
.sg-notif-body{ margin:2px 0 0; font-size:13px; color:#374151; }
.sg-notif-time{ margin:4px 0 0; font-size:11.5px; color:#9ca3af; }
.sg-follow-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:14px; }
.sg-follow{ border:1px solid #e5e7eb; border-radius:12px; background:#fff; overflow:hidden; display:flex; flex-direction:column; }
.sg-follow-img{ width:100%; aspect-ratio:3/2; object-fit:cover; background:#f3f4f6; }
.sg-follow-body{ padding:12px 14px 14px; display:flex; flex-direction:column; gap:6px; }
.sg-follow-body h3{ margin:0; font-size:15px; }
.sg-follow-body p{ margin:0; font-size:12.5px; color:#6b7280; }
.sg-empty{ padding:32px 16px; text-align:center; color:#6b7280; }
.sg-prefs label{ display:flex; align-items:center; gap:10px; padding:12px 0; border-bottom:1px solid #f3f4f6; font-size:14px; }

/* ---------- construtora na ficha (antes do contato) ---------- */
.sg-builder-section{ padding:8px 0 28px; }
.sg-builder-wrap{ max-width:1920px; margin:0 auto; padding:0 calc(24px + clamp(32px, 8vw, 160px)); }
@media (max-width: 900px){ .sg-builder-wrap{ padding:0 20px; } }
.sg-builder--rich{ padding:24px 26px; border-radius:16px; box-shadow:0 1px 2px rgba(0,0,0,.04); gap:24px; margin:0; }
.sg-builder-logo--lg{ flex:0 0 112px; width:112px; height:112px; border-radius:14px; background:#fff; border:1px solid #e5e7eb; padding:10px; box-sizing:border-box; font-size:28px; }
.sg-builder--rich .sg-name{ font-size:24px; }
.sg-builder-reasons{ list-style:none; margin:10px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:6px 10px; }
.sg-builder-reasons li{ font-size:12.5px; color:var(--sg-ink); background:var(--brand-soft, #EAF1FC); border-radius:999px; padding:5px 11px; }
.sg-builder-reasons li::before{ content:"✓ "; color:var(--sg-brand); font-weight:700; }
.sg-builder-fine{ font-size:11.5px; color:#6b7280; text-align:center; }
@media (max-width:640px){ .sg-builder--rich{ padding:18px; } .sg-builder-logo--lg{ flex-basis:88px; width:88px; height:88px; } }

/* ---------- coluna direita: compacto ---------- */
.sg-card--compact{ margin-top:14px; }
.sg-card--compact .sg-card-count{ margin-top:8px; font-size:12.5px; }

/* ---------- faixa de largura total ---------- */
.sg-band{ background:linear-gradient(90deg, var(--sg-ink) 0%, var(--sg-brand) 100%); color:#fff; padding:28px 0; }
.sg-band-inner{ max-width:1920px; margin:0 auto; padding:0 calc(24px + clamp(32px, 8vw, 160px)); display:flex; align-items:center; justify-content:space-between; gap:32px; } /* mesma margem da galeria */
.sg-band-text{ flex:1 1 auto; min-width:0; }
.sg-band-kicker{ margin:0 0 6px; font-size:11px; font-weight:700; letter-spacing:.1em; opacity:.85; }
.sg-band-title{ margin:0 0 12px; font-size:24px; font-weight:700; line-height:1.15; color:#fff; }
.sg-band-chips{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.sg-band-chips li{ font-size:12.5px; padding:6px 12px; border-radius:999px; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.22); }
.sg-band-chips li::before{ content:"✓ "; color:var(--sg-accent); font-weight:800; }
.sg-band-fine{ margin:12px 0 0; font-size:12px; opacity:.8; }
.sg-band-cta{ flex:0 0 auto; display:flex; flex-direction:column; align-items:center; gap:8px; min-width:320px; }
.sg-band-cta .sg-btn--lg{ width:100%; box-shadow:0 8px 22px rgba(0,0,0,.25); }
.sg-band-count{ font-size:12.5px; opacity:.9; }
@media (max-width:900px){ .sg-band-inner{ flex-direction:column; align-items:stretch; gap:18px; } .sg-band-cta{ min-width:0; } .sg-band-title{ font-size:20px; } }
.sg-band-link{ font-size:12.5px; color:#fff; opacity:.9; text-decoration:underline; }

/* rodapé no celular: a última linha (CRECI) não fica sob o botão flutuante do WhatsApp */
@media (max-width: 768px){
  .site-footer .footer-bottom{ padding-bottom: 92px !important; }
}

/* faixa Siga no celular: tudo centralizado */
@media (max-width: 900px){
  .sg-band-text{ text-align:center; }
  .sg-band-chips{ justify-content:center; }
  .sg-band-cta{ align-items:center; }
  .sg-band-cta .sg-btn--lg{ max-width:420px; }
}

@media (max-width: 900px){ .sg-band-inner{ padding:0 20px; } }

/* ---------- card da lista de construtoras: botões empilhados ---------- */
.builder-card{ display:flex; flex-direction:column; }
.sg-bcard-actions{ display:flex; flex-direction:column; gap:8px; width:100%; margin-top:auto; padding-top:12px; }
.sg-bcard-btn{ flex:none; width:100%; height:42px; padding:0 14px; border-radius:9px; font-size:13.5px; }
.sg-bcard-link{ flex:none; width:100%; height:40px; padding:0 14px; border-radius:9px; font-size:13.5px; box-sizing:border-box; }

/* lista de construtoras: Siga em azul (marca), Ver construtora em laranja (destaque) */
.sg-bcard-btn{ background:var(--sg-brand); }
.sg-bcard-btn:hover{ background:var(--brand-hover, #0A4FB3); }
.sg-bcard-btn.is-following{ background:#fff; color:var(--sg-ink); border:2px solid var(--sg-brand); }
.sg-bcard-btn.is-following .sg-heart{ fill:var(--sg-brand); }
.sg-bcard-link{ background:var(--sg-accent); border-color:var(--sg-accent); color:#fff; font-weight:700; }
.sg-bcard-link:hover{ background:var(--sg-accent-hover); border-color:var(--sg-accent-hover); color:#fff; }

/* card da lista de construtoras: fonte um pouco menor e padding mais justo para nomes longos */
.sg-bcard-btn, .sg-bcard-link{ font-size:12.5px; padding:0 10px; letter-spacing:0; }
.sg-bcard-btn .sg-heart{ width:16px; height:16px; }

/* ---------- "Quem constrói": fundo igual ao de Assinaturas + cartão elegante ---------- */
.sg-builder-section{ background: var(--surface-muted, #F7F9FD); padding: 8px 0 44px; }
.sg-builder--rich{
  background: linear-gradient(135deg, #ffffff 0%, var(--brand-soft, #F7F9FD) 100%);
  border: 1px solid var(--portal-brand-soft, rgba(11,95,214,.12));
  box-shadow: 0 10px 30px rgba(10,37,64,.08);
  position: relative; overflow: hidden;
}
.sg-builder--rich::before{ /* filete da cor de destaque, discreto, no topo */
  content:""; position:absolute; left:0; top:0; right:0; height:4px;
  background: linear-gradient(90deg, var(--sg-accent) 0%, var(--sg-brand) 100%);
}
.sg-builder--rich .sg-builder-logo--lg{ background:#fff; box-shadow: 0 2px 8px rgba(10,37,64,.08); border-color: transparent; }
.sg-builder--rich .sg-kicker{ color: var(--sg-brand); font-weight:700; letter-spacing:.08em; text-transform: uppercase; font-size:11px; }
.sg-builder--rich .sg-name{ color: var(--sg-ink); }
.sg-builder--rich .sg-builder-reasons li{ background:#fff; border:1px solid var(--portal-brand-soft, rgba(11,95,214,.12)); }

/* variante escura (troque a classe sg-builder--rich por sg-builder--rich sg-builder--navy se preferir) */
.sg-builder--navy{ background: linear-gradient(135deg, var(--sg-ink) 0%, var(--sg-brand) 100%); color:#fff; border:0; }
.sg-builder--navy .sg-kicker, .sg-builder--navy .sg-name, .sg-builder--navy .sg-builder-meta{ color:#fff; }
.sg-builder--navy .sg-builder-reasons li{ background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.22); color:#fff; }
.sg-builder--navy .sg-builder-reasons li::before{ color: var(--sg-accent); }
.sg-builder--navy .sg-builder-fine{ color: rgba(255,255,255,.8); }
.sg-builder--navy .sg-outline{ background:#fff; }

/* ---------- página de descadastro (/radar/u/:token) ---------- */
.sg-unsub{ background: var(--surface-muted, #F7F9FD); padding: 48px 16px; min-height: 60vh; }
.sg-unsub-card{ max-width: 520px; margin: 0 auto; background:#fff; border:1px solid var(--portal-brand-soft, rgba(11,95,214,.12)); border-radius: 16px; padding: 32px 28px; box-shadow: 0 10px 30px rgba(10,37,64,.06); }
.sg-unsub-card h1{ font-size: 22px; line-height: 1.25; color: var(--sg-ink); margin: 0 0 10px; }
.sg-unsub-card p{ font-size: 15px; color: #374151; margin: 0 0 16px; }
.sg-unsub-card form{ margin: 0 0 12px; }
.sg-unsub-error{ color:#b91c1c; font-weight:600; }
.sg-unsub-note{ color: var(--sg-brand); font-weight:600; }
.sg-unsub-alt, .sg-unsub-sub{ font-size: 13.5px; color:#6b7280; }
.sg-unsub-list{ list-style:none; margin:0; padding:0; border-top:1px solid #eef1f6; }
.sg-unsub-list li{ display:flex; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid #eef1f6; font-size:14px; }
.sg-unsub-list a{ color: var(--sg-brand); white-space:nowrap; }
.sg-outline--md{ height:46px; padding:0 22px; font-size:14px; border-radius:14px; font-weight:600; }

/* aviso abaixo do contador de lançamento (lista prioritária) */
.wl-countdown-note{ margin:10px 0 0; font-size:12.5px; line-height:1.45; color:#6b7280; text-align:center; }
.wl-countdown-note::before{ content:"\26A0\FE0F "; }
.wl-countdown-boxes .wl-cd-box{ min-width:150px; }
.wl-countdown-boxes .wl-cd-unit{ white-space:nowrap; }

/* passo do código dentro do popup da lista prioritária */
.wl-code{ margin:14px auto 0; max-width:320px; display:flex; flex-direction:column; gap:8px; text-align:left; }
.wl-code-input{ text-align:center; font-size:22px; letter-spacing:6px; font-weight:700; }
.wl-code-err{ margin:0; min-height:1.2em; font-size:13px; color:#b91c1c; }
.wl-code-hint{ margin:0; font-size:12px; color:#6b7280; text-align:center; }

.sg-code-timer{ margin:4px 0 8px; font-size:13px; color:#6b7280; text-align:center; font-variant-numeric: tabular-nums; }
.sg-code-timer.is-expired{ color:#b91c1c; font-weight:600; }

.sg-notif-new{ display:inline-block; margin-right:8px; padding:1px 7px; border-radius:999px; background:var(--sg-accent); color:#fff; font-size:10.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; vertical-align:middle; }
.sg-notif:not(.is-unread) .sg-notif-new{ display:none; }

.sg-notif{ align-items:flex-start; }
.sg-notif > span{ flex:1 1 auto; min-width:0; }
.sg-notif-read{ flex:0 0 auto; align-self:center; border:1px solid var(--sg-brand); background:#fff; color:var(--sg-brand); border-radius:8px; font-size:12px; font-weight:600; padding:5px 10px; cursor:pointer; white-space:nowrap; }
.sg-notif-read:hover{ background:var(--sg-soft); }

.sg-mute{ display:inline-block; margin-top:8px; font-size:12.5px; color:#6b7280; text-decoration:underline; }
.sg-mute:hover{ color:var(--sg-brand); }
