/* NOCORA — landing page
   Fontes em self-host (SIL Open Font License 1.1). Nada é carregado de domínios externos. */

@font-face{font-family:'Inter';src:url('/assets/fonts/inter-latin.woff2') format('woff2');font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:'Space Grotesk';src:url('/assets/fonts/spacegrotesk-latin.woff2') format('woff2');font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:'JetBrains Mono';src:url('/assets/fonts/jetbrainsmono-latin.woff2') format('woff2');font-weight:400 600;font-style:normal;font-display:swap}

:root{
  --bg:#05070c;
  --surface:#0b111a;
  --surface-2:#0f1622;
  --surface-3:#141d2c;
  --line:#1c2534;
  --line-2:#26324a;
  --accent:#2e90ff;
  --accent-strong:#1b6fd8;   /* fundo de botões: texto branco com contraste AA */
  --accent-2:#7fd6ff;
  --ok:#3fd49a;
  --warn:#ffb547;
  --bad:#ff6b6b;
  --text:#e9eef5;
  --text-muted:#9aa5b8;
  --text-dim:#7a869c;
  --radius:14px;
  --maxw:1180px;
  --font-sans:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --font-display:'Space Grotesk','Inter',system-ui,sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,Consolas,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{background:var(--bg);color:var(--text);font-family:var(--font-sans);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;letter-spacing:-0.02em;line-height:1.15}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.mono{font-family:var(--font-mono)}
.nw{white-space:nowrap}
[hidden]{display:none!important}
::selection{background:var(--accent);color:var(--bg)}
:focus-visible{outline:2px solid var(--accent-2);outline-offset:3px;border-radius:6px}
.drop:focus-within{outline:2px solid var(--accent-2);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:16px;top:-60px;z-index:100;background:var(--accent-strong);color:#fff;padding:10px 16px;border-radius:8px;font-weight:600}
.skip-link:focus{top:12px}

.eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-2);display:inline-flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.eyebrow::before{content:"";width:18px;height:1px;background:currentColor}
.soon{font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.08em;padding:2px 8px;border-radius:99px;border:1px solid var(--line-2);color:var(--text-muted);text-transform:uppercase;white-space:nowrap}
.eyebrow .soon{color:var(--warn);border-color:rgba(255,181,71,.4)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 22px;border-radius:10px;font-weight:600;font-size:15px;transition:transform .15s,background .15s,border-color .15s;border:1px solid transparent;cursor:pointer;font-family:inherit;min-height:44px}
.btn-primary{background:var(--accent-strong);color:#fff;box-shadow:0 8px 30px -8px rgba(46,144,255,.6)}
.btn-primary:hover{background:#1864c4;transform:translateY(-1px)}
.btn-ghost{border-color:rgba(154,165,184,.45);color:var(--text);background:rgba(15,22,34,.72)}
.btn-ghost:hover{border-color:var(--accent);background:rgba(46,144,255,.14)}
.btn[disabled]{opacity:.6;cursor:progress;transform:none}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(5,7,12,.8);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:border-color .2s}
.site-header.scrolled{border-bottom-color:var(--line)}
.site-header nav{display:flex;align-items:center;justify-content:space-between;height:68px}
.brand{display:flex;align-items:center;gap:12px;font-family:var(--font-display);font-weight:700;letter-spacing:.08em;font-size:20px}
.brand img{width:40px;height:40px;border-radius:10px}
.nav-links{display:flex;align-items:center;gap:28px;font-size:14.5px;color:var(--text-muted)}
.nav-links a:hover{color:var(--text)}
.nav-links .btn{padding:9px 16px;font-size:14px;color:#fff;min-height:40px}
.nav-links .btn-ghost{color:var(--text)}
.nav-toggle{display:none;background:none;border:1px solid var(--line-2);color:var(--text);width:44px;height:44px;border-radius:9px;cursor:pointer;place-items:center}
.nav-toggle svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}

/* ---------- hero ---------- */
.hero{position:relative;padding:84px 0 20px;text-align:center}
.hero::before{content:"";position:absolute;inset:-68px 0 auto;height:720px;background:radial-gradient(640px 380px at 50% 0%,rgba(46,144,255,.22),transparent 70%),radial-gradient(420px 300px at 85% 30%,rgba(127,214,255,.08),transparent 70%);pointer-events:none;z-index:-1}
.pill{display:inline-flex;align-items:center;gap:8px;padding:6px 14px 6px 8px;border:1px solid var(--line-2);border-radius:99px;font-size:13px;color:var(--text-muted);background:rgba(15,22,34,.7);margin-bottom:26px}
.pill b{background:rgba(46,144,255,.16);color:var(--accent-2);font-weight:600;padding:2px 9px;border-radius:99px;font-size:12px}
.hero h1{font-size:clamp(36px,6vw,68px);max-width:940px;margin:0 auto}
.hero h1 em{font-style:normal;background:linear-gradient(92deg,var(--accent) 10%,var(--accent-2) 90%);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .lead{font-size:clamp(16px,1.6vw,19px);color:var(--text-muted);max-width:660px;margin:22px auto 34px}
.hero-ctas{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

.products{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:64px;text-align:left}
.product{position:relative;border:1px solid var(--line-2);border-radius:18px;padding:30px;background:linear-gradient(160deg,rgba(46,144,255,.10),var(--surface) 55%);overflow:hidden;transition:border-color .2s,transform .2s;display:block}
.product:hover{border-color:rgba(46,144,255,.6);transform:translateY(-2px)}
.product.web{background:linear-gradient(160deg,rgba(127,214,255,.09),var(--surface) 55%)}
.product .tagline{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.product h2{font-size:30px;margin:8px 0 10px}
.product p{color:var(--text-muted);font-size:15.5px;max-width:440px}
.product .chips{display:flex;flex-wrap:wrap;gap:6px;margin:18px 0 22px}
.product .chips span{font-size:12px;padding:3px 10px;border-radius:99px;border:1px solid var(--line-2);color:var(--text-muted)}
.product .go{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:16px;font-size:14.5px}
.product .go b{font-family:var(--font-display);font-weight:600}
.product .go span{color:var(--accent-2);white-space:nowrap}

/* ---------- generic ---------- */
section{padding:110px 0;position:relative}
.section-head{max-width:700px;margin-bottom:56px}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center}
.section-head h2{font-size:clamp(30px,4vw,46px)}
.section-head p{color:var(--text-muted);font-size:17px;margin-top:16px}
.divider{border-top:1px solid var(--line)}
.mt-xl{margin-top:120px}

/* ---------- brand engine ---------- */
.brand-grid{display:grid;grid-template-columns:340px 1fr;gap:20px;align-items:start}
.ctrl{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:22px;display:grid;gap:20px}
.ctrl h3,.ctrl h4{font-family:var(--font-mono);font-weight:400;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);margin-bottom:10px}
.drop{position:relative;display:grid;place-items:center;gap:8px;text-align:center;border:1.5px dashed var(--line-2);border-radius:14px;padding:22px 16px;cursor:pointer;transition:border-color .2s,background .2s}
.drop:hover,.drop.over{border-color:var(--accent);background:rgba(46,144,255,.06)}
.drop input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.drop .thumb{width:64px;height:64px;border-radius:12px;background:#fff;display:grid;place-items:center;padding:6px}
.drop .thumb img{max-width:100%;max-height:100%;object-fit:contain}
.drop b{font-size:14.5px}
.drop small{color:var(--text-dim);font-size:12px}
.status{font-size:12.5px;color:var(--text-muted);min-height:18px;margin-top:8px}
.status.warn{color:var(--warn)}
.name-in{font-family:inherit;font-size:14.5px;color:var(--text);background:var(--bg);border:1px solid var(--line-2);border-radius:9px;padding:10px 12px;width:100%}
.swatches{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.sw-c{border-radius:10px;border:1px solid var(--line);overflow:hidden;font-size:10.5px;font-family:var(--font-mono)}
.sw-c i{display:block;height:40px}
.sw-c span{display:block;padding:5px 6px;color:var(--text-muted);background:var(--surface-2)}
.sw-c span b{display:block;color:var(--text);font-weight:500;font-family:var(--font-sans);font-size:11px}
.presets{display:flex;flex-wrap:wrap;gap:6px}
.preset{display:inline-flex;align-items:center;gap:7px;font-family:inherit;font-size:12.5px;color:var(--text-muted);background:transparent;border:1px solid var(--line-2);border-radius:99px;padding:6px 11px 6px 7px;cursor:pointer;min-height:32px}
.preset:hover{color:var(--text)}
.preset[aria-pressed="true"]{border-color:var(--text);color:var(--text)}
.preset i{width:14px;height:14px;border-radius:50%;display:inline-block;margin-right:6px;box-shadow:8px 0 0 -2px var(--a2)}
.privacy{font-size:12px;color:var(--text-dim)}

.previews{display:grid;grid-template-columns:1.05fr 1fr;gap:16px;--p:#1f7a4d;--p-dark:#155838;--p-on:#fff;--a:#f29e38;--soft:#eef7f1}
.pv{border-radius:16px;overflow:hidden;border:1px solid var(--line-2);background:#fff;color:#1a1d23;font-family:var(--font-sans);box-shadow:0 30px 60px -30px rgba(0,0,0,.8);display:flex;flex-direction:column}
.pv-cap{background:var(--surface-2);color:var(--text-muted);font-size:11px;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;padding:8px 12px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--line)}
.pv-cap i{width:7px;height:7px;border-radius:50%;background:var(--line-2);display:inline-block}
.pv-cap em{margin-left:auto;font-style:normal;text-transform:none;letter-spacing:0;color:var(--text-muted)}
.pv *{transition:background-color .35s,color .35s,border-color .35s}
.pv-logo{width:28px;height:28px;object-fit:contain}
.site-nav{display:flex;align-items:center;gap:9px;padding:12px 16px;border-bottom:1px solid #eef0f3}
.site-nav b{font-size:13.5px;font-family:var(--font-display)}
.site-nav .links{margin-left:auto;display:flex;gap:12px;font-size:11px;color:#5b6270}
.site-nav .cta{background:var(--p);color:var(--p-on);font-size:11px;font-weight:600;padding:6px 11px;border-radius:7px}
.site-hero{background:var(--soft);padding:28px 20px 30px;display:grid;grid-template-columns:1.3fr 1fr;gap:16px;align-items:center}
.site-hero small{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--p-dark);font-weight:700}
.site-hero .site-title{font-family:var(--font-display);font-weight:600;font-size:24px;color:#14161a;margin:6px 0 8px;line-height:1.15}
.site-hero p{font-size:12px;color:#4b525c;margin-bottom:14px}
.row-b{display:flex;gap:8px;flex-wrap:wrap}
.b1{background:var(--p);color:var(--p-on);font-size:11.5px;font-weight:600;padding:8px 13px;border-radius:8px}
.b2{border:1.5px solid var(--p);color:var(--p-dark);font-size:11.5px;font-weight:600;padding:6.5px 12px;border-radius:8px}
.site-img{aspect-ratio:1;width:100%;max-width:190px;justify-self:end;border-radius:14px;background:linear-gradient(135deg,var(--p),var(--a));display:grid;place-items:center}
.site-img img{width:52%;height:52%;object-fit:contain;background:#fff;border-radius:50%;padding:10%}
.site-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:16px 20px 20px}
.site-cards div{border:1px solid #eef0f3;border-radius:10px;padding:10px;font-size:11px;color:#4b525c}
.site-cards div::before{content:"";display:block;width:22px;height:22px;border-radius:7px;background:var(--a);opacity:.9;margin-bottom:8px}
.site-cards b{display:block;color:#14161a;font-size:12px;margin-bottom:2px}
.site-stats{display:none}

/* ---------- 4 estilos de site na demonstração: mesma marca, estrutura e ambiente diferentes ---------- */
.style-sel{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.style-sel button{font-family:inherit;font-size:13px;color:var(--text-muted);background:transparent;border:1px solid var(--line-2);border-radius:99px;padding:7px 13px;cursor:pointer;min-height:34px}
.style-sel button:hover{color:var(--text)}
.style-sel button[aria-pressed="true"]{border-color:var(--accent);color:var(--text);background:rgba(46,144,255,.1)}
.style-sel small{color:var(--text-dim)}
/* Blocos que só alguns estilos usam */
.site-topbar,.site-marquee,.site-menu,.site-cards .num{display:none}
.pv .site-hero{position:relative;overflow:hidden}

/* ===== Clássico (pastelaria): creme, serifado, nome ao centro, janela em arco, ementa com preços. Sem animações. ===== */
.pv[data-style="classico"]{background:#fbf7f0}
.pv[data-style="classico"] .site-nav{flex-wrap:wrap;justify-content:center;background:#fbf7f0;border-bottom:1px solid #e6d9c3;padding:14px 16px 10px;gap:4px 10px}
.pv[data-style="classico"] .site-nav b{font-family:Georgia,'Times New Roman',serif;font-size:17px;letter-spacing:.06em}
.pv[data-style="classico"] .site-nav .links{margin:0;width:100%;justify-content:center;gap:18px;font-family:Georgia,serif;font-style:italic;color:#7a6a55}
.pv[data-style="classico"] .site-nav .cta{display:none}
.pv[data-style="classico"] .site-hero{background:#fbf7f0;grid-template-columns:1.2fr 1fr;padding:26px 24px}
.pv[data-style="classico"] .site-hero small{font-family:Georgia,serif;font-style:italic;text-transform:none;letter-spacing:0;font-size:13px;color:var(--p-dark)}
.pv[data-style="classico"] .site-title{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:31px;letter-spacing:0;color:#2b2217}
.pv[data-style="classico"] .site-hero p{color:#6d5f4d;font-family:Georgia,serif;font-size:12.5px}
.pv[data-style="classico"] .b1{border-radius:2px;letter-spacing:.06em;text-transform:uppercase;font-size:10px}
.pv[data-style="classico"] .b2{border:0;border-bottom:1px solid var(--p-dark);border-radius:0;padding:6px 2px;font-family:Georgia,serif;font-style:italic}
.pv[data-style="classico"] .site-img{max-width:150px;aspect-ratio:3/4;border-radius:999px 999px 4px 4px;background:linear-gradient(180deg,var(--soft) 0%,var(--p) 100%);border:6px solid #fff;box-shadow:0 10px 24px -14px rgba(60,40,20,.5)}
.pv[data-style="classico"] .site-img img{border-radius:50%}
.pv[data-style="classico"] .site-cards{display:none}
.pv[data-style="classico"] .site-menu{display:block;background:#fff;border-top:1px solid #e6d9c3;padding:16px 26px 20px}
.site-menu h5{font-family:Georgia,serif;font-style:italic;font-weight:400;font-size:14px;color:var(--p-dark);text-align:center;margin-bottom:10px;display:flex;align-items:center;gap:12px}
.site-menu h5::before,.site-menu h5::after{content:"";flex:1;height:1px;background:#e6d9c3}
.site-menu ul{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:6px 28px}
.site-menu li{display:flex;align-items:baseline;font-family:Georgia,serif;font-size:12px;color:#2b2217}
.site-menu li i{flex:1;border-bottom:1px dotted #bfae92;margin:0 6px}
.site-menu li b{font-weight:400;color:var(--p-dark)}

/* ===== Moderno (ginásio): fundo escuro, título grande em maiúsculas, luz animada, faixa a correr ===== */
.pv[data-style="moderno"]{background:#0b0c10;color:#fff;border-color:#23262e}
.pv[data-style="moderno"] .site-nav{background:#0b0c10;border-bottom:1px solid #1d2028}
.pv[data-style="moderno"] .site-nav b{color:#fff;text-transform:uppercase;letter-spacing:.12em;font-size:12px}
.pv[data-style="moderno"] .site-nav .links{color:#8d93a0}
.pv[data-style="moderno"] .site-nav .cta{border-radius:99px}
.pv[data-style="moderno"] .site-hero{background:#0b0c10;grid-template-columns:1.25fr 1fr;padding:34px 22px 30px}
.pv[data-style="moderno"] .site-hero::before{content:"";position:absolute;width:280px;height:280px;right:-60px;top:-90px;border-radius:50%;background:radial-gradient(circle,var(--p) 0%,transparent 68%);opacity:.75;animation:pv-glow 6s ease-in-out infinite}
.pv[data-style="moderno"] .site-hero::after{content:"";position:absolute;width:180px;height:180px;left:-70px;bottom:-110px;border-radius:50%;background:radial-gradient(circle,var(--a) 0%,transparent 70%);opacity:.45;animation:pv-glow 7s ease-in-out infinite reverse}
.pv[data-style="moderno"] .site-hero > *{position:relative;z-index:1}
.pv[data-style="moderno"] .site-hero small{color:var(--a);letter-spacing:.24em}
.pv[data-style="moderno"] .site-title{text-transform:uppercase;font-weight:700;font-size:34px;line-height:.95;letter-spacing:-.03em;color:#fff;background:linear-gradient(90deg,#fff 40%,var(--a));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.pv[data-style="moderno"] .site-hero p{color:#aab0bc}
.pv[data-style="moderno"] .b1{border-radius:99px;box-shadow:0 8px 24px -8px var(--p)}
.pv[data-style="moderno"] .b2{border-color:rgba(255,255,255,.7);color:#fff;border-radius:99px}
.pv[data-style="moderno"] .site-img{max-width:160px;border-radius:30px;transform:rotate(-7deg);background:linear-gradient(135deg,var(--p),var(--a));box-shadow:0 20px 40px -18px var(--p);animation:pv-float 5s ease-in-out infinite}
.pv[data-style="moderno"] .site-marquee{display:block;overflow:hidden;white-space:nowrap;background:var(--p);color:var(--p-on);font-family:var(--font-display);font-weight:700;font-size:11px;letter-spacing:.22em;padding:8px 0}
.site-marquee div{display:inline-block;animation:pv-marquee 14s linear infinite}
.pv[data-style="moderno"] .site-cards{background:#0b0c10;padding:18px 20px 22px}
.pv[data-style="moderno"] .site-cards div{background:#15171d;border:1px solid #242833;border-radius:16px;color:#8d93a0;transition:transform .25s,border-color .25s}
.pv[data-style="moderno"] .site-cards div:hover{transform:translateY(-3px);border-color:var(--p)}
.pv[data-style="moderno"] .site-cards b{color:#fff}
.pv[data-style="moderno"] .site-cards div::before{border-radius:50%;background:linear-gradient(135deg,var(--p),var(--a))}
.pv[data-style="moderno"].pv-enter .site-copy > *,.pv[data-style="moderno"].pv-enter .site-cards div{animation:pv-up .6s ease both}
.pv[data-style="moderno"].pv-enter .site-copy > :nth-child(2){animation-delay:.06s}
.pv[data-style="moderno"].pv-enter .site-copy > :nth-child(3){animation-delay:.12s}
.pv[data-style="moderno"].pv-enter .site-copy > :nth-child(4){animation-delay:.18s}
.pv[data-style="moderno"].pv-enter .site-cards div:nth-child(2){animation-delay:.1s}
.pv[data-style="moderno"].pv-enter .site-cards div:nth-child(3){animation-delay:.2s}
@keyframes pv-glow{0%,100%{transform:scale(1) translate(0,0)}50%{transform:scale(1.15) translate(-14px,10px)}}
@keyframes pv-float{0%,100%{transform:rotate(-7deg) translateY(0)}50%{transform:rotate(-3deg) translateY(-8px)}}
@keyframes pv-up{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes pv-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ===== Corporativo (construtora): barra de contactos, faixa de cor, imagem técnica, números, serviços numerados ===== */
.pv[data-style="corporativo"] .site-topbar{display:flex;justify-content:space-between;gap:10px;background:var(--p-dark);color:rgba(255,255,255,.85);font-size:9.5px;letter-spacing:.04em;padding:5px 16px}
.pv[data-style="corporativo"] .site-nav{border-bottom:3px solid var(--p);padding:12px 16px}
.pv[data-style="corporativo"] .site-nav b{font-size:14px;text-transform:uppercase;letter-spacing:.08em}
.pv[data-style="corporativo"] .site-nav .links{text-transform:uppercase;font-size:9.5px;letter-spacing:.1em;font-weight:600}
.pv[data-style="corporativo"] .site-nav .cta{border-radius:2px;text-transform:uppercase;font-size:9.5px;letter-spacing:.08em}
.pv[data-style="corporativo"] .site-hero{background:linear-gradient(100deg,#f3f5f8 58%,#fff 58%);grid-template-columns:1.3fr 1fr;padding:28px 22px}
.pv[data-style="corporativo"] .site-hero small{color:var(--p);letter-spacing:.18em}
.pv[data-style="corporativo"] .site-title{font-family:var(--font-sans);font-weight:700;font-size:26px;color:#0f1b2d;letter-spacing:-.02em}
.pv[data-style="corporativo"] .site-title::after{content:"";display:block;width:44px;height:3px;background:var(--p);margin-top:10px}
.pv[data-style="corporativo"] .b1,.pv[data-style="corporativo"] .b2{border-radius:2px;text-transform:uppercase;font-size:10px;letter-spacing:.06em}
.pv[data-style="corporativo"] .site-img{max-width:210px;aspect-ratio:4/3;border-radius:0;background:repeating-linear-gradient(135deg,var(--p-dark) 0 12px,var(--p) 12px 24px);box-shadow:12px 12px 0 -2px var(--soft)}
.pv[data-style="corporativo"] .site-img img{border-radius:4px}
.pv[data-style="corporativo"] .site-stats{display:grid;grid-template-columns:repeat(3,1fr);background:var(--p-dark);color:rgba(255,255,255,.8)}
.pv[data-style="corporativo"] .site-stats div{padding:12px 18px;font-size:10px;border-right:1px solid rgba(255,255,255,.15)}
.pv[data-style="corporativo"] .site-stats div:last-child{border-right:0}
.pv[data-style="corporativo"] .site-stats b{display:block;font-family:var(--font-display);font-size:20px;color:#fff}
.pv[data-style="corporativo"] .site-cards div{border:1px solid #e3e7ee;border-left:3px solid var(--p);border-radius:0}
.pv[data-style="corporativo"] .site-cards div::before{display:none}
.pv[data-style="corporativo"] .site-cards .num{display:block;font-family:var(--font-display);font-weight:700;font-size:18px;color:var(--p);font-style:normal;margin-bottom:4px}

/* ===== Minimalista (clínica): branco, muito espaço, título grande e fino, lista de serviços em linhas ===== */
.pv[data-style="minimalista"] .site-nav{border-bottom:0;padding:18px 24px}
.pv[data-style="minimalista"] .site-nav b{font-weight:500;letter-spacing:-.01em}
.pv[data-style="minimalista"] .site-nav .links{color:#9aa0a8}
.pv[data-style="minimalista"] .site-nav .cta{background:none;color:#1a1d23;border-radius:0;border-bottom:1.5px solid var(--p);padding:3px 1px}
.pv[data-style="minimalista"] .site-hero{background:#fff;grid-template-columns:1fr;padding:34px 24px 30px}
.pv[data-style="minimalista"] .site-img{position:absolute;right:26px;top:30px;width:120px;max-width:none;border-radius:50%;background:var(--soft);box-shadow:none}
.pv[data-style="minimalista"] .site-img img{width:40%;height:40%;background:none;padding:0}
.pv[data-style="minimalista"] .site-copy{max-width:66%}
.pv[data-style="minimalista"] .site-hero small{color:#9aa0a8;letter-spacing:.28em}
.pv[data-style="minimalista"] .site-title{font-weight:400;font-size:38px;letter-spacing:-.045em;line-height:1.02;margin:10px 0 12px}
.pv[data-style="minimalista"] .site-hero p{color:#7a8089}
.pv[data-style="minimalista"] .b1{background:none;color:#1a1d23;padding:4px 0;border-radius:0;border-bottom:1.5px solid var(--p)}
.pv[data-style="minimalista"] .b2{display:none}
.pv[data-style="minimalista"] .site-cards{grid-template-columns:1fr;gap:0;padding:0 24px 18px}
.pv[data-style="minimalista"] .site-cards div{display:flex;align-items:baseline;gap:14px;border:0;border-top:1px solid #eceef1;border-radius:0;padding:11px 0}
.pv[data-style="minimalista"] .site-cards div::before{display:none}
.pv[data-style="minimalista"] .site-cards .num{display:inline;font-style:normal;color:#b5bac2;font-size:10.5px;font-family:var(--font-mono)}
.pv[data-style="minimalista"] .site-cards b{display:inline;font-weight:500;font-size:13px;margin:0}
.pv[data-style="minimalista"] .site-cards span{margin-left:auto;color:#9aa0a8}
.app{display:grid;grid-template-columns:118px 1fr;flex:1;min-height:300px}
.app-side{background:#111418;padding:12px 8px;display:flex;flex-direction:column;gap:2px}
.app-org{display:flex;align-items:center;gap:7px;padding:4px 6px 12px;color:#fff;font-size:11.5px;font-weight:600;border-bottom:1px solid #22262d;margin-bottom:8px}
.app-org img{width:22px;height:22px;background:#fff;border-radius:6px;padding:2px}
.app-org span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-side span.it{font-size:11px;color:#a3aab6;padding:6px 8px;border-radius:6px;display:flex;align-items:center;gap:7px}
.app-side span.it::before{content:"";width:6px;height:6px;border-radius:2px;background:#3a404a}
.app-side span.it.on{background:color-mix(in srgb,var(--p) 30%,transparent);color:#fff}
.app-side span.it.on::before{background:var(--a)}
.app-side .pw{margin-top:auto;font-size:9.5px;color:#8a919c;padding:6px 8px}
.app-main{background:#f6f7f9;padding:14px;display:flex;flex-direction:column;gap:10px;min-width:0}
.app-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.app-top b{font-size:13.5px;font-family:var(--font-display)}
.app-top .b1{font-size:10.5px;padding:6px 10px}
.app-kpis{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.app-kpis div{background:#fff;border:1px solid #eceef2;border-radius:9px;padding:9px 10px;font-size:10px;color:#5b6270}
.app-kpis b{display:block;font-size:17px;color:#14161a;font-family:var(--font-display)}
.app-kpis em{font-style:normal;color:var(--p-dark);font-weight:600}
.app-chart{background:#fff;border:1px solid #eceef2;border-radius:9px;padding:10px;display:flex;align-items:flex-end;gap:5px;height:88px}
.app-chart i{flex:1;background:var(--p);border-radius:3px 3px 0 0;opacity:.9}
.app-chart i:nth-child(3n){background:var(--a)}
.app-chart i:nth-child(1){height:48%}.app-chart i:nth-child(2){height:62%}.app-chart i:nth-child(3){height:40%}.app-chart i:nth-child(4){height:75%}
.app-chart i:nth-child(5){height:58%}.app-chart i:nth-child(6){height:88%}.app-chart i:nth-child(7){height:70%}.app-chart i:nth-child(8){height:94%}
.app-row{background:#fff;border:1px solid #eceef2;border-radius:9px;padding:8px 10px;font-size:10.5px;display:flex;justify-content:space-between;align-items:center;color:#374151}
.app-row span{background:var(--soft);color:var(--p-dark);font-weight:600;padding:2px 7px;border-radius:99px;font-size:9.5px}

/* ---------- n-sphere mock ---------- */
.mock-wrap{margin:0 auto 90px;max-width:1080px;position:relative;perspective:1600px}
.mock-wrap::after{content:"";position:absolute;left:10%;right:10%;bottom:-40px;height:120px;background:radial-gradient(closest-side,rgba(46,144,255,.35),transparent);filter:blur(30px);z-index:-1}
.mock{background:var(--surface);border:1px solid var(--line-2);border-radius:16px;overflow:hidden;text-align:left;display:grid;grid-template-columns:200px 1fr;min-height:470px;box-shadow:0 40px 80px -30px rgba(0,0,0,.8);transform:rotateX(6deg);transform-origin:top center;transition:transform .8s ease}
.mock-wrap.in .mock{transform:rotateX(0)}
.mock-side{background:#080c13;border-right:1px solid var(--line);padding:16px 12px;display:flex;flex-direction:column;gap:2px;font-size:12.5px}
.mock-org{display:flex;align-items:center;gap:8px;padding:6px 8px 14px;border-bottom:1px solid var(--line);margin-bottom:10px}
.mock-org i{width:22px;height:22px;border-radius:6px;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:block}
.mock-org span{font-weight:600;font-size:12.5px}
.mock-org small{display:block;color:var(--text-dim);font-size:10.5px;line-height:1.2}
.mock-nav{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:7px;color:var(--text-muted)}
.mock-nav svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;flex:none}
.mock-nav.on{background:rgba(46,144,255,.12);color:var(--text)}
.mock-nav.on svg{stroke:var(--accent-2)}
.mock-main{padding:18px 20px;display:flex;flex-direction:column;gap:14px;min-width:0}
.mock-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.mock-top .hello{font-family:var(--font-display);font-weight:600;font-size:16px}
.mock-top small{color:var(--text-dim);font-size:11.5px;display:block;font-family:var(--font-sans);font-weight:400}
.mock-search{flex:0 1 240px;display:flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:11.5px;color:var(--text-dim)}
.mock-search kbd{margin-left:auto;font-family:var(--font-mono);font-size:10px;border:1px solid var(--line-2);border-radius:4px;padding:0 5px}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.kpi{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:11px 12px}
.kpi small{font-size:10.5px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;font-family:var(--font-mono)}
.kpi b{display:block;font-family:var(--font-display);font-size:20px;font-weight:600;margin:3px 0 1px}
.kpi span{font-size:11px;color:var(--ok)}
.kpi span.w{color:var(--warn)}
.mock-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:10px;flex:1}
.panel{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:12px 14px;min-width:0}
.panel .ph{font-size:12px;font-weight:600;display:flex;justify-content:space-between;margin-bottom:10px}
.panel .ph small{color:var(--text-dim);font-weight:400}
.bars{display:flex;align-items:flex-end;gap:7px;height:120px;padding-top:6px}
.bars div{flex:1;border-radius:4px 4px 0 0;background:linear-gradient(to top,rgba(46,144,255,.35),var(--accent));height:0;transition:height .9s cubic-bezier(.2,.8,.2,1)}
.bars div.cost{background:linear-gradient(to top,rgba(127,214,255,.1),rgba(127,214,255,.35))}
.bars-x{display:flex;gap:7px;margin-top:6px}
.bars-x span{flex:1;text-align:center;font-size:9.5px;color:var(--text-dim);font-family:var(--font-mono)}
.legend{display:flex;gap:14px;font-size:10.5px;color:var(--text-muted);margin-top:8px}
.legend i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px;background:var(--accent)}
.legend i.c{background:rgba(127,214,255,.4)}
.agenda{display:flex;flex-direction:column;gap:7px}
.ag{display:grid;grid-template-columns:40px 1fr auto;gap:9px;align-items:center;font-size:11.5px;padding:6px 8px;border-radius:7px;background:var(--surface-3)}
.ag time{font-family:var(--font-mono);color:var(--accent-2);font-size:10.5px}
.ag b{font-weight:500;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ag small{color:var(--text-dim);font-size:10.5px}
.tag{font-size:9.5px;padding:2px 7px;border-radius:99px;font-weight:600;white-space:nowrap}
.tag.ok{background:rgba(63,212,154,.13);color:var(--ok)}
.tag.run{background:rgba(46,144,255,.15);color:var(--accent-2)}
.tag.w{background:rgba(255,181,71,.13);color:var(--warn)}
.alerts{display:flex;gap:10px}
.alert{flex:1;display:flex;gap:9px;align-items:center;font-size:11.5px;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:9px 12px;color:var(--text-muted);min-width:0}
.alert i{width:7px;height:7px;border-radius:50%;flex:none}
.alert i.d-warn{background:var(--warn)}.alert i.d-bad{background:var(--bad)}.alert i.d-info{background:var(--accent-2)}
.alert span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---------- modules ---------- */
.mod-tabs{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-bottom:34px}
.mod-tabs button{font-family:inherit;font-size:14px;padding:8px 16px;border-radius:99px;border:1px solid var(--line-2);background:transparent;color:var(--text-muted);cursor:pointer;transition:all .15s;min-height:40px}
.mod-tabs button:hover{color:var(--text)}
.mod-tabs button[aria-pressed="true"]{background:var(--text);color:var(--bg);border-color:var(--text)}
.modules{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.mod{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px;transition:border-color .2s,transform .2s,opacity .25s}
.mod:hover{border-color:rgba(46,144,255,.5);transform:translateY(-2px)}
.mod.dim{opacity:.22}
.mod-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.mod-ico{width:40px;height:40px;border-radius:10px;background:rgba(46,144,255,.1);border:1px solid rgba(46,144,255,.25);display:grid;place-items:center;flex:none}
.mod-ico svg{width:20px;height:20px;stroke:var(--accent-2);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.mod h3{font-size:18px}
.mod .grp{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.12em;color:var(--text-dim);text-transform:uppercase;display:block}
.mod p{color:var(--text-muted);font-size:14.5px}

/* ---------- mini ilustrações dos módulos (dados fictícios) ---------- */
.mm{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:16px;font-size:11.5px;display:grid;gap:6px;min-height:162px;align-content:start;line-height:1.35}
.mm .tag{flex:none}
.mm-row{display:flex;align-items:center;gap:8px;background:var(--surface-2);border-radius:7px;padding:5px 8px;min-width:0}
.mm-t{flex:1;min-width:0;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mm-t small{display:block;color:var(--text-dim);font-size:10.5px;overflow:hidden;text-overflow:ellipsis}
.av{width:24px;height:24px;border-radius:50%;background:rgba(46,144,255,.18);color:var(--accent-2);font-size:9.5px;font-weight:700;display:grid;place-items:center;flex:none}
.mm-time{font-family:var(--font-mono);color:var(--accent-2);font-size:10.5px;flex:none}
.mm-num{color:var(--text-muted);font-family:var(--font-mono);font-size:10.5px;flex:none}
.plate{font-family:var(--font-mono);font-size:10px;font-weight:600;background:#e9eef5;color:#111418;border-radius:3px;padding:1px 5px;flex:none}
.doc{font-size:9px;font-weight:700;color:var(--bad);border:1px solid rgba(255,107,107,.45);border-radius:3px;padding:1px 4px;flex:none}
.mm-foot{display:flex;justify-content:space-between;gap:8px;color:var(--text-muted);padding:5px 2px 0;border-top:1px solid var(--line);margin-top:2px}
.mm-foot b{color:var(--text);font-weight:600}
.mm-card{background:var(--surface-2);border-radius:7px;padding:7px 9px}
.mm-card b{display:block;font-size:12px}
.mm-card small{color:var(--text-muted);font-size:10.5px}
.mm-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.mm-kpis div{background:var(--surface-2);border-radius:7px;padding:6px 8px;min-width:0}
.mm-kpis small{display:block;color:var(--text-dim);font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mm-kpis b{font-family:var(--font-display);font-size:17px}
.c-w{color:var(--warn)}
.mm-spark{display:flex;align-items:flex-end;gap:4px;height:44px;padding:0 2px}
.mm-spark i{flex:1;background:linear-gradient(to top,rgba(46,144,255,.3),var(--accent));border-radius:2px 2px 0 0}
.mm-spark i:nth-child(1){height:40%}.mm-spark i:nth-child(2){height:55%}.mm-spark i:nth-child(3){height:48%}.mm-spark i:nth-child(4){height:62%}.mm-spark i:nth-child(5){height:58%}
.mm-spark i:nth-child(6){height:70%}.mm-spark i:nth-child(7){height:66%}.mm-spark i:nth-child(8){height:78%}.mm-spark i:nth-child(9){height:72%}.mm-spark i:nth-child(10){height:90%}
.mm-prog{display:grid;grid-template-columns:1fr auto;gap:5px 8px;background:var(--surface-2);border-radius:7px;padding:7px 9px}
.mm-prog b{font-family:var(--font-display);font-size:14px;align-self:center}
.mm .bar{display:block;grid-column:1/-1;height:6px;border-radius:99px;background:var(--line-2);overflow:hidden}
.mm .bar > i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent-2))}
.mm .bar > i.alt{background:linear-gradient(90deg,#b98a2e,var(--warn))}
.p30{width:30%}.p55{width:55%}.p64{width:64%}.p70{width:70%}.p90{width:90%}
.mm-hbar{display:grid;grid-template-columns:58px 1fr 76px;align-items:center;gap:8px;color:var(--text-muted)}
.mm-hbar .bar{grid-column:auto}
.mm-hbar b{color:var(--text);font-weight:600;text-align:right;font-size:11px;white-space:nowrap}
.mm-cal{display:grid;grid-template-columns:repeat(5,1fr);gap:4px}
.mm-cal .d{font-family:var(--font-mono);font-size:9.5px;color:var(--text-dim);text-align:center}
.mm-cal .ev{font-size:9.5px;border-radius:4px;padding:3px 0;text-align:center;font-weight:600;min-height:21px}
.ev.a{background:rgba(46,144,255,.18);color:var(--accent-2)}
.ev.b{background:rgba(63,212,154,.14);color:var(--ok)}
.ev.c{background:rgba(255,107,107,.14);color:var(--bad)}
.ev.x{background:var(--surface-2)}
.mm-stack{display:flex;height:12px;border-radius:99px;overflow:hidden;margin-top:2px}
.mm-stack .s1{width:38%}.mm-stack .s2{width:22%}.mm-stack .s3{width:11%}.mm-stack .s4{width:29%}
.s1{background:var(--accent)}.s2{background:var(--accent-2)}.s3{background:#5d6b85}.s4{background:var(--ok)}
.mm-legend{display:flex;flex-wrap:wrap;gap:4px 10px;color:var(--text-muted);font-size:10.5px}
.mm-legend i{display:inline-block;width:7px;height:7px;border-radius:2px;margin-right:4px}

.mm-seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);border-radius:7px;padding:2px;justify-self:start;font-size:10.5px}
.mm-seg span{padding:2px 9px;border-radius:5px;color:var(--text-muted)}
.mm-seg span.on{background:rgba(46,144,255,.2);color:var(--accent-2);font-weight:600}
.tkt{font-family:var(--font-mono);font-size:10px;font-weight:600;color:var(--warn);border:1px solid rgba(255,181,71,.45);border-radius:4px;padding:1px 5px;flex:none}
.mm-forecast{display:flex;align-items:flex-end;gap:8px;height:74px;padding:0 4px}
.mm-forecast i{flex:1;border-radius:3px 3px 0 0}
.mm-forecast i.r{background:var(--accent)}
.mm-forecast i.f{background:repeating-linear-gradient(135deg,rgba(127,214,255,.5) 0 4px,rgba(127,214,255,.15) 4px 8px);border:1px dashed var(--accent-2);border-bottom:0}
.mm-forecast i:nth-child(1){height:52%}.mm-forecast i:nth-child(2){height:60%}.mm-forecast i:nth-child(3){height:57%}.mm-forecast i:nth-child(4){height:68%}.mm-forecast i:nth-child(5){height:76%}.mm-forecast i:nth-child(6){height:84%}
.sf{background:repeating-linear-gradient(135deg,rgba(127,214,255,.7) 0 2px,transparent 2px 4px);border:1px dashed var(--accent-2)}

/* ---------- N-Sphere: à medida + 6 módulos ---------- */
.custom-box{display:grid;grid-template-columns:1.3fr 1fr;gap:28px;border:1px solid rgba(46,144,255,.45);border-radius:20px;background:linear-gradient(150deg,rgba(46,144,255,.14),var(--surface) 60%);padding:34px;margin-bottom:90px}
.custom-main h3{font-size:clamp(24px,3vw,34px);margin-bottom:6px}
.custom-main .checks li b{color:var(--text)}
.custom-examples{background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:18px;display:grid;gap:12px;align-content:start}
.ex-title{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim)}
.ex{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding-top:12px;border-top:1px solid var(--line)}
.ex b{font-family:var(--font-display);font-size:14px;margin-right:4px;min-width:84px}
.chip{display:inline-block;font-size:12px;padding:3px 10px;border-radius:99px;background:rgba(46,144,255,.12);border:1px solid rgba(46,144,255,.3);color:var(--accent-2);white-space:nowrap}
.mod .links{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:12px}
.mod .links > span:first-child{color:var(--text-dim);font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;margin-right:2px}
.mod p + p{margin-top:8px}
.modules.six{grid-template-columns:repeat(6,1fr)}
.modules.six .mod{grid-column:span 2}
.modules.six .mod:nth-child(5),.modules.six .mod:nth-child(6){grid-column:span 3}
.modules.six .mod-wide{grid-column:1/-1;display:grid;grid-template-columns:1.05fr 1fr;column-gap:30px;align-items:start}
.mod-wide .mm{grid-row:1/span 4;margin-bottom:0}
.mod-wide h3{font-size:22px}

/* ---------- spotlight ---------- */
.spot{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;margin-top:120px}
.spot.rev .spot-text{order:2}
.spot-text h3{font-size:clamp(26px,3vw,36px);margin-bottom:16px}
.spot-text > p{color:var(--text-muted);font-size:16.5px}
.checks{list-style:none;margin-top:24px;display:grid;gap:12px}
.checks li{position:relative;padding-left:32px;font-size:15px}   /* texto corrido: o negrito e o resto da frase na mesma linha */
.checks li::before{content:"";position:absolute;left:0;top:2px;width:20px;height:20px;border-radius:6px;background:rgba(46,144,255,.14) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237fd6ff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5L20 7'/%3E%3C/svg%3E") center/12px no-repeat}
.stage{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:34px;display:grid;place-items:center;min-height:420px;position:relative;overflow:hidden}
.stage::before{content:"";position:absolute;inset:0;background:radial-gradient(360px 260px at 50% 40%,rgba(46,144,255,.13),transparent 70%)}
.phone{position:relative;width:250px;background:#070a10;border:1px solid var(--line-2);border-radius:34px;padding:12px;box-shadow:0 30px 60px -20px rgba(0,0,0,.8)}
.phone-screen{background:var(--surface-2);border-radius:24px;padding:18px 16px;display:flex;flex-direction:column;gap:12px}
.phone-bar{display:flex;justify-content:space-between;font-size:10.5px;color:var(--text-dim);font-family:var(--font-mono)}
.geo{height:150px;border-radius:14px;background:linear-gradient(var(--line) 1px,transparent 1px) 0 0/22px 22px,linear-gradient(90deg,var(--line) 1px,transparent 1px) 0 0/22px 22px,#0a0f18;position:relative;overflow:hidden}
.fence{position:absolute;left:50%;top:50%;width:104px;height:104px;margin:-52px 0 0 -52px;border-radius:50%;border:1.5px dashed var(--accent);background:rgba(46,144,255,.1)}
.me{position:absolute;left:50%;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--accent-2);box-shadow:0 0 0 0 rgba(127,214,255,.6);animation:ping 2s infinite}
@keyframes ping{70%{box-shadow:0 0 0 16px rgba(127,214,255,0)}100%{box-shadow:0 0 0 0 rgba(127,214,255,0)}}
.geo-lbl{position:absolute;left:10px;bottom:8px;font-size:10px;color:var(--ok);font-family:var(--font-mono)}
.clock{text-align:center}
.clock b{font-family:var(--font-display);font-size:34px;font-weight:600;display:block;line-height:1.1}
.clock small{color:var(--text-dim);font-size:11.5px}
.punch{background:var(--ok);color:#04110b;font-weight:700;text-align:center;border-radius:12px;padding:12px;font-size:14px}
.phone-log{font-size:11px;color:var(--text-muted);display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:10px}
.perm{width:100%;position:relative;background:var(--surface-2);border:1px solid var(--line);border-radius:14px;overflow:hidden;font-size:13px}
.perm-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line)}
.perm-head b{font-family:var(--font-display);font-size:15px}
.role-sel{display:flex;gap:4px;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:3px}
.role-sel button{font-family:inherit;font-size:12px;border:0;background:transparent;color:var(--text-muted);padding:6px 10px;border-radius:5px;cursor:pointer}
.role-sel button[aria-pressed="true"]{background:var(--surface-3);color:var(--text)}
.perm table{width:100%;border-collapse:collapse}
.perm th{font-family:var(--font-mono);font-weight:400;font-size:10.5px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;padding:10px 12px;text-align:center}
.perm th:first-child,.perm td:first-child{text-align:left;padding-left:16px}
.perm td{padding:10px 12px;border-top:1px solid var(--line);text-align:center;color:var(--text-muted)}
.perm td:first-child{color:var(--text)}
.sw{display:inline-block;width:26px;height:15px;border-radius:99px;background:var(--line-2);position:relative;vertical-align:middle}
.sw::after{content:"";position:absolute;top:2px;left:2px;width:11px;height:11px;border-radius:50%;background:var(--text-dim);transition:transform .2s}
.sw.on{background:rgba(46,144,255,.55)}
.sw.on::after{transform:translateX(11px);background:#fff}
.audit{padding:11px 16px;border-top:1px solid var(--line);font-size:11.5px;color:var(--text-muted);font-family:var(--font-mono);background:rgba(5,7,12,.4)}

/* ---------- plans / packages ---------- */
.plans{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.plans.three{grid-template-columns:repeat(3,1fr)}
.plan{border:1px solid var(--line);border-radius:var(--radius);padding:26px;background:var(--surface);display:flex;flex-direction:column;position:relative}
.plan.hot{border-color:rgba(46,144,255,.6);background:linear-gradient(180deg,rgba(46,144,255,.12),var(--surface) 60%)}
.plan .badge{position:absolute;top:-11px;left:26px;background:var(--accent-strong);color:#fff;font-size:11px;font-weight:600;padding:3px 10px;border-radius:99px}
.plan h3{font-size:20px}
.plan .for{color:var(--text-muted);font-size:14px;margin:6px 0 18px;min-height:44px}
.plan ul{list-style:none;display:grid;gap:9px;font-size:14px;color:var(--text-muted);flex:1;margin:0 0 22px;padding-top:18px;border-top:1px solid var(--line)}
.plan li{display:flex;gap:9px}
.plan li::before{content:"—";color:var(--accent-2)}
.plan li.plus{color:var(--text)}
.plan li.plus::before{content:"+"}
.plan .actions{display:grid;gap:8px}
.price-note{text-align:center;color:var(--text-dim);font-size:13.5px;margin-top:22px}
.included{list-style:none;display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-bottom:28px}
.included li{background:var(--bg);padding:18px 14px;text-align:center;font-size:13.5px;color:var(--text-muted)}
.included svg{width:22px;height:22px;stroke:var(--accent-2);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;margin:0 auto 8px;display:block}
.included b{display:block;color:var(--text);font-weight:600;font-size:14px}

.plans.four{grid-template-columns:repeat(4,1fr)}

/* ---------- nomes de produto: texto normal, com o N do logótipo como ícone pequeno ---------- */
.pname{display:inline-flex;align-items:center;gap:.45em;font-family:var(--font-display);font-weight:600;font-size:clamp(24px,2.4vw,30px);letter-spacing:-.01em;line-height:1.15;color:var(--text);margin:0}
.pname img{width:.9em;height:.9em;border-radius:.22em;flex:none}
.pname.sm{font-size:24px;margin:12px 0 10px}
.products.three{grid-template-columns:repeat(3,1fr)}
/* Quatro produtos: dois por linha, centrados, com o rodapé do cartão sempre em baixo e o "Ver …" como botão legível. */
.products.four{grid-template-columns:repeat(2,1fr);max-width:1000px;margin-left:auto;margin-right:auto}
.products.four .product{display:flex;flex-direction:column}
.products.four .product p{flex:1;max-width:none}
.products.four .product .tagline{white-space:nowrap}
.products.four .product .go{margin-top:20px}
.products.four .product .go b{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim)}
.products.four .product .go span{display:inline-flex;align-items:center;padding:9px 16px;border-radius:99px;border:1px solid rgba(46,144,255,.45);background:rgba(46,144,255,.12);color:var(--text);font-weight:600;font-size:14px;transition:background .2s,border-color .2s}
.products.four .product:hover .go span{background:rgba(46,144,255,.28);border-color:rgba(46,144,255,.85)}
.plans.two{grid-template-columns:repeat(2,minmax(0,420px));justify-content:center}

/* ---------- páginas de produto ---------- */
.page-hero{padding:72px 0 10px}
.page-hero .eyebrow{display:flex;justify-content:center}
.page-hero .pname{display:flex;justify-content:center;font-size:clamp(34px,4.4vw,52px);margin-bottom:6px}
.page-hero .lead{margin-bottom:28px}
.page-hero + section{padding-top:70px}
.crumbs{font-size:13.5px;color:var(--text-dim);margin-bottom:22px}
.crumbs a{color:var(--text-muted)}
.crumbs a:hover{color:var(--text)}

/* Porquê a NOCORA (página inicial) */
.why{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.why div{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:22px}
.why svg{width:24px;height:24px;stroke:var(--accent-2);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;margin-bottom:12px}
.why h3{font-size:17px;margin-bottom:6px}
.why p{color:var(--text-muted);font-size:14.5px}
.faq-more{text-align:center;margin-top:26px;color:var(--text-muted);font-size:15px}
.faq-more a{color:var(--accent-2);text-decoration:underline;text-underline-offset:3px}

/* Chamada para o formulário (páginas de produto) */
.cta-strip{display:flex;justify-content:space-between;align-items:center;gap:20px 32px;flex-wrap:wrap;border:1px solid rgba(46,144,255,.4);background:linear-gradient(120deg,rgba(46,144,255,.12),var(--surface) 60%);border-radius:20px;padding:32px 36px}
.cta-strip h2{font-size:clamp(24px,2.8vw,32px);margin-bottom:6px}
.cta-strip p{color:var(--text-muted)}

/* ---------- questionário para clientes (nocora.pt/q/..., servido pelo back office através do site) ---------- */
.survey{max-width:820px;padding-top:56px;padding-bottom:40px}
.survey-head{margin-bottom:30px}
.survey-head.center{text-align:center;padding:60px 0}
.survey-head h1{font-size:clamp(28px,4vw,42px);margin-bottom:12px}
.survey-head .lead{color:var(--text-muted);font-size:17px}
.survey-head .btn{margin-top:26px}
.survey-note{margin-top:14px;font-size:13.5px;color:var(--text-dim)}
.survey-errors{border:1px solid rgba(255,107,107,.45);background:rgba(255,107,107,.07);color:var(--bad);border-radius:10px;padding:12px 16px;margin-bottom:22px;font-size:14px}
.survey-form{display:grid;gap:22px}
.survey-section{border:1px solid var(--line);border-radius:18px;background:var(--surface);padding:24px 24px 8px;margin:0;display:grid;gap:18px}
.survey-section legend{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:600;font-size:19px;padding:0 8px;color:var(--text)}
.survey-section legend span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:13px;color:var(--accent-2);background:rgba(46,144,255,.12);border:1px solid rgba(46,144,255,.35)}
.sq{margin-bottom:6px}
.sq-label{font-size:14.5px;color:var(--text)}
.sq-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px 16px;margin-top:4px}
.sq-options .consent{font-size:14px}
.sq-help{font-size:12.5px;color:var(--text-dim)}
.sq .err{color:var(--bad);font-size:12.5px}
.sq.has-err input,.sq.has-err textarea,.sq.has-err select{border-color:var(--bad)}
.field input.sq-color{width:90px;height:44px;padding:4px}
.field input[type="file"]{padding:9px}
.survey-submit{display:grid;gap:8px;justify-items:start}

/* ---------- demonstração: Faturação e custos (n-sphere.html) ---------- */
.demo{margin:70px 0 30px;border:1px solid rgba(46,144,255,.45);border-radius:22px;background:linear-gradient(160deg,rgba(46,144,255,.1),var(--surface) 45%);padding:34px}
.demo-head{max-width:720px;margin-bottom:26px}
.demo-head h3{font-size:clamp(22px,2.6vw,30px);margin-bottom:10px}
.demo-head p{color:var(--text-muted)}
.demo-note{font-size:13px;color:var(--text-dim)!important;margin-top:10px}
.demo-grid{display:grid;grid-template-columns:300px 1fr;gap:20px;align-items:start}
.demo-form{background:var(--surface-2);border:1px solid var(--line);border-radius:16px;padding:20px;display:grid;gap:12px}
.demo-form h4,.demo-list-title{font-family:var(--font-mono);font-weight:400;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim)}
.demo-form .field input,.demo-form .field select{font-size:14px;padding:9px 11px;min-height:40px}
.demo-status{font-size:13px;color:var(--ok);min-height:18px}
.demo-tools{display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:12px}
.btn-sm{padding:7px 12px;font-size:13px;min-height:34px}
.demo-main{background:var(--surface-2);border:1px solid var(--line);border-radius:16px;padding:20px;min-width:0}
.demo-month{font-size:13px;color:var(--text-dim);margin-bottom:10px}
.demo-month span{color:var(--text-muted);text-transform:capitalize}
.demo-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}
.demo-kpis div{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:grid;gap:2px}
.demo-kpis small{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim)}
.demo-kpis b{font-family:var(--font-display);font-size:20px;font-weight:600}
.demo-kpis b.neg,.demo-kpis .over b{color:var(--bad)}
.demo-kpis span{font-size:11.5px;color:var(--text-muted)}
.demo-chart{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px 12px 4px;margin-bottom:16px}
.demo-chart svg{width:100%;height:auto;display:block}
.demo-chart .grid{stroke:var(--line);stroke-width:1}
.demo-chart .sep{stroke:var(--line-2);stroke-dasharray:3 4}
.demo-chart .rev{fill:var(--accent)}
.demo-chart .cost{fill:var(--accent-2);opacity:.55}
.demo-chart .fc{fill-opacity:.18;stroke-dasharray:4 3;stroke-width:1.5}
.demo-chart rect.rev.fc{stroke:var(--accent)}
.demo-chart rect.cost.fc{stroke:var(--accent-2)}
.demo-chart .lbl{fill:var(--text-dim);font-size:11px;font-family:var(--font-mono);text-anchor:middle}
.demo-chart .lbl.fc{fill:var(--text-muted);fill-opacity:1;font-style:italic}
.demo-chart text.lbl.fc:last-child{text-anchor:start}
.demo-legend{display:flex;gap:16px;font-size:12px;color:var(--text-muted);margin-bottom:4px;flex-wrap:wrap}
.demo-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.demo-legend .rev{background:var(--accent)}
.demo-legend .cost{background:var(--accent-2);opacity:.6}
.demo-legend .fc{border:1.5px dashed var(--text-muted)}
.demo-list{list-style:none;display:grid;gap:6px;margin-top:8px}
.demo-list li{display:grid;grid-template-columns:44px 1fr auto 76px auto;gap:10px;align-items:center;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:13px}
.demo-list .dt{font-family:var(--font-mono);font-size:11.5px;color:var(--text-dim)}
.demo-list .ds{min-width:0}
.demo-list .ds b{display:block;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.demo-list .ds small{color:var(--text-dim);font-size:11.5px}
.demo-list .vl{font-family:var(--font-mono);font-size:12.5px;white-space:nowrap}
.demo-list .vl.in{color:var(--ok)}
.demo-list .vl.out{color:var(--text-muted)}
.demo-list .tag{justify-self:start}
.demo-list .act{display:flex;gap:4px;justify-content:flex-end}
.demo-list .act button{font-family:inherit;font-size:11.5px;color:var(--text-muted);background:transparent;border:1px solid var(--line-2);border-radius:7px;padding:4px 8px;cursor:pointer;min-height:28px}
.demo-list .act button:hover{color:var(--text);border-color:var(--accent)}
.tag.bad{background:rgba(255,107,107,.14);color:var(--bad)}
.demo-kpis.three{grid-template-columns:repeat(3,1fr)}
.demo-kpis .warn b{color:var(--warn)}

/* ---------- N-Sphere: cartões curtos dos módulos (n-sphere.html) ---------- */
.modlinks{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.modlink{display:flex;flex-direction:column;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px;transition:border-color .2s,transform .2s}
.modlink:hover{border-color:rgba(46,144,255,.6);transform:translateY(-2px)}
.modlink .mod-ico{margin-bottom:6px}
.modlink .grp{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.12em;color:var(--text-dim);text-transform:uppercase}
.modlink h3{font-size:18px}
.modlink p{color:var(--text-muted);font-size:14.5px;flex:1}
.modlink .go{display:flex;justify-content:space-between;align-items:center;gap:8px;color:var(--accent-2);font-size:14px;border-top:1px solid var(--line);padding-top:12px;margin-top:6px}
.tab-demo{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:2px 8px;border-radius:99px;background:rgba(63,212,154,.13);color:var(--ok)}

/* ---------- Página dos módulos: separadores (n-sphere-modulos.html) ---------- */
.mods-page{padding-top:40px}
.tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:30px;position:sticky;top:78px;z-index:5;padding:8px;background:rgba(5,7,12,.85);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:99px;width:max-content;max-width:100%;margin-left:auto;margin-right:auto}
.tabs a{display:inline-flex;align-items:center;gap:6px;font-size:14px;padding:8px 16px;border-radius:99px;color:var(--text-muted);min-height:40px;transition:background .15s,color .15s}
.tabs a:hover{color:var(--text)}
.tabs a[aria-selected="true"]{background:var(--accent-strong);color:#fff}
.tabs a[aria-selected="true"] .tab-demo{background:rgba(255,255,255,.2);color:#fff}
.mod-panel{margin-bottom:40px;scroll-margin-top:150px}
.mod-panel.show{animation:panel-in .35s ease both}
@keyframes panel-in{from{opacity:0;transform:translateY(10px)}}
.mod.mod-open{display:grid;grid-template-columns:1fr 1.05fr;column-gap:34px;align-items:start;padding:30px}
.mod.mod-open .mm{grid-column:2;grid-row:1/span 5;margin-bottom:0}
.mod.mod-open h3{font-size:24px}
.mod.mod-open p{font-size:15.5px}
.mod-panel .demo{margin:0}
.demo-cta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:18px}
.demo-cta span{color:var(--text-dim);font-size:13.5px}
.demo-back{text-align:right;margin-top:12px;font-size:14px}
.demo-back a,.inline-link{color:var(--accent-2);text-decoration:underline;text-underline-offset:3px}

/* ---------- Página dos módulos: detalhe de cada módulo com ecrã grande ---------- */
.mods-note{text-align:center;color:var(--text-dim);font-size:13.5px;margin:-8px 0 26px}
.mp-head{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start;max-width:900px;margin-bottom:26px}
.mp-head .mod-ico{width:52px;height:52px;border-radius:14px}
.mp-head .mod-ico svg{width:26px;height:26px}
.mp-head .grp{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;color:var(--text-dim);text-transform:uppercase}
.mp-head h2{font-size:clamp(26px,3vw,36px);margin:4px 0 12px}
.mp-head p{color:var(--text-muted);font-size:16.5px}
.mp-head p b{color:var(--text)}
.mp-head .links{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:16px;font-size:12px}
.mp-head .links > span:first-child{color:var(--text-dim);font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;margin-right:4px}
.mp-head .mod-note{margin-top:12px}
/* ecrã de exemplo */
.scr{border:1px solid var(--line-2);border-radius:16px;overflow:hidden;background:var(--surface);box-shadow:0 40px 80px -40px rgba(0,0,0,.9)}
.scr-cap{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--surface-2);border-bottom:1px solid var(--line);font-size:12px;color:var(--text-muted)}
.scr-cap i{width:8px;height:8px;border-radius:50%;background:var(--line-2)}
.scr-cap span{margin-left:8px;font-weight:500;color:var(--text)}
.scr-cap em{margin-left:auto;font-style:normal;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--warn)}
.scr-body{padding:18px;display:grid;gap:14px}
.scr-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.scr-kpis div{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:grid;gap:2px}
.scr-kpis small{font-size:11.5px;color:var(--text-dim)}
.scr-kpis b{font-family:var(--font-display);font-size:24px;font-weight:600}
.scr-kpis b.w,.scr-kpis span.w{color:var(--warn)}
.scr-kpis b.bad{color:var(--bad)}
.scr-kpis span{font-size:12px;color:var(--text-muted)}
.scr-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:14px}
.scr-panel{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:14px;min-width:0}
.scr-ph{font-weight:600;font-size:14px;margin-bottom:12px;display:flex;justify-content:space-between;gap:10px}
.scr-ph small{color:var(--text-dim);font-weight:400;font-size:12px}
.scr-rows{display:grid;gap:8px}
.scr-rows .mm-row{padding:9px 11px;font-size:13px}
.scr-rows .mm-t small{font-size:11.5px}
.scr-rows .mm-num{font-size:12px}
.doc-ic{font-size:10px;font-weight:700;color:var(--accent-2);border:1px solid rgba(46,144,255,.4);border-radius:4px;padding:1px 5px;flex:none}
.scr-table{width:100%;border-collapse:collapse;font-size:13px}
.scr-table th{text-align:left;font-weight:500;color:var(--text-dim);font-size:11.5px;padding:6px 8px;border-bottom:1px solid var(--line)}
.scr-table td{padding:9px 8px;border-bottom:1px solid var(--line);color:var(--text-muted);white-space:nowrap}
.scr-table td:first-child{color:var(--text);display:flex;align-items:center;gap:8px}
.scr-table tr:last-child td{border-bottom:0}
.av.sm{width:24px;height:24px;font-size:9.5px}
.scr-cal{display:grid;grid-template-columns:86px repeat(5,1fr);gap:5px;font-size:11.5px}
.scr-cal .d{font-family:var(--font-mono);color:var(--text-dim);text-align:center;font-size:11px}
.scr-cal .who{color:var(--text-muted);align-self:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scr-cal .ev{border-radius:6px;padding:7px 6px;text-align:center;font-weight:600;min-height:32px;background:var(--surface-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.c1{background:rgba(46,144,255,.22)!important;color:var(--accent-2)}
.c2{background:rgba(63,212,154,.16)!important;color:var(--ok)}
.c3{background:rgba(255,107,107,.16)!important;color:var(--bad)}
.c4{background:rgba(255,181,71,.16)!important;color:var(--warn)}
.c5{background:rgba(127,214,255,.45)!important}
.cf{background:repeating-linear-gradient(135deg,rgba(127,214,255,.5) 0 3px,transparent 3px 6px)!important;border:1px dashed var(--accent-2)}
.scr-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:12px;font-size:12px;color:var(--text-muted)}
.scr-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.geo.big{height:100%;min-height:230px}
.geo.big .fence{width:150px;height:150px;margin:-75px 0 0 -75px}
.geo .me.p2{left:42%;top:58%;animation-delay:.6s}
.geo .me.p3{left:57%;top:40%;animation-delay:1.2s}
.geo .me.out{left:84%;top:22%;background:var(--warn)}
.qty{display:grid;gap:6px;font-size:13px;background:var(--surface-2);border-radius:8px;padding:9px 11px}
.qty small{display:block;color:var(--text-dim);font-size:11.5px}
.qty i{display:block;height:7px;border-radius:99px;background:var(--line-2);overflow:hidden}
.qty i b{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent-2))}
.qty i.low b{background:linear-gradient(90deg,#b98a2e,var(--warn))}
.qty .v30{width:30%}.qty .v55{width:55%}.qty .v70{width:70%}.qty .v80{width:80%}
.cars{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.car{display:grid;gap:3px;background:var(--surface-2);border-radius:10px;padding:11px 12px;font-size:12.5px}
.car .plate{justify-self:start;font-size:11px}
.car b{font-weight:500;margin-top:4px}
.car small{color:var(--text-dim);font-size:11.5px}
.car .tag{justify-self:start;margin-top:4px}
.fc-bars{display:grid;grid-template-columns:repeat(8,1fr);gap:10px;height:200px;align-items:end}
.fc-bars div{display:grid;grid-template-rows:1fr auto;height:100%;gap:6px;text-align:center;font-family:var(--font-mono);font-size:11px;color:var(--text-dim)}
.fc-bars i{position:relative;display:block;height:100%}
.fc-bars i::before,.fc-bars i::after{content:"";position:absolute;bottom:0;width:44%;border-radius:4px 4px 0 0}
.fc-bars i::before{left:4%;background:var(--accent)}
.fc-bars i::after{right:4%;background:rgba(127,214,255,.45)}
.fc-bars .f i::before,.fc-bars .f i::after{background:repeating-linear-gradient(135deg,rgba(127,214,255,.45) 0 3px,transparent 3px 6px);border:1px dashed var(--accent-2);border-bottom:0}
.fc-bars .f span{color:var(--accent-2);font-style:italic}
.fc-bars div:nth-child(1) i::before{height:52%}.fc-bars div:nth-child(1) i::after{height:40%}
.fc-bars div:nth-child(2) i::before{height:60%}.fc-bars div:nth-child(2) i::after{height:44%}
.fc-bars div:nth-child(3) i::before{height:57%}.fc-bars div:nth-child(3) i::after{height:45%}
.fc-bars div:nth-child(4) i::before{height:68%}.fc-bars div:nth-child(4) i::after{height:48%}
.fc-bars div:nth-child(5) i::before{height:76%}.fc-bars div:nth-child(5) i::after{height:52%}
.fc-bars div:nth-child(6) i::before{height:84%}.fc-bars div:nth-child(6) i::after{height:57%}
.fc-bars div:nth-child(7) i::before{height:88%}.fc-bars div:nth-child(7) i::after{height:59%}
.fc-bars div:nth-child(8) i::before{height:93%}.fc-bars div:nth-child(8) i::after{height:61%}
/* o que vai poder fazer / como funciona */
.mp-info{display:grid;grid-template-columns:1.2fr 1fr;gap:26px;margin-top:26px}
.mp-info > div{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px}
.mp-info h3{font-size:19px;margin-bottom:4px}
.mp-info .checks{margin-top:14px}
.mp-info .checks li{color:var(--text-muted)}
.mp-info .checks li b{color:var(--text)}
.mp-steps{list-style:none;counter-reset:st;display:grid;gap:14px;margin-top:16px}
.mp-steps li{counter-increment:st;position:relative;padding-left:44px;color:var(--text-muted);font-size:15px}
.mp-steps li::before{content:counter(st);position:absolute;left:0;top:-2px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-display);font-weight:600;font-size:14px;color:var(--accent-2);background:rgba(46,144,255,.12);border:1px solid rgba(46,144,255,.35)}
.mp-steps li b{color:var(--text)}
.mod-panel .demo-cta{margin-top:22px}

/* ---------- Demonstração: Recursos Humanos ---------- */
.demo-form form{display:grid;gap:12px}
.demo-form form + form{border-top:1px solid var(--line);padding-top:16px}
.demo-filter{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.demo-filter button{font-family:inherit;font-size:12.5px;color:var(--text-muted);background:transparent;border:1px solid var(--line-2);border-radius:99px;padding:5px 11px;cursor:pointer;min-height:32px}
.demo-filter button[aria-pressed="true"]{border-color:var(--accent);color:var(--text);background:rgba(46,144,255,.1)}
.demo-people{list-style:none;display:grid;gap:8px}
.demo-people > li{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:grid;gap:10px}
.demo-people li.empty,.demo-list li.empty{color:var(--text-dim);font-size:13.5px;display:block}
.pp-top{display:flex;align-items:center;gap:10px}
.pp-who{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.pp-who b{display:block;font-weight:600;font-size:14px}
.pp-who small{color:var(--text-dim);font-size:12px}
.pp-who .av{width:34px;height:34px;border-radius:50%;background:rgba(46,144,255,.18);color:var(--accent-2);display:grid;place-items:center;font-size:12px;font-weight:700;flex:none}
.pp-top .act{display:flex;gap:4px}
.pp-top .act button,.demo-list .act button{font-family:inherit;font-size:11.5px;color:var(--text-muted);background:transparent;border:1px solid var(--line-2);border-radius:7px;padding:4px 8px;cursor:pointer;min-height:28px}
.pp-top .act button:hover{color:var(--text);border-color:var(--accent)}
.pp-docs{display:flex;flex-wrap:wrap;gap:6px}
.pp-docs .doc{display:grid;border-radius:8px;padding:5px 9px;font-size:11.5px;border:1px solid var(--line-2);background:var(--surface-2)}
.pp-docs .doc b{font-weight:500;color:var(--text)}
.pp-docs .doc small{font-size:10.5px}
.pp-docs .doc.ok small{color:var(--ok)}
.pp-docs .doc.w{border-color:rgba(255,181,71,.45)}
.pp-docs .doc.w small{color:var(--warn)}
.pp-docs .doc.bad{border-color:rgba(255,107,107,.5);background:rgba(255,107,107,.06)}
.pp-docs .doc.bad small{color:var(--bad)}
.doc-none{font-size:12px;color:var(--text-dim)}

/* ---------- Demonstração: Ponto ---------- */
.demo-grid.ponto{grid-template-columns:290px 1fr}
.demo-phone-col{display:grid;gap:12px;justify-items:center;align-content:start}
.demo-phone{width:260px}
.demo-switch{justify-self:stretch}
button.punch{border:0;font-family:inherit;cursor:pointer;width:100%;transition:background .2s,transform .1s}
button.punch:active{transform:scale(.98)}
button.punch.out{background:var(--warn)}
.geo .me{transition:left .6s ease,top .6s ease}
.geo.out .me{left:84%;top:26%;background:var(--warn)}
.geo.out .geo-lbl{color:var(--warn)}
.week-bars{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:12px;height:190px;padding:8px 6px 0}
.wb{display:grid;grid-template-rows:auto 1fr auto;justify-items:center;gap:4px;min-width:0}
.wb-v{font-family:var(--font-mono);font-size:11px;color:var(--text-muted)}
.wb-bar{width:100%;max-width:46px;height:100%;display:flex;align-items:flex-end;background:rgba(255,255,255,.03);border-radius:6px 6px 0 0}
.wb-bar i{display:block;width:100%;background:var(--accent);border-radius:6px 6px 0 0;transition:height .6s ease}
.wb.today .wb-bar i{background:linear-gradient(to top,var(--accent),var(--accent-2))}
.wb-d{font-family:var(--font-mono);font-size:11px;color:var(--text-dim)}
.wb.today .wb-d{color:var(--accent-2)}
.wb-target{position:absolute;left:0;right:0;bottom:calc(19px + (100% - 45px) * .8);border-top:1.5px dashed var(--text-muted);opacity:.5;pointer-events:none}

/* ---------- transição entre páginas (View Transitions: Chrome, Edge, Safari; nos outros muda sem animação) ---------- */
/* O logótipo e o nome da empresa nunca se mexem (só na entrada inicial). O que se mexe é o cartão escolhido:
   na página inicial é o cartão do produto, na página do produto é o topo da página. Ao entrar, o cartão
   expande-se até ao topo da página; ao voltar para trás, o topo encolhe de volta para o cartão. */
@view-transition{navigation:auto}
.site-header{view-transition-name:site-header}      /* cabeçalho (logótipo e nome) fica parado */
::view-transition-group(site-header){animation:none}
::view-transition-old(site-header){display:none}
::view-transition-new(site-header){animation:none}
.vt-web{view-transition-name:card-web}
.vt-social{view-transition-name:card-social}
.vt-store{view-transition-name:card-store}
.vt-sphere{view-transition-name:card-sphere}
::view-transition-group(card-web),::view-transition-group(card-social),::view-transition-group(card-sphere){animation-duration:.6s;animation-timing-function:cubic-bezier(.65,0,.25,1);border-radius:18px;overflow:hidden}
::view-transition-old(card-web),::view-transition-new(card-web),::view-transition-old(card-social),::view-transition-new(card-social),::view-transition-old(card-sphere),::view-transition-new(card-sphere){height:100%;width:100%;object-fit:cover;object-position:top}
::view-transition-old(card-web),::view-transition-old(card-social),::view-transition-old(card-sphere){animation:vt-fade-out .3s ease both}
::view-transition-new(card-web),::view-transition-new(card-social),::view-transition-new(card-sphere){animation:vt-fade-in .4s ease .2s both}
::view-transition-old(root){animation:vt-fade-out .25s ease both}
::view-transition-new(root){animation:vt-fade-in .35s ease .25s both}
@keyframes vt-fade-out{to{opacity:0}}
@keyframes vt-fade-in{from{opacity:0}}

/* ---------- animação de entrada (página inicial) ---------- */
.splash{display:none}
/* !important: a regra de "reduzir movimento" desliga as animações CSS, mas esta é a rede de segurança
   que esconde o ecrã de entrada (.splash) se o JavaScript falhar. */
.intro-on .splash{display:grid;position:fixed;inset:0;z-index:200;place-content:center;justify-items:center;gap:34px;background:var(--bg);animation:intro-safety .01s linear 6s forwards!important}
.intro-on .splash::before{content:"";position:absolute;inset:0;background:radial-gradient(520px 320px at 50% 50%,rgba(46,144,255,.16),transparent 70%);pointer-events:none}
.intro-on .site-header .brand{visibility:hidden}
.intro-brand{position:relative;display:flex;align-items:center;gap:36px;font-family:var(--font-display);font-weight:700;letter-spacing:.08em;font-size:60px;transform-origin:0 0;will-change:transform}
.intro-brand img{width:120px;height:120px;border-radius:30px;box-shadow:0 0 50px -8px rgba(46,144,255,.55)}
.intro-bar{position:relative;width:180px;height:2px;border-radius:2px;background:rgba(255,255,255,.08);overflow:hidden}
.intro-bar i{position:absolute;inset:0;background:linear-gradient(90deg,var(--accent),var(--accent-2));transform:scaleX(0);transform-origin:0 50%}
@keyframes intro-safety{to{opacity:0;visibility:hidden}}

/* ---------- contentor de produto ---------- */
.pbox{border:1px solid var(--line-2);border-radius:22px;background:linear-gradient(160deg,rgba(46,144,255,.09),var(--surface) 45%);padding:36px;margin-bottom:28px}
.pbox-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px 32px;flex-wrap:wrap;margin-bottom:30px}
.pbox-lead{color:var(--text-muted);font-size:16.5px;max-width:560px;margin-top:10px}
.pbox .plan{background:var(--surface-2)}
.pbox-row{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.pbox-row .checks{margin-top:18px}
.svc-terms b{color:var(--accent-2);font-weight:600}
.pay-rules{margin-top:24px;border:1px solid rgba(46,144,255,.4);background:rgba(46,144,255,.07);border-radius:14px;padding:22px 26px}
.pay-rules h3{font-size:20px;margin-bottom:12px}
.pay-rules ol{padding-left:22px;display:grid;gap:9px;color:var(--text-muted);font-size:15.5px}
.pay-rules b{color:var(--text);font-weight:600}
.pay-rules .domain-note{margin-top:16px;padding-top:14px;border-top:1px solid rgba(46,144,255,.25)}
.brand-sub{margin-top:40px;padding-top:40px;border-top:1px solid var(--line)}
.brand-sub-head{max-width:660px;margin-bottom:26px}
.brand-sub-head h3{font-size:clamp(22px,2.6vw,30px);margin-bottom:10px}
.brand-sub-head p{color:var(--text-muted)}
.brand-sub .ctrl{background:var(--surface-2)}
.previews.single{grid-template-columns:1fr}
.svc-num{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-2);margin-bottom:8px}
.svc-terms{font-size:13px;color:var(--text);background:var(--surface-3);border:1px solid var(--line-2);border-radius:8px;padding:6px 10px;margin:-6px 0 16px;align-self:flex-start}
.domain-note{color:var(--text);font-weight:500}
.svc-extra{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:26px 28px;margin-top:28px}
.svc-extra h3{font-size:22px;margin-bottom:6px}
.svc-extra .checks{margin-top:12px}
.ns-terms{margin-top:110px;border:1px solid var(--line-2);border-radius:18px;background:linear-gradient(160deg,rgba(46,144,255,.08),var(--surface) 60%);padding:34px}
.ns-terms h3{font-size:clamp(22px,2.6vw,30px);margin-bottom:10px}
.ns-terms > p{color:var(--text-muted)}
.svc-ico{width:26px;height:26px;stroke:var(--accent-2);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;margin-bottom:14px}

/* ---------- honestidade: exemplos e avisos ---------- */
.mock-label{display:table;margin:0 auto 12px;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--warn);border:1px solid rgba(255,181,71,.4);background:rgba(255,181,71,.07);border-radius:99px;padding:3px 12px}
.mock-label.on-stage{position:absolute;top:14px;left:50%;transform:translateX(-50%);margin:0;z-index:2;white-space:nowrap}
.stage .phone,.stage .perm{margin-top:28px}
.sec-notice{margin-top:18px!important;font-size:14.5px!important;color:var(--warn)!important;border:1px solid rgba(255,181,71,.4);background:rgba(255,181,71,.07);border-radius:10px;padding:10px 14px}
.mod-note{margin-top:10px;font-size:13px!important;color:var(--warn)!important;border-left:2px solid rgba(255,181,71,.5);padding-left:10px}
.head-cta{margin-top:24px}
.consent .opt{color:var(--text-dim)}
#novidadesField.hl{border:1px solid rgba(46,144,255,.5);background:rgba(46,144,255,.08);border-radius:10px;padding:10px 12px}

/* ---------- steps / security ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;counter-reset:s;list-style:none}
.step{border:1px solid var(--line);border-radius:var(--radius);padding:26px;background:linear-gradient(180deg,var(--surface),transparent)}
.step::before{counter-increment:s;content:"0" counter(s);font-family:var(--font-mono);font-size:13px;color:var(--accent-2);display:block;margin-bottom:30px}
.step h3{font-size:19px;margin-bottom:8px}
.step p{color:var(--text-muted);font-size:14.5px}
.sec-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.sec{background:var(--bg);padding:28px}
.sec h3{font-size:17px;margin:14px 0 6px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sec p{color:var(--text-muted);font-size:14.5px}
.sec svg{width:22px;height:22px;stroke:var(--accent-2);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* ---------- faq ---------- */
.faq{max-width:780px;margin:0 auto}
.faq details{border-bottom:1px solid var(--line);padding:20px 0}
.faq summary{cursor:pointer;list-style:none;font-family:var(--font-display);font-size:18px;font-weight:500;display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--accent-2);font-size:22px;line-height:1;transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{color:var(--text-muted);margin-top:12px;font-size:15.5px}

/* ---------- contact form ---------- */
.cta-box{border:1px solid rgba(46,144,255,.35);border-radius:22px;padding:64px 48px;background:radial-gradient(600px 300px at 20% 0%,rgba(46,144,255,.22),transparent 70%),var(--surface);display:grid;grid-template-columns:1fr 1.05fr;gap:48px;align-items:start}
.cta-box h2{font-size:clamp(30px,3.8vw,44px)}
.cta-box .intro > p{color:var(--text-muted);margin-top:14px;font-size:16.5px}
.contact-line{margin-top:26px;font-size:14.5px;color:var(--text-muted)}
.contact-line a{color:var(--accent-2);text-decoration:underline;text-underline-offset:3px}
.lead-form{display:grid;gap:14px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.field{display:grid;gap:6px;font-size:13px;color:var(--text-muted)}
.field input,.field select,.field textarea{font-family:inherit;font-size:15px;color:var(--text);background:var(--bg);border:1px solid var(--line-2);border-radius:9px;padding:11px 13px;width:100%;min-height:44px}
.field textarea{resize:vertical;min-height:96px}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px rgba(46,144,255,.25)}
.field [aria-invalid="true"]{border-color:var(--bad)}
.field .err{color:var(--bad);font-size:12.5px;min-height:0}
.req{color:var(--accent-2)}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.plan-chip{display:flex;align-items:center;gap:10px;justify-content:space-between;background:rgba(46,144,255,.1);border:1px solid rgba(46,144,255,.35);border-radius:10px;padding:9px 12px;font-size:14px}
.plan-chip button{background:none;border:0;color:var(--text-muted);font-size:20px;line-height:1;cursor:pointer;width:32px;height:32px;border-radius:6px}
.plan-chip button:hover{color:var(--text);background:var(--surface-3)}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--text-muted);line-height:1.5}
.consent input{width:20px;height:20px;margin-top:1px;accent-color:var(--accent-strong);flex:none}
.consent a{color:var(--accent-2);text-decoration:underline;text-underline-offset:3px}
.form-status{font-size:14px;min-height:22px;border-radius:9px}
.form-status.ok{color:var(--ok)}
.form-status.error{color:var(--bad)}
.form-status a{color:inherit;text-decoration:underline}

/* ---------- footer ---------- */
.site-footer{border-top:1px solid var(--line);padding:56px 0 36px;margin-top:40px}
.foot{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap}
.foot-tag{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.16em;color:var(--text-dim);margin-top:12px}
.foot-cols{display:flex;gap:64px;flex-wrap:wrap}
.foot-cols h2{font-family:var(--font-mono);font-weight:400;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);margin-bottom:14px}
.foot-cols a{display:block;color:var(--text-muted);font-size:14px;margin-bottom:9px}
.foot-cols a:hover{color:var(--text)}
.foot-legal{margin-top:40px;padding-top:22px;border-top:1px solid var(--line);display:grid;gap:10px;color:var(--text-dim);font-size:13px}
.foot-legal a{color:var(--text-muted);text-decoration:underline;text-underline-offset:3px}
.foot-legal .links{display:flex;flex-wrap:wrap;gap:8px 20px}
.todo{color:var(--warn);font-family:var(--font-mono);font-size:.9em}

/* ---------- legal pages / 404 ---------- */
.legal{max-width:760px;margin:0 auto;padding:72px 24px 40px}
.legal h1{font-size:clamp(32px,4.4vw,44px);margin-bottom:10px}
.legal .updated{color:var(--text-dim);font-size:14px;margin-bottom:40px}
.legal h2{font-size:22px;margin:40px 0 12px}
.legal h3{font-size:18px;margin:26px 0 8px}
.legal p,.legal li{color:var(--text-muted);font-size:16px}
.legal p + p{margin-top:12px}
.legal ul{padding-left:20px;display:grid;gap:6px;margin-top:10px}
.legal a{color:var(--accent-2);text-decoration:underline;text-underline-offset:3px}
.legal .checklist{list-style:none;padding-left:0;border:1px dashed rgba(255,181,71,.45);border-radius:10px;padding:14px 16px}
.legal .checklist li{display:flex;gap:10px}
.legal .checklist li::before{content:"";width:14px;height:14px;border:1.5px solid var(--warn);border-radius:3px;flex:none;margin-top:5px}
.notice{border:1px solid rgba(255,181,71,.4);background:rgba(255,181,71,.07);color:var(--warn);border-radius:10px;padding:12px 16px;font-size:14px;margin-bottom:32px}
.nf{min-height:70vh;display:grid;place-items:center;text-align:center;padding:80px 24px}
.nf .code{font-family:var(--font-mono);color:var(--accent-2);letter-spacing:.2em;font-size:13px}
.nf h1{font-size:clamp(34px,5vw,54px);margin:12px 0}
.nf p{color:var(--text-muted);margin-bottom:28px}

.rv{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.rv.in{opacity:1;transform:none}
.no-js .rv{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media (max-width:1060px){
  .brand-grid{grid-template-columns:1fr}
  .ctrl{grid-template-columns:1fr 1fr}
  .included{grid-template-columns:repeat(3,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .nav-links{gap:20px}
}
@media (max-width:1000px){
  .modules{grid-template-columns:repeat(2,1fr)}
  .products.three,.products.four{grid-template-columns:1fr 1fr}
  .why{grid-template-columns:1fr 1fr}
  .demo-grid{grid-template-columns:1fr}
  .demo-grid.ponto{grid-template-columns:1fr}
  .scr-grid,.mp-info{grid-template-columns:1fr}
  .scr-kpis{grid-template-columns:1fr 1fr}
  .modlinks{grid-template-columns:1fr 1fr}
  .mod.mod-open{grid-template-columns:1fr}
  .mod.mod-open .mm{grid-column:auto;grid-row:auto;margin-bottom:16px}
  .modules.six{grid-template-columns:repeat(2,1fr)}
  .modules.six .mod,.modules.six .mod:nth-child(5),.modules.six .mod:nth-child(6){grid-column:span 1}
  .modules.six .mod-wide{grid-column:1/-1;grid-template-columns:1fr}
  .mod-wide .mm{grid-row:auto;margin-bottom:16px}
  .custom-box{grid-template-columns:1fr;padding:26px}
  .plans,.plans.three,.plans.four{grid-template-columns:repeat(2,1fr)}
  .spot,.spot.rev{grid-template-columns:1fr;gap:40px}
  .spot.rev .spot-text{order:0}
  .cta-box{grid-template-columns:1fr;padding:44px 28px}
  .mock{grid-template-columns:1fr}
  .mock-side{display:none}
  .previews{grid-template-columns:1fr}
}
@media (max-width:860px){
  .nav-links{position:absolute;top:68px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--bg);border-bottom:1px solid var(--line);padding:8px 16px 16px;display:none}
  .nav-links.open{display:flex}
  .nav-links a{padding:12px 4px}
  .nav-links .btn{margin-top:8px}
  .nav-toggle{display:grid}
}
@media (max-width:760px){
  section{padding:80px 0}
  .mt-xl{margin-top:90px}
  .wrap{padding:0 16px}
  .hero{padding-top:56px}
  .products,.products.three,.products.four{grid-template-columns:1fr;margin-top:48px}
  .why{grid-template-columns:1fr}
  .demo{padding:22px 14px}
  .demo-kpis{grid-template-columns:1fr 1fr}
  .modlinks{grid-template-columns:1fr}
  .mp-head{grid-template-columns:1fr}
  .scr-body{padding:12px}
  .scr-panel{overflow-x:auto}
  .scr-cap em{display:none}
  .cars{grid-template-columns:1fr}
  .scr-cal{grid-template-columns:64px repeat(5,minmax(64px,1fr));min-width:430px}
  .fc-bars{gap:5px;height:160px}
  .tabs{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;border-radius:14px;top:72px;width:100%}
  .tabs a{white-space:nowrap}
  .mod.mod-open{padding:20px 16px}
  .demo-kpis.three{grid-template-columns:1fr 1fr}
  .demo-list li{grid-template-columns:40px 1fr auto;row-gap:4px}
  .demo-list .tag{grid-column:2}
  .demo-list .act{grid-column:3}
  .cta-strip{padding:24px 18px}
  .page-hero{padding-top:48px}
  .intro-brand{gap:24px;font-size:40px}
  .intro-brand img{width:80px;height:80px;border-radius:20px}
  .pbox{padding:22px 16px;border-radius:18px}
  .pay-rules{padding:18px 16px}
  .product{padding:24px}
  .ctrl{grid-template-columns:1fr}
  .site-hero{grid-template-columns:1fr}
  .site-img{display:none}
  .site-nav .links{display:none}
  .site-nav .cta{margin-left:auto}
  .app{grid-template-columns:1fr}
  .app-side{display:none}
  .kpis{grid-template-columns:repeat(2,1fr)}
  .mock-grid{grid-template-columns:1fr}
  .mock-search,.alerts .alert:nth-child(n+2){display:none}
  .mock{transform:none}
  .modules,.steps,.sec-grid,.plans,.plans.two,.plans.three,.plans.four,.modules.six{grid-template-columns:1fr}
  .modules.six .mod,.modules.six .mod:nth-child(5),.modules.six .mod:nth-child(6),.modules.six .mod-wide{grid-column:1/-1}
  .custom-box{padding:20px 16px;margin-bottom:60px}
  .mock-label.on-stage{white-space:normal;width:max-content;max-width:90%;text-align:center}
  .included{grid-template-columns:repeat(2,1fr)}
  .row{grid-template-columns:1fr}
  .stage{padding:22px 14px;min-height:0}
  .perm{font-size:12px}
  .perm th,.perm td{padding:9px 6px}
  .perm-head{flex-direction:column;align-items:flex-start;gap:10px}
  .cta-box{padding:32px 18px}
  .legal{padding:48px 16px 24px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .rv{opacity:1;transform:none}
  .mock{transform:none}
}

/* ===== Proposta (nocora.pt/p/<código>, servida pelo back office) ===== */
.prop-head .prop-meta{color:var(--text-muted);margin:10px 0 0}
.prop-state{margin:18px 0 0;padding:12px 16px;border-radius:12px;border:1px solid var(--line-2);background:var(--surface-2)}
.prop-state.ok{border-color:rgba(63,212,154,.45);background:rgba(63,212,154,.08)}
.prop-section{margin:40px 0}
.prop-section h2{font-size:clamp(20px,2.2vw,26px);margin:0 0 14px}
.prop-section h3{font-size:16px;margin:18px 0 8px;color:var(--text-muted)}
.prop-intro{white-space:pre-line}
.prop-samples{display:grid;gap:18px;margin:16px 0}
.prop-samples figure{margin:0}
.prop-samples img{display:block;width:100%;height:auto;border-radius:12px;border:1px solid var(--line-2);-webkit-user-select:none;user-select:none;-webkit-user-drag:none;pointer-events:none}
.prop-samples figcaption{font-size:13px;color:var(--text-muted);margin-top:6px}
.prop-table-wrap{overflow-x:auto}
.prop-table{width:100%;border-collapse:collapse;font-size:15px}
.prop-table th,.prop-table td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.prop-table thead th{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-weight:600}
.prop-table tfoot th{font-weight:500;color:var(--text-muted);text-align:right}
.prop-table .num{text-align:right;white-space:nowrap}
.prop-table small{display:block;color:var(--text-muted);font-size:13px;margin-top:2px}
.prop-conditions{padding-left:20px;color:var(--text-muted)}
.prop-conditions li{margin:6px 0}
.prop-provider{font-size:13.5px;color:var(--text-muted);border-top:1px solid var(--line);padding-top:18px}
.prop-decide{border:1px solid var(--line-2);border-radius:16px;padding:22px;background:var(--surface-2)}
@media print{
  .site-header,.site-footer,.prop-decide,.prop-section .btn{display:none!important}
  body{background:#fff;color:#111}
  .prop-table th,.prop-table td{border-color:#ccc}
  .prop-samples img{break-inside:avoid;border-color:#ccc}
}

/* ===== Apresentação da empresa (#welcome): depois do loading, até "Explorar" ===== */
.welcome{display:none}
.welcome-on.welcome-live body{overflow:hidden}
.welcome-on.welcome-live .welcome{display:flex;position:fixed;inset:0;z-index:40;flex-direction:column;justify-content:flex-start;align-items:center;text-align:center;padding:104px 16px 48px;overflow-y:auto;overscroll-behavior:contain;
  background:radial-gradient(760px 460px at 50% 36%,rgba(46,144,255,.20),transparent 70%),radial-gradient(520px 360px at 88% 82%,rgba(127,214,255,.08),transparent 70%),var(--bg)}
.welcome .wrap{max-width:920px;transform-origin:50% 0;opacity:0;transform:translateY(18px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.welcome.ready .wrap{opacity:1;transform:none}
.welcome .eyebrow{justify-content:center}
/* o logótipo do loading sobe para aqui (mesmo tamanho: .intro-brand); o do cabeçalho só aparece depois de "Explorar" */
/* Centrado na vertical com margens automáticas (se não couber no ecrã, nada fica cortado em cima).
   Mais pequeno do que o do loading, mas com as mesmas proporções (texto 1 : imagem 2 : espaço 0,6): o loading escala até aqui. */
.welcome-brand{visibility:hidden;flex:none;margin:auto auto 30px;gap:24px;font-size:40px}
.welcome-brand img{width:80px;height:80px;border-radius:20px}
.welcome .wrap{margin-bottom:auto}
@media (max-width:760px),(max-height:760px){
  .welcome-brand{gap:18px;font-size:30px;margin-bottom:22px}
  .welcome-brand img{width:60px;height:60px;border-radius:15px}
}
.welcome.ready .welcome-brand{visibility:visible}
.brand-away .site-header .brand{visibility:hidden}
.welcome .welcome-title{font-size:clamp(30px,4.6vw,54px);max-width:900px;margin:0 auto}
.welcome .welcome-title em{font-style:normal;background:linear-gradient(92deg,var(--accent) 10%,var(--accent-2) 90%);-webkit-background-clip:text;background-clip:text;color:transparent}
.welcome .lead{font-size:clamp(16px,1.6vw,19px);color:var(--text-muted);max-width:700px;margin:22px auto 30px}
.welcome-points{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;max-width:780px;margin:0 auto 34px;padding:0;text-align:left}
.welcome-points li{list-style:none;border:1px solid var(--line-2);border-radius:14px;padding:16px 18px;background:rgba(15,22,34,.55)}
.welcome-points b{display:block;font-family:var(--font-display);font-weight:600;font-size:16px;margin-bottom:4px}
.welcome-points span{color:var(--text-muted);font-size:14px;line-height:1.5}
.welcome-ctas{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.welcome .explore{display:inline-flex;align-items:center;gap:8px}
.welcome .explore svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;animation:welcome-nudge 1.8s ease-in-out infinite}
@keyframes welcome-nudge{0%,100%{transform:none}50%{transform:translateY(3px)}}
@media (max-width:760px){
  .welcome-on.welcome-live .welcome{padding-top:96px}
  .welcome-points{grid-template-columns:1fr}
}
/* Tal como o loading, a apresentação anima mesmo com "reduzir movimento" (pedido da NOCORA); só a seta fica parada. */
@media (prefers-reduced-motion:reduce){.welcome .explore svg{animation:none}}

/* foco dado por script a títulos (tabindex=-1), para leitores de ecrã: sem moldura visível */
[tabindex="-1"]:focus{outline:none}
