/* PoloFlow — public pages (homepage and legal pages). Builds on the tokens and buttons of app.css. */
.brand{color:inherit;text-decoration:none}
.site{background:var(--surface)}
.s-wrap{max-width:1180px;margin:0 auto;padding-left:max(20px, env(safe-area-inset-left, 0px));padding-right:max(20px, env(safe-area-inset-right, 0px))}
.site a:not(.btn):not(.brand){color:var(--carbon)}
.s-h2{font-family:var(--f-display);font-weight:800;font-size:clamp(32px,4.4vw,52px);line-height:.95;margin-bottom:28px}

/* Header */
body.site::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top, 0px);z-index:30;background:var(--surface)}
.s-head{position:sticky;top:env(safe-area-inset-top, 0px);z-index:20;background:color-mix(in srgb, var(--surface) 92%, transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule)}
.s-head-in{display:flex;align-items:center;gap:24px;padding-block:14px}
.s-nav{display:flex;gap:22px;margin-left:12px}
.s-nav a{color:var(--muted)!important;text-decoration:none;font-weight:500;font-size:14px}
.s-nav a:hover{color:var(--ink)!important}
.s-head-cta{margin-left:auto;display:flex;gap:8px}

/* Hero */
.hero{padding-block:72px 84px;overflow:hidden}
.hero-in{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:56px;align-items:center}
.hero h1{font-family:var(--f-display);font-weight:800;font-size:clamp(48px,7vw,96px);line-height:.88;letter-spacing:.002em;margin-bottom:22px}
.hero .lead{font-size:17px;max-width:54ch}
.hero-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.hero-proof{list-style:none;padding:0;margin:26px 0 0;display:flex;flex-wrap:wrap;gap:8px 22px;font-size:13px;color:var(--muted)}
.hero-proof li{display:flex;align-items:center;gap:8px}
.hero-proof li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--carbon)}

/* Hero invoice mock */
.hero-art{position:relative;min-height:640px}
.logo-card{position:absolute;top:0;right:0;width:min(94%,480px);background:#000000;border-radius:24px;overflow:hidden;transform:rotate(2.5deg);box-shadow:0 30px 60px rgba(30,0,6,.28)}
.logo-card img{display:block;width:100%;height:auto}
.brand-word.sm{height:22px}
.mock{position:absolute;left:0;bottom:0;width:min(68%,320px);background:#FFFFFF;color:var(--ink);border-radius:6px;padding:26px 26px 30px;box-shadow:0 30px 70px rgba(80,10,20,.22);transform:rotate(-4deg);font-size:11.5px;display:grid;gap:12px}
.mock i{display:block;height:6px;border-radius:3px;background:var(--rule);margin-top:6px;width:80%}
.mock i.s{width:55%}
.mock-top{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start}
.mock-logo{width:34px;height:34px;border-radius:50%;background:var(--carbon)}
.mock-top b{font-size:12.5px}
.mock-k{font-family:var(--f-display);font-weight:800;font-size:28px;line-height:.9;color:var(--carbon);text-align:right}
.mock-k small{display:block;font-family:var(--f-mono);font-weight:400;font-size:10px;color:var(--muted);margin-top:4px}
.mock-client{justify-self:end;width:62%;background:var(--doc-soft);border:1px solid var(--doc-rule);border-radius:3px;padding:10px 12px}
.mock-client small{display:block;font-size:9px;font-weight:700;letter-spacing:.1em;color:var(--muted)}
.mock-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--doc-rule)}
.mock-row b,.mock-total b{font-family:var(--f-mono);font-weight:500;white-space:nowrap}
.mock-total{justify-self:end;width:62%;display:flex;justify-content:space-between;background:var(--carbon);color:#FFFFFF;padding:9px 12px;border-radius:2px;font-weight:700}
.mock-note{justify-self:end;font-size:10px;font-style:italic;color:var(--muted)}
.mock-stamp{position:absolute;top:34%;left:16%;transform:rotate(-12deg);border:4px double var(--stamp-ok);color:var(--stamp-ok);border-radius:6px;padding:4px 14px 3px;font-family:var(--f-display);font-weight:800;font-size:34px;line-height:.95;text-transform:uppercase;letter-spacing:.06em;display:grid;text-align:center;opacity:.85;mix-blend-mode:multiply}
.mock-stamp small{font-family:var(--f-mono);font-size:10px;font-weight:500;letter-spacing:.06em}

/* Steps */
.s-steps{padding-block:72px;background:var(--paper);border-block:1px solid var(--rule)}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.steps li{display:grid;gap:10px;align-content:start;border-top:3px solid var(--carbon);padding-top:18px}
.steps b{font-family:var(--f-display);font-weight:800;font-size:44px;line-height:.8;color:var(--carbon)}
.steps h3{font-size:18px;font-weight:700}
.steps p{color:var(--muted);line-height:1.55}

/* Features */
.s-feat{padding-block:80px}
.feat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);border-radius:10px;overflow:hidden}
.feat-grid article{background:var(--surface);padding:26px 26px 28px;display:grid;gap:8px;align-content:start}
.feat-grid h3{font-size:18px;font-weight:700}
.feat-grid p{color:var(--muted);line-height:1.55;max-width:52ch}

