/* ============ Tokens ============ */
:root{
  --cream:#FBF7F0;
  --cream-deep:#F3EBDC;
  --ink:#152238;
  --ink-soft:#57627a;
  --navy:#1C2C4C;
  --navy-deep:#121D34;
  --orange:#FF6B3D;
  --orange-deep:#E2531F;
  --white:#FFFFFF;
  --border:#E9E0CF;
  --shadow:0 20px 45px -20px rgba(21,34,56,.22);
  --radius-lg:28px;
  --radius-md:18px;
  --radius-pill:999px;
  --maxw:1180px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:'Manrope',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{margin:0 0 .5em;line-height:1.15;color:var(--ink);font-weight:700;}
p{margin:0 0 1em;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px;}
.accent{color:var(--orange);}
.serif{font-family:'Fraunces',Georgia,serif;font-weight:600;}

/* ============ Buttons ============ */
.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:15px 28px;border-radius:var(--radius-pill);
  font-weight:700;font-size:15.5px;
  border:1px solid transparent;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
  white-space:nowrap;
}
.btn-primary{background:var(--navy);color:#fff;box-shadow:0 12px 24px -10px rgba(28,44,76,.55);}
.btn-primary:hover{background:var(--navy-deep);transform:translateY(-2px);}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--border);}
.btn-ghost:hover{border-color:var(--ink);}
.btn-sm{padding:10px 20px;font-size:14px;}
.link-underline{color:var(--ink);border-bottom:2px solid var(--orange);padding-bottom:2px;font-weight:600;}
.link-underline:hover{color:var(--orange-deep);}

/* ============ Header ============ */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(251,247,240,.85);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(233,224,207,.7);
}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:82px;}
.logo{display:flex;align-items:center;gap:9px;font-weight:800;font-size:20px;color:var(--ink);}
.logo .dot{width:11px;height:11px;border-radius:50%;background:var(--orange);display:inline-block;}
.primary-nav ul{list-style:none;display:flex;gap:34px;margin:0;padding:0;}
.primary-nav a{font-weight:600;font-size:15px;color:var(--ink-soft);}
.primary-nav a:hover{color:var(--ink);}
.header-actions{display:flex;align-items:center;gap:18px;}
.header-actions .link-underline{font-size:14.5px;}
.nav-toggle{display:none;}

/* ============ Hero ============ */
.hero{position:relative;padding:96px 0 60px;overflow:visible;}
.hero-bg-grid{
  position:absolute;inset:0;top:-20px;
  background-image:radial-gradient(circle, #E4D9C2 1.4px, transparent 1.4px);
  background-size:26px 26px;
  mask-image:radial-gradient(ellipse 60% 60% at 50% 30%, black 40%, transparent 85%);
  opacity:.55;
}
.hero-inner{position:relative;max-width:760px;margin:0 auto;text-align:center;z-index:2;}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--white);border:1px solid var(--border);
  padding:7px 16px;border-radius:var(--radius-pill);
  font-size:13.5px;font-weight:700;color:var(--orange-deep);
  box-shadow:var(--shadow);margin-bottom:26px;
}
.hero h1{font-size:56px;letter-spacing:-.02em;}
.hero .lede{font-size:19px;color:var(--ink-soft);max-width:600px;margin:20px auto 34px;}
.hero-ctas{display:flex;align-items:center;justify-content:center;gap:22px;flex-wrap:wrap;margin-bottom:34px;}
.trust-line{font-size:13.5px;color:var(--ink-soft);font-weight:600;}
.trust-line strong{color:var(--ink);}

