:root{
    --ink:#231F20; --orange:#E8621A; --orange-d:#cf4f0e; --soft:#FEF0E3;
    --paper:#fbf8f5; --line:#efe6dd; --muted:#8a8178; --green:#2f9e7a; --maxw:1120px;
  }
  *{ box-sizing:border-box; margin:0; padding:0; }
  html{ scroll-behavior:smooth; }
  body{ font-family:-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; color:var(--ink);
    background:var(--paper); line-height:1.55; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
  a{ color:inherit; text-decoration:none; } img{ max-width:100%; height:auto; display:block; }
  .wrap{ max-width:var(--maxw); margin:0 auto; padding:0 22px; }
  .skip{ position:absolute; left:-999px; top:0; background:#fff; padding:10px 14px; border-radius:8px; z-index:99; }
  .skip:focus{ left:14px; top:14px; }
  .mono{ font-family:"SFMono-Regular",ui-monospace,Menlo,Consolas,monospace; }

  .btn{ display:inline-flex; align-items:center; gap:8px; font-weight:700; font-size:15px;
    padding:13px 22px; border-radius:12px; border:1.5px solid transparent; cursor:pointer; transition:.18s; }
  .btn.primary{ background:var(--orange); color:#fff; box-shadow:0 8px 22px -10px rgba(232,98,26,.7); }
  .btn.primary:hover{ background:var(--orange-d); transform:translateY(-1px); }
  .btn.ghost{ background:#fff; color:var(--ink); border-color:var(--line); }
  .btn.ghost:hover{ border-color:var(--orange); color:var(--orange); }
  .btn.dark{ background:#fff; color:var(--ink); } .btn.dark:hover{ background:var(--soft); }

  header.site{ position:sticky; top:0; z-index:40; background:rgba(251,248,245,.9);
    backdrop-filter:saturate(1.4) blur(10px); border-bottom:1px solid var(--line); }
  .nav{ display:flex; align-items:center; gap:22px; height:68px; }
  .nav .brand{ display:flex; align-items:center; gap:10px; margin-right:auto; }
  .nav .brand img{ height:50px; }
  .footlogo{ display:inline-block; background:#fff; border-radius:12px; padding:9px 14px; margin-bottom:14px; }
  .footlogo img{ height:42px; }
  .logo{ display:inline-flex; align-items:center; gap:9px; font-weight:800; font-size:19px; letter-spacing:-.4px; color:var(--ink); }
  .logo .word b{ color:var(--orange); font-weight:800; }
  .logo .mark{ flex:0 0 auto; }
  .nav .links{ display:flex; align-items:center; gap:26px; font-weight:600; font-size:15px; color:#5b534e; }
  .nav .links a:hover{ color:var(--ink); }
  .nav .cta{ display:flex; align-items:center; gap:12px; }
  .nav .enter{ font-weight:700; font-size:15px; padding:9px 6px; } .nav .enter:hover{ color:var(--orange); }
  .burger{ display:none; background:none; border:0; cursor:pointer; padding:8px; }
  .burger span{ display:block; width:22px; height:2px; background:var(--ink); margin:4px 0; border-radius:2px; }
  .langsel{ display:inline-flex; align-items:center; gap:3px; margin-left:6px; }
  .langsel a{ font-size:12.5px; font-weight:700; color:var(--muted); padding:3px 7px; border-radius:7px; letter-spacing:.4px; }
  .langsel a:hover{ color:var(--ink); background:rgba(35,31,32,.05); }
  .langsel a.active{ color:#fff; background:var(--orange); }

  /* HERÓI futurista */
  .hero{ position:relative; overflow:hidden; padding:78px 0 70px; }
  .hero::before{ content:""; position:absolute; inset:0; z-index:-2;
    background:
      radial-gradient(680px 400px at 86% -10%, rgba(232,98,26,.14), transparent 60%),
      radial-gradient(520px 340px at -8% 30%, rgba(232,98,26,.07), transparent 60%); }
  .hero::after{ content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
    background-image:radial-gradient(rgba(35,31,32,.05) 1px, transparent 1px); background-size:24px 24px;
    -webkit-mask-image:linear-gradient(180deg,#000,transparent 70%); mask-image:linear-gradient(180deg,#000,transparent 70%); opacity:.7; }
  .hero-grid{ display:grid; grid-template-columns:1.02fr .98fr; gap:46px; align-items:center; }
  .eyebrow{ display:inline-flex; align-items:center; gap:8px; font-size:12.5px; font-weight:700; letter-spacing:.3px;
    color:var(--orange-d); background:var(--soft); border:1px solid #f3d9c4; padding:6px 13px; border-radius:999px; margin-bottom:18px; }
  .dot{ width:7px; height:7px; border-radius:50%; background:var(--orange); position:relative; }
  .dot::after{ content:""; position:absolute; inset:-4px; border-radius:50%; border:1.5px solid rgba(232,98,26,.5); animation:pulse 2.2s ease-out infinite; }
  @keyframes pulse{ 0%{ transform:scale(.6); opacity:1 } 100%{ transform:scale(1.8); opacity:0 } }
  h1{ font-size:clamp(31px,4.7vw,52px); line-height:1.04; letter-spacing:-1.1px; font-weight:800; }
  h1 .u{ color:var(--orange); }
  .lead{ font-size:18px; color:#5b534e; margin:18px 0 26px; max-width:35em; }
  .hero-cta{ display:flex; gap:12px; flex-wrap:wrap; }
  .chips{ display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:24px; font-size:13.5px; color:#6b6360; }
  .chips span{ display:inline-flex; align-items:center; gap:7px; }
  .chips span::before{ content:""; width:6px; height:6px; border-radius:50%; background:var(--orange); }

  .hero-shot{ position:relative; }
  .hero-shot .frame{ border-radius:18px; border:1px solid rgba(255,255,255,.7); background:rgba(255,255,255,.55);
    backdrop-filter:blur(6px); padding:8px; box-shadow:0 34px 80px -34px rgba(35,31,32,.5), 0 0 0 1px var(--line); }
  .hero-shot .frame img{ border-radius:12px; display:block; }
  .floatchip{ position:absolute; background:#fff; border:1px solid var(--line); border-radius:12px; padding:9px 13px;
    box-shadow:0 16px 36px -18px rgba(35,31,32,.5); font-size:12.5px; font-weight:700; display:flex; align-items:center; gap:8px; }
  .floatchip.tl{ top:-14px; left:-14px; } .floatchip.br{ bottom:-14px; right:-14px; }
  .floatchip small{ display:block; font-weight:600; color:var(--muted); font-size:10.5px; }
  .floatchip .pulse{ width:9px; height:9px; border-radius:50%; background:var(--green); box-shadow:0 0 0 0 rgba(47,158,122,.5); animation:beat 1.8s infinite; }
  @keyframes beat{ 0%{ box-shadow:0 0 0 0 rgba(47,158,122,.5) } 70%{ box-shadow:0 0 0 8px rgba(47,158,122,0) } 100%{ box-shadow:0 0 0 0 rgba(47,158,122,0) } }

  .kpis{ padding:2px 0 30px; }
  .kpigrid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
  .kpi{ position:relative; background:#fff; border:1px solid var(--line); border-radius:16px; padding:16px 18px; box-shadow:0 12px 30px -24px rgba(35,31,32,.5); overflow:hidden; }
  .kpi .l{ font-size:10.5px; text-transform:uppercase; letter-spacing:.6px; color:var(--muted); font-weight:600; }
  .kpi .v{ font-size:22px; font-weight:800; letter-spacing:-.4px; margin-top:5px; display:flex; align-items:baseline; gap:4px; }
  .kpi .v small{ font-size:13px; font-weight:700; color:var(--muted); }
  .kpi.accent{ background:linear-gradient(135deg,#fff,var(--soft)); border-color:#f3d9c4; }
  .kpi.accent .v{ color:var(--orange); }
  .kpi .kic{ position:absolute; right:13px; top:15px; color:#d8cabd; }
  .kpi .kic svg{ width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
  .kpi .spark{ position:absolute; right:12px; top:16px; }

  section.block{ padding:64px 0; }
  .sec-eyebrow{ font-size:13px; font-weight:700; letter-spacing:.4px; color:var(--orange-d); text-transform:uppercase; }
  .sec-title{ font-size:clamp(24px,3.2vw,34px); font-weight:800; letter-spacing:-.6px; margin:8px 0 10px; max-width:18em; }
  .sec-sub{ color:#5b534e; font-size:17px; max-width:44em; }

  .audience{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:34px; }
  .aud{ background:#fff; border:1px solid var(--line); border-radius:18px; padding:24px; }
  .aud h3{ font-size:18px; margin:14px 0 8px; } .aud p{ color:#5b534e; font-size:14.5px; }
  .ic{ width:44px; height:44px; border-radius:12px; background:var(--soft); display:flex; align-items:center; justify-content:center; }
  .ic svg{ width:23px; height:23px; stroke:var(--orange-d); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }

  .feat{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:34px; }
  .f{ display:flex; gap:16px; background:#fff; border:1px solid var(--line); border-radius:18px; padding:22px 24px; }
  .f h3{ font-size:17px; margin-bottom:6px; } .f p{ color:#5b534e; font-size:14.5px; } .f .ic{ flex:0 0 auto; }

  .shots.block{ background:linear-gradient(180deg,#fff,var(--soft)); border-block:1px solid var(--line); }
  .shotwrap{ margin-top:34px; display:grid; gap:18px; }
  .shot{ background:#fff; border:1px solid var(--line); border-radius:16px; overflow:hidden;
    box-shadow:0 16px 40px -26px rgba(35,31,32,.5); }
  .shot img{ width:100%; display:block; border-bottom:1px solid var(--line); background:#fbf8f5; }
  .shot .cap{ padding:13px 16px; font-size:13.5px; } .shot .cap b{ font-weight:700; } .shot .cap span{ color:var(--muted); }
  .shotrow{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }

  .reports{ display:grid; grid-template-columns:1.1fr .9fr; gap:30px; align-items:center; }
  .reports .card{ background:var(--ink); color:#fff; border-radius:18px; padding:26px; }
  .reports .card .mini{ display:flex; align-items:center; gap:10px; padding:11px 13px; background:#2c2627; border:1px solid #3a3334; border-radius:11px; margin-bottom:9px; font-size:13px; }
  .reports .card .mini b{ font-weight:700; } .reports .card .mini .when{ margin-left:auto; color:#b6aaa3; font-size:12px; }
  .reports .card .ok{ color:#7fdcb6; }

  .steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:34px; counter-reset:s; }
  .step{ background:#fff; border:1px solid var(--line); border-radius:18px; padding:24px; position:relative; }
  .step::before{ counter-increment:s; content:counter(s); position:absolute; top:-14px; left:24px;
    width:34px; height:34px; border-radius:10px; background:var(--ink); color:#fff; font-weight:800;
    display:flex; align-items:center; justify-content:center; font-size:15px; }
  .step h3{ font-size:17px; margin:14px 0 7px; } .step p{ color:#5b534e; font-size:14.5px; }

  .final{ background:var(--ink); color:#fff; text-align:center; padding:72px 0; position:relative; overflow:hidden; }
  .final::before,.final::after{ content:""; position:absolute; border:1.5px solid rgba(232,98,26,.35); border-radius:50%; }
  .final::before{ width:320px; height:320px; left:-130px; top:-130px; } .final::after{ width:240px; height:240px; right:-100px; bottom:-100px; }
  .final h2{ font-size:clamp(24px,3.4vw,34px); font-weight:800; letter-spacing:-.6px; }
  .final p{ color:#cfc7c0; margin:12px auto 26px; max-width:32em; font-size:17px; }
  .final .hero-cta{ justify-content:center; }

  footer.site{ background:#1c1819; color:#cabfb6; padding:54px 0 26px; font-size:14px; }
  .foot-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:30px; }
  footer .brand img{ height:46px; margin-bottom:14px; }
  footer p{ color:#9b9089; max-width:30em; }
  footer h4{ color:#fff; font-size:13px; text-transform:uppercase; letter-spacing:.5px; margin-bottom:12px; }
  footer a{ color:#cabfb6; display:block; padding:4px 0; } footer a:hover{ color:#fff; }
  .foot-bot{ border-top:1px solid #322c2d; margin-top:38px; padding-top:18px; display:flex; flex-wrap:wrap;
    gap:10px 18px; justify-content:space-between; align-items:center; color:#8a807a; font-size:13px; }
  .foot-legal a{ display:inline; margin-right:16px; }

  .cookie{ position:fixed; left:16px; right:16px; bottom:16px; z-index:60; max-width:760px; margin:0 auto;
    background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:0 18px 50px -20px rgba(35,31,32,.45);
    padding:16px 18px; display:flex; gap:14px; align-items:center; flex-wrap:wrap; font-size:13.5px; color:#5b534e; }
  .cookie b{ color:var(--ink); } .cookie .btn{ padding:10px 18px; font-size:14px; margin-left:auto; }

  .reveal{ opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease; }
  .reveal.in{ opacity:1; transform:none; }

  @media (max-width:900px){
    .hero-grid,.reports{ grid-template-columns:1fr; gap:34px; }
    .audience,.feat,.steps,.shotrow{ grid-template-columns:1fr; }
    .foot-grid{ grid-template-columns:1fr; gap:24px; }
    .stats .row{ grid-template-columns:1fr 1fr; } .kpigrid{ grid-template-columns:1fr 1fr; }
  }
  @media (max-width:760px){ .nav .links,.nav .enter{ display:none; } .burger{ display:block; } }
  @media (prefers-reduced-motion:reduce){ *{ scroll-behavior:auto; transition:none !important; animation:none !important; } .reveal{ opacity:1; transform:none; } }

/* ===== Componentes de páginas internas ===== */
.pagehero{ position:relative; overflow:hidden; padding:54px 0 30px; }
.pagehero::after{ content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background-image:radial-gradient(rgba(35,31,32,.045) 1px, transparent 1px); background-size:24px 24px;
  -webkit-mask-image:linear-gradient(180deg,#000,transparent 80%); mask-image:linear-gradient(180deg,#000,transparent 80%); opacity:.7; }
.breadcrumb{ font-size:13px; color:var(--muted); margin-bottom:14px; }
.breadcrumb a:hover{ color:var(--orange); }
.pagehero h1{ font-size:clamp(28px,4vw,42px); line-height:1.08; letter-spacing:-.8px; }
.pagehero .lead{ max-width:40em; }

/* Funcionalidades — blocos alternados */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:38px; align-items:center; padding:40px 0; border-bottom:1px solid var(--line); }
.split:last-child{ border-bottom:0; }
.split.rev .txt{ order:2; }
.split .txt h2{ font-size:24px; font-weight:800; letter-spacing:-.5px; margin-bottom:10px; }
.split .txt p{ color:#5b534e; font-size:15.5px; margin-bottom:12px; }
.split .txt ul{ list-style:none; display:grid; gap:8px; margin-top:6px; }
.split .txt li{ position:relative; padding-left:24px; font-size:14.5px; color:#4a443f; }
.split .txt li::before{ content:""; position:absolute; left:0; top:7px; width:13px; height:9px;
  border-left:2px solid var(--orange); border-bottom:2px solid var(--orange); transform:rotate(-45deg); }
.split .pic{ background:#fff; border:1px solid var(--line); border-radius:16px; overflow:hidden;
  box-shadow:0 18px 44px -28px rgba(35,31,32,.5); }
.split .pic img{ width:100%; }
.split .pic .cap{ padding:11px 15px; font-size:13px; color:var(--muted); border-top:1px solid var(--line); }
.tagband{ display:inline-flex; align-items:center; gap:8px; font-size:12px; font-weight:700; letter-spacing:.3px;
  color:var(--orange-d); background:var(--soft); border:1px solid #f3d9c4; padding:5px 12px; border-radius:999px; margin-bottom:12px; }

/* Preços */
.pricewrap{ display:grid; grid-template-columns:1.1fr .9fr; gap:26px; align-items:start; margin-top:30px; }
.plan{ background:#fff; border:1px solid var(--line); border-radius:20px; padding:30px; box-shadow:0 18px 50px -32px rgba(35,31,32,.5); position:relative; }
.plan .badge{ position:absolute; top:18px; right:18px; font-size:11px; font-weight:700; color:#fff; background:var(--orange); padding:5px 11px; border-radius:999px; }
.plan h3{ font-size:18px; } .plan .price{ font-size:44px; font-weight:800; letter-spacing:-1.5px; margin:10px 0 2px; }
.plan .price small{ font-size:16px; font-weight:700; color:var(--muted); }
.plan .sub{ color:var(--muted); font-size:14px; margin-bottom:18px; }
.plan ul{ list-style:none; display:grid; gap:11px; margin:18px 0 22px; }
.plan li{ position:relative; padding-left:26px; font-size:14.5px; }
.plan li::before{ content:""; position:absolute; left:0; top:6px; width:14px; height:9px; border-left:2.4px solid var(--green); border-bottom:2.4px solid var(--green); transform:rotate(-45deg); }
.plan .btn{ width:100%; justify-content:center; }
.priceside{ display:grid; gap:14px; }
.pricecard{ background:#fff; border:1px solid var(--line); border-radius:16px; padding:20px 22px; }
.pricecard h4{ font-size:15px; margin-bottom:6px; } .pricecard p{ color:#5b534e; font-size:14px; }
.pricecard .big{ font-size:20px; font-weight:800; color:var(--orange); }
table.hist{ width:100%; border-collapse:collapse; font-size:14px; margin-top:8px; }
table.hist th,table.hist td{ padding:9px 8px; border-bottom:1px solid var(--line); text-align:left; }
table.hist th{ font-size:11px; text-transform:uppercase; letter-spacing:.5px; color:var(--muted); }
table.hist td.num{ text-align:right; font-variant-numeric:tabular-nums; font-weight:700; }

/* FAQ */
.faq{ margin-top:18px; border-top:1px solid var(--line); }
.faq details{ border-bottom:1px solid var(--line); padding:4px 0; }
.faq summary{ cursor:pointer; padding:16px 4px; font-weight:700; font-size:16px; list-style:none; display:flex; justify-content:space-between; gap:12px; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; color:var(--orange); font-weight:800; font-size:20px; }
.faq details[open] summary::after{ content:"\2212"; }
.faq p{ padding:0 4px 16px; color:#5b534e; font-size:14.5px; }

/* Formulário de contacto */
.formwrap{ display:grid; grid-template-columns:1.15fr .85fr; gap:30px; align-items:start; margin-top:30px; }
.formcard{ background:#fff; border:1px solid var(--line); border-radius:20px; padding:26px; box-shadow:0 18px 50px -32px rgba(35,31,32,.5); }
.fgrid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.field{ display:flex; flex-direction:column; gap:6px; }
.field.full{ grid-column:1 / -1; }
.field label{ font-size:13px; font-weight:700; color:#4a443f; }
.field label .req{ color:var(--orange); }
.field input,.field select,.field textarea{ font-family:inherit; font-size:14.5px; padding:11px 13px; border:1px solid var(--line);
  border-radius:11px; background:#fdfbf9; color:var(--ink); transition:.15s; }
.field input:focus,.field select:focus,.field textarea:focus{ outline:none; border-color:var(--orange); box-shadow:0 0 0 3px rgba(232,98,26,.12); background:#fff; }
.field textarea{ resize:vertical; min-height:96px; }
.consent{ display:flex; gap:10px; align-items:flex-start; font-size:13px; color:#5b534e; margin-top:4px; }
.consent input{ margin-top:3px; }
.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.formnote{ font-size:12.5px; color:var(--muted); margin-top:12px; }
.contactside{ display:grid; gap:14px; align-content:start; }
.cside{ background:#fff; border:1px solid var(--line); border-radius:16px; padding:20px 22px; }
.cside h4{ font-size:14px; text-transform:uppercase; letter-spacing:.4px; color:var(--muted); margin-bottom:10px; }
.cside a{ color:var(--ink); font-weight:600; } .cside a:hover{ color:var(--orange); }
.formok{ background:linear-gradient(135deg,#fff,var(--soft)); border:1px solid #f3d9c4; border-radius:16px; padding:30px; text-align:center; }
.formok h3{ font-size:20px; margin-bottom:8px; } .formok p{ color:#5b534e; }

/* Legal */
.legal{ max-width:780px; } .legal .toc{ display:flex; flex-wrap:wrap; gap:8px 18px; margin:14px 0 30px; font-size:14px; }
.legal .toc a{ color:var(--orange-d); font-weight:600; } .legal h2{ font-size:22px; margin:34px 0 12px; letter-spacing:-.4px; scroll-margin-top:90px; }
.legal h3{ font-size:16px; margin:20px 0 8px; } .legal p,.legal li{ color:#3f3a36; font-size:15px; }
.legal ul{ margin:8px 0 8px 20px; } .legal li{ margin-bottom:6px; } .legal .upd{ color:var(--muted); font-size:13px; }
.legal address{ font-style:normal; line-height:1.7; }

@media (max-width:900px){
  .split,.pricewrap,.formwrap{ grid-template-columns:1fr; }
  .split.rev .txt{ order:0; }
  .fgrid{ grid-template-columns:1fr; }
}
