
/* =========================================================
   PASSFAN HUB — HOMEPAGE
   Scoped to .pf-home so it does not interfere with WordPress.
   ========================================================= */

.pf-home{
  --navy:#101b2d;
  --blue:#246bfd;
  --red:#e30613;
  --ink:#142033;
  --text:#536174;
  --line:#e4e9f0;
  --soft:#f6f8fb;
  --white:#fff;
  --shadow:0 28px 70px rgba(16,27,45,.12);

  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink);
  background:#fff;
  line-height:1.55;
  overflow:hidden;
}

.pf-home *{box-sizing:border-box}

.pf-home h1,
.pf-home h2,
.pf-home h3,
.pf-home p{margin-top:0}

.pf-wrap{
  width:min(1180px,calc(100% - 40px));
  margin:0 auto;
}

.pf-section{padding:92px 0}

.pf-kicker{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin-bottom:18px;
  color:var(--blue);
  font-size:13px;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.pf-kicker:before{
  content:"";
  width:22px;
  height:3px;
  border-radius:2px;
  background:var(--red);
}

.pf-btns{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}

.pf-btn{
  min-height:52px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:13px 24px;
  border-radius:12px;
  border:1px solid transparent;
  font-size:16px;
  font-weight:800;
  text-decoration:none!important;
  transition:.18s ease;
}

.pf-primary{
  background:var(--blue);
  color:#fff!important;
  box-shadow:0 9px 24px rgba(36,107,253,.22);
}

.pf-primary:hover{
  background:#1559df;
  transform:translateY(-1px);
}

.pf-secondary{
  background:#fff;
  border-color:#d7dee8;
  color:var(--ink)!important;
}

.pf-secondary:hover{
  border-color:#aeb9c8;
  background:#fafbfd;
}

/* HERO */
.pf-hero{
  position:relative;
  padding:88px 0 96px;
  background:
    radial-gradient(circle at 90% 10%,rgba(36,107,253,.12),transparent 35%),
    linear-gradient(180deg,#fff 0%,#f8fbff 100%);
}

.pf-hero:after{
  content:"";
  position:absolute;
  right:-180px;
  top:-170px;
  width:500px;
  height:500px;
  border-radius:50%;
  background:rgba(36,107,253,.05);
  pointer-events:none;
}

.pf-hero-grid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:70px;
  align-items:center;
}

.pf-hero h1{
  max-width:700px;
  margin-bottom:23px;
  color:var(--navy);
  font-size:clamp(48px,5.6vw,72px);
  line-height:.99;
  letter-spacing:-.045em;
}

.pf-hero h1 span{color:var(--blue)}

.pf-hero-copy{
  max-width:650px;
  margin-bottom:28px;
  color:var(--text);
  font-size:20px;
  line-height:1.65;
}

.pf-proof{
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  margin-top:26px;
  color:#617083;
  font-size:14px;
  font-weight:650;
}

.pf-proof span{
  display:flex;
  align-items:center;
  gap:7px;
}

.pf-proof span:before{
  content:"✓";
  display:grid;
  place-items:center;
  width:20px;
  height:20px;
  border-radius:50%;
  background:#eaf8ef;
  color:#178343;
  font-size:12px;
  font-weight:900;
}

/* HERO PRODUCT IMAGE */
.pf-phone-stage{
  position:relative;
  min-height:610px;
  display:flex;
  justify-content:center;
  align-items:center;
}

.pf-phone-stage:before{
  content:"";
  position:absolute;
  width:480px;
  height:480px;
  border-radius:50%;
  background:linear-gradient(145deg,#dcebff,#edf5ff);
}

.pf-phone-stage:after{
  content:"";
  position:absolute;
  width:360px;
  height:360px;
  border-radius:50%;
  border:1px dashed rgba(36,107,253,.22);
}

.pf-hero-product{
  position:relative;
  z-index:2;
  display:block;
  width:min(100%,460px);
  height:auto;
  margin:0 auto;
  object-fit:contain;
  filter:drop-shadow(0 28px 45px rgba(16,27,45,.18));
}

/* QUICK STRIP */
.pf-strip{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:#fff;
}

.pf-strip-grid{
  display:grid;
  grid-template-columns:repeat(6,1fr);
}

.pf-strip-item{
  padding:24px 8px;
  text-align:center;
  border-right:1px solid var(--line);
  color:#475568;
  font-size:14px;
  font-weight:750;
}

.pf-strip-item:last-child{border-right:0}

/* INTRO */
.pf-intro{background:#fff}

.pf-heading{
  max-width:760px;
  margin:0 auto 54px;
  text-align:center;
}

.pf-heading h2{
  margin-bottom:16px;
  color:var(--navy);
  font-size:clamp(34px,4vw,49px);
  line-height:1.08;
  letter-spacing:-.03em;
}

.pf-heading p{
  margin-bottom:0;
  color:var(--text);
  font-size:19px;
}

/* BENEFIT CARDS */
.pf-cards{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}

.pf-card{
  position:relative;
  min-height:250px;
  padding:29px;
  border:1px solid var(--line);
  border-radius:19px;
  background:#fff;
  box-shadow:0 12px 35px rgba(16,27,45,.04);
}

.pf-card-no{
  margin-bottom:28px;
  color:var(--blue);
  font-size:13px;
  font-weight:900;
}

.pf-card h3{
  margin-bottom:10px;
  color:var(--navy);
  font-size:21px;
}

.pf-card p{
  margin-bottom:0;
  color:#667386;
  font-size:15.5px;
}

/* LEARNER APP */
.pf-learner{
  background:var(--navy);
  color:#fff;
}

.pf-learner-grid{
  display:grid;
  grid-template-columns:.95fr 1.05fr;
  gap:80px;
  align-items:center;
}

.pf-learner h2{
  max-width:620px;
  margin-bottom:20px;
  color:#fff;
  font-size:clamp(36px,4vw,52px);
  line-height:1.07;
  letter-spacing:-.03em;
}

.pf-learner p{
  max-width:620px;
  margin-bottom:26px;
  color:#bfcbd9;
  font-size:19px;
}

.pf-learner .pf-kicker{color:#7eaeff}

.pf-learner-list{
  display:grid;
  gap:11px;
  margin:0;
  padding:0;
  list-style:none;
}

.pf-learner-list li{
  position:relative;
  padding-left:28px;
  color:#e6edf6;
  font-size:16px;
}

.pf-learner-list li:before{
  content:"✓";
  position:absolute;
  left:0;
  top:0;
  color:#6fa5ff;
  font-weight:900;
}

.pf-learner-ui{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:15px;
}

.pf-learner-panel{
  padding:21px;
  border-radius:18px;
  background:#fff;
  color:var(--ink);
}

.pf-learner-panel.large{grid-column:1/-1}

.pf-learner-panel small{
  display:block;
  margin-bottom:7px;
  color:#7b8797;
  font-size:11px;
  font-weight:700;
}

.pf-learner-panel strong{
  display:block;
  margin-bottom:6px;
  color:var(--navy);
  font-size:18px;
}

.pf-progress{
  height:8px;
  overflow:hidden;
  margin-top:13px;
  border-radius:20px;
  background:#e7ecf2;
}

.pf-progress span{
  display:block;
  width:72%;
  height:100%;
  border-radius:20px;
  background:var(--blue);
}

/* WORKFLOW */
.pf-workflow{background:var(--soft)}

.pf-workflow-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
}

.pf-step{
  padding:28px 25px;
  border-radius:17px;
  background:#fff;
  border:1px solid var(--line);
}

.pf-step span{
  display:block;
  margin-bottom:22px;
  color:var(--red);
  font-size:13px;
  font-weight:900;
}

.pf-step h3{
  margin-bottom:9px;
  color:var(--navy);
  font-size:19px;
}

.pf-step p{
  margin:0;
  color:#687587;
  font-size:14.5px;
}

/* ACCOUNTS */
.pf-business-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:75px;
  align-items:center;
}

.pf-business-copy h2{
  margin-bottom:18px;
  color:var(--navy);
  font-size:clamp(35px,4vw,50px);
  line-height:1.07;
  letter-spacing:-.03em;
}

.pf-business-copy p{
  color:var(--text);
  font-size:18px;
}

.pf-finance-card{
  padding:28px;
  border:1px solid var(--line);
  border-radius:22px;
  background:#fff;
  box-shadow:var(--shadow);
}

.pf-finance-top{
  display:flex;
  justify-content:space-between;
  gap:15px;
  margin-bottom:27px;
}

.pf-finance-top strong{
  color:var(--navy);
  font-size:20px;
}

.pf-finance-top span{
  color:#799;
  font-size:12px;
}

.pf-finance-stats{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-bottom:20px;
}

.pf-stat{
  padding:16px;
  border-radius:13px;
  background:#f5f8fc;
}

.pf-stat small{
  display:block;
  margin-bottom:5px;
  color:#7a8798;
  font-size:10px;
}

.pf-stat b{
  color:var(--navy);
  font-size:17px;
}

.pf-bars{
  height:150px;
  display:flex;
  align-items:flex-end;
  gap:10px;
  padding-top:15px;
  border-top:1px solid var(--line);
}

.pf-bars i{
  flex:1;
  display:block;
  border-radius:6px 6px 2px 2px;
  background:linear-gradient(var(--blue),#73a5ff);
}

.pf-bars i:nth-child(1){height:42%}
.pf-bars i:nth-child(2){height:68%}
.pf-bars i:nth-child(3){height:54%}
.pf-bars i:nth-child(4){height:82%}
.pf-bars i:nth-child(5){height:63%}
.pf-bars i:nth-child(6){height:91%}
.pf-bars i:nth-child(7){height:74%}

/* WHY */
.pf-why{background:#fff}

.pf-why-box{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:55px;
  padding:55px;
  border-radius:26px;
  background:linear-gradient(135deg,#f5f9ff,#eef4ff);
}

.pf-why-box h2{
  margin-bottom:15px;
  color:var(--navy);
  font-size:clamp(32px,4vw,45px);
  line-height:1.08;
}

.pf-why-box p{
  margin-bottom:0;
  color:var(--text);
  font-size:18px;
}

.pf-why-points{
  display:grid;
  gap:12px;
}

.pf-why-point{
  padding:17px 19px;
  border-radius:13px;
  background:#fff;
  color:#46556a;
  font-size:15px;
  font-weight:700;
  box-shadow:0 5px 16px rgba(16,27,45,.04);
}

/* PRICING */
.pf-price-section{background:var(--soft)}

.pf-price-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}

.pf-price{
  position:relative;
  padding:31px;
  border:1px solid var(--line);
  border-radius:20px;
  background:#fff;
}

.pf-price.featured{
  border:2px solid var(--blue);
  box-shadow:0 22px 50px rgba(36,107,253,.12);
}

.pf-badge{
  position:absolute;
  top:-13px;
  right:22px;
  padding:6px 12px;
  border-radius:20px;
  background:var(--blue);
  color:#fff;
  font-size:11px;
  font-weight:800;
}

.pf-price h3{
  margin-bottom:4px;
  color:var(--navy);
  font-size:23px;
}

.pf-money{
  margin-bottom:20px;
  color:var(--navy);
  font-size:38px;
  font-weight:900;
}

.pf-money span{
  color:#7b8797;
  font-size:14px;
  font-weight:500;
}

.pf-price ul{
  margin:0 0 25px;
  padding:0;
  list-style:none;
}

.pf-price li{
  position:relative;
  padding:7px 0 7px 24px;
  color:#5e6b7c;
  font-size:14.5px;
}

.pf-price li:before{
  content:"✓";
  position:absolute;
  left:0;
  color:var(--blue);
  font-weight:900;
}

/* CTA */
.pf-cta{
  background:var(--navy);
  color:#fff;
}

.pf-cta-box{
  display:flex;
  justify-content:space-between;
  gap:45px;
  align-items:center;
}

.pf-cta h2{
  max-width:700px;
  margin-bottom:9px;
  color:#fff;
  font-size:clamp(32px,4vw,48px);
  line-height:1.06;
}

.pf-cta p{
  margin-bottom:0;
  color:#b9c6d5;
  font-size:18px;
}

/* MOBILE */
@media(max-width:950px){
  .pf-hero-grid,
  .pf-learner-grid,
  .pf-business-grid,
  .pf-why-box{
    grid-template-columns:1fr;
  }

  .pf-hero-grid{gap:40px}

  .pf-phone-stage{min-height:560px}

  .pf-cards{grid-template-columns:repeat(2,1fr)}

  .pf-workflow-grid{grid-template-columns:repeat(2,1fr)}

  .pf-strip-grid{grid-template-columns:repeat(3,1fr)}

  .pf-strip-item:nth-child(3){border-right:0}

  .pf-strip-item:nth-child(-n+3){
    border-bottom:1px solid var(--line);
  }

  .pf-price-grid{
    grid-template-columns:1fr;
    max-width:620px;
    margin:0 auto;
  }

  .pf-cta-box{
    flex-direction:column;
    align-items:flex-start;
  }
}

@media(max-width:620px){
  .pf-wrap{width:min(100% - 28px,1180px)}

  .pf-section{padding:66px 0}

  .pf-hero{padding:55px 0 65px}

  .pf-hero h1{font-size:44px}

  .pf-hero-copy{font-size:18px}

  .pf-btns{flex-direction:column}

  .pf-btn{width:100%}

  .pf-phone-stage{min-height:455px}

  .pf-phone-stage:before{
    width:350px;
    height:350px;
  }

  .pf-phone-stage:after{
    width:260px;
    height:260px;
  }

  .pf-hero-product{width:min(100%,360px)}

  .pf-cards,
  .pf-workflow-grid{
    grid-template-columns:1fr;
  }

  .pf-strip-grid{grid-template-columns:repeat(2,1fr)}

  .pf-strip-item{border-bottom:1px solid var(--line)}

  .pf-strip-item:nth-child(even){border-right:0}

  .pf-strip-item:nth-last-child(-n+2){border-bottom:0}

  .pf-learner-ui{grid-template-columns:1fr}

  .pf-learner-panel.large{grid-column:auto}

  .pf-finance-stats{grid-template-columns:1fr}

  .pf-why-box{padding:30px 22px}
}
