/* ===========================================================
   Partner page styles. Loaded only by partners.html, on top of styles.css.
   Uses the same tokens (--ink, --brass, --cream, etc.).
   =========================================================== */

/* ---------- hero + illustration ---------- */
.p-hero{
  padding:72px 0 0;
  background:
    radial-gradient(circle at 85% 0%, rgba(221,137,33,0.10), transparent 55%),
    var(--cream);
  overflow:hidden;
}
.p-hero .copy{ max-width:700px; }
.p-hero h1{ font-size:clamp(32px, 4.4vw, 50px); margin-bottom:20px; }
.p-hero h1 em{ font-style:normal; color:var(--brass); }
.p-hero p.lead{ font-size:18px; max-width:600px; margin-bottom:28px; }
.p-hero .hero-trust{ margin-bottom:0; }

.scene{
  margin:48px auto 0;
  max-width:760px;
  position:relative;
  border-radius:8px 8px 0 0;
  overflow:hidden;
  box-shadow:var(--shadow-soft);
  border:1px solid var(--line);
  border-bottom:none;
  background:#F2ECDD;
}
.scene img{ width:100%; height:auto; aspect-ratio:696/297; object-fit:cover; }
.scene-caption{
  max-width:760px;
  margin:0 auto;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--slate-soft);
  text-align:center;
  padding:14px 16px;
  background:var(--cream-deep);
  border:1px solid var(--line);
  border-top:none;
}
@media (max-width:720px){
  .p-hero{ padding-top:48px; }
  .p-hero p.lead{ font-size:16.5px; }
  .scene{ margin-top:32px; }
}

/* ---------- section helpers ---------- */
.band-stone{ background:var(--stone); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.band-deep{ background:var(--cream-deep); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }

/* ---------- who we help ---------- */
.fit-grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:24px;
  margin-top:44px;
}
@media (max-width:820px){ .fit-grid{ grid-template-columns:1fr; } }
.fit-card{
  background:var(--white);
  border:1px solid var(--line);
  padding:32px 30px;
}
.fit-card.yes{ border-color:var(--brass); box-shadow:var(--shadow-soft); position:relative; }
.fit-card.yes::before{
  content:""; position:absolute; top:-1px; left:-1px; right:-1px; height:4px; background:var(--coral);
}
.fit-card .tag{
  font-family:var(--font-mono);
  font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--brass); display:block; margin-bottom:12px;
}
.fit-card h3{ font-size:22px; margin-bottom:16px; }
.fit-card ul{ list-style:none; margin:0; padding:0; }
.fit-card li{
  display:flex; gap:12px; align-items:flex-start;
  padding:10px 0; border-top:1px solid var(--line);
  font-size:14.5px; color:var(--slate);
}
.fit-card li:first-child{ border-top:none; }
.fit-card li .mk{ font-family:var(--font-mono); font-weight:700; color:var(--brass); flex:none; width:16px; }
.fit-card.soft li .mk{ color:#B9AE96; }
.fit-card.soft li{ color:var(--slate-soft); }
.fit-card .foot{ font-size:13.5px; color:var(--slate-soft); margin:16px 0 0; padding-top:14px; border-top:1px solid var(--line); }

/* ---------- partner types ---------- */
.partner-pills{ display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-top:32px; }
.partner-pills span{
  font-family:var(--font-mono);
  font-size:12px; letter-spacing:.04em; text-transform:uppercase;
  color:var(--harbor); background:var(--white);
  border:1px solid var(--line); border-radius:20px; padding:9px 16px;
}
.partner-note{ text-align:center; font-size:14.5px; color:var(--slate-soft); max-width:560px; margin:22px auto 0; }

/* ---------- how it works (rising steps, like building blocks) ---------- */
.steps{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:22px;
  margin-top:40px;
  align-items:stretch;
}
@media (max-width:980px){ .steps{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .steps{ grid-template-columns:1fr; } }
.step{
  background:var(--white);
  border:1px solid var(--line);
  padding:30px 24px 28px;
  position:relative;
}
.step:nth-child(1){ margin-top:72px; }
.step:nth-child(2){ margin-top:48px; }
.step:nth-child(3){ margin-top:24px; }
.step:nth-child(4){ margin-top:0; border-color:var(--brass); box-shadow:var(--shadow); }
.step:nth-child(4)::before{
  content:""; position:absolute; top:-1px; left:-1px; right:-1px; height:4px; background:var(--coral);
}
@media (max-width:980px){ .step:nth-child(n){ margin-top:0; } }
.step .num{
  font-family:var(--font-mono);
  font-size:12px; letter-spacing:.1em; color:var(--brass);
  display:block; margin-bottom:12px;
}
.step h3{ font-size:20px; margin-bottom:10px; }
.step p{ font-size:14.5px; color:var(--slate-soft); margin:0; }

/* ---------- promises ---------- */
.promise-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:2px;
  background:rgba(250,246,236,0.14);
  margin-top:40px; border-radius:2px; overflow:hidden;
}
@media (max-width:820px){ .promise-grid{ grid-template-columns:1fr; } }
.promise{ background:var(--ink); padding:32px 28px; }
.promise .q{ font-family:var(--font-display); font-size:20px; color:var(--cream); margin-bottom:10px; line-height:1.25; }
.promise p{ color:rgba(250,246,236,0.68); font-size:14.5px; margin:0; }

/* ---------- about us (compact) ---------- */
.about-mini{
  display:grid; grid-template-columns:.8fr 1.2fr; gap:56px; align-items:center;
}
@media (max-width:860px){ .about-mini{ grid-template-columns:1fr; gap:32px; } }
.about-mini .photo{
  aspect-ratio:4/5; border:1px solid var(--line); overflow:hidden; position:relative; background:var(--stone);
  max-width:420px;
}
.about-mini .photo img{ width:100%; height:100%; object-fit:cover; }
.about-mini .photo::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:6px; background:var(--brass);
}
.mini-services{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:24px 0 8px; }
@media (max-width:620px){ .mini-services{ grid-template-columns:1fr; } }
.mini-services div{ background:var(--white); border:1px solid var(--line); padding:16px 16px 14px; }
.mini-services div:nth-child(2){ border-color:var(--brass); }
.mini-services .tier{ font-family:var(--font-mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--brass); display:block; margin-bottom:4px; }
.mini-services strong{ font-family:var(--font-display); font-size:17px; color:var(--ink); display:block; margin-bottom:4px; }
.mini-services span.d{ font-size:13px; color:var(--slate-soft); line-height:1.45; display:block; }

