/*
Theme Name: Finpulse
Theme URI: https://finpulse.local
Author: Finpulse Team
Author URI: https://finpulse.local
Description: The UK's fundraising operating system for founders and investors.
Version: 1.0.3
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
Text Domain: finpulse
*/

@import url('https://fonts.googleapis.com/css2?family=Inter:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400&family=Sora:wght@600;700;800&display=swap');

/* ===== Reset / base ===== */
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;}
a{text-decoration:none;color:inherit;}
button{font-family:inherit;}
input,select{font-family:inherit;}
#app h1,#app h2,#app h3{font-family:'Sora',system-ui,-apple-system,sans-serif;letter-spacing:-0.02em;}

#app{
  width:100%;min-height:100vh;
  background:var(--bg);color:var(--text);
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  transition:background-color .25s ease,color .25s ease;
}

/* ===== Theme tokens ===== */
#app[data-theme="light"]{
  --bg:#ffffff;--bg-soft:#f6f3fc;--surface:#ffffff;--surface-alt:#faf9fd;
  --text:#18122c;--text-muted:#5b5570;--border:#e7e2f2;
  --purple:#881bf5;--purple-hover:#7314d9;--purple-soft:#f1e6fe;
  --orange:#fe822d;--orange-hover:#e56c19;--orange-soft:#ffe9da;
  --on-accent:#ffffff;--shadow:0 10px 30px rgba(24,18,44,.08);
  --header-bg:linear-gradient(180deg, rgba(255,255,255,.94), rgba(246,243,252,.86));
  --green:#1c9a56;
}
#app[data-theme="dark"]{
  --bg:#0e0a1a;--bg-soft:#160f28;--surface:#1a1430;--surface-alt:#1f1838;
  --text:#f5f2fb;--text-muted:#b3a9cb;--border:#2f2750;
  --purple:#ac72f8;--purple-hover:#c093fa;--purple-soft:#241a44;
  --orange:#ff9e5c;--orange-hover:#ffb17c;--orange-soft:#3a2417;
  --on-accent:#140b26;--shadow:0 10px 34px rgba(0,0,0,.5);
  --header-bg:linear-gradient(180deg, rgba(22,15,40,.92), rgba(14,10,26,.8));
  --green:#3ecb84;
}

/* Per-page accent: Founders = orange, Home/Investors = purple.
   Interactive elements (nav underline, card hover glow, focus rings, the
   live-dot, gradient text, FAQ +/- icon) key off --accent so the whole
   page recolours from one switch. */
body.page-founders #app[data-theme="light"],
body.page-template-page-founders #app[data-theme="light"]{ --accent:#fe822d;--accent-hover:#e56c19;--accent-soft:#ffe9da;--accent-rgb:254,130,45; }
body.page-founders #app[data-theme="dark"],
body.page-template-page-founders #app[data-theme="dark"] { --accent:#ff9e5c;--accent-hover:#ffb17c;--accent-soft:#3a2417;--accent-rgb:255,158,92; }

body.page-home      #app[data-theme="light"],
body.page-investors #app[data-theme="light"],
body.page-template-page-investors #app[data-theme="light"]{ --accent:#881bf5;--accent-hover:#7314d9;--accent-soft:#f1e6fe;--accent-rgb:136,27,245; }
body.page-home      #app[data-theme="dark"],
body.page-investors #app[data-theme="dark"],
body.page-template-page-investors #app[data-theme="dark"] { --accent:#ac72f8;--accent-hover:#c093fa;--accent-soft:#241a44;--accent-rgb:172,114,248; }

/* ===== Layout ===== */
.container{width:100%;max-width:1180px;margin:0 auto;padding:0 24px;}
@media (max-width:640px){.container{padding:0 20px;}}

.footer-grid{display:flex;justify-content:space-between;flex-wrap:wrap;gap:40px;}

.hero-grid-home{display:grid;grid-template-columns:1.05fr 0.95fr;gap:64px;align-items:center;}
@media (max-width:900px){.hero-grid-home{grid-template-columns:1fr;gap:40px;}}
.hero-grid{display:grid;grid-template-columns:1fr;gap:20px;max-width:760px;}

.cta-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
@media (max-width:600px){.cta-cards{grid-template-columns:1fr;}}

.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
@media (max-width:820px){.steps-grid{grid-template-columns:1fr;}}

.module-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;}
@media (max-width:920px){.module-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:480px){.module-grid{grid-template-columns:1fr;}}

.problem-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
@media (max-width:640px){.problem-grid{grid-template-columns:1fr;}}

.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
@media (max-width:900px){.feature-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:600px){.feature-grid{grid-template-columns:1fr;}}

.trust-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
@media (max-width:768px){.trust-grid{grid-template-columns:1fr;}}

.score-section{display:grid;grid-template-columns:0.9fr 1.1fr;gap:52px;align-items:center;}
@media (max-width:900px){.score-section{grid-template-columns:1fr;}}

.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
@media (max-width:600px){.form-grid{grid-template-columns:1fr;}}

/* ===== Header / nav ===== */
.site-header{position:sticky;top:0;z-index:50;background:var(--header-bg);backdrop-filter:blur(14px) saturate(1.4);border-bottom:1px solid var(--border);transition:box-shadow .25s ease;}
.site-header.scrolled{box-shadow:0 8px 24px rgba(24,18,44,.10);}
.header-bar{height:3px;width:100%;background:linear-gradient(90deg,var(--purple),var(--orange));}