.hero-stage{position:relative;max-width:1020px;margin:64px auto 0;height:340px;}
.float-card{
  position:absolute;background:var(--white);border:1px solid var(--border);
  border-radius:var(--radius-md);box-shadow:var(--shadow);
  padding:16px 18px;width:198px;
  animation:drift 7s ease-in-out infinite;
}
.float-card .fc-label{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);margin-bottom:6px;}
.float-card .fc-value{font-size:22px;font-weight:800;color:var(--ink);}
.float-card .fc-sub{font-size:12px;color:#3fa15a;font-weight:700;margin-top:4px;}
.float-card.orange .fc-value{color:var(--orange-deep);}
.fc-1{top:0;left:2%;animation-delay:0s;}
.fc-2{top:24px;right:0;animation-delay:1.2s;}
.fc-3{top:200px;left:12%;animation-delay:2.1s;width:230px;}
.fc-4{top:190px;right:6%;animation-delay:.6s;}
.hero-dashboard{
  position:absolute;top:60px;left:50%;transform:translateX(-50%);
  width:560px;max-width:80vw;background:var(--navy);border-radius:22px;
  box-shadow:0 40px 80px -30px rgba(18,29,52,.55);
  padding:22px 26px;color:#fff;
}
.hd-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;}
.hd-top span{font-size:12.5px;color:#B9C3DA;font-weight:700;text-transform:uppercase;letter-spacing:.05em;}
.hd-dots{display:flex;gap:5px;}
.hd-dots i{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.25);display:block;}
.hd-bars{display:flex;align-items:flex-end;gap:10px;height:96px;}
.hd-bars div{flex:1;background:linear-gradient(180deg,var(--orange),#ffb088);border-radius:6px 6px 0 0;}
.hd-foot{display:flex;justify-content:space-between;margin-top:16px;font-size:12.5px;color:#B9C3DA;font-weight:600;}

@keyframes drift{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}

/* ============ Curve divider ============ */
.curve-top{position:relative;}
.curve-top::before{
  content:"";position:absolute;top:-1px;left:0;right:0;height:70px;
  background:inherit;
  border-radius:50% 50% 0 0 / 100% 100% 0 0;
  transform:scaleX(1.3);
  z-index:0;
}

/* ============ Sections ============ */
section{position:relative;}
.section-pad{padding:100px 0;}
.section-head{max-width:640px;margin:0 auto 56px;text-align:center;}
.section-head .kicker{
  display:block;color:var(--orange-deep);font-weight:800;font-size:13px;
  text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px;
}
.section-head h2{font-size:36px;letter-spacing:-.01em;}
.section-head p{color:var(--ink-soft);font-size:16.5px;margin-top:14px;}

.bg-cream-deep{background:var(--cream-deep);}
.bg-navy{background:var(--navy);color:#fff;}
.bg-navy h2,.bg-navy h3{color:#fff;}
.bg-navy .section-head p{color:#B9C3DA;}

/* Steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.step{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:34px 30px;}
.step .num{
  width:38px;height:38px;border-radius:50%;background:var(--navy);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;margin-bottom:20px;
}
.step h3{font-size:19px;}
.step p{color:var(--ink-soft);font-size:15px;margin:0;}

/* Feature grid */
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.feature-card{
  background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:30px 28px;transition:transform .18s ease, box-shadow .18s ease;
}
.feature-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);}
.feature-icon{
  width:46px;height:46px;border-radius:13px;background:#FFEEE5;
  display:flex;align-items:center;justify-content:center;margin-bottom:18px;font-size:21px;
}
.feature-card h3{font-size:18px;}
.feature-card p{color:var(--ink-soft);font-size:14.8px;margin:0;}

/* Gift Aid split */
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center;}
.split h2{font-size:34px;}
.split .lede{color:var(--ink-soft);font-size:16.5px;}
.check-list{list-style:none;margin:26px 0 0;padding:0;display:flex;flex-direction:column;gap:14px;}
.check-list li{display:flex;gap:12px;align-items:flex-start;font-size:15.5px;font-weight:600;}
.check-list .tick{
  flex:0 0 22px;width:22px;height:22px;border-radius:50%;background:var(--orange);
  color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;margin-top:2px;
}
.giftaid-panel{
  background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:32px;box-shadow:var(--shadow);
}
.giftaid-row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--border);font-size:15px;}
.giftaid-row:last-child{border-bottom:none;}
.giftaid-row .lbl{color:var(--ink-soft);font-weight:600;}
.giftaid-row .val{font-weight:800;}
.giftaid-row.total .val{color:var(--orange-deep);font-size:19px;}

/* Trust / logos */
.trust-band{padding:52px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.trust-band .label{text-align:center;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:26px;}
.trust-logos{display:flex;justify-content:center;align-items:center;gap:52px;flex-wrap:wrap;}
.trust-logos span{font-weight:800;font-size:18px;color:#9aa4bb;letter-spacing:-.01em;}

/* Testimonial */
.testimonial-card{
  max-width:760px;margin:0 auto;text-align:center;background:var(--white);
  border:1px solid var(--border);border-radius:var(--radius-lg);padding:52px 56px;box-shadow:var(--shadow);
}
.testimonial-card p.quote{font-family:'Fraunces',Georgia,serif;font-size:25px;font-weight:500;color:var(--ink);line-height:1.45;}
.testimonial-meta{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:24px;}
.testimonial-avatar{width:44px;height:44px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;}
.testimonial-name{font-weight:700;font-size:14.5px;}
.testimonial-role{font-size:13px;color:var(--ink-soft);}

/* Pricing */
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.price-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:36px 30px;display:flex;flex-direction:column;}
.price-card.featured{background:var(--navy);color:#fff;border-color:var(--navy);position:relative;transform:translateY(-10px);}
.price-card.featured .price-sub,.price-card.featured .check-list li{color:#cfd6e8;}
.price-card.featured h3{color:#fff;}
.price-badge{position:absolute;top:-13px;right:28px;background:var(--orange);color:#fff;font-size:12px;font-weight:800;padding:5px 14px;border-radius:var(--radius-pill);}
.price-card h3{font-size:20px;}
.price-amt{font-size:38px;font-weight:800;margin:6px 0 4px;}
.price-amt span{font-size:15px;font-weight:600;opacity:.7;}
.price-sub{font-size:14px;color:var(--ink-soft);margin-bottom:24px;}
.price-card .check-list{margin-bottom:28px;flex:1;}
.price-card .check-list li{font-size:14.5px;font-weight:500;}
.price-card.featured .check-list .tick{background:var(--orange);}
.price-card .btn{justify-content:center;width:100%;}

/* CTA band */
.cta-band{
  background:var(--navy);border-radius:36px;padding:70px 60px;text-align:center;
  position:relative;overflow:hidden;
}
.cta-band::after{
  content:"";position:absolute;width:420px;height:420px;border-radius:50%;
  background:radial-gradient(circle, rgba(255,107,61,.35), transparent 70%);
  top:-180px;right:-120px;
}
.cta-band h2{color:#fff;font-size:34px;max-width:520px;margin:0 auto 16px;position:relative;}
.cta-band p{color:#B9C3DA;max-width:460px;margin:0 auto 30px;position:relative;}
.cta-band .btn-primary{background:var(--orange);box-shadow:0 14px 26px -10px rgba(255,107,61,.55);position:relative;}
.cta-band .btn-primary:hover{background:var(--orange-deep);}

/* Footer */
.site-footer{padding:70px 0 34px;border-top:1px solid var(--border);}
.footer-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:40px;margin-bottom:56px;}
.footer-col h4{font-size:13.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);margin-bottom:16px;}
.footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px;}
.footer-col a{font-size:14.5px;color:var(--ink-soft);}
.footer-col a:hover{color:var(--ink);}
.footer-brand p{color:var(--ink-soft);font-size:14.5px;max-width:280px;}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:28px;border-top:1px solid var(--border);font-size:13.5px;color:var(--ink-soft);flex-wrap:wrap;gap:12px;}

/* ============ Responsive ============ */
@media (max-width: 980px){
  .primary-nav{display:none;}
  .hero h1{font-size:40px;}
  .hero-stage{height:auto;padding-bottom:40px;}
  .hero-dashboard{position:static;transform:none;margin:0 auto 26px;}
  .float-card{position:static;width:100%;margin-bottom:12px;animation:none;}
  .fc-3{width:100%;}
  .steps,.feature-grid,.pricing-grid{grid-template-columns:1fr;}
  .split{grid-template-columns:1fr;gap:40px;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .cta-band{padding:50px 26px;}
  .testimonial-card{padding:36px 26px;}
}