/* ---------- Google review band ---------- */
.review-band{
  background:linear-gradient(120deg, var(--ink), var(--harbor));
  color:var(--cream);
}
.review-grid{ display:grid; grid-template-columns:1.2fr .8fr; gap:48px; align-items:center; }
@media (max-width:860px){ .review-grid{ grid-template-columns:1fr; gap:28px; } }
.review-band h2{ color:var(--cream); }
.review-band p{ color:rgba(250,246,236,0.78); max-width:520px; }
.stars{ display:flex; gap:6px; margin-bottom:18px; }
.stars svg{ width:30px; height:30px; fill:var(--brass-light); }
.review-card{
  background:rgba(250,246,236,0.07);
  border:1px solid rgba(250,246,236,0.2);
  border-radius:6px;
  padding:28px 28px 26px;
}
.review-card .tag{
  font-family:var(--font-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--brass-light); display:block; margin-bottom:12px;
}
.review-card ol{ list-style:none; margin:0 0 22px; padding:0; counter-reset:r; }
.review-card li{
  counter-increment:r; display:flex; gap:12px; padding:9px 0;
  border-top:1px solid rgba(250,246,236,0.14);
  font-size:14.5px; color:rgba(250,246,236,0.85);
}
.review-card li:first-child{ border-top:none; }
.review-card li::before{
  content:"0" counter(r); font-family:var(--font-mono); font-size:12px; color:var(--brass-light); padding-top:2px; flex:none;
}
.review-card .btn{ width:100%; justify-content:center; }
.review-sub{ font-size:12.5px; margin:14px 0 0; color:rgba(250,246,236,0.6); text-align:center; }
.review-sub a{ color:var(--brass-light); border-bottom:1px solid rgba(232,169,79,0.5); }

/* ---------- referral form (kept compact, secondary) ---------- */
.ref-wrap{
  max-width:880px; margin:0 auto;
  display:grid; grid-template-columns:.8fr 1.2fr; gap:40px; align-items:flex-start;
}
@media (max-width:860px){ .ref-wrap{ grid-template-columns:1fr; gap:28px; } }
.ref-wrap .side h2{ font-size:26px; }
.ref-wrap .side p{ font-size:15px; color:var(--slate-soft); }
.ref-wrap .side .alt{ margin-top:22px; padding-top:18px; border-top:1px solid var(--line); font-size:14px; }
.ref-wrap .side .alt a{ color:var(--brass); text-decoration:underline; text-underline-offset:3px; }
.ref-form .head{ background:var(--ink); padding:20px 28px 18px; }
.ref-form .head .bar{ height:4px; width:48px; background:var(--coral); border-radius:2px; margin-bottom:12px; }
.ref-form .head span{ font-family:var(--font-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--brass-light); }
.ref-form form{ padding:28px; }
.ref-form fieldset{ border:none; margin:0 0 6px; padding:0; }
.ref-form legend{
  font-family:var(--font-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--brass); padding:0; margin-bottom:12px;
}
.ref-form .divider{ border-top:1px solid var(--line); margin:10px 0 22px; }
.ref-form .opt{ font-weight:400; color:var(--slate-soft); }
.ref-form .check{ display:flex; gap:10px; align-items:flex-start; font-weight:400; font-size:13.5px; cursor:pointer; color:var(--slate); }
.ref-form .check input{ width:auto; margin-top:3px; }

/* ---------- partner FAQ spacing ---------- */
.p-faq .faq-list{ margin-top:36px; }

/* ---------- header: single link back to the main site ---------- */
.back-link{
  font-family:var(--font-mono);
  font-size:12.5px;
  letter-spacing:.05em;
  text-transform:uppercase;
  font-weight:500;
  color:var(--ink);
  border:1.5px solid var(--ink);
  border-radius:var(--radius);
  padding:10px 18px;
  white-space:nowrap;
  transition:all .18s ease;
}
.back-link:hover{ background:var(--ink); color:var(--cream); }
.back-link .short{ display:none; }
@media (max-width:760px){
  .back-link .full{ display:none; }
  .back-link .short{ display:inline; }
  .back-link{ padding:8px 12px; font-size:11.5px; letter-spacing:.03em; }
}

/* ---------- simple footer (no menu) ---------- */
.footer-simple{ grid-template-columns:1fr; }
.footer-simple .footer-note{ max-width:480px; }