.nav-links{display:flex;align-items:center;gap:36px;}
.nav-links a{position:relative;padding-bottom:4px;}
.nav-links a::after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:2px;background:var(--accent);transition:right .25s cubic-bezier(.2,.7,.3,1);}
.nav-links a:hover::after{right:0;}
.nav-links a.active::after{right:0;}

.nav-toggle-input{display:none;}
.nav-toggle-label{display:none;cursor:pointer;padding:8px;}
.mobile-panel{
  display:none;
  flex-direction:column;
  max-height:0;
  overflow:hidden;
  padding:0 20px;
  background:var(--bg);
  border-top:none;
  transition:max-height .35s cubic-bezier(.2,.7,.3,1), padding .35s ease;
}
.nav-toggle-input:checked ~ .mobile-panel{
  max-height:320px;
  padding:8px 20px 20px;
  border-top:1px solid var(--border);
}
@media (max-width:860px){
  .nav-links{display:none;}
  .nav-toggle-label{display:flex;}
  .mobile-panel{display:flex;}
}

.icon-btn{transition:background-color .15s ease,transform .15s ease;}
.icon-btn:hover{transform:scale(1.06);}
.icon-btn svg{display:none;}
.icon-btn .icon-moon{display:block;}
#app[data-theme="dark"] .icon-btn .icon-moon{display:none;}
#app[data-theme="dark"] .icon-btn .icon-sun{display:block;}

/* ===== Buttons / cards ===== */
.btn-primary{position:relative;overflow:hidden;transition:transform .15s ease,background-color .15s ease,box-shadow .15s ease,filter .15s ease;}
.btn-primary:hover{transform:translateY(-2px);filter:brightness(1.04);}
.btn-primary:active{transform:scale(.97);}
.btn-primary::before{content:"";position:absolute;top:0;left:-75%;width:45%;height:100%;background:linear-gradient(120deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-20deg);pointer-events:none;}
.btn-primary:hover::before{animation:shimmerSweep .85s ease;}
@keyframes shimmerSweep{0%{left:-75%;}100%{left:135%;}}

.card-hover{transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;}
.card-hover:hover{transform:translateY(-3px);border-color:var(--accent);box-shadow:0 14px 30px rgba(var(--accent-rgb),.18);}
.card-hover svg{transition:transform .25s ease;}
.card-hover:hover svg{transform:scale(1.1) rotate(-3deg);}

.arrow-move{display:inline-block;transition:transform .2s cubic-bezier(.2,.7,.3,1);}
.card-hover:hover .arrow-move,.btn-primary:hover .arrow-move{transform:translateX(4px);}

/* ===== Form fields ===== */
.field input,.field select{width:100%;padding:12px 14px;border-radius:10px;border:1.5px solid var(--border);background:var(--surface);color:var(--text);font-size:15px;outline:none;transition:border-color .15s ease;}
.field input:focus,.field select:focus{border-color:var(--accent);}

/* ===== Decorative motion ===== */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.7,.3,1),transform .7s cubic-bezier(.2,.7,.3,1);}
.reveal.is-visible{opacity:1;transform:translateY(0);}

@keyframes fadeInUp{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:translateY(0);}}
.fade-in{animation:fadeInUp .7s cubic-bezier(.2,.7,.3,1) both;}

@keyframes logoPulse{0%,100%{transform:scale(1);}50%{transform:scale(1.07);}}
.logo-pulse{animation:logoPulse 3.2s ease-in-out infinite;transform-origin:center;}

@keyframes ringPulse{0%{transform:scale(.86);opacity:.45;}100%{transform:scale(1.45);opacity:0;}}
.pulse-ring{position:absolute;inset:0;border-radius:28px;border:2px solid var(--purple);animation:ringPulse 2.8s cubic-bezier(.3,.1,.3,1) infinite;pointer-events:none;}
.pulse-ring.ring-2{animation-delay:1.4s;border-color:var(--orange);}

@keyframes dotPulse{0%,100%{box-shadow:0 0 0 0 rgba(var(--accent-rgb),.45);}50%{box-shadow:0 0 0 6px rgba(var(--accent-rgb),0);}}
.live-dot{display:inline-block;width:7px;height:7px;border-radius:999px;background:var(--accent);animation:dotPulse 2s ease-in-out infinite;margin-right:7px;vertical-align:middle;}

.grad-text{background:linear-gradient(95deg,var(--accent-hover),var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent;}

@keyframes blobMove{0%,100%{background-position:28% 28%;}50%{background-position:64% 58%;}}
.blob-move{background-image:radial-gradient(circle, var(--purple-soft), transparent 60%);background-size:170% 170%;animation:blobMove 9s ease-in-out infinite;}

@keyframes idleFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}
.idle-float{animation:idleFloat 6s ease-in-out infinite;}

@keyframes glowPulse{0%,100%{box-shadow:0 0 30px 6px rgba(var(--accent-rgb),.16);}50%{box-shadow:0 0 56px 14px rgba(var(--accent-rgb),.32);}}
.glow-pulse{animation:glowPulse 3.2s ease-in-out infinite;border-radius:50%;}