/* Service band */
.s-service{background:var(--carbon);color:#FFFFFF;padding-block:84px}
.svc-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center}
.svc-text h2{font-family:var(--f-display);font-weight:800;font-size:clamp(38px,5.2vw,66px);line-height:.92;margin:6px 0 18px}
.svc-text p{font-size:16px;line-height:1.6;max-width:50ch;margin-bottom:26px;color:rgba(255,255,255,.9)}
.eyebrow.light{color:rgba(255,255,255,.75)}
.btn.light{background:#FFFFFF;border-color:#FFFFFF;color:var(--carbon)}
.btn.light:hover{filter:brightness(.96)}
.svc-steps{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.svc-steps li{display:flex;gap:16px;align-items:flex-start;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.22);border-radius:10px;padding:18px}
.svc-steps b{font-family:var(--f-display);font-weight:800;font-size:38px;line-height:.85}
.svc-steps span{line-height:1.5;color:rgba(255,255,255,.88)}
.svc-steps strong{display:block;color:#FFFFFF;font-size:16px}

/* FAQ */
.s-faq{padding-block:80px}
.faq-in{max-width:860px}
.faq{display:grid;border-top:1px solid var(--rule)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:18px 0;font-size:17px;font-weight:600}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--f-mono);font-size:20px;color:var(--carbon);transition:transform .15s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 0 20px;color:var(--muted);line-height:1.6;max-width:68ch}

/* Footer */
.s-foot{border-top:1px solid var(--rule);background:var(--paper);padding-block:28px calc(28px + env(safe-area-inset-bottom, 0px))}
.s-foot-in{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px}
.s-foot .brand{font-size:20px}
.s-foot nav{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:13.5px}
.s-foot p{margin-left:auto;font-size:13px;color:var(--faint)}

/* Legal pages */
.legal{padding-block:48px 80px}
.legal-in{max-width:760px}
.legal h1{font-family:var(--f-display);font-weight:800;font-size:clamp(38px,5vw,56px);line-height:.95;margin-bottom:10px}
.legal .updated{color:var(--faint);font-size:13px;margin-bottom:28px}
.legal .todo-note{background:var(--warn-soft);border-radius:8px;padding:12px 14px;font-size:13.5px;line-height:1.5;margin-bottom:28px}
.legal h2{font-size:19px;font-weight:700;margin:30px 0 10px}
.legal p,.legal li{line-height:1.65;color:var(--ink)}
.legal p+p{margin-top:10px}
.legal ul{padding-left:20px;margin:8px 0}
.legal mark{background:var(--warn-soft);color:var(--warn);padding:0 4px;border-radius:3px;font-weight:600}

@media (max-width:980px){
  .hero-in,.svc-in{grid-template-columns:minmax(0,1fr)}
  .hero{padding-block:44px 64px}
  .hero-art{margin-top:8px;min-height:0;display:grid;justify-items:end}
  .logo-card{position:relative;width:min(100%,520px)}
  .mock{position:relative;justify-self:start;margin-top:14px;width:min(78%,340px)}
  .steps{grid-template-columns:minmax(0,1fr)}
  .s-nav{display:none}
}
@media (max-width:640px){
  .feat-grid{grid-template-columns:minmax(0,1fr)}
  .s-head-cta .btn.ghost{display:none}
  .s-head-in{gap:12px}
  .s-head .brand{font-size:20px}
  .mock{display:none}
  .s-foot p{margin-left:0;width:100%}
}

/* WhatsApp */
.svc-cta{display:flex;flex-wrap:wrap;gap:10px}
.btn.wa-light{background:transparent;border-color:rgba(255,255,255,.7);color:#FFFFFF}
.btn.wa-light:hover{background:rgba(255,255,255,.12)}
.wa-float{position:fixed;right:max(18px, env(safe-area-inset-right, 0px));bottom:calc(94px + env(safe-area-inset-bottom, 0px));z-index:40;display:inline-flex;align-items:center;gap:8px;background:#1F9D55;color:#FFFFFF!important;text-decoration:none;font-weight:600;font-size:14px;padding:12px 16px 12px 14px;border-radius:999px;box-shadow:0 12px 28px rgba(15,60,35,.3);transition:transform .15s}
.wa-float:hover{transform:translateY(-2px)}
@media (max-width:640px){.wa-float span{display:none}.wa-float{padding:13px}}

/* Pricing */
.s-price{padding-block:80px;background:var(--paper);border-block:1px solid var(--rule)}
.price-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.p-card{background:var(--surface);border:1px solid var(--rule);border-radius:12px;padding:22px;display:grid;gap:12px;align-content:start;min-width:0}
.p-card h3{font-size:16px;font-weight:700}
.p-amt{display:flex;align-items:baseline;gap:6px}
.p-amt b{font-family:var(--f-display);font-weight:800;font-size:48px;line-height:.9;color:var(--carbon)}
.p-amt span{font-size:13px;color:var(--muted)}
.p-card ul{list-style:none;margin:0;padding:0;display:grid;gap:7px;font-size:14px;color:var(--muted)}
.p-card li{display:flex;gap:8px}
.p-card li::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--carbon);margin-top:8px}
.p-card.dark{background:var(--carbon);border-color:var(--carbon)}
.p-card.dark h3,.p-card.dark .p-amt b,.p-card.dark .p-amt span,.p-card.dark ul{color:#FFFFFF}
.p-card.dark li::before{background:#FFFFFF}
.p-foot{margin-top:20px;color:var(--muted);font-size:14px;line-height:1.6;max-width:80ch}
.p-cta{margin-top:18px}
@media (max-width:980px){.price-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.price-grid{grid-template-columns:minmax(0,1fr)}}
