:root{
  --ink:#0B141F;
  --slate:#16233A;
  --slate2:#1C2B45;
  --fog:#9FB0C7;
  --paper:#F7F9FC;
  --signal:#4FD1C5;
  --signal-dim:#2C7A72;
  --signal-rgb:79,209,197;
  --glow2-rgb:94,140,255;
  --glass-bg:rgba(24,37,60,0.55);
  --glass-bg-soft:rgba(24,37,60,0.4);
  --glass-border:rgba(255,255,255,0.09);
  --glass-border-hover:rgba(79,209,197,0.45);
  --blur:18px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  background-color:var(--ink);
  background-image:
    radial-gradient(ellipse 900px 620px at 12% -8%, rgba(var(--signal-rgb),0.16), transparent 60%),
    radial-gradient(ellipse 760px 560px at 108% 8%, rgba(var(--glow2-rgb),0.14), transparent 58%),
    radial-gradient(ellipse 820px 520px at 50% 105%, rgba(var(--signal-rgb),0.09), transparent 60%);
  background-repeat:no-repeat;
  background-attachment:fixed;
  color:var(--paper);
  font-family:'IBM Plex Sans', sans-serif;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:inherit;}
img{max-width:100%;}
.wrap{max-width:1100px;margin:0 auto;padding:0 28px;}
.mono{font-family:'JetBrains Mono', monospace;}

/* ---------- header / nav ---------- */
.site-header{
  position:sticky;
  top:16px;
  z-index:200;
  width:calc(100% - 40px);
  max-width:1100px;
  margin:16px auto 0;
  padding:14px 0;
  border-radius:20px;
  background:rgba(11,19,32,0.68);
  backdrop-filter:blur(20px) saturate(160%);
  -webkit-backdrop-filter:blur(20px) saturate(160%);
  border:1px solid rgba(255,255,255,0.09);
  box-shadow:0 12px 40px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.07);
}
nav{
  display:flex;align-items:center;justify-content:space-between;
  gap:24px;
}
nav .logo{height:36px;display:flex;align-items:center;gap:10px;flex-shrink:0;}
nav .logo img{height:100%;}
.nav-links{
  display:flex;
  align-items:center;
  gap:22px;
  flex:1;
  justify-content:center;
}
.nav-links a{
  font-family:'JetBrains Mono', monospace;
  font-size:13px;
  color:var(--fog);
  text-decoration:none;
  white-space:nowrap;
  transition:color .2s ease;
  position:relative;
}
.nav-links a:hover, .nav-links a:focus-visible, .nav-links a.active{
  color:var(--signal);
}
.nav-right{
  display:flex;
  align-items:center;
  gap:18px;
  flex-shrink:0;
}
.nav-email{
  font-family:'JetBrains Mono', monospace;
  font-size:13px;
  color:var(--fog);
  text-decoration:none;
  transition:color .2s ease;
}
.nav-email:hover, .nav-email:focus-visible{color:var(--signal);}
nav a.cta-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:'JetBrains Mono', monospace;
  font-size:13px;
  letter-spacing:0.02em;
  border:1px solid var(--glass-border);
  background:rgba(255,255,255,0.045);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  padding:10px 18px;
  border-radius:999px;
  text-decoration:none;
  color:var(--paper);
  transition:border-color .2s ease, color .2s ease, background .2s ease, box-shadow .2s ease;
}
nav a.cta-link:hover, nav a.cta-link:focus-visible{
  border-color:var(--signal);
  color:var(--signal);
  background:rgba(var(--signal-rgb),0.1);
  box-shadow:0 0 22px rgba(var(--signal-rgb),0.25);
}
.wa-icon{width:15px;height:15px;flex-shrink:0;fill:currentColor;}

/* ---------- mobile nav toggle ---------- */
.nav-toggle{display:none;}
.hamburger{
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:36px;
  height:36px;
  cursor:pointer;
  border-radius:8px;
  flex-shrink:0;
  z-index:210;
}
.hamburger span{
  display:block;
  width:20px;
  height:2px;
  margin:0 auto;
  background:var(--paper);
  border-radius:2px;
  transition:transform .3s ease, opacity .3s ease, background .3s ease;
}
.nav-toggle:checked ~ .hamburger span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle:checked ~ .hamburger span:nth-child(2){opacity:0;}
.nav-toggle:checked ~ .hamburger span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.nav-toggle:checked ~ .hamburger span{background:var(--signal);}

