/* Polylink.io / Tapfolio reproduction styles */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap');

:root{
  --bg: #0e0e16;
  --bg-alt: #171622;
  --bg-deep: #0b0c12;
  --border: #2b2a3c;
  --border-soft: rgba(43,42,60,.6);
  --text: #f6f5fa;
  --text-muted: #a6a4b7;
  --lime: #c2f631;
  --lime-soft: rgba(194,246,49,.1);
  --lime-soft-2: rgba(194,246,49,.2);
  --purple: #a06bff;
  --purple-glow: rgba(163,90,246,.25);
  --orange: #ff7a59;
  --input-bg: rgba(34,33,49,.4);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:'Inter',sans-serif;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.font-display{
  font-family:'Space Grotesk',sans-serif;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
ul{margin:0;padding:0;list-style:none;}
button{font-family:inherit;cursor:pointer;}

.container{
  max-width:1200px;
  margin:0 auto;
  padding:0 24px;
}

/* Header */
.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(14,14,22,.8);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--border-soft);
}
.site-header .container{
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:76px;
}
.logo{
  display:flex;
  align-items:center;
  gap:10px;
}
.logo-mark{
  width:36px;
  height:36px;
  border-radius:12px;
  background:var(--lime);
}
.logo-text{
  font-size:1.125rem;
  font-weight:700;
  letter-spacing:-0.01em;
}
.main-nav{
  display:flex;
  align-items:center;
  gap:32px;
}
.main-nav a{
  font-size:.95rem;
  font-weight:500;
  color:var(--text-muted);
  transition:color .15s ease;
}
.main-nav a:hover{color:var(--text);}
.main-nav a.active{color:var(--lime);}
.main-nav a.header-cta{margin-left:8px;color:#0e0e1b;}
.main-nav a.header-cta:hover{color:#0e0e1b;}

/* Buttons */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:13px 26px;
  border-radius:9999px;
  font-weight:600;
  font-size:.95rem;
  border:1px solid transparent;
  transition:opacity .15s ease, background-color .15s ease;
  white-space:nowrap;
}
.btn-primary{
  background:var(--lime);
  color:#0e0e1b;
}
.btn-primary:hover{opacity:.9;}
.btn-secondary{
  background:transparent;
  color:var(--text);
  border-color:var(--border);
}
.btn-secondary:hover{border-color:var(--text-muted);}
.btn-small{padding:10px 20px;font-size:.875rem;}

/* Hero */
.hero{
  position:relative;
  overflow:hidden;
  padding:96px 0 64px;
}
.hero::before{
  content:"";
  position:absolute;
  top:-120px;
  left:-160px;
  width:560px;
  height:560px;
  background:radial-gradient(circle, var(--purple-glow) 0%, transparent 70%);
  pointer-events:none;
}
.hero::after{
  content:"";
  position:absolute;
  bottom:-200px;
  right:-160px;
  width:560px;
  height:560px;
  background:radial-gradient(circle, rgba(194,246,49,.12) 0%, transparent 70%);
  pointer-events:none;
}
.hero-grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:40px;
  align-items:center;
}
.badge{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:8px 16px;
  border-radius:9999px;
  background:var(--lime-soft-2);
  border:1px solid rgba(194,246,49,.35);
  color:var(--lime);
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.12em;
  margin-bottom:28px;
}
.hero h1{
  font-size:4.4rem;
  line-height:1.04;
  font-weight:700;
  margin:0 0 24px;
  letter-spacing:-0.02em;
}
.hero h1 .underline{
  position:relative;
  display:inline-block;
}
.hero h1 .underline::after{
  content:"";
  position:absolute;
  left:2px;
  right:2px;
  bottom:6px;
  height:6px;
  background:var(--lime);
  z-index:-1;
}
.hero p.lead{
  font-size:1.1rem;
  line-height:1.65;
  color:var(--text-muted);
  max-width:520px;
  margin:0 0 36px;
}
.hero-ctas{
  display:flex;
  gap:14px;
  margin-bottom:44px;
  flex-wrap:wrap;
}
.hero-stats{
  display:flex;
  gap:48px;
  padding-top:28px;
  border-top:1px solid var(--border-soft);
}
.stat-num{
  font-family:'Space Grotesk',sans-serif;
  font-size:1.75rem;
  font-weight:700;
  color:var(--lime);
}
.stat-label{
  font-size:.85rem;
  color:var(--text-muted);
  margin-top:2px;
}

