:root {
  --ink: #0f1c24;
  --ink-2: #162b37;
  --blue: #2f5c79;
  --blue-dark: #24465d;
  --cyan: #059db7;
  --cyan-bright: #14b8d4;
  --paper: #f5f8f9;
  --white: #ffffff;
  --muted: #71808a;
  --line: rgba(15, 28, 36, .11);
  --glass: rgba(255,255,255,.74);
  --radius: 28px;
  --shadow: 0 24px 80px rgba(15, 28, 36, .12);
  --shell: min(1180px, calc(100vw - 48px));
  --font-body: "Rubik", ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --font-display: "Inter", ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: #fff;
  font-family: var(--font-body);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }

h1, h2, h3 {
  font-family: var(--font-display);
  font-optical-sizing: auto;
  font-style: normal;
  font-weight: 800;
}
::selection { background: rgba(5,157,183,.22); }

.skip-link {
  position: fixed; left: 16px; top: 16px; z-index: 1000;
  transform: translateY(-180%); background: #fff; padding: 10px 14px; border-radius: 999px;
  box-shadow: var(--shadow);
}
.skip-link:focus { transform: translateY(0); }
.shell { width: var(--shell); margin-inline: auto; }

.scroll-progress { position: fixed; inset: 0 0 auto; height: 3px; z-index: 120; background: transparent; pointer-events: none; }
.scroll-progress span { display: block; height: 100%; width: 100%; transform: scaleX(0); transform-origin: left; background: linear-gradient(90deg, var(--blue), var(--cyan)); }

