/* NEXT RISE ARC v1.1 — one full-width section per row.
   Loaded after main.css so existing components retain their original details.
   Desktop cards may remain multicolumn *inside* a single section. */
:root { --nra-section-space: clamp(78px, 7.2vw, 112px); }

/* Every homepage content section occupies its own row with generous whitespace. */
.home #main > .section {
  display: block;
  width: 100%;
  padding-block: var(--nra-section-space);
}

/* Full-length orange underline under the entire section heading region. */
.home .section-title {
  width: 100%;
  padding-bottom: 18px;
  margin-bottom: clamp(28px, 3vw, 42px);
}
.home .section-title::after {
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 3px;
  border-radius: 0;
}

/* Headings accompanied by a note or 'all articles' link get the full line too. */
.home .section-heading-row {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 12px;
  margin-bottom: clamp(25px, 3vw, 39px);
}
.home .section-heading-row > .section-title { margin: 0; }
.home .section-heading-row > .section-note,
.home .section-heading-row > .all-articles {
  align-self: flex-end;
  margin: 0;
  text-align: right;
}

/* 'Process' and 'Pricing' were formerly two half-width columns.
   They are now truly separate, full-width stacked sections. */
.home #main > .process-block,
.home #main > .pricing-block {
  display: block;
  width: 100%;
  padding-block: clamp(76px, 7vw, 108px);
  margin: 0;
}
.home #main > .process-block { margin-block: clamp(30px, 4.5vw, 65px); }
.home #main > .pricing-block { margin-bottom: clamp(30px, 4.5vw, 65px); }
.home .process-inner,
.home .pricing-inner {
  width: min(var(--page), calc(100% - 72px));
  max-width: none;
  margin-inline: auto;
  padding: 0;
}
.home .step-list { max-width: 760px; }
.home .step-list > li { padding-bottom: 24px; }
.home .step-list h3 { font-size: clamp(16px, 1.5vw, 19px); }
.home .step-list p { font-size: 14px; line-height: 1.8; }
.home .price-card,
.home .price-note,
.home .pricing-actions { max-width: 870px; }
.home .price-card { padding: clamp(24px, 3vw, 40px); }
.home .pricing-actions { flex-wrap: wrap; gap: 14px; }
.home .pricing-actions .btn { min-height: 50px; }

/* Final CTA is another independent full-width section, with consistent spacing. */
.home #main > .final-cta {
  padding-block: clamp(83px, 8vw, 122px);
}
.home .final-cta h2::after {
  display: block;
  content: '';
  height: 3px;
  width: 100%;
  background: var(--orange);
  margin-top: 18px;
}

/* More air between content elements, while keeping cards in coherent groups. */
.home .service-grid,
.home .cases-grid,
.home .goal-grid,
.home .insights-grid { row-gap: 24px; }
.home .reasons-grid { row-gap: 36px; }

@media (max-width: 980px) {
  :root { --nra-section-space: 76px; }
  .home .process-inner,
  .home .pricing-inner { width: min(var(--page), calc(100% - 48px)); }
}

@media (max-width: 700px) {
  :root { --nra-section-space: 58px; }
  .home #main > .section { padding-block: var(--nra-section-space); }
  .home .section-title { padding-bottom: 15px; margin-bottom: 27px; }
  .home .section-title::after { width: 100%; height: 3px; }
  .home .section-heading-row { gap: 12px; margin-bottom: 26px; }
  .home .section-heading-row > .section-note,
  .home .section-heading-row > .all-articles { align-self: flex-start; text-align: left; }
  .home #main > .process-block,
  .home #main > .pricing-block { padding-block: 64px; }
  .home #main > .process-block { margin-block: 28px; }
  .home #main > .pricing-block { margin-bottom: 28px; }
  .home .process-inner,
  .home .pricing-inner { width: calc(100% - 36px); max-width: none; padding: 0; }
  .home .price-card { padding: 24px 20px; }
  .home .pricing-actions { flex-direction: column; }
  .home .step-list > li { padding-bottom: 23px; }
  .home #main > .final-cta { padding-block: 76px; }
  .home .service-grid,
  .home .cases-grid,
  .home .goal-grid,
  .home .insights-grid { row-gap: 17px; }
  .home .reasons-grid { row-gap: 29px; }
}


/* v1.15.1: homepage section 02 now combines concerns + goal-card presentation.
   Keep a single full-width section, with six image cards in a 3x2 desktop grid. */
.home .pain-points.goals { display:block; padding-block:var(--nra-section-space); }
.home .pain-points.goals .nra-merge-anchor { display:block; height:0; scroll-margin-top:100px; }
.home .pain-points.goals .section-title { margin-bottom:16px; }
.home .merged-concern-intro { font-size:15px; line-height:1.85; margin:0 0 28px; color:var(--ink); }
.home .merged-concern-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.home .merged-concern-card { min-height:186px; }
.home .merged-concern-card .goal-thumb { min-height:142px; }
.home .merged-concern-card .goal-thumb img { height:100%; object-fit:cover; }
.home .merged-concern-card .goal-text h3 { font-size:clamp(14px,1.25vw,16px); line-height:1.55; }
.home .merged-concern-card .goal-text p { font-size:12px; line-height:1.6; padding-right:10px; }
.home .merged-concern-card:focus-visible { outline:3px solid var(--navy); outline-offset:4px; border-color:var(--orange); }
@media(max-width:980px) {
  .home .merged-concern-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
  .home .merged-concern-card { min-height:0; }
  .home .merged-concern-card .goal-thumb { height:155px; min-height:0; }
}
@media(max-width:700px) {
  .home .merged-concern-intro { font-size:13px; margin-bottom:20px; }
  .home .merged-concern-grid { grid-template-columns:1fr; gap:14px; }
  .home .merged-concern-card { min-height:124px; }
  .home .merged-concern-card .goal-thumb { width:35%; height:111px; min-height:0; }
  .home .merged-concern-card .goal-text h3 { font-size:15px; }
  .home .merged-concern-card .goal-text p { font-size:11px; }
}
