/* ============================================================
   BRAINSOIL IX — pages.css
   Subscribe + Call for Entry pages: forms, rule cards, perks.
   ============================================================ */

/* ---------- SHARED PAGE SHELL ---------- */
.page-hero{ padding:150px var(--pad) 30px; max-width:var(--maxw); margin:0 auto; text-align:center; }
.page-hero .big{
  font-family:var(--display); font-weight:900; text-transform:uppercase;
  font-size:clamp(34px,7vw,72px); line-height:1.02; letter-spacing:.02em;
  color:var(--white); text-shadow:var(--glow);
}
.page-hero .sub{
  margin-top:14px; font-family:var(--mono); font-size:clamp(12px,1.6vw,14px);
  letter-spacing:.24em; text-transform:uppercase; color:var(--gold-lt);
}
.page-hero .intro{
  margin:22px auto 0; max-width:640px; color:var(--champagne);
  font-size:clamp(14px,1.8vw,16px); line-height:1.75; opacity:.92;
}
.page-body{ max-width:var(--maxw); margin:0 auto; padding:20px var(--pad) 90px; }

/* ---------- FORM PRIMITIVES ---------- */
.ns-form{ max-width:520px; margin:30px auto 0; text-align:left; }
.ns-field{ margin-bottom:22px; }
.ns-field label{
  display:block; font-family:var(--mono); font-size:11px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--mute); margin-bottom:8px;
}
.ns-field label .req{ color:var(--accent); }
.ns-field input{
  width:100%; padding:14px 16px; font-family:var(--sans); font-size:15px;
  color:var(--champagne); background:rgba(255,255,255,.03);
  border:1px solid var(--hairline); border-radius:3px;
  transition:border-color .25s ease, box-shadow .25s ease;
}
.ns-field input::placeholder{ color:var(--mute-dk); }
.ns-field input:focus{ outline:none; border-color:var(--accent); box-shadow:var(--glow); }
.ns-form .btn-primary{ width:100%; text-align:center; margin-top:6px; }
.ns-note{
  margin-top:18px; font-family:var(--mono); font-size:11px; letter-spacing:.12em;
  color:var(--mute-dk); text-align:center; line-height:1.8;
}

/* ---------- CALL FOR ENTRY ---------- */
.cfe-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:18px; margin-top:36px; }
.cfe-card{
  border:1px solid var(--hairline); border-radius:4px; padding:26px 24px;
  background:linear-gradient(180deg, rgba(255,255,255,.025), rgba(255,255,255,0));
}
.cfe-card .lbl{
  font-family:var(--mono); font-size:11px; letter-spacing:.24em;
  color:var(--accent); text-transform:uppercase; margin-bottom:12px;
}
.cfe-card h3{
  font-family:var(--display); font-weight:800; text-transform:uppercase;
  font-size:20px; letter-spacing:.04em; color:var(--white); margin-bottom:10px;
}
.cfe-card p, .cfe-card li{ font-size:14px; line-height:1.7; color:var(--champagne); opacity:.9; }
.cfe-card ul{ list-style:none; }
.cfe-card li{ padding-left:18px; position:relative; margin-bottom:8px; }
.cfe-card li::before{ content:'✦'; position:absolute; left:0; color:var(--gold); font-size:10px; top:5px; }

.cfe-perks{ margin-top:44px; text-align:center; }
.cfe-perks .perk-row{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:18px; margin-top:22px; }
.cfe-perk{
  border:1px solid rgba(212,175,55,.35); border-radius:4px; padding:28px 24px;
  background:radial-gradient(ellipse 90% 120% at 50% 0%, rgba(212,175,55,.08), transparent 70%);
}
.cfe-perk .who{
  font-family:var(--mono); font-size:11px; letter-spacing:.24em;
  color:var(--gold-lt); text-transform:uppercase; margin-bottom:12px;
}
.cfe-perk .deal{
  font-family:var(--display); font-weight:800; text-transform:uppercase;
  font-size:clamp(18px,2.4vw,24px); color:var(--white); line-height:1.25;
}
.cfe-perk p{ margin-top:10px; font-size:13px; color:var(--champagne); opacity:.85; line-height:1.7; }

.cfe-cta{ margin-top:54px; text-align:center; }
.cfe-cta .btn-primary{ font-size:15px; padding:18px 46px; }
.cfe-cta .fine{
  margin-top:16px; font-family:var(--mono); font-size:11px;
  letter-spacing:.14em; color:var(--mute); text-transform:uppercase;
}

.cfe-steps{ margin-top:44px; }
.cfe-steps h2, .cfe-perks h2{
  font-family:var(--display); font-weight:900; text-transform:uppercase;
  font-size:clamp(22px,3.4vw,32px); letter-spacing:.03em; color:var(--white);
  text-align:center;
}
.cfe-steps ol{ max-width:640px; margin:24px auto 0; list-style:none; counter-reset:step; }
.cfe-steps ol li{
  counter-increment:step; position:relative; padding:16px 0 16px 58px;
  border-bottom:1px solid var(--hairline); font-size:14px; line-height:1.7; color:var(--champagne);
}
.cfe-steps ol li::before{
  content:counter(step,decimal-leading-zero); position:absolute; left:0; top:16px;
  font-family:var(--mono); font-size:14px; color:var(--accent); letter-spacing:.1em;
}