.site-header {
  position: fixed; inset: 0 0 auto; z-index: 100;
  border-bottom: 1px solid transparent;
  transition: background .3s ease, border-color .3s ease, backdrop-filter .3s ease;
}
.site-header.scrolled { background: rgba(255,255,255,.83); border-color: rgba(15,28,36,.08); backdrop-filter: blur(18px); }
.header-inner { height: 78px; display: flex; align-items: center; gap: 28px; }
.brand { width: 155px; flex: none; }
.brand img { width: 100%; height: auto; }
.desktop-nav { display: flex; gap: 28px; margin-left: auto; align-items: center; }
.desktop-nav a { font-size: 14px; font-weight: 680; letter-spacing: -.01em; color: #29404e; transition: color .2s ease; }
.desktop-nav a:hover { color: var(--cyan); }
.desktop-nav .nav-legal { padding:9px 13px; border:1px solid rgba(47,92,121,.15); border-radius:999px; background:rgba(255,255,255,.55); }
.desktop-nav .nav-legal:hover, .desktop-nav .nav-legal[aria-current="page"] { color:var(--blue-dark); border-color:rgba(5,157,183,.34); background:#eef9fb; }
.header-cta { margin-left: 8px; }
.menu-toggle { display:none; border:0; background:transparent; width:42px; height:42px; border-radius:50%; padding:0; align-items:center; justify-content:center; flex-direction:column; gap:5px; }
.menu-toggle span { width:19px; height:2px; background: var(--ink); border-radius:4px; transition: transform .2s ease; }
.menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
.mobile-panel { display:none; }

.button { display:inline-flex; align-items:center; justify-content:center; gap:10px; border-radius:999px; font-weight:760; letter-spacing:-.015em; transition: transform .22s ease, box-shadow .22s ease, background .22s ease; }
.button:hover { transform: translateY(-2px); }
.button-small { min-height: 42px; padding: 0 18px; font-size: 14px; }
.button-large { min-height: 56px; padding: 0 24px; font-size: 15px; }
.button-primary { background: var(--ink); color:#fff; box-shadow: 0 12px 28px rgba(15,28,36,.16); }
.button-primary:hover { box-shadow: 0 16px 34px rgba(15,28,36,.22); }
.button-ghost { background: rgba(255,255,255,.78); border:1px solid rgba(15,28,36,.12); color: var(--ink); backdrop-filter: blur(10px); }
.button-light { background:#fff; color:var(--ink); }
.button-outline-light { color:#fff; border:1px solid rgba(255,255,255,.36); background:rgba(255,255,255,.06); }

.hero { min-height: 100svh; position:relative; overflow:hidden; display:flex; align-items:center; padding: 120px 0 80px; background: linear-gradient(180deg,#fbfdfe 0%,#f3f8fa 68%,#fff 100%); }
.hero-layout { position:relative; z-index:2; display:grid; grid-template-columns: .92fr 1.08fr; gap:48px; align-items:center; }
.hero-copy { max-width: 610px; }
.eyebrow, .kicker { font-size: 13px; text-transform: uppercase; letter-spacing: .16em; font-weight:800; color: var(--blue); }
.eyebrow { display:inline-flex; align-items:center; gap:9px; padding:9px 12px; border:1px solid rgba(47,92,121,.14); border-radius:999px; background:rgba(255,255,255,.66); backdrop-filter: blur(12px); }
.pulse-dot { width:7px; height:7px; border-radius:50%; background:var(--cyan); box-shadow:0 0 0 0 rgba(5,157,183,.4); animation:pulse 2s infinite; }
@keyframes pulse { 70% { box-shadow:0 0 0 8px rgba(5,157,183,0); } 100% { box-shadow:0 0 0 0 rgba(5,157,183,0); } }
.hero h1 { margin:22px 0 18px; font-size: clamp(58px, 7.5vw, 112px); line-height:.88; letter-spacing:-.075em; font-weight:850; }
.hero h1 span { color: var(--cyan); }
.hero-copy > p { margin:0; max-width: 580px; font-size: clamp(18px,2vw,22px); line-height:1.55; letter-spacing:-.025em; color:#50636f; }
.hero-copy > p strong { color:#213a49; }
.hero-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:30px; }
.hero-proof { display:flex; gap:20px; flex-wrap:wrap; margin-top:26px; font-size:13px; font-weight:650; color:#5e707b; }
.hero-proof span { display:inline-flex; align-items:center; gap:7px; }
.hero-proof i { color:var(--cyan); font-style:normal; font-weight:900; }
.hero-orb { position:absolute; border-radius:50%; filter: blur(2px); pointer-events:none; }
.orb-a { width:560px; height:560px; right:-130px; top:-120px; background:radial-gradient(circle,rgba(5,157,183,.20),rgba(5,157,183,0) 68%); }
.orb-b { width:640px; height:640px; left:30%; bottom:-360px; background:radial-gradient(circle,rgba(47,92,121,.16),rgba(47,92,121,0) 68%); }
.hero-grid { position:absolute; inset:0; opacity:.28; background-image: linear-gradient(rgba(47,92,121,.055) 1px, transparent 1px), linear-gradient(90deg,rgba(47,92,121,.055) 1px, transparent 1px); background-size: 56px 56px; mask-image: linear-gradient(to bottom,rgba(0,0,0,.9),rgba(0,0,0,0)); }
.hero-bottom-fade { position:absolute; inset:auto 0 0; height:160px; background:linear-gradient(transparent,#fff); }

.hero-visual { position:relative; min-height:660px; transform-style:preserve-3d; }
.device-glow { position:absolute; width:470px; height:470px; border-radius:50%; left:50%; top:50%; transform:translate(-47%,-48%); background:radial-gradient(circle,rgba(5,157,183,.25),rgba(5,157,183,.03) 46%,transparent 69%); filter:blur(6px); }
.phone-shell { position:absolute; width:340px; height:660px; left:50%; top:50%; transform:translate(-50%,-50%) rotate(2deg); border-radius:52px; padding:12px; background:#11222c; box-shadow:0 42px 80px rgba(22,43,55,.26), inset 0 0 0 1px rgba(255,255,255,.08); }
.phone-top { height:28px; position:absolute; z-index:3; left:50%; top:16px; transform:translateX(-50%); }
.phone-top span { display:block; width:86px; height:24px; border-radius:999px; background:#0b161d; }
.phone-screen { height:100%; border-radius:42px; background:linear-gradient(180deg,#f9fcfd,#eef6f8); padding:64px 20px 20px; overflow:hidden; }
.mini-bar { display:flex; align-items:center; gap:9px; font-size:13px; font-weight:800; }
.mini-bar img { width:26px; height:26px; object-fit:contain; }
.mini-bar b { margin-left:auto; letter-spacing:3px; color:#7c8d97; }
.mini-total { margin-top:38px; padding:22px; border-radius:22px; background:#fff; box-shadow:0 12px 36px rgba(47,92,121,.08); }
.mini-total span { font-size:12px; font-weight:700; color:#7b8d97; }
.mini-total strong { display:block; margin-top:6px; font-size:42px; letter-spacing:-.05em; }
.mini-lines { margin-top:16px; padding:8px 18px; border-radius:20px; background:rgba(255,255,255,.72); }
.mini-lines div { display:flex; justify-content:space-between; align-items:center; padding:14px 0; border-bottom:1px solid rgba(15,28,36,.07); font-size:13px; }
.mini-lines div:last-child { border-bottom:0; }
.mini-lines b { font-size:13px; }
.mini-payments { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:16px; }
.mini-payments span { text-align:center; padding:12px 8px; border:1px solid rgba(15,28,36,.08); border-radius:14px; font-size:11px; font-weight:800; background:#fff; }
.mini-payments .selected { color:#fff; background:var(--blue); border-color:var(--blue); }
.mini-cta { margin-top:16px; padding:15px; text-align:center; color:#fff; background:var(--cyan); border-radius:16px; font-size:12px; font-weight:850; }
.receipt-card { position:absolute; width:180px; border-radius:22px; padding:20px; background:#fff; box-shadow:0 24px 70px rgba(47,92,121,.18); transform:rotate(-7deg); }
.receipt-a { left:18px; top:110px; animation:float 6s ease-in-out infinite; }
.receipt-card img { width:34px; margin-bottom:18px; }
.receipt-lines { display:grid; gap:8px; }
.receipt-lines i { display:block; height:7px; border-radius:99px; background:#dde7eb; }
.receipt-lines i:nth-child(2) { width:82%; }
.receipt-lines i:nth-child(3) { width:58%; }
.receipt-card b { display:inline-block; margin-top:18px; color:var(--cyan); font-size:11px; letter-spacing:.08em; }
.status-pill { position:absolute; display:flex; align-items:center; gap:9px; padding:12px 16px; background:#fff; border:1px solid rgba(15,28,36,.08); border-radius:999px; font-size:12px; font-weight:800; box-shadow:0 16px 42px rgba(47,92,121,.12); }
.status-pill span { width:8px; height:8px; background:#34c759; border-radius:50%; }
.status-a { right:10px; top:172px; animation:float 7s ease-in-out -.8s infinite; }
.status-b { right:12px; bottom:138px; color:var(--blue); animation:float 6.5s ease-in-out -.2s infinite; }
@keyframes float { 50% { transform:translateY(-12px) rotate(-4deg); } }

.section-dark { background:var(--ink); color:#fff; overflow:hidden; }
.intro-statements { padding:120px 0 80px; }
.statement-grid { display:grid; grid-template-columns: 280px 1fr; gap:70px; align-items:start; }
.statement-grid .kicker { color:#7bd4e4; }
.statement-grid h2 { margin:0; max-width:900px; font-size:clamp(42px,5.6vw,78px); line-height:1.02; letter-spacing:-.055em; }
.statement-grid h2 span { color:#6b7d87; }
.ticker { margin-top:94px; border-top:1px solid rgba(255,255,255,.10); border-bottom:1px solid rgba(255,255,255,.10); overflow:hidden; }
.ticker-track { display:flex; width:max-content; align-items:center; gap:28px; padding:26px 0; animation:ticker 28s linear infinite; font-size:14px; font-weight:760; text-transform:uppercase; letter-spacing:.08em; color:#dce7eb; }
.ticker-track i { color:var(--cyan-bright); font-style:normal; }
@keyframes ticker { to { transform:translateX(-50%); } }

.story { padding:130px 0 100px; background:#f7fafb; }
.story-head { margin-bottom:55px; }
.story-head h2, .section-heading h2, .regulation h2, .faq h2, .no-hardware h2, .final-cta h2 { margin:10px 0 0; font-size:clamp(44px,6vw,80px); line-height:1.01; letter-spacing:-.06em; }
.story-wrap { display:grid; grid-template-columns:1.08fr .92fr; gap:90px; align-items:start; }
.story-stage { position:sticky; top:110px; height:640px; align-self:start; }
.stage-frame { position:relative; height:580px; border-radius:34px; background:#fff; border:1px solid rgba(15,28,36,.08); overflow:hidden; box-shadow:0 35px 85px rgba(31,62,80,.13); z-index:2; }
.stage-shadow { position:absolute; inset:auto 8% 12px; height:50px; background:rgba(15,28,36,.16); filter:blur(30px); border-radius:50%; z-index:1; }
.stage-topbar { height:72px; padding:0 24px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid rgba(15,28,36,.07); background:rgba(255,255,255,.9); }
.stage-brand { display:flex; align-items:center; gap:9px; font-size:13px; font-weight:850; }
.stage-brand img { width:28px; height:28px; object-fit:contain; }
.live-chip { display:flex; align-items:center; gap:7px; font-size:11px; font-weight:800; color:#5b6d77; }
.live-chip i { width:7px; height:7px; border-radius:50%; background:#34c759; }
.stage-screen { position:relative; height:calc(100% - 72px); background:radial-gradient(circle at 88% 15%,rgba(5,157,183,.12),transparent 36%),#f6fafb; }
.stage-state { position:absolute; inset:0; padding:46px; opacity:0; transform:translateY(28px) scale(.98); pointer-events:none; transition:opacity .45s ease, transform .55s cubic-bezier(.2,.8,.2,1); }
.stage-state.is-active { opacity:1; transform:translateY(0) scale(1); }
.state-label { color:var(--cyan); font-size:11px; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.stage-state h3 { margin:9px 0 26px; font-size:32px; letter-spacing:-.045em; }
.login-card, .checkout-card, .history-card { width:min(390px,100%); border-radius:24px; background:#fff; box-shadow:0 18px 45px rgba(47,92,121,.08); }
.login-card { padding:28px; display:grid; justify-items:start; }
.avatar-logo { width:52px; height:52px; display:grid; place-items:center; background:#eff6f8; border-radius:17px; margin-bottom:22px; }
.avatar-logo img { width:30px; }
.login-card span { font-size:12px; color:#7a8c96; font-weight:700; }
.login-card strong { margin-top:4px; font-size:24px; letter-spacing:-.03em; }
.login-card button { margin-top:24px; border:0; padding:13px 17px; border-radius:13px; background:var(--ink); color:#fff; font-weight:800; }
.checkout-card { padding:10px 24px 22px; }
.checkout-card > div:not(.pay-row) { display:flex; justify-content:space-between; padding:16px 0; border-bottom:1px solid rgba(15,28,36,.07); font-size:13px; }
.checkout-total strong { font-size:20px; }
.pay-row { display:flex; align-items:center; gap:10px; margin-top:18px; padding:12px 14px; border:1px solid rgba(5,157,183,.25); background:#f1fbfd; border-radius:14px; font-size:12px; font-weight:800; }
.pay-row i { width:8px; height:8px; border-radius:50%; background:var(--cyan); }
.pay-row b { margin-left:auto; color:var(--cyan); }
.send-flow { display:flex; align-items:center; gap:16px; padding-top:32px; }
.flow-node { width:150px; min-height:118px; border-radius:22px; display:grid; place-items:center; align-content:center; gap:8px; background:#fff; box-shadow:0 16px 40px rgba(47,92,121,.08); font-size:12px; font-weight:800; text-align:center; }
.flow-local img { width:37px; }
.flag { display:grid; place-items:center; width:38px; height:38px; border-radius:12px; background:linear-gradient(90deg,#159447 0 33%,#fff 33% 66%,#cf2b36 66%); color:transparent; box-shadow:inset 0 0 0 1px rgba(15,28,36,.05); }
.flow-line { flex:1; height:2px; background:#dce7eb; position:relative; overflow:hidden; }
.flow-line i { position:absolute; width:50%; inset:0 auto 0 -50%; background:linear-gradient(90deg,transparent,var(--cyan),transparent); animation:send 1.7s linear infinite; }
@keyframes send { to { left:100%; } }
.success-line { margin-top:30px; font-size:13px; font-weight:850; color:#1e9463; }
.history-card { padding:20px; }
.history-head { display:flex; justify-content:space-between; padding:7px 4px 18px; }
.history-head span { font-size:12px; color:#71808a; font-weight:800; }
.history-head strong { font-size:21px; }
.history-row { display:flex; align-items:center; gap:10px; padding:14px 8px; background:#f7fafb; border-radius:12px; margin-top:8px; font-size:11px; }
.history-row i { width:8px; height:8px; border-radius:50%; background:var(--cyan); }
.history-row b { margin-left:auto; }
.story-steps { padding-bottom:240px; }
.story-step { min-height:520px; display:flex; flex-direction:column; justify-content:center; opacity:.32; transition:opacity .3s ease; }
.story-step.is-active { opacity:1; }
.story-step > span { font-size:11px; font-weight:900; letter-spacing:.12em; color:var(--cyan); }
.story-step h3 { margin:10px 0 13px; font-size:42px; letter-spacing:-.05em; }
.story-step p { margin:0; max-width:410px; font-size:19px; line-height:1.55; color:#63747e; letter-spacing:-.02em; }

.features { padding:130px 0; }
.section-heading { max-width:820px; margin-bottom:55px; }
.section-heading h2 span, .audience h2 span { color:#91a0a8; }
.section-lead { max-width:650px; margin:22px 0 0; font-size:19px; line-height:1.55; color:#61737e; }
.feature-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:18px; }
.feature-card { grid-column:span 4; position:relative; min-height:330px; border:1px solid var(--line); border-radius:var(--radius); padding:30px; overflow:hidden; background:linear-gradient(180deg,#fff,#f9fbfc); }
.feature-card-large { grid-column:span 8; min-height:470px; }
.feature-card-wide { grid-column:span 8; display:grid; grid-template-columns: .9fr 1.1fr; gap:20px; align-items:center; }
.feature-card-accent { background:var(--ink); color:#fff; border-color:transparent; }
.feature-icon { width:46px; height:46px; display:grid; place-items:center; border-radius:15px; background:#edf6f8; color:var(--cyan); font-size:22px; font-weight:800; }
.feature-card-accent .feature-icon { background:rgba(255,255,255,.10); color:#7bd4e4; }
.feature-card h3 { margin:24px 0 10px; font-size:26px; letter-spacing:-.04em; }
.feature-card p { margin:0; max-width:460px; font-size:15px; line-height:1.6; color:#677983; }
.feature-card-accent p { color:#9fb0b9; }
.quick-ui { position:absolute; right:28px; top:28px; width:270px; padding:20px; border:1px solid rgba(15,28,36,.08); border-radius:24px; background:#f3f8fa; transform:rotate(3deg); }
.quick-total { display:flex; justify-content:space-between; align-items:end; background:#fff; border-radius:16px; padding:15px; }
.quick-total span { font-size:11px; color:#7f9099; font-weight:800; }
.quick-total strong { font-size:22px; }
.keypad { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; margin-top:10px; }
.keypad i { display:grid; place-items:center; aspect-ratio:1.35; background:#fff; border-radius:11px; font-style:normal; font-size:11px; font-weight:850; color:#425a68; }
.devices-mini { position:absolute; right:26px; bottom:26px; left:26px; height:92px; display:flex; align-items:end; justify-content:center; gap:10px; }
.devices-mini span { display:block; border:2px solid rgba(255,255,255,.25); border-radius:10px; background:rgba(255,255,255,.04); }
.devices-mini span:nth-child(1) { width:42px; height:76px; }
.devices-mini span:nth-child(2) { width:82px; height:58px; }
.devices-mini span:nth-child(3) { width:118px; height:72px; border-radius:7px; }
.chart-mini { padding:24px; border-radius:22px; background:#f1f7f9; min-height:230px; display:flex; flex-direction:column; justify-content:end; }
.chart-bars { height:155px; display:flex; align-items:end; gap:10px; }
.chart-bars i { flex:1; height:var(--h); min-height:18px; background:linear-gradient(180deg,var(--cyan),var(--blue)); border-radius:8px 8px 3px 3px; opacity:.86; }
.chart-labels { display:flex; justify-content:space-around; margin-top:10px; font-size:9px; font-weight:800; color:#81929b; }

.no-hardware { padding:120px 0; background:#eef5f7; overflow:hidden; }
.no-hardware-grid { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:80px; }
.no-hardware-copy p:not(.kicker) { font-size:18px; line-height:1.6; color:#60727d; }
.mini-benefits { display:grid; gap:12px; margin-top:25px; }
.mini-benefits span { display:flex; align-items:center; gap:9px; font-size:14px; font-weight:700; }
.mini-benefits i { color:var(--cyan); font-style:normal; }
.printer-compat { display:flex; align-items:flex-start; gap:15px; margin-top:28px; max-width:620px; padding:18px 20px; border:1px solid rgba(47,92,121,.13); border-radius:20px; background:#fff; box-shadow:0 12px 32px rgba(47,92,121,.06); }
.printer-compat-mark { width:42px; height:42px; flex:none; display:grid; place-items:center; border-radius:13px; background:var(--ink); color:#fff; font-size:18px; }
.printer-compat strong { display:block; color:var(--ink); font-size:14px; }
.printer-compat p { margin:5px 0 0 !important; font-size:13px !important; line-height:1.55 !important; color:#667983 !important; }
.printer-compat p strong { display:inline; font-size:inherit; }
.device-orbit { position:relative; aspect-ratio:1; max-width:520px; margin-left:auto; }
.orbit-ring { position:absolute; border:1px solid rgba(47,92,121,.14); border-radius:50%; }
.ring-one { inset:16%; animation:spin 18s linear infinite; }
.ring-two { inset:3%; border-style:dashed; animation:spin 28s linear infinite reverse; }
@keyframes spin { to { transform:rotate(360deg); } }
.orbit-center { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:128px; height:128px; border-radius:36px; display:grid; place-items:center; background:#fff; box-shadow:0 25px 60px rgba(47,92,121,.14); }
.orbit-center img { width:72px; }
.orbit-device { position:absolute; display:grid; place-items:center; background:#fff; border:1px solid rgba(15,28,36,.08); box-shadow:0 20px 50px rgba(47,92,121,.12); }
.orbit-device span { display:block; background:linear-gradient(135deg,#e6f4f7,#f8fcfd); }
.orbit-phone { width:78px; height:128px; border-radius:22px; top:7%; left:47%; transform:rotate(8deg); padding:7px; }
.orbit-phone span { width:100%; height:100%; border-radius:16px; }
.orbit-tablet { width:142px; height:105px; border-radius:18px; bottom:12%; left:7%; transform:rotate(-9deg); padding:7px; }
.orbit-tablet span { width:100%; height:100%; border-radius:12px; }
.orbit-laptop { width:174px; height:105px; border-radius:14px; right:-2%; bottom:22%; transform:rotate(7deg); padding:7px 7px 13px; }
.orbit-laptop span { width:100%; height:100%; border-radius:8px; }

.regulation { padding:130px 0; background:var(--ink); color:#fff; }
.regulation-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:90px; align-items:center; }
.regulation .kicker { color:#72d2e1; }
.regulation h2 { max-width:650px; }
.regulation-copy > p { max-width:650px; font-size:17px; line-height:1.68; color:#a8b6bd; }
.regulation-copy strong { color:#fff; }
.source-links { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.source-links a { padding:11px 14px; border:1px solid rgba(255,255,255,.13); border-radius:999px; font-size:12px; font-weight:750; color:#d8e4e8; transition:background .2s ease; }
.source-links a:hover { background:rgba(255,255,255,.08); }
.regulation-card { padding:34px; border:1px solid rgba(255,255,255,.12); border-radius:30px; background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.035)); box-shadow:0 28px 80px rgba(0,0,0,.16); }
.regulation-card-top { display:flex; align-items:center; gap:12px; font-weight:800; padding-bottom:25px; border-bottom:1px solid rgba(255,255,255,.09); }
.italy-chip { width:42px; height:30px; border-radius:9px; display:grid; place-items:center; background:linear-gradient(90deg,#178b48 0 33%,#fff 33% 66%,#ce2d38 66%); color:transparent; }
.timeline { padding:10px 0; }
.timeline div { display:grid; grid-template-columns:80px 1fr; gap:18px; padding:22px 0; border-bottom:1px solid rgba(255,255,255,.08); }
.timeline b { color:#68cee0; font-size:13px; letter-spacing:.06em; }
.timeline span { font-size:14px; line-height:1.55; color:#d1dde1; }
.regulation-note { margin:20px 0 0; font-size:11px; line-height:1.55; color:#7f919b; }

.audience { padding:130px 0; }
.centered { text-align:center; margin-inline:auto; }
.audience-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.audience-grid article { padding:32px 26px 42px; border-right:1px solid var(--line); }
.audience-grid article:last-child { border-right:0; }
.audience-grid article > span { color:var(--cyan); font-size:11px; font-weight:900; letter-spacing:.1em; }
.audience-grid h3 { margin:36px 0 10px; font-size:23px; letter-spacing:-.035em; }
.audience-grid p { margin:0; font-size:14px; line-height:1.55; color:#6d7e88; }

.faq { padding:120px 0; background:#f6f9fa; }
.faq-grid { display:grid; grid-template-columns:.75fr 1.25fr; gap:90px; align-items:start; }
.faq-intro { position:sticky; top:120px; }
.faq-intro > p:not(.kicker) { max-width:440px; font-size:15px; line-height:1.65; color:#6c7e88; }
.accordion { display:grid; gap:10px; }
.accordion details { border:1px solid rgba(15,28,36,.09); background:#fff; border-radius:20px; overflow:hidden; }
.accordion summary { cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 24px; font-size:17px; font-weight:760; letter-spacing:-.02em; }
.accordion summary::-webkit-details-marker { display:none; }
.accordion summary span { flex:none; display:grid; place-items:center; width:28px; height:28px; border-radius:50%; background:#eef5f7; transition:transform .2s ease; }
.accordion details[open] summary span { transform:rotate(45deg); }
.accordion details p { margin:0; padding:0 24px 24px; max-width:730px; color:#657781; font-size:14px; line-height:1.65; }

.final-cta { position:relative; overflow:hidden; padding:145px 0; background:linear-gradient(145deg,#264b63,#059db7); color:#fff; text-align:center; }
.final-cta-inner { position:relative; z-index:2; display:grid; justify-items:center; }
.cta-icon { width:82px; height:82px; object-fit:contain; filter:drop-shadow(0 14px 30px rgba(0,0,0,.18)); margin-bottom:22px; }
.final-cta .kicker { color:#c9f1f7; }
.final-cta h2 span { color:#b8e9f1; }
.final-cta-inner > p:not(.kicker) { max-width:610px; margin:24px auto 0; font-size:18px; line-height:1.55; color:#d9eef2; }
.centered-actions { justify-content:center; }
.final-orb { position:absolute; border-radius:50%; filter:blur(4px); }
.final-orb-a { width:600px; height:600px; left:-260px; top:-300px; background:radial-gradient(circle,rgba(255,255,255,.14),transparent 70%); }
.final-orb-b { width:500px; height:500px; right:-180px; bottom:-260px; background:radial-gradient(circle,rgba(15,28,36,.2),transparent 70%); }

.site-footer { background:#0b151b; color:#cad6dc; }
.footer-top { display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:50px; padding:72px 0 58px; }
.footer-logo-wrap { display:inline-flex; align-items:center; justify-content:center; padding:13px 16px; border-radius:16px; background:#fff; box-shadow:0 12px 32px rgba(0,0,0,.18); }
.footer-brand img { width:190px; filter:none; opacity:1; }
.footer-brand p { margin-top:20px; font-size:13px; color:#7f929c; }
.footer-col { display:flex; flex-direction:column; align-items:flex-start; gap:10px; font-size:12px; color:#83959f; }
.footer-col h3 { margin:0 0 10px; color:#fff; font-size:12px; text-transform:uppercase; letter-spacing:.12em; }
.footer-col a:hover { color:#fff; }
.footer-bottom { min-height:78px; border-top:1px solid rgba(255,255,255,.08); display:flex; align-items:center; justify-content:space-between; gap:30px; font-size:10px; color:#5f747f; }
.footer-bottom p:first-child { max-width:860px; }

[data-reveal] { opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .8s cubic-bezier(.2,.8,.2,1); }
[data-reveal].revealed { opacity:1; transform:translateY(0); }

@media (max-width: 1040px) {
  .desktop-nav, .header-cta { display:none; }
  .header-inner { height:70px; }
  .menu-toggle { display:flex; margin-left:auto; }
  .mobile-panel { position:absolute; top:70px; left:16px; right:16px; padding:18px; border:1px solid rgba(15,28,36,.08); border-radius:22px; background:rgba(255,255,255,.96); backdrop-filter:blur(18px); box-shadow:0 24px 60px rgba(15,28,36,.14); }
  .mobile-panel.open { display:grid; gap:8px; }
  .mobile-panel > a:not(.button) { padding:12px; font-weight:760; }
  .mobile-panel .button { margin-top:5px; min-height:48px; }
.mobile-panel .nav-legal { margin-top:4px; border-top:1px solid rgba(15,28,36,.08); padding-top:15px !important; color:var(--blue-dark); }
.mobile-panel .nav-legal[aria-current="page"] { color:var(--cyan); }
  .hero-layout { grid-template-columns:1fr 1fr; gap:10px; }
  .hero-visual { min-height:590px; transform:scale(.9); transform-origin:right center; }
  .statement-grid { grid-template-columns:1fr; gap:20px; }
  .story-wrap { gap:45px; }
  .stage-state { padding:34px; }
  .feature-card { grid-column:span 6; }
  .feature-card-large, .feature-card-wide { grid-column:span 12; }
  .regulation-grid, .no-hardware-grid { gap:45px; }
  .audience-grid { grid-template-columns:1fr 1fr; }
  .audience-grid article:nth-child(2) { border-right:0; }
  .audience-grid article:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  .footer-top { grid-template-columns:1.2fr 1fr 1fr; }
  .footer-top .footer-col:last-child { grid-column:2 / span 2; }
}

@media (max-width: 780px) {
  :root { --shell: min(100% - 32px, 1180px); --radius:23px; }
  .brand { width:132px; }
  .hero { min-height:auto; padding:120px 0 70px; }
  .hero-layout { grid-template-columns:1fr; }
  .hero-copy { max-width:none; text-align:left; }
  .hero h1 { font-size:clamp(54px,17vw,86px); }
  .hero-copy > p { font-size:18px; }
  .hero-proof { display:grid; gap:10px; }
  .hero-visual { min-height:550px; transform:scale(.82); transform-origin:center top; margin-bottom:-90px; }
  .phone-shell { width:320px; height:620px; }
  .receipt-a { left:calc(50% - 240px); }
  .status-a { right:calc(50% - 235px); }
  .status-b { right:calc(50% - 245px); }
  .intro-statements { padding:90px 0 55px; }
  .statement-grid h2 { font-size:44px; }
  .ticker { margin-top:60px; }
  .story { padding:90px 0 50px; }
  .story-head h2, .section-heading h2, .regulation h2, .faq h2, .no-hardware h2, .final-cta h2 { font-size:46px; }
  .story-wrap { grid-template-columns:1fr; }
  .story-stage { position:sticky; top:80px; height:480px; z-index:3; }
  .stage-frame { height:445px; border-radius:26px; }
  .stage-topbar { height:58px; padding:0 16px; }
  .stage-screen { height:calc(100% - 58px); }
  .stage-state { padding:22px; }
  .stage-state h3 { font-size:25px; margin-bottom:16px; }
  .story-steps { padding-bottom:70px; }
  .story-step { min-height:360px; justify-content:flex-end; padding-bottom:32px; padding-top:180px; }
  .story-step h3 { font-size:34px; }
  .story-step p { font-size:16px; }
  .send-flow { gap:10px; }
  .flow-node { width:118px; min-height:94px; }
  .features { padding:90px 0; }
  .feature-card, .feature-card-large, .feature-card-wide { grid-column:span 12; min-height:auto; }
  .feature-card-large { padding-bottom:300px; }
  .quick-ui { left:26px; right:auto; top:auto; bottom:26px; width:calc(100% - 52px); transform:rotate(1.5deg); }
  .feature-card-wide { grid-template-columns:1fr; }
  .no-hardware { padding:90px 0 45px; }
  .no-hardware-grid { grid-template-columns:1fr; }
  .device-orbit { width:100%; margin:20px auto 0; }
  .regulation { padding:90px 0; }
  .regulation-grid { grid-template-columns:1fr; }
  .regulation-card { padding:25px; }
  .audience { padding:90px 0; }
  .audience-grid { grid-template-columns:1fr; }
  .audience-grid article, .audience-grid article:nth-child(2) { border-right:0; border-bottom:1px solid var(--line); }
  .audience-grid article:last-child { border-bottom:0; }
  .faq { padding:90px 0; }
  .faq-grid { grid-template-columns:1fr; gap:45px; }
  .faq-intro { position:static; }
  .final-cta { padding:105px 0; }
  .footer-top { grid-template-columns:1fr 1fr; gap:42px 25px; }
  .footer-brand { grid-column:1 / -1; }
  .footer-top .footer-col:last-child { grid-column:auto; }
  .footer-bottom { padding:22px 0; flex-direction:column; align-items:flex-start; gap:10px; }
}

@media (max-width: 480px) {
  .hero-actions { flex-direction:column; align-items:stretch; }
  .button-large { width:100%; }
  .hero-visual { margin-inline:-10px; }
  .receipt-a { left:calc(50% - 208px); }
  .status-a { right:calc(50% - 215px); }
  .status-b { right:calc(50% - 220px); }
  .footer-top { grid-template-columns:1fr; }
  .footer-top .footer-col:last-child { grid-column:auto; }
  .timeline div { grid-template-columns:62px 1fr; }
  .centered-actions { width:100%; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.001ms !important; }
  [data-reveal] { opacity:1; transform:none; }
}

/* ---------------------------------------------------------
   Legal / Terms page
   --------------------------------------------------------- */
.legal-page { background:#f7fafb; }
.legal-page .site-header { background:rgba(255,255,255,.72); backdrop-filter:blur(18px); }
.legal-page .site-header.scrolled { background:rgba(255,255,255,.92); }

.legal-hero {
  position:relative;
  overflow:hidden;
  padding:155px 0 92px;
  background:linear-gradient(180deg,#fbfdfe 0%,#eef6f8 100%);
}
.legal-hero-inner {
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:70px;
  align-items:center;
}
.legal-hero-copy { max-width:720px; }
.legal-hero h1 {
  margin:22px 0 22px;
  font-size:clamp(64px,8.2vw,118px);
  line-height:.88;
  letter-spacing:-.075em;
  font-weight:850;
}
.legal-hero h1 span { color:var(--cyan); }
.legal-hero-copy > p {
  margin:0;
  max-width:650px;
  font-size:clamp(18px,2vw,22px);
  line-height:1.55;
  letter-spacing:-.025em;
  color:#50636f;
}
.legal-meta-row { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.legal-meta-row span {
  display:inline-flex;
  gap:7px;
  align-items:center;
  padding:10px 13px;
  border-radius:999px;
  border:1px solid rgba(15,28,36,.09);
  background:rgba(255,255,255,.72);
  font-size:12px;
  color:#637680;
}
.legal-meta-row b { color:var(--ink); }
.legal-download-row { display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-top:22px; }
.legal-download-row > span { font-size:12px; color:#6d808b; font-weight:700; }
.legal-download { min-height:50px; padding:0 20px; background:linear-gradient(135deg,var(--blue-dark),var(--ink)); }
.legal-download::after { content:"↓"; font-size:15px; }
.legal-hero-card {
  width:min(440px,100%);
  justify-self:end;
  padding:30px;
  border:1px solid rgba(15,28,36,.08);
  border-radius:32px;
  background:rgba(255,255,255,.82);
  box-shadow:0 34px 90px rgba(47,92,121,.15);
  backdrop-filter:blur(14px);
  transform:rotate(1.5deg);
}
.legal-card-brand { display:flex; align-items:center; gap:12px; margin-bottom:26px; font-size:16px; font-weight:850; }
.legal-card-brand img { width:38px; height:38px; object-fit:contain; }
.legal-card-line { display:flex; justify-content:space-between; gap:22px; padding:16px 0; border-bottom:1px solid rgba(15,28,36,.08); font-size:13px; }
.legal-card-line span { color:#74858e; }
.legal-card-line b { text-align:right; }
.legal-card-status { display:flex; align-items:center; gap:9px; margin-top:22px; padding:13px 15px; border-radius:15px; background:#eef9fb; color:#376375; font-size:12px; font-weight:800; }
.legal-card-status i { width:8px; height:8px; border-radius:50%; background:var(--cyan); box-shadow:0 0 0 5px rgba(5,157,183,.10); }
.legal-orb { position:absolute; border-radius:50%; pointer-events:none; }
.legal-orb-a { width:560px; height:560px; right:-160px; top:-180px; background:radial-gradient(circle,rgba(5,157,183,.18),rgba(5,157,183,0) 68%); }
.legal-orb-b { width:560px; height:560px; left:22%; bottom:-420px; background:radial-gradient(circle,rgba(47,92,121,.16),rgba(47,92,121,0) 68%); }
.legal-grid { position:absolute; inset:0; opacity:.28; background-image:linear-gradient(rgba(47,92,121,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(47,92,121,.055) 1px,transparent 1px); background-size:56px 56px; mask-image:linear-gradient(to bottom,rgba(0,0,0,.85),rgba(0,0,0,0)); }

.legal-summary { position:relative; z-index:4; margin-top:-24px; padding-bottom:90px; }
.legal-summary-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.legal-summary article { padding:26px; border-radius:24px; border:1px solid rgba(15,28,36,.08); background:#fff; box-shadow:0 18px 50px rgba(47,92,121,.06); }
.legal-summary article > span { font-size:11px; font-weight:900; letter-spacing:.13em; color:var(--cyan); }
.legal-summary h2 { margin:13px 0 10px; font-size:22px; letter-spacing:-.035em; }
.legal-summary p { margin:0; color:#667983; font-size:14px; line-height:1.6; }

.legal-content-section { padding:10px 0 130px; }
.legal-layout { display:grid; grid-template-columns:260px minmax(0,1fr); gap:74px; align-items:start; }
.legal-index { position:sticky; top:112px; }
.legal-index .kicker { margin:0 0 18px; }
.legal-index nav { display:grid; gap:2px; }
.legal-index a { display:grid; grid-template-columns:28px 1fr; gap:7px; align-items:center; padding:9px 10px; margin-inline:-10px; border-radius:10px; color:#667983; font-size:12px; font-weight:680; transition:background .2s ease,color .2s ease,transform .2s ease; }
.legal-index a span { color:#a2afb6; font-size:10px; font-weight:900; letter-spacing:.08em; }
.legal-index a:hover { color:var(--ink); background:#edf4f6; transform:translateX(2px); }

.legal-article { min-width:0; }
.legal-notice { display:flex; gap:18px; align-items:flex-start; padding:24px 26px; margin-bottom:26px; border-radius:22px; background:var(--ink); color:#fff; box-shadow:0 24px 70px rgba(15,28,36,.12); }
.legal-notice img { width:38px; height:38px; object-fit:contain; flex:none; }
.legal-notice strong { display:block; margin-bottom:5px; font-size:15px; }
.legal-notice p { margin:0; color:#b7c6cd; font-size:14px; line-height:1.6; }

.legal-clause { position:relative; padding:42px 46px 46px; margin-bottom:16px; border:1px solid rgba(15,28,36,.08); border-radius:28px; background:#fff; box-shadow:0 12px 36px rgba(47,92,121,.035); scroll-margin-top:105px; }
.clause-number { margin-bottom:15px; color:var(--cyan); font-size:11px; font-weight:900; letter-spacing:.14em; }
.legal-clause h2 { margin:0 0 18px; max-width:800px; font-size:clamp(27px,3vw,39px); line-height:1.08; letter-spacing:-.045em; }
.legal-clause p { margin:0 0 16px; max-width:850px; color:#566b77; font-size:16px; line-height:1.72; letter-spacing:-.008em; }
.legal-clause p:last-child { margin-bottom:0; }
.legal-clause strong { color:#223c4b; }
.legal-clause a:not(.button) { color:var(--blue); text-decoration:underline; text-decoration-color:rgba(47,92,121,.25); text-underline-offset:3px; }
.legal-clause-emphasis { border-color:rgba(5,157,183,.22); background:linear-gradient(180deg,#fff,#f3fbfc); }
.legal-clause-emphasis::before { content:""; position:absolute; inset:0 auto 0 0; width:5px; border-radius:28px 0 0 28px; background:linear-gradient(var(--cyan),var(--blue)); }
.legal-clause-security { background:radial-gradient(circle at 95% 0,rgba(5,157,183,.08),transparent 34%),#fff; }
.security-callout { display:flex; gap:18px; align-items:flex-start; margin:25px 0; padding:23px; border:1px solid rgba(5,157,183,.18); border-radius:20px; background:#f0fafc; }
.security-icon { width:46px; height:46px; display:grid; place-items:center; flex:none; border-radius:15px; background:var(--ink); color:#7bd4e4; font-size:23px; font-weight:900; }
.security-callout strong { display:block; margin:2px 0 5px; font-size:16px; }
.security-callout p { margin:0; font-size:14px; line-height:1.65; }
.legal-approval { background:#f8fbfc; }
.approval-box { display:flex; gap:13px; align-items:flex-start; margin-top:22px; padding:18px 20px; border-radius:17px; border:1px dashed rgba(47,92,121,.28); background:#fff; }
.approval-box > span { width:26px; height:26px; display:grid; place-items:center; flex:none; border-radius:50%; background:#e8f7f9; color:var(--cyan); font-size:13px; font-weight:900; }
.approval-box p { margin:0; font-size:14px; }
.legal-end { display:flex; align-items:center; gap:14px; margin-top:28px; padding:28px; border-radius:24px; background:#eaf2f5; }
.legal-end img { width:38px; height:38px; object-fit:contain; }
.legal-end p { margin:0; flex:1; color:#61737e; font-size:13px; font-weight:700; }
.legal-end .button { min-height:46px; padding:0 18px; font-size:13px; }
.legal-end .button + .button { margin-left:0; }

@media (max-width: 980px) {
  .legal-hero-inner { grid-template-columns:1fr .72fr; gap:38px; }
  .legal-layout { grid-template-columns:210px minmax(0,1fr); gap:38px; }
  .legal-clause { padding:36px; }
}

@media (max-width: 780px) {
  .legal-hero { padding:125px 0 72px; }
  .legal-hero-inner { grid-template-columns:1fr; }
  .legal-hero h1 { font-size:clamp(58px,18vw,92px); }
  .legal-hero-card { justify-self:start; transform:none; width:100%; }
  .legal-summary { margin-top:0; padding:32px 0 70px; }
  .legal-summary-grid { grid-template-columns:1fr; }
  .legal-content-section { padding-bottom:90px; }
  .legal-layout { grid-template-columns:1fr; gap:28px; }
  .legal-index { position:static; padding:22px; border-radius:22px; border:1px solid rgba(15,28,36,.08); background:#fff; }
  .legal-index nav { grid-template-columns:1fr 1fr; gap:4px 14px; }
  .legal-clause { padding:29px 25px 31px; border-radius:23px; scroll-margin-top:88px; }
  .legal-clause h2 { font-size:30px; }
  .legal-clause p { font-size:15px; }
  .legal-end { align-items:flex-start; flex-wrap:wrap; }
  .legal-end .button { width:100%; }
}

@media (max-width: 480px) {
  .legal-meta-row { display:grid; grid-template-columns:1fr; }
  .legal-meta-row span { width:100%; justify-content:space-between; }
  .legal-index nav { grid-template-columns:1fr; }
  .security-callout { flex-direction:column; }
}


/* ---------------------------------------------------------
   Floating WhatsApp contact
   --------------------------------------------------------- */
.whatsapp-float {
  position:fixed;
  right:max(22px, env(safe-area-inset-right));
  bottom:max(22px, env(safe-area-inset-bottom));
  z-index:1200;
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:56px;
  padding:0 18px 0 15px;
  border-radius:999px;
  background:#25D366;
  color:#fff;
  font-family:'Rubik', sans-serif;
  font-size:14px;
  font-weight:700;
  line-height:1;
  box-shadow:0 16px 36px rgba(15,28,36,.22), 0 4px 12px rgba(37,211,102,.28);
  transition:transform .22s ease, box-shadow .22s ease, background .22s ease;
}
.whatsapp-float svg {
  width:28px;
  height:28px;
  flex:none;
  fill:currentColor;
}
.whatsapp-float:hover {
  transform:translateY(-3px);
  background:#20bd5a;
  box-shadow:0 20px 42px rgba(15,28,36,.25), 0 6px 16px rgba(37,211,102,.34);
}
.whatsapp-float:focus-visible {
  outline:3px solid rgba(37,211,102,.28);
  outline-offset:4px;
}
@media (max-width: 600px) {
  .whatsapp-float {
    right:max(16px, env(safe-area-inset-right));
    bottom:max(16px, env(safe-area-inset-bottom));
    width:56px;
    height:56px;
    min-height:56px;
    padding:0;
    justify-content:center;
  }
  .whatsapp-float span {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
  }
}
