/* ============================================================
   Grandal — Componentes
   ============================================================ */

/* ---------- Botões ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  min-height:48px;padding:.7rem 1.5rem;border-radius:var(--radius-pill);
  font-family:var(--font-display);font-weight:700;font-size:.98rem;letter-spacing:.01em;
  border:1px solid transparent;cursor:pointer;transition:transform var(--dur-fast) var(--ease-out),
  box-shadow var(--dur) var(--ease-out),background var(--dur),border-color var(--dur);white-space:nowrap}
.btn:active{transform:translateY(0)}
.btn--primary{background:var(--accent-grad);color:#04121f;box-shadow:0 4px 18px rgba(38,229,222,.18)}
.btn--primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-glow)}
.btn--secondary{background:transparent;color:var(--color-text);border-color:var(--color-border-strong)}
.btn--secondary:hover{border-color:var(--accent);background:rgba(38,229,222,.06);transform:translateY(-2px)}
.section--light .btn--secondary{color:var(--navy-900);border-color:rgba(16,31,52,.25)}
.section--light .btn--secondary:hover{border-color:#0a8f86;background:rgba(24,198,185,.08)}
.btn--sm{min-height:40px;padding:.5rem 1.1rem;font-size:.9rem}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.5;pointer-events:none;box-shadow:none}
.btn__arrow{transition:transform var(--dur) var(--ease-out)}
.btn:hover .btn__arrow{transform:translateX(3px)}

/* ---------- Brand lockup (crisp, escalável) ---------- */
.brand{display:inline-flex;align-items:center;gap:10px}
.brand img{height:30px;width:auto;display:block}
.brand__tx{display:flex;flex-direction:column;line-height:1}
.brand__word{font-family:var(--font-display);font-weight:800;font-size:1.12rem;letter-spacing:.16em;color:var(--color-text)}
.brand__sub{font-family:var(--font-display);font-weight:600;font-size:.52rem;letter-spacing:.42em;color:var(--color-text-muted);margin-top:3px}
@media (max-width:560px){.brand__word{font-size:1rem;letter-spacing:.12em}.brand img{height:26px}}

/* ---------- Lista de checks (reutilizável) ---------- */
.checks{display:flex;flex-direction:column;gap:.2rem}
.checks li{display:flex;gap:.65rem;align-items:flex-start;padding:.42rem 0;font-size:.98rem}
.checks svg{flex:none;width:20px;height:20px;margin-top:2px;stroke:var(--accent);fill:none;stroke-width:2}
.section--light .checks svg{stroke:#0a8f86}
.section--light .checks li{color:var(--navy-900)}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:100;transition:background var(--dur),box-shadow var(--dur),border-color var(--dur);
  border-bottom:1px solid transparent}
.site-header.is-stuck{background:var(--header-bg);backdrop-filter:blur(12px);border-bottom-color:var(--color-border)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5);min-height:72px}
.nav__brand{display:flex;align-items:center;gap:.6rem}
.nav__brand img{height:34px;width:auto}
.nav__menu{display:flex;align-items:center;gap:var(--sp-6)}
.nav__link{font-size:.95rem;color:var(--color-text-muted);position:relative;padding:.4rem 0;transition:color var(--dur)}
.nav__link:hover,.nav__link[aria-current="page"]{color:var(--color-text)}
.nav__link::after{content:"";position:absolute;left:0;bottom:-2px;height:2px;width:0;background:var(--accent-grad);transition:width var(--dur) var(--ease-out)}
.nav__link:hover::after,.nav__link[aria-current="page"]::after{width:100%}
.nav__cta{display:flex;align-items:center;gap:var(--sp-3)}
.nav__toggle{display:none;background:none;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);
  width:44px;height:44px;align-items:center;justify-content:center;cursor:pointer}
.nav__toggle svg{width:22px;height:22px;stroke:var(--color-text)}

@media (max-width:900px){
  .nav__menu{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:flex-start;gap:0;
    background:var(--color-bg-deep);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-2);padding:var(--sp-3) var(--gutter);
    transform:translateY(-120%);opacity:0;pointer-events:none;transition:transform var(--dur) var(--ease-in-out),opacity var(--dur);height:auto}
  .nav__menu.is-open{transform:translateY(0);opacity:1;pointer-events:auto}
  .nav__menu .nav__link{width:100%;padding:.9rem 0;border-bottom:1px solid var(--color-border)}
  .nav__toggle{display:inline-flex}
  .nav__cta .btn--secondary{display:none}
}
@media (max-width:560px){ .nav__cta .btn--primary{display:none} }  /* descongestiona o header no mobile (contato na topbar + drawer) */