/* Phone mockup */
.phone-wrap{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.phone{
  width:235px;
  border-radius:36px;
  border:1px solid var(--border);
  background:#0b0b12;
  padding:28px 20px;
  text-align:center;
  box-shadow:0 30px 80px rgba(0,0,0,.45);
}
.phone-notch{
  width:56px;
  height:5px;
  border-radius:9999px;
  background:#3a394a;
  margin:0 auto 24px;
}
.phone-avatar{
  width:64px;
  height:64px;
  border-radius:18px;
  background:var(--lime);
  color:#0e0e1b;
  display:grid;
  place-items:center;
  font-weight:700;
  font-size:1.1rem;
  margin:0 auto 16px;
}
.phone-name{font-weight:700;font-size:1.05rem;margin-bottom:2px;}
.phone-sub{color:var(--text-muted);font-size:.85rem;margin-bottom:22px;}
.phone-btn{
  display:flex;
  align-items:center;
  gap:10px;
  padding:13px 16px;
  border-radius:14px;
  border:1px solid var(--border);
  font-size:.9rem;
  font-weight:600;
  margin-bottom:10px;
  text-align:left;
}
.phone-btn.primary{
  background:var(--lime);
  color:#0e0e1b;
  border-color:transparent;
}
.phone-btn svg{flex-shrink:0;}
.phone-dots{
  display:flex;
  gap:10px;
  margin-top:22px;
}
.phone-dots span{
  width:22px;
  height:22px;
  border-radius:9999px;
  display:inline-block;
}
.dot-lime{background:var(--lime);border:2px solid #fff;}
.dot-purple{background:var(--purple);}
.dot-orange{background:var(--orange);}

/* Marquee */
.marquee-section{
  border-top:1px solid var(--border-soft);
  border-bottom:1px solid var(--border-soft);
  padding:22px 0;
  overflow:hidden;
}
.marquee{
  display:flex;
  gap:40px;
  white-space:nowrap;
  animation:scroll-left 28s linear infinite;
  width:max-content;
}
.marquee span{
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.14em;
  color:var(--text-muted);
}
@keyframes scroll-left{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}

/* Section generic */
section{padding:100px 0;}
.section-head{max-width:640px;margin-bottom:64px;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.section-head h2{
  font-size:2.5rem;
  font-weight:700;
  line-height:1.15;
  letter-spacing:-0.01em;
  margin:0 0 16px;
}
.section-head p{
  color:var(--text-muted);
  font-size:1.05rem;
  line-height:1.6;
  margin:0;
}
.eyebrow{
  color:var(--lime);
  font-family:'Space Grotesk',sans-serif;
  font-weight:700;
  font-size:.9rem;
  margin-bottom:8px;
  display:block;
}

/* Steps */
.step-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:64px;
  align-items:center;
  padding:56px 0;
}
.step-row:not(:last-child){border-bottom:1px solid var(--border-soft);}
.step-row.reverse .step-media{order:2;}
.step-row.reverse .step-copy{order:1;}
.step-copy h3{
  font-size:1.75rem;
  font-weight:700;
  margin:0 0 14px;
}
.step-copy p{
  color:var(--text-muted);
  font-size:1.02rem;
  line-height:1.65;
  max-width:440px;
}
.step-media{
  border-radius:24px;
  overflow:hidden;
  border:1px solid var(--border);
}
.step-media img{width:100%;height:100%;object-fit:cover;display:block;}

/* Link list */
.link-list{
  border-top:1px solid var(--border-soft);
}
.link-row{
  display:flex;
  align-items:center;
  gap:20px;
  padding:22px 0;
  border-bottom:1px solid var(--border-soft);
}
.link-row .idx{
  font-family:'Space Grotesk',sans-serif;
  color:var(--text-muted);
  font-size:.85rem;
  width:28px;
}
.link-row .icon{
  width:22px;
  height:22px;
  display:grid;
  place-items:center;
  color:var(--lime);
}
.link-row .label{font-weight:600;font-size:1.05rem;}

/* Feature cards */
.feature-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border:1px solid var(--border-soft);
  border-radius:20px;
  overflow:hidden;
}
.feature-card{
  padding:32px 26px;
  border-right:1px solid var(--border-soft);
}
.feature-card:last-child{border-right:none;}
.feature-card .icon{color:var(--lime);margin-bottom:20px;}
.feature-card h4{font-size:1.1rem;font-weight:700;margin:0 0 10px;}
.feature-card p{color:var(--text-muted);font-size:.9rem;line-height:1.55;margin:0;}

/* CTA banner */
.cta-banner{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(194,246,49,.3);
  border-radius:32px;
  padding:72px 40px;
  text-align:center;
  background:linear-gradient(to bottom right, rgba(194,246,49,.15), rgba(163,90,246,.1), transparent);
}
.cta-banner .icon{color:var(--lime);margin-bottom:20px;}
.cta-banner h2{font-size:2.4rem;font-weight:700;margin:0 0 16px;}
.cta-banner p{
  color:var(--text-muted);
  font-size:1.05rem;
  max-width:480px;
  margin:0 auto 32px;
  line-height:1.6;
}

/* Footer */
.site-footer{
  border-top:1px solid var(--border-soft);
  padding:64px 0 28px;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:40px;
  margin-bottom:48px;
}
.footer-brand h4{font-size:1.1rem;font-weight:700;margin:0 0 10px;}
.footer-brand p{color:var(--text-muted);font-size:.92rem;line-height:1.6;margin:0;max-width:280px;}
.footer-col h5{font-size:.85rem;font-weight:700;margin:0 0 16px;color:var(--text);}
.footer-col a, .footer-col p{
  display:block;
  color:var(--text-muted);
  font-size:.92rem;
  margin-bottom:10px;
}
.footer-col a:hover{color:var(--text);}
.footer-bottom{
  border-top:1px solid var(--border-soft);
  padding-top:24px;
  text-align:center;
  color:var(--text-muted);
  font-size:.85rem;
}

/* Contacts page */
.contacts-hero{padding:96px 0 100px;position:relative;overflow:hidden;}
.contacts-hero::before{
  content:"";
  position:absolute;
  top:-140px;
  right:-160px;
  width:560px;
  height:560px;
  background:radial-gradient(circle, var(--purple-glow) 0%, transparent 70%);
  pointer-events:none;
}
.contacts-grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:56px;
  align-items:start;
}
.contacts-grid h1{
  font-size:3rem;
  line-height:1.12;
  font-weight:700;
  margin:0 0 22px;
  letter-spacing:-0.01em;
}
.contacts-grid h1 .accent{color:var(--lime);}
.contacts-grid > .contacts-copy > p{
  color:var(--text-muted);
  font-size:1.05rem;
  line-height:1.65;
  max-width:440px;
  margin:0 0 36px;
}
.contact-info-row{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:16px;
}
.contact-info-row .icon-box{
  width:40px;
  height:40px;
  border-radius:10px;
  border:1px solid var(--border);
  display:grid;
  place-items:center;
  color:var(--lime);
  flex-shrink:0;
}
.contact-info-row span.text{font-size:1rem;}

