/* ============================================================
   COMPREHENSIVE PLANNING PAGE STYLES
   loaded only on /how-we-help/comprehensive-planning/
   Editorial serif headings + a "connected thread" checklist
   (nodes strung on a line) instead of a generic bordered-card
   grid -- a nod to the firm's "Complete & Connected Planning"
   positioning, not just a list of checkmarks.
   ============================================================ */

.cp-serif{
  font-family:'Crimson Pro', Georgia, 'Times New Roman', serif;
}

/* ---------------- HERO ---------------- */
.cp-hero{
  position:relative;
  background:var(--navy);
  overflow:hidden;
  padding:88px 0 96px;
}
.cp-hero::before{
  content:"";
  position:absolute; top    :-30%; right:-10%;
  width:640px; height:640px; border-radius:50%;
  background:radial-gradient(circle, rgba(122,150,224,.20) 0%, rgba(122,150,224,0) 68%);
  pointer-events:none;
}
.cp-hero::after{
  content:"";
  position:absolute; left:0; right:0; bottom:0; height:1px;
  background:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.18) 50%, rgba(255,255,255,0) 100%);
}
.cp-hero .wrap{ position:relative; z-index:1; }
.cp-crumb{
  display:flex; align-items:center; gap:8px;
  font-size:12.5px; font-weight:600; color:rgba(255,255,255,.55);
  margin:0 0 22px;
}
.cp-crumb a{ color:rgba(255,255,255,.8); }
.cp-crumb a:hover{ color:#fff; }
.cp-crumb .sep{ opacity:.5; }
.cp-hero-eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-size:12.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  color:#9fb2e4; margin:0 0 22px;
}
.cp-hero-eyebrow::before{ content:""; width:22px; height:1px; background:#7f9be0; }
.cp-hero h1{
  font-weight:600; line-height:1.16; letter-spacing:-.01em;
  font-size:clamp(32px,4.4vw,52px);
  color:#fff; margin:0 0 26px; max-width:780px;
}
.cp-hero-lead{
  font-size:16.5px; line-height:1.8; color:rgba(255,255,255,.78); max-width:600px; margin:0 0 34px;
}
.cp-hero-stats{
  display:flex; flex-wrap:wrap; gap:28px 44px; margin-top:44px; padding-top:32px;
  border-top:1px solid rgba(255,255,255,.14);
}
.cp-stat b{
  font-family:'Crimson Pro', Georgia, serif;
  display:block; font-size:26px; font-weight:600; color:#fff; margin-bottom:4px;
}
.cp-stat span{ font-size:12.5px; color:rgba(255,255,255,.6); letter-spacing:.02em; }

@media (max-width:700px){
  .cp-hero{ padding:60px 0 64px; }
  .cp-hero-stats{ gap:22px 32px; margin-top:32px; padding-top:24px; }
}

/* ---------------- SERVICE ROW SECTIONS ---------------- */
.cp-service{
  padding:104px 0;
  border-bottom:1px solid var(--line);
}
.cp-service.alt{ background:var(--bar-bg); }
.cp-service .wrap{
  display:grid; grid-template-columns: 1fr 1fr; gap:72px;
  align-items:center;
  padding:0 clamp(20px,4vw,32px);
}
.cp-service-head{ position:relative; align-self:center; }
.cp-num{
  font-family:'Crimson Pro', Georgia, serif; font-style:italic;
  font-size:64px; line-height:1; font-weight:500;
  color:rgba(74,99,176,.14);
  -webkit-text-stroke:1.5px var(--blue-accent);
  margin:0 0 18px;
}
.cp-service-head .cp-kicker{
  display:inline-flex; align-items:center; gap:9px;
  font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--blue-accent); margin:0 0 16px;
}
.cp-service-head .cp-kicker::before{ content:""; width:20px; height:1px; background:var(--blue-accent); }
.cp-service-head h2{
  font-family:'Crimson Pro', Georgia, serif; font-weight:600;
  font-size:clamp(25px,2.6vw,33px); letter-spacing:-.005em;
  color:var(--navy); line-height:1.25; margin:0 0 20px;
}
.cp-service-head p{
  font-size:16px; line-height:1.85; color:var(--text-muted); margin:0 0 14px; 
}
.cp-service-head p:last-child{ margin-bottom:0; }