/* ---------- hero ---------- */
.hero{
  padding:52px 0 64px;
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  gap:60px;
  align-items:center;
  border-top:none;
}
.eyebrow{
  font-family:'JetBrains Mono', monospace;
  font-size:13px;
  color:var(--signal);
  letter-spacing:0.08em;
  text-transform:uppercase;
  margin-bottom:22px;
  display:block;
}
h1{
  font-family:'Space Grotesk', sans-serif;
  font-weight:700;
  font-size:clamp(34px, 5vw, 56px);
  line-height:1.08;
  letter-spacing:-0.01em;
  margin-bottom:24px;
  background:linear-gradient(180deg, #FFFFFF 0%, #D7E3F5 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.hero p.sub{
  font-size:18px;
  color:var(--fog);
  max-width:480px;
  margin-bottom:28px;
}
.hero-ctas{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:20px;
  margin-bottom:8px;
}
.btn-primary{
  display:inline-flex;
  align-items:center;
  gap:10px;
  background:var(--paper);
  color:var(--ink);
  font-weight:600;
  font-size:16px;
  padding:16px 28px;
  border-radius:999px;
  text-decoration:none;
  transition:transform .15s ease, background .15s ease, box-shadow .2s ease;
  box-shadow:0 6px 24px rgba(0,0,0,0.18);
}
.btn-primary:hover, .btn-primary:focus-visible{
  background:var(--signal);
  transform:translateY(-2px);
  box-shadow:0 10px 30px rgba(var(--signal-rgb),0.35);
}
.btn-primary .wa-icon{width:19px;height:19px;}
.link-secondary{
  font-family:'JetBrains Mono', monospace;
  font-size:14px;
  color:var(--fog);
  text-decoration:none;
  border-bottom:1px solid var(--slate2);
  padding-bottom:2px;
  transition:color .2s ease, border-color .2s ease;
}
.link-secondary:hover, .link-secondary:focus-visible{
  color:var(--signal);
  border-color:var(--signal);
}

/* ---------- offer pills ---------- */
.pill-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.pill{
  font-family:'JetBrains Mono', monospace;
  font-size:12.5px;
  color:var(--signal);
  background:rgba(var(--signal-rgb),0.09);
  border:1px solid rgba(var(--signal-rgb),0.3);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  padding:8px 14px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  gap:6px;
}

/* ---------- signal card (hero visual) ---------- */
.signal-card{
  background:var(--glass-bg);
  border:1px solid var(--glass-border);
  backdrop-filter:blur(var(--blur)) saturate(160%);
  -webkit-backdrop-filter:blur(var(--blur)) saturate(160%);
  box-shadow:0 20px 50px rgba(0,0,0,0.32), inset 0 1px 0 rgba(255,255,255,0.06);
  border-radius:22px;
  padding:34px;
  position:relative;
  overflow:hidden;
}
.signal-card::before{
  content:"";
  position:absolute;
  width:280px;height:280px;
  top:-90px;right:-90px;
  background:radial-gradient(circle, rgba(var(--signal-rgb),0.35) 0%, transparent 70%);
  filter:blur(10px);
  pointer-events:none;
}
.signal-card::after{
  content:"";
  position:absolute;
  width:220px;height:220px;
  bottom:-80px;left:-80px;
  background:radial-gradient(circle, rgba(var(--glow2-rgb),0.22) 0%, transparent 70%);
  filter:blur(10px);
  pointer-events:none;
}
.signal-card .label{
  font-family:'JetBrains Mono', monospace;
  font-size:12px;
  color:var(--fog);
  letter-spacing:0.05em;
  text-transform:uppercase;
  margin-bottom:26px;
  display:block;
  position:relative;
}
.bars{
  display:flex;
  align-items:flex-end;
  gap:8px;
  height:120px;
  margin-bottom:28px;
}
.bars .bar{
  flex:1;
  background:var(--signal-dim);
  border-radius:4px 4px 0 0;
  animation:rise 2.6s ease-in-out infinite;
  transform-origin:bottom;
}
.bars .bar:nth-child(1){height:28%; animation-delay:0s;}
.bars .bar:nth-child(2){height:48%; animation-delay:.12s;}
.bars .bar:nth-child(3){height:68%; animation-delay:.24s;}
.bars .bar:nth-child(4){height:86%; animation-delay:.36s;}
.bars .bar:nth-child(5){height:100%; animation-delay:.48s;}
@keyframes rise{
  0%, 100%{background:var(--signal-dim); opacity:.55;}
  50%{background:var(--signal); opacity:1;}
}
.match-status{
  display:flex;
  align-items:center;
  gap:10px;
  font-family:'JetBrains Mono', monospace;
  font-size:14px;
  color:var(--signal);
  position:relative;
}
.match-status .dot{
  width:8px;height:8px;border-radius:50%;
  background:var(--signal);
  box-shadow:0 0 10px rgba(var(--signal-rgb),0.9);
  animation:blink 2.6s ease-in-out infinite;
}
@keyframes blink{
  0%,100%{opacity:1;} 50%{opacity:.35;}
}
@media (prefers-reduced-motion: reduce){
  .bars .bar, .match-status .dot{animation:none;}
  .bars .bar:nth-child(5){background:var(--signal); opacity:1;}
}

/* ---------- per-page hero graphics ---------- */
.hero-graphic{
  width:100%;
  max-width:380px;
  height:auto;
  display:block;
  margin:0 auto 26px;
  position:relative;
}
@keyframes pulse-ring{
  0%, 100%{opacity:.55; transform:scale(.92);}
  50%{opacity:1; transform:scale(1);}
}
.pulse{animation:pulse-ring 2.6s ease-in-out infinite; transform-origin:center;}

/* services tile grid (home) */
.tile-card{fill:var(--glass-bg-soft); stroke:var(--glass-border); stroke-width:1;}
.tile-label{font-family:'JetBrains Mono', monospace; font-size:9px; fill:var(--fog); letter-spacing:0.03em;}
.tile-check-ring{fill:none; stroke:var(--signal); stroke-width:1.5;}
.tile-check{fill:none; stroke:var(--signal); stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
.tile-target-outer{fill:none; stroke:var(--slate2); stroke-width:1.5;}
.tile-target-mid{fill:none; stroke:var(--signal-dim); stroke-width:1.5;}
.tile-target-center{fill:var(--signal);}
.tile-browser-frame{fill:var(--slate); stroke:var(--slate2); stroke-width:1;}
.tile-browser-bar-bg{fill:var(--ink);}
.tile-browser-dot{fill:var(--fog); opacity:.5;}
.tile-browser-block{fill:var(--signal-dim); opacity:.7;}
.tile-star{fill:var(--signal);}
.tile-node-line{stroke:var(--signal-dim); stroke-width:1.5;}
.tile-node-a{fill:var(--slate2); stroke:var(--signal-dim); stroke-width:1.2;}
.tile-node-b{fill:var(--signal);}

/* lead card stack */
.lead-stack-back{fill:var(--slate2); opacity:.6;}
.lead-stack-mid{fill:var(--signal-dim); opacity:.85;}
.lead-stack-front{fill:var(--glass-bg); stroke:rgba(var(--signal-rgb),0.5); stroke-width:1.5;}
.lead-avatar{fill:var(--slate2); stroke:var(--signal-dim); stroke-width:1.5;}
.lead-line{fill:var(--paper); opacity:.9;}
.lead-line-sub{fill:var(--fog);}
.lead-badge-ring{fill:var(--ink); stroke:var(--signal); stroke-width:1.5;}
.lead-check{fill:none; stroke:var(--signal); stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round;}

/* ads target */
.target-ring{fill:none; stroke:var(--slate2); stroke-width:2;}
.target-ring.mid{stroke:var(--signal-dim);}
.target-center{fill:var(--signal);}
.target-arrow{stroke:var(--fog); stroke-width:1.5; stroke-dasharray:4 3;}

/* website browser mockup */
.browser-frame{fill:var(--slate); stroke:var(--slate2); stroke-width:1.5;}
.browser-bar{fill:var(--ink);}
.browser-dot{fill:var(--fog); opacity:.45;}
.browser-block{fill:var(--fog); opacity:.22;}
.browser-hero{fill:var(--signal-dim); opacity:.65;}
.browser-card{fill:var(--slate2); stroke:var(--slate2);}

/* review card */
.review-card-bg{fill:var(--slate2);}
.nfc-wave{fill:none; stroke:var(--signal); stroke-width:2; opacity:.55;}
.star{fill:var(--signal); animation:star-in .5s ease forwards; opacity:0; transform-origin:center;}
@keyframes star-in{
  0%{opacity:0; transform:scale(.4);}
  100%{opacity:1; transform:scale(1);}
}

/* influencer network */
.net-line{stroke:var(--slate2); stroke-width:1.5;}
.net-line.match{stroke:var(--signal);}
.net-node{fill:var(--slate); stroke:var(--slate2); stroke-width:1.5;}
.net-node.match{fill:var(--signal);}
.net-center{fill:var(--slate2); stroke:var(--signal-dim); stroke-width:2;}

@media (prefers-reduced-motion: reduce){
  .pulse{animation:none;}
  .star{animation:none; opacity:1;}
}

/* ---------- generic sections ---------- */
section{padding:76px 0;border-top:1px solid rgba(255,255,255,0.07); scroll-margin-top:110px;}
h2{
  font-family:'Space Grotesk', sans-serif;
  font-size:clamp(24px, 3vw, 32px);
  font-weight:600;
  margin-bottom:44px;
}
.section-sub{
  color:var(--fog);
  font-size:16px;
  max-width:560px;
  margin:-24px 0 40px;
}

.three-col{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
}
.card{
  background:var(--glass-bg-soft);
  border:1px solid var(--glass-border);
  backdrop-filter:blur(var(--blur)) saturate(150%);
  -webkit-backdrop-filter:blur(var(--blur)) saturate(150%);
  box-shadow:0 8px 28px rgba(0,0,0,0.22), inset 0 1px 0 rgba(255,255,255,0.05);
  border-radius:16px;
  padding:28px;
  transition:border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.card:hover{
  border-color:var(--glass-border-hover);
  transform:translateY(-3px);
  box-shadow:0 14px 36px rgba(0,0,0,0.3), 0 0 0 1px rgba(var(--signal-rgb),0.08);
}
.card .tag{
  font-family:'JetBrains Mono', monospace;
  font-size:12px;
  color:var(--signal);
  letter-spacing:0.05em;
  text-transform:uppercase;
  display:block;
  margin-bottom:14px;
}
.card h3{
  font-family:'Space Grotesk', sans-serif;
  font-size:19px;
  font-weight:600;
  margin-bottom:10px;
}
.card p{color:var(--fog); font-size:15px;}

.steps{
  display:flex;
  flex-direction:column;
  gap:0;
}
.step{
  display:grid;
  grid-template-columns:64px 1fr;
  gap:24px;
  padding:26px 0;
  border-bottom:1px solid rgba(255,255,255,0.07);
}
.step:last-child{border-bottom:none;}
.step .num{
  font-family:'JetBrains Mono', monospace;
  font-size:14px;
  color:var(--signal);
  display:flex;
  align-items:flex-start;
  padding-top:2px;
}
.step h3{
  font-family:'Space Grotesk', sans-serif;
  font-size:19px;
  font-weight:600;
  margin-bottom:6px;
}
.step p{color:var(--fog); font-size:15px; max-width:520px;}

.tags-row{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}
.tags-row span{
  font-family:'JetBrains Mono', monospace;
  font-size:13px;
  color:var(--fog);
  background:rgba(255,255,255,0.03);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border:1px solid var(--glass-border);
  padding:10px 18px;
  border-radius:999px;
}

/* ---------- services grid (home) ---------- */
.services-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.service-card{
  background:var(--glass-bg-soft);
  border:1px solid var(--glass-border);
  backdrop-filter:blur(var(--blur)) saturate(150%);
  -webkit-backdrop-filter:blur(var(--blur)) saturate(150%);
  box-shadow:0 8px 28px rgba(0,0,0,0.22), inset 0 1px 0 rgba(255,255,255,0.05);
  border-radius:16px;
  padding:28px;
  text-decoration:none;
  display:block;
  transition:border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.service-card:hover, .service-card:focus-visible{
  border-color:var(--glass-border-hover);
  transform:translateY(-4px);
  box-shadow:0 16px 40px rgba(0,0,0,0.32), 0 0 0 1px rgba(var(--signal-rgb),0.1);
}
.service-card .tag{
  font-family:'JetBrains Mono', monospace;
  font-size:12px;
  color:var(--signal);
  letter-spacing:0.05em;
  text-transform:uppercase;
  display:block;
  margin-bottom:14px;
}
.service-card h3{
  font-family:'Space Grotesk', sans-serif;
  font-size:19px;
  font-weight:600;
  margin-bottom:10px;
  color:var(--paper);
}
.service-card p{color:var(--fog); font-size:15px; margin-bottom:16px;}
.service-card .go{
  font-family:'JetBrains Mono', monospace;
  font-size:13px;
  color:var(--signal);
}

/* ---------- pricing cards ---------- */
.price-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
  gap:28px;
}
.price-card{
  background:var(--glass-bg-soft);
  border:1px solid var(--glass-border);
  backdrop-filter:blur(var(--blur)) saturate(150%);
  -webkit-backdrop-filter:blur(var(--blur)) saturate(150%);
  box-shadow:0 8px 28px rgba(0,0,0,0.22), inset 0 1px 0 rgba(255,255,255,0.05);
  border-radius:20px;
  padding:36px;
  transition:transform .2s ease, box-shadow .2s ease;
}
.price-card:hover{
  transform:translateY(-3px);
  box-shadow:0 16px 40px rgba(0,0,0,0.3);
}
.price-card{position:relative;}
.price-card.featured{
  border-color:rgba(var(--signal-rgb),0.4);
  background:linear-gradient(180deg, rgba(var(--signal-rgb),0.1), var(--glass-bg-soft) 45%);
}
.price-card .psave{
  position:absolute;
  top:24px;
  right:24px;
  font-family:'JetBrains Mono', monospace;
  font-size:12px;
  font-weight:500;
  color:var(--ink);
  background:var(--signal);
  padding:5px 12px;
  border-radius:999px;
  box-shadow:0 4px 14px rgba(var(--signal-rgb),0.35);
}
.price-card .plabel{
  font-family:'JetBrains Mono', monospace;
  font-size:12px;
  color:var(--fog);
  letter-spacing:0.05em;
  text-transform:uppercase;
  display:block;
  margin-bottom:18px;
}
.price-card .pnum{
  font-family:'Space Grotesk', sans-serif;
  font-weight:700;
  font-size:44px;
  letter-spacing:-0.01em;
  margin-bottom:4px;
}
.price-card .pnum span{
  font-family:'JetBrains Mono', monospace;
  font-size:14px;
  font-weight:400;
  color:var(--fog);
  margin-left:6px;
}
.price-card .pnote{
  color:var(--fog);
  font-size:14px;
  margin-bottom:24px;
}
.price-card ul{
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-bottom:26px;
}
.price-card ul li{
  font-size:15px;
  color:var(--paper);
  display:flex;
  align-items:flex-start;
  gap:10px;
}
.price-card ul li::before{
  content:"";
  width:6px;height:6px;
  border-radius:50%;
  background:var(--signal);
  margin-top:8px;
  flex-shrink:0;
}
.price-card .btn-primary{
  width:100%;
  justify-content:center;
  font-size:15px;
  padding:14px 20px;
}

/* ---------- footer ---------- */
footer{
  padding:80px 0 60px;
  text-align:center;
  border-top:1px solid rgba(255,255,255,0.07);
}
footer h2{margin-bottom:20px;}
footer p{color:var(--fog); margin-bottom:32px;}
footer .foot-logo{
  margin-top:60px;
  opacity:.5;
  height:34px;
}
footer .foot-logo img{height:100%;}
.social-row{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:24px;
  margin-top:28px;
}
.social-row a{
  font-family:'JetBrains Mono', monospace;
  font-size:13px;
  color:var(--fog);
  text-decoration:none;
  border-bottom:1px solid transparent;
  padding-bottom:2px;
  transition:color .2s ease, border-color .2s ease;
}
.social-row a:hover, .social-row a:focus-visible{
  color:var(--signal);
  border-color:var(--signal);
}
.sitemap-row{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:18px 28px;
  margin-top:44px;
  padding-top:36px;
  border-top:1px solid rgba(255,255,255,0.07);
}
.sitemap-row a{
  font-family:'JetBrains Mono', monospace;
  font-size:12.5px;
  color:var(--fog);
  text-decoration:none;
  transition:color .2s ease;
}
.sitemap-row a:hover, .sitemap-row a:focus-visible{color:var(--signal);}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .site-header{padding:10px 0;}
  .hamburger{display:flex;}
  .nav-right{gap:10px;}
  .nav-email{display:none;}
  .nav-links{
    position:absolute;
    top:100%;
    left:0;
    right:0;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    background:#0A1220;
    border:1px solid var(--glass-border);
    border-top:none;
    border-radius:0 0 20px 20px;
    box-shadow:0 20px 40px rgba(0,0,0,0.4);
    max-height:0;
    overflow:hidden;
    opacity:0;
    pointer-events:none;
    padding:0 24px;
    transition:max-height .35s ease, opacity .2s ease;
  }
  .nav-toggle:checked ~ .nav-links{
    max-height:420px;
    opacity:1;
    pointer-events:auto;
    padding:10px 24px 22px;
  }
  .nav-links a{
    padding:13px 2px;
    width:100%;
    border-bottom:1px solid rgba(255,255,255,0.06);
  }
  .hero{grid-template-columns:1fr; padding:36px 0 44px; gap:40px;}
  .three-col{grid-template-columns:1fr;}
  .services-grid{grid-template-columns:1fr;}
  .step{grid-template-columns:40px 1fr;}
  .price-grid{grid-template-columns:1fr;}
  section{padding:56px 0;}
  h2{margin-bottom:32px;}
}
@media (max-width:600px){
  .wrap{padding:0 20px;}
  .site-header{width:calc(100% - 24px); top:10px; margin-top:10px; border-radius:18px;}
  nav.wrap{padding:0 18px;}
  .signal-card{padding:26px 22px;}
  .hero-graphic{max-width:300px;}
  section{padding:48px 0;}
  .hero p.sub{max-width:none;}
  nav a.cta-link{padding:9px 14px;font-size:12px;}
  nav a.cta-link .wa-icon{width:13px;height:13px;}
  footer{padding:60px 0 44px;}
  .price-card{padding:28px 24px;}
  .price-card .pnum{font-size:36px;}
}

@media (max-width:480px){
  .hero-ctas{flex-direction:column; align-items:stretch;}
  .hero-ctas .btn-primary{justify-content:center;}
  .hero-ctas .link-secondary{text-align:center;}
  .price-card .btn-primary{padding:15px 20px;}
}

/* ---------- floating mobile WhatsApp button ---------- */
.mobile-wa-fab{
  display:none;
  position:fixed;
  bottom:18px;
  right:18px;
  z-index:250;
  width:54px;
  height:54px;
  border-radius:50%;
  background:var(--signal);
  align-items:center;
  justify-content:center;
  text-decoration:none;
  box-shadow:0 10px 28px rgba(var(--signal-rgb),0.45), 0 4px 14px rgba(0,0,0,0.35);
  transition:transform .15s ease;
}
.mobile-wa-fab:active{transform:scale(0.92);}
.mobile-wa-fab svg{width:26px;height:26px;fill:var(--ink);}
@media (max-width:900px){
  .mobile-wa-fab{display:flex;}
}
@supports (bottom: env(safe-area-inset-bottom)){
  .mobile-wa-fab{bottom:calc(18px + env(safe-area-inset-bottom));}
}

a:focus-visible, button:focus-visible{
  outline:2px solid var(--signal);
  outline-offset:3px;
}

/* ---------- page entrance ---------- */
body{animation:page-fade-in .5s ease both;}
@keyframes page-fade-in{from{opacity:0;} to{opacity:1;}}

/* ---------- fine grain texture ---------- */
body::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:5;
  pointer-events:none;
  opacity:0.035;
  mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  background-size:160px 160px;
}

/* ---------- scroll reveal ---------- */
.js-reveal .reveal-target{
  opacity:0;
  transform:translateY(22px);
  transition:opacity .6s cubic-bezier(.2,.7,.3,1), transform .6s cubic-bezier(.2,.7,.3,1);
}
.js-reveal .reveal-target.is-visible{
  opacity:1;
  transform:translateY(0);
}
@media (prefers-reduced-motion: reduce){
  body{animation:none;}
  .js-reveal .reveal-target{transition:none; opacity:1; transform:none;}
}