/* ---------- Cards de pilar ---------- */
.grid{display:grid;gap:var(--sp-5)}
.grid--3{grid-template-columns:repeat(3,1fr)}
.grid--4{grid-template-columns:repeat(4,1fr)}
.grid--2{grid-template-columns:repeat(2,1fr)}
@media (max-width:900px){.grid--3,.grid--4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.grid--3,.grid--4,.grid--2{grid-template-columns:1fr}}

.card{background:var(--surface-1);border:1px solid var(--color-border);border-radius:var(--radius-card);
  padding:var(--sp-6);transition:transform var(--dur) var(--ease-out),box-shadow var(--dur),border-color var(--dur);height:100%}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-2);border-color:rgba(38,229,222,.35)}
.card__icon{width:44px;height:44px;margin-bottom:var(--sp-4)}
.card h3{margin-bottom:var(--sp-2)}
.card p{color:var(--color-text-muted);font-size:.96rem}
.card__link{display:inline-flex;align-items:center;gap:.4rem;margin-top:var(--sp-4);color:var(--accent);font-weight:600;font-size:.9rem}
.card__link .btn__arrow{display:inline-block}

/* ---------- Badge ---------- */
.badge{display:inline-flex;align-items:center;gap:.45rem;padding:.35rem .8rem;border-radius:var(--radius-pill);
  background:var(--surface-2);border:1px solid var(--color-border);font-size:var(--fs-sm);color:var(--color-text-muted)}
.badge--accent{border-color:rgba(38,229,222,.4);color:var(--accent)}
.badge .dot{width:7px;height:7px;border-radius:50%;background:var(--accent)}

/* ---------- Screen-frame (demo do produto) ---------- */
.screen{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--color-border-strong);
  background:var(--surface-1);box-shadow:var(--shadow-2)}
.screen__bar{display:flex;align-items:center;gap:.4rem;padding:.7rem .9rem;background:var(--color-bg-deep);border-bottom:1px solid var(--color-border)}
.screen__bar .dot{width:10px;height:10px;border-radius:50%;background:#33465f}
.screen__bar .label{margin-left:auto;font-size:var(--fs-xs);color:var(--gray-500);letter-spacing:.06em;text-transform:uppercase}
.screen__body{padding:var(--sp-5);min-height:200px}
.demo-tag{display:inline-block;margin-top:.6rem;font-size:var(--fs-xs);color:var(--gray-500)}

/* ---------- Footer ---------- */
.site-footer{background:var(--color-bg-deep);border-top:1px solid var(--color-border);padding-block:var(--sp-8) var(--sp-6)}
.footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:var(--sp-6)}
@media (max-width:820px){.footer__grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.footer__grid{grid-template-columns:1fr}}
.footer__brand img{height:42px;margin-bottom:var(--sp-4)}
.footer h4{font-family:var(--font-display);font-size:var(--fs-xs);letter-spacing:var(--tracking-label);
  text-transform:uppercase;color:var(--gray-500);margin-bottom:var(--sp-4)}
.footer a{color:var(--color-text-muted);font-size:.93rem;display:block;padding:.28rem 0;transition:color var(--dur)}
.footer a:hover{color:var(--accent)}
.footer__bottom{display:flex;flex-wrap:wrap;gap:var(--sp-4);justify-content:space-between;align-items:center;
  margin-top:var(--sp-7);padding-top:var(--sp-5);border-top:1px solid var(--color-border);color:var(--gray-500);font-size:var(--fs-sm)}

/* ---------- Formulário ---------- */
.field{margin-bottom:var(--sp-4)}
.field label{display:block;font-size:var(--fs-sm);font-weight:600;margin-bottom:.4rem}
.field input,.field select,.field textarea{width:100%;min-height:48px;padding:.7rem .9rem;background:var(--surface-1);
  border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--dur),box-shadow var(--dur)}