/* ---- checklist card grid ---- */
.cp-service-content{ display:flex; flex-direction:column; gap:24px; }
.cp-service-image{
  position:relative;
  border-radius:18px; overflow:hidden;
  aspect-ratio:16/10;
  box-shadow:0 24px 48px -12px rgba(20,30,50,.28);
  background:linear-gradient(135deg, var(--accent-soft), var(--bar-bg));
}
.cp-service-image img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .7s cubic-bezier(.2,.7,.2,1);
}

.cp-service-image:hover img{ transform:scale(1.045); }

.cp-checklist{
  display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top: 10px;
}
.cp-check-item{
     display: flex;
    align-items: center;
    gap: 14px;
    background: none;
    border: 0px solid var(--line);
    border-radius: 0px;
    padding: 4px 0px;
    /* box-shadow: 0 1px 2px rgba(20, 30, 50, .04); */
    /* transition: border-color .22s ease, transform .22s ease, box-shadow .22s ease;*/
}
.cp-check-icon{
      flex: 0 0 auto;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--blue-accent);
    display: flex;
    align-items: center;
    justify-content: center;
  
}
.cp-check-icon svg{ width:14px; height:14px; }
.cp-check-icon svg path{ stroke:#fff; }

.cp-check-item span.cp-check-label{
     font-size: 16px;
    color: var(--text-muted);
    line-height: 1.4;
}

@media (max-width:900px){
  .cp-service{ padding:64px 0; }
  .cp-service .wrap{ grid-template-columns:1fr; gap:36px; align-items:start; padding:0 clamp(20px,5vw,32px); }
  .cp-service-head p, .cp-service-head h2{ max-width:none; }
}
@media (max-width:560px){
  .cp-checklist{ grid-template-columns:1fr; }
  .cp-num{ font-size:48px; }
}

/* ---------------- ENDOWMENT REFERRAL BAND ---------------- */
.cp-endow-band{
  background:transparent;
  padding:88px 0;
}
.cp-endow-band .wrap{ padding:0 clamp(20px,4vw,32px); }
.cp-endow-inner{
  position:relative; overflow:hidden;
  background:var(--accent-soft);
  border-radius:0px;
  padding:46px 56px;
  display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap;
  /*box-shadow:0 20px 44px -18px rgba(28,45,78,.22);*/
}
.cp-endow-inner::before{
  content:"";
  position:absolute; top:-40%; right:-6%;
  width:280px; height:280px; border-radius:50%;
  background:radial-gradient(circle, rgba(74,99,176,.16) 0%, rgba(74,99,176,0) 70%);
  pointer-events:none;
}
.cp-endow-text{ position:relative; display:flex; align-items:flex-start; gap:20px; }
.cp-endow-icon{
  flex:0 0 auto; width:48px; height:48px; border-radius:12px;
  background:#fff; display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 18px rgba(28,45,78,.10);
}
.cp-endow-icon svg{ width:22px; height:22px; }
.cp-endow-inner h3{
  font-family:'Crimson Pro', Georgia, serif; font-weight:600;
  font-size:clamp(20px,2vw,25px); color:var(--navy); margin:0 0 10px;
}
.cp-endow-inner p{ font-size:14.5px; line-height:1.7; color:var(--text-muted); margin:0; max-width:460px; }
.cp-endow-inner .cta-btn{ position:relative; margin-left:0; flex:0 0 auto; }

@media (max-width:700px){
  .cp-endow-band{ padding:56px 0; }
  .cp-endow-inner{ padding:34px 26px; flex-direction:column; align-items:flex-start; }
  .cp-endow-inner .cta-btn{ width:100%; justify-content:center; }
}