.contact-form{
  background:rgba(23,22,34,.5);
  border:1px solid var(--border-soft);
  border-radius:24px;
  padding:40px;
}
.contact-form h3{font-size:1.3rem;font-weight:700;margin:0 0 24px;}
.form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  margin-bottom:18px;
}
.form-group label{
  display:block;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.08em;
  color:var(--text-muted);
  margin-bottom:8px;
}
.form-group input,
.form-group select,
.form-group textarea{
  width:100%;
  background:var(--input-bg);
  border:1px solid var(--border);
  border-radius:12px;
  padding:12px 14px;
  color:var(--text);
  font-family:inherit;
  font-size:.95rem;
}
.form-group input::placeholder,
.form-group textarea::placeholder{color:#6f6d82;}
.form-group textarea{resize:vertical;min-height:110px;}
.form-group{margin-bottom:0;}
.form-full{margin-bottom:18px;}
.form-submit{
  width:100%;
  margin-top:6px;
  padding:15px 26px;
}

@media (max-width: 900px){
  .hero-grid{grid-template-columns:1fr;}
  .phone-wrap{margin-top:40px;}
  .hero h1{font-size:2.8rem;}
  .step-row{grid-template-columns:1fr;gap:32px;}
  .step-row.reverse .step-media{order:1;}
  .step-row.reverse .step-copy{order:2;}
  .feature-grid{grid-template-columns:1fr 1fr;}
  .feature-card{border-bottom:1px solid var(--border-soft);}
  .footer-grid{grid-template-columns:1fr;}
  .contacts-grid{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
  .main-nav{gap:16px;}
}
@media (max-width: 560px){
  .hero h1{font-size:2.2rem;}
  .hero-stats{flex-wrap:wrap;gap:28px;}
  .main-nav a:not(.header-cta){display:none;}
  .section-head h2{font-size:1.9rem;}
}