.field textarea{min-height:110px;resize:vertical}
.field input::placeholder,.field textarea::placeholder{color:var(--gray-500)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(38,229,222,.18)}
.field[data-error] input,.field[data-error] select,.field[data-error] textarea{border-color:var(--error)}
.field .err{display:none;color:var(--error);font-size:var(--fs-sm);margin-top:.35rem}
.field[data-error] .err{display:block}
.form-status{margin-top:var(--sp-4);font-size:.95rem}
.form-status[data-state="success"]{color:var(--success)}
.form-status[data-state="error"]{color:var(--error)}
.form-status[data-state="loading"]{color:var(--color-text-muted)}
.form-status a{color:var(--accent)}
.hp{position:absolute;left:-9999px}

/* ---------- Topbar institucional (contato sempre à mão) ---------- */
.topbar{background:var(--topbar-bg);color:#cdd8e8;font-size:.82rem;border-bottom:1px solid rgba(255,255,255,.06)}
.topbar .container{display:flex;align-items:center;gap:var(--sp-5);min-height:38px}
.topbar__loc{color:#9FB0C4;display:inline-flex;align-items:center;gap:6px}
.topbar__loc svg{width:14px;height:14px;stroke:var(--cyan-400);fill:none;stroke-width:2}
.topbar__links{margin-left:auto;display:flex;align-items:center;gap:var(--sp-5)}
.topbar__links a{display:inline-flex;align-items:center;gap:6px;color:#cdd8e8;transition:color var(--dur)}
.topbar__links a:hover{color:var(--cyan-400)}
.topbar__links svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}
.topbar__links .em{color:#8296b4}
@media (max-width:680px){
  .topbar__loc{display:none}
  .topbar .container{gap:var(--sp-4)}
  .topbar__links{margin-left:0;width:100%;justify-content:center;gap:var(--sp-6)}
  .topbar__links .lbl{display:none}
  .topbar__links a{gap:0}
}

/* ---------- Botão de tema ---------- */
.theme-toggle{width:42px;height:42px;flex:none;display:grid;place-items:center;border-radius:var(--radius-pill);
  background:transparent;border:1px solid var(--color-border-strong);color:var(--color-text);cursor:pointer;transition:border-color var(--dur),background var(--dur)}
.theme-toggle:hover{border-color:var(--accent);background:rgba(38,229,222,.08)}
.theme-toggle svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:2}
.theme-toggle .i-sun{display:none}
:root[data-theme="dark"] .theme-toggle .i-sun{display:block}
:root[data-theme="dark"] .theme-toggle .i-moon{display:none}

/* ---------- Faixa de fatos institucionais (home) ---------- */
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-5)}
@media (max-width:760px){.facts{grid-template-columns:1fr}}
.fact{padding-left:var(--sp-4);border-left:2px solid var(--accent)}
.fact .h{font-family:var(--font-display);font-weight:700;font-size:1.05rem;margin-bottom:.25rem}
.fact p{color:var(--color-text-muted);font-size:.95rem}

/* ---------- Cartões de contato (home) ---------- */
.contact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-4)}
@media (max-width:820px){.contact-grid{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.contact-grid{grid-template-columns:1fr}}
.ccard{display:flex;flex-direction:column;gap:6px;padding:var(--sp-5);background:var(--surface-1);border:1px solid var(--color-border);border-radius:var(--radius-card);transition:border-color var(--dur),transform var(--dur)}
.ccard:hover{border-color:var(--accent);transform:translateY(-3px)}
.ccard .ic{width:38px;height:38px;border-radius:10px;background:rgba(38,229,222,.12);display:grid;place-items:center;margin-bottom:6px}
.ccard .ic svg{width:19px;height:19px;stroke:var(--accent);fill:none;stroke-width:2}
.ccard .k{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted)}
.ccard .v{font-family:var(--font-display);font-weight:700;font-size:1.02rem;color:var(--color-text)}

/* ---------- CTA band ---------- */
.cta-band{background:linear-gradient(160deg,var(--surface-3),var(--navy-900));border:1px solid var(--color-border);
  border-radius:var(--radius-lg);padding:clamp(32px,6vw,64px);text-align:center;position:relative;overflow:hidden}
.cta-band::before{content:"";position:absolute;inset:0;background:radial-gradient(600px 200px at 50% -20%,rgba(38,229,222,.16),transparent 70%);pointer-events:none}
