/*
 * INC Vision design tokens + base styling.
 * v2.0.0 — INC branding centralised as CSS custom properties (was hard-coded hex across the 1.2.x lineage).
 */
:root {
  /* INC brand palette — fully monochrome per the brand guide (black/white only).
     The legacy --inc-accent token is retained but set to black so every plugin that
     references it inherits the monochrome system automatically. */
  --inc-ink:       #000000;   /* INC black — logo, headings */
  --inc-text:      #1a1a1a;
  --inc-muted:     #5a5a5a;
  --inc-muted-2:   #777777;
  --inc-accent:    #000000;    /* full monochrome — brand is black/white only */
  --inc-accent-ink:#333333;
  --inc-surface:   #f4f4f4;
  --inc-surface-2: #ebebeb;
  --inc-surface-3: #e0e0e0;
  --inc-line:      #e0e0e0;
  --inc-white:     #ffffff;

  /* Type — DIN per the INC brand guide ("honest" + "bold"), Oswald as the
     closest free fallback so the condensed-grotesque character holds everywhere. */
  --inc-font: "DIN Pro", "DINPro", "DIN Next", "DIN", "Oswald", "Archivo Narrow", "Helvetica Neue", Arial, sans-serif;

  --inc-radius: 10px;
  --inc-gap:    clamp(1rem, 2vw, 2rem);
}

/* Apply the brand typeface site-wide. */
body, button, input, select, textarea { font-family: var(--inc-font); }

/* DIN/Oswald headings: bold, slightly tightened, with the brand's confident tone.
   Section headings and the logo lean into INC black + uppercase for "bold". */
h1, h2, h3, .inc-hero-title, .inc-footer-title {
  font-family: var(--inc-font);
  color: var(--inc-ink);
  letter-spacing: 0.01em;
}
.inc-eyebrow { text-transform: uppercase; letter-spacing: 0.16em; }
.home .wp-block-cover.inc-hero,
.page-planting-opportunities .wp-block-cover.inc-hero { margin-top: 0; }
a { color: var(--inc-ink); text-decoration: underline; text-underline-offset: 2px; }
a:hover { color: var(--inc-accent-ink); }
.inc-card { background: var(--inc-white); border: 1px solid var(--inc-line); border-radius: var(--inc-radius); padding: var(--inc-gap); }
.inc-footer { background: var(--inc-ink); color: var(--inc-line); }
.inc-footer a { color: var(--inc-line); }
.inc-footer a:hover { color: var(--inc-white); }
.inc-footer-title { color: var(--inc-white); }

/* ---- Forms (cp-core: contact, and later newsletter/apply) — added v2.0.1 ---- */
.cp-form { max-width: 640px; display: grid; gap: 1rem; }
.cp-field { display: grid; gap: .35rem; }
.cp-field label { font-weight: 600; color: var(--inc-text); }
.cp-field input, .cp-field textarea, .cp-field select {
  width: 100%; padding: .65rem .75rem; font: inherit; background: var(--inc-white);
  border: 1px solid var(--inc-line); border-radius: var(--inc-radius);
}
.cp-field input:focus, .cp-field textarea:focus { outline: 2px solid var(--inc-accent); border-color: var(--inc-accent); }
.cp-field textarea { min-height: 160px; resize: vertical; }
.cp-consent { grid-auto-flow: column; justify-content: start; align-items: center; gap: .5rem; }
.cp-hp { position: absolute !important; left: -9999px !important; height: 0; overflow: hidden; }
.cp-form button {
  background: var(--inc-accent); color: #fff; border: 0; cursor: pointer;
  padding: .7rem 1.4rem; font: inherit; border-radius: var(--inc-radius);
}
.cp-form button:hover { background: var(--inc-accent-ink); }
.cp-notice { padding: .85rem 1rem; border-radius: var(--inc-radius); margin-bottom: 1rem; }
.cp-notice-ok { background: #f0f0f0; color: var(--inc-ink); border: 1px solid #d6d6d6; }
.cp-notice-err { background: #fbe9e9; color: #8a2b2b; border: 1px solid #f0c9c9; }

/* ---- Public page patterns (hero, sections, stage cards) — added v2.0.4 ---- */
.inc-hero { color: var(--inc-white); text-align: center; }
.inc-hero .wp-block-cover__inner-container { max-width: 760px; margin: 0 auto; }
.inc-eyebrow {
  text-transform: uppercase; letter-spacing: .14em; font-size: .8rem;
  font-weight: 700; color: var(--inc-accent); margin: 0 0 .5rem;
}
.inc-hero-title { font-size: clamp(2rem, 5vw, 3.25rem); line-height: 1.08; margin: 0 0 .75rem; color: var(--inc-white); }
.inc-hero-lede { font-size: 1.15rem; color: #e8e8e8; margin: 0 auto 1.5rem; max-width: 48ch; }

.inc-section { }
.inc-section-alt { background: var(--inc-surface); }
.inc-lede { font-size: 1.2rem; line-height: 1.6; max-width: 60ch; }

.inc-stage-grid { gap: 1.25rem; margin-top: 2rem; }
.inc-stage { height: 100%; }
.inc-stage-num {
  font-size: 2rem; font-weight: 800; color: var(--inc-accent); margin: 0 0 .25rem; line-height: 1;
}
.inc-stage h3 { margin: .25rem 0 .5rem; font-size: 1.15rem; }
.inc-card-link a { font-weight: 600; text-decoration: none; }

/* Outline button variant on dark + light */
.wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent; border: 2px solid var(--inc-accent); color: var(--inc-accent);
}
.inc-hero .wp-block-button.is-style-outline .wp-block-button__link { border-color: #fff; color: #fff; }
.wp-block-button.is-style-fill .wp-block-button__link { background: var(--inc-accent); color: #fff; }
.wp-block-button.is-style-fill .wp-block-button__link:hover { background: var(--inc-accent-ink); }


/* ---- Brand alignment v2.1.0 ---- */
/* Hero sits on INC black; title reverts to white over the dark cover. */
.inc-hero-title { color: var(--inc-white); text-transform: uppercase; font-weight: 700; }
.inc-eyebrow { color: var(--inc-white); opacity: .85; }
/* Buttons: bold, uppercase, squared — matches the brand's confident "ACTION" tone. */
.wp-block-button__link, .cp-btn, .cp-form button {
  text-transform: uppercase; letter-spacing: .04em; font-weight: 600;
}
/* Footer stays INC black (signature on dark = white), per signature rules. */
.inc-footer { background: var(--inc-ink); }

/* ============================================================
   NetworkPlus-style monochrome layout  (v2.2.0)
   Matches the INC-family look: giant condensed uppercase
   headlines, squared buttons, stats strip with a BORN FOR MORE
   watermark, numbered BOLD/ACTION/DEPENDABLE columns, hairline
   pathway cards. Fully monochrome.
   ============================================================ */

/* Hero — big mixed-weight uppercase headline on black */
.inc-hero { text-align: left; }
.inc-hero .wp-block-cover__inner-container { max-width: 1100px; margin-inline: auto; width: 100%; }
.inc-hero-title {
  font-family: var(--inc-font);
  text-transform: uppercase;
  font-weight: 700;
  font-size: clamp(2.4rem, 7vw, 5rem);
  line-height: 0.98;
  letter-spacing: -0.01em;
  color: var(--inc-white);
  margin: 0 0 1rem;
}
.inc-hero-lede { max-width: 56ch; font-size: clamp(1rem,1.4vw,1.2rem); color: #e6e6e6; font-weight: 300; }
.inc-eyebrow {
  text-transform: uppercase; letter-spacing: 0.22em; font-size: 0.72rem;
  font-weight: 600; color: var(--inc-muted); margin: 0 0 0.75rem;
}
.inc-hero .inc-eyebrow { color: #bdbdbd; }

/* Squared buttons (no radius), monochrome fill + outline */
.wp-block-button__link, .cp-btn, .cp-form button {
  border-radius: 0 !important;
  text-transform: uppercase; letter-spacing: 0.04em; font-weight: 600;
  padding: 0.9rem 1.6rem !important;
}
.wp-block-button.is-style-fill .wp-block-button__link,
.inc-hero .wp-block-button .wp-block-button__link {
  background: var(--inc-ink); color: var(--inc-white); border: 2px solid var(--inc-ink);
}
.inc-hero .wp-block-button .wp-block-button__link { background: var(--inc-white); color: var(--inc-ink); border-color: var(--inc-white); }
.wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent !important; border: 2px solid currentColor !important;
}
.inc-hero .wp-block-button.is-style-outline .wp-block-button__link { color: var(--inc-white) !important; }

/* Big two-line section headings */
.inc-big-heading {
  font-family: var(--inc-font);
  text-transform: uppercase; font-weight: 700;
  font-size: clamp(1.8rem, 4.5vw, 3.2rem); line-height: 1.0;
  letter-spacing: -0.01em; color: var(--inc-ink); margin: 0 0 1rem;
}

/* Stats strip with BORN FOR MORE watermark */
.inc-stats-wrap { position: relative; overflow: hidden; background: var(--inc-white); padding: 2.5rem 1.5rem; }
.inc-stats-grid { max-width: 1100px; margin-inline: auto; position: relative; z-index: 1; gap: 1.5rem; }
.inc-stat-num { font-family: var(--inc-font); font-weight: 700; font-size: clamp(1.8rem,4vw,2.6rem); color: var(--inc-ink); margin: 0; line-height: 1; }
.inc-stat-label { text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.68rem; color: var(--inc-muted); margin: 0.35rem 0 0; }
.inc-watermark {
  position: absolute; right: 2%; top: 50%; transform: translateY(-50%);
  font-family: var(--inc-font); font-weight: 800; text-transform: uppercase;
  font-size: clamp(3rem, 11vw, 9rem); line-height: 0.82; text-align: right;
  color: #000; opacity: 0.04; pointer-events: none; z-index: 0; letter-spacing: -0.02em;
}

/* BOLD / ACTION / DEPENDABLE numbered columns */
.inc-values-grid { max-width: 1100px; margin-inline: auto; gap: 2rem; }
.inc-value-num { font-family: var(--inc-font); font-weight: 700; font-size: 0.9rem; color: var(--inc-muted); margin: 0 0 0.5rem; letter-spacing: 0.1em; }
.inc-value-title { text-transform: uppercase; font-weight: 700; font-size: 1.5rem; margin: 0 0 0.5rem; letter-spacing: -0.01em; }
.inc-value p { color: var(--inc-muted); font-size: 0.95rem; line-height: 1.55; }

/* Pathway stage cards as hairline-separated blocks */
.inc-stage-grid { max-width: 1100px; margin-inline: auto; gap: 0; }
.inc-stage { border-top: 2px solid var(--inc-ink); border-radius: 0; background: transparent; padding: 1.25rem 1.25rem 1.5rem 0; height: 100%; }
.inc-stage-num { font-family: var(--inc-font); font-weight: 700; font-size: 2.4rem; line-height: 1; color: var(--inc-ink); margin: 0 0 0.5rem; }
.inc-stage h3 { text-transform: uppercase; font-size: 1.05rem; font-weight: 700; margin: 0 0 0.5rem; letter-spacing: -0.005em; }
.inc-stage p { color: var(--inc-muted); font-size: 0.9rem; line-height: 1.5; }
.inc-card-link a { text-transform: uppercase; font-size: 0.72rem; letter-spacing: 0.08em; font-weight: 600; }

/* Section rhythm: alternating white / soft grey bands */
.inc-section { padding: clamp(2.5rem,6vw,4.5rem) 1.5rem; }
.inc-section > .wp-block-group, .inc-section > * { max-width: 1100px; margin-inline: auto; }
.inc-section-alt { background: var(--inc-surface); }

@media (max-width: 781px) {
  .inc-hero-title { font-size: clamp(2.2rem, 11vw, 3rem); }
  .inc-watermark { opacity: 0.03; }
}

/* ============================================================
   Header / primary nav  (v2.3.0)
   Single clean row: wordmark left, nav right. Apply + Portal
   render as squared buttons. Replaces TT5's auto page-list nav.
   ============================================================ */
.inc-header {
  background: var(--inc-white);
  border-bottom: 1px solid var(--inc-line);
  padding: 0.85rem 1.5rem;
  position: sticky; top: 0; z-index: 100;
}
.inc-header-inner { max-width: 1100px; margin-inline: auto; width: 100%; gap: 1rem; }
.inc-wordmark a, .inc-wordmark {
  font-family: var(--inc-font);
  font-weight: 700; text-transform: uppercase; letter-spacing: -0.01em;
  font-size: 1.15rem; color: var(--inc-ink); text-decoration: none; line-height: 1;
}
.inc-nav { gap: 0.25rem 1.25rem; align-items: center; }
.inc-nav .inc-nav-item { margin: 0; }
.inc-nav .inc-nav-item a {
  font-family: var(--inc-font);
  text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.74rem;
  font-weight: 600; color: var(--inc-ink); text-decoration: none; white-space: nowrap;
}
.inc-nav .inc-nav-item a:hover { color: var(--inc-muted); }
/* Apply = solid square button; Portal = outline square button */
.inc-nav .inc-nav-cta a {
  background: var(--inc-ink); color: var(--inc-white); padding: 0.5rem 1rem;
}
.inc-nav .inc-nav-cta a:hover { background: #333; color: var(--inc-white); }
.inc-nav .inc-nav-portal a {
  border: 2px solid var(--inc-ink); padding: calc(0.5rem - 2px) calc(1rem - 2px);
}
.inc-nav .inc-nav-portal a:hover { color: var(--inc-ink); background: var(--inc-surface); }

@media (max-width: 781px) {
  .inc-header-inner { justify-content: center; }
  .inc-nav { justify-content: center; }
  .inc-nav .inc-nav-item a { font-size: 0.7rem; letter-spacing: 0.05em; }
}

/* ---- INC logo (added v2.3.1) ---- */
.inc-logo { display:block; height:42px; width:auto; }
.inc-logo-link { display:inline-flex; align-items:center; text-decoration:none; }
.inc-logo-footer { height:52px; margin-bottom:0.75rem; }
@media (max-width:781px){ .inc-logo{ height:36px; } }

/* ---- Full-width portal + footer (added v2.4.0) ----
   The parent TT5 theme constrains content to contentSize (645px). That cap is
   what cramped the coach portal menu/tables and squeezed the footer columns
   (so "Planting opportunities" wrapped). These rules lift the cap for the two
   areas the rebuild wants full-width, with a fluid page gutter so content never
   touches the screen edge. Everything else stays at its existing width. */

/* Footer: let the four columns use the full page width instead of 645px. */
.inc-footer.wp-block-group { padding-inline: clamp(1rem, 4vw, 3rem); }
.inc-footer.wp-block-group > * { max-width: none; }

/* Portal: the portal page only (scoped by :has(.cp-portal-app)) — free both the
   post-content wrapper and the portal app itself from the inherited content cap.
   No other page is affected. The portal's own gutter lives in cp-portal.css. */
.wp-block-post-content:has(.cp-portal-app) { max-width: none; }
.wp-block-post-content:has(.cp-portal-app) > .cp-portal-app { max-width: none; }

/* ============================================================
   PORTAL — INC Education design language  (v2.5.0)
   Ported from the inc-education portal Ken approved: monochrome,
   squared, hairline-bordered grids with black hover, condensed
   uppercase display headings, dark app chrome. Scoped entirely
   to .cp-portal-app so the public site is untouched. Targets the
   existing cp-portal / cp-coaching / cp-tools classes (no markup
   churn in those plugins) — the shell sidebar lives in cp-portal.
   ============================================================ */
.cp-portal-app {
  --pp-ink:#0a0a0a; --pp-soft:#5a5a5a; --pp-faint:#9b9b9b;
  --pp-paper:#ffffff; --pp-paper-soft:#f5f4f1; --pp-paper-deep:#ebe9e3;
  --pp-rule:#dcdad3; --pp-rule-soft:#ededed;
  color:var(--pp-ink);
}
/* Everything in the portal is squared. */
.cp-portal-app .cp-panel,
.cp-portal-app .cp-card,
.cp-portal-app .cp-list li,
.cp-portal-app .cp-dash-card,
.cp-portal-app .cp-dash-tile,
.cp-portal-app .cp-planter-card,
.cp-portal-app .cp-planter-search,
.cp-portal-app .cp-360-comp,
.cp-portal-app .cp-360-legend,
.cp-portal-app .cp-qa-fields,
.cp-portal-app .cp-disclosure,
.cp-portal-app .cp-field input,
.cp-portal-app .cp-field select,
.cp-portal-app .cp-field textarea,
.cp-portal-app .cp-btn,
.cp-portal-app form button,
.cp-portal-app input[type="submit"],
.cp-portal-app .cp-btn-soft { border-radius:0 !important; }

/* Display headings: condensed uppercase, INC black. */
.cp-portal-app .cp-panel > h2:first-child,
.cp-portal-app .cp-dash-hi,
.cp-portal-app .cp-rec-name,
.cp-portal-app .cp-loc-heading {
  font-family:var(--inc-font); font-weight:700; text-transform:uppercase;
  letter-spacing:-0.01em; line-height:1.02; color:var(--pp-ink);
}
.cp-portal-app .cp-dash-hi { font-size:clamp(1.9rem,4vw,2.7rem); border-bottom:2px solid var(--pp-ink); padding-bottom:.5rem; margin:0 0 .15rem; }
.cp-portal-app .cp-dash-lede { color:var(--pp-soft); margin:.55rem 0 1.6rem; font-size:1.02rem; }

/* Section sub-heads → numbered/ruled like the reference. */
.cp-portal-app .cp-dash-h,
.cp-portal-app .cp-subhead {
  font-family:var(--inc-font); text-transform:uppercase; font-weight:700;
  letter-spacing:.02em; color:var(--pp-ink); font-size:1.05rem;
  display:flex; align-items:center; gap:.9rem; margin:1.8rem 0 .9rem;
}
.cp-portal-app .cp-dash-h::after,
.cp-portal-app .cp-subhead::after { content:""; flex:1; height:2px; background:var(--pp-ink); }

/* Quick-action cards → bordered grid, black hover. */
.cp-portal-app .cp-dash-actions {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:0; border:1px solid var(--pp-ink); margin:0 0 1.9rem;
}
.cp-portal-app .cp-dash-card {
  border:0 !important; border-right:1px solid var(--pp-rule) !important;
  background:var(--pp-paper) !important; padding:1.15rem 1.2rem !important;
  transition:.16s; min-height:100%;
}
.cp-portal-app .cp-dash-card:hover { background:var(--pp-ink) !important; }
.cp-portal-app .cp-dash-card:hover .cp-dash-card-t { color:#fff; }
.cp-portal-app .cp-dash-card:hover .cp-dash-card-d { color:rgba(255,255,255,.65); }
.cp-portal-app .cp-dash-card-t { font-family:var(--inc-font); text-transform:uppercase; font-weight:700; letter-spacing:-0.01em; color:var(--pp-ink); font-size:1rem; }
.cp-portal-app .cp-dash-card-d { color:var(--pp-soft); font-size:.83rem; line-height:1.45; }

/* Stat tiles → bordered metric strip. */
.cp-portal-app .cp-dash-tiles {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:0; border:1px solid var(--pp-ink); margin:0 0 .5rem;
}
.cp-portal-app .cp-dash-tile {
  border:0 !important; border-right:1px solid var(--pp-rule) !important;
  background:var(--pp-paper); padding:1.1rem 1.25rem !important;
}
.cp-portal-app .cp-dash-tiles > .cp-dash-tile:last-child { border-right:0 !important; }
.cp-portal-app .cp-dash-num { font-family:var(--inc-font); font-weight:800; font-size:2.4rem; line-height:1; letter-spacing:-0.02em; color:var(--pp-ink); }
.cp-portal-app .cp-dash-lbl { text-transform:uppercase; letter-spacing:.12em; font-size:.64rem; color:var(--pp-soft); font-weight:700; }

/* Line-of-sight: ruled coach headers, square tool chips. */
.cp-portal-app .cp-los-coach-head { border-bottom:2px solid var(--pp-ink); }
.cp-portal-app .cp-los-coach-name { font-family:var(--inc-font); text-transform:uppercase; letter-spacing:-0.005em; }
.cp-portal-app .cp-los-tool { border-radius:0; background:var(--pp-paper-soft); border-color:var(--pp-rule); text-transform:uppercase; letter-spacing:.04em; font-size:.66rem; font-weight:600; }
.cp-portal-app .cp-los-tool.is-done { background:var(--pp-ink); border-color:var(--pp-ink); }

/* Sub-menu (Planters / Practice) → underline tab bar on a black rule. */
.cp-portal-app .cp-subnav { border-bottom:2px solid var(--pp-ink); gap:.1rem 1.5rem; }
.cp-portal-app .cp-subnav-item { text-transform:uppercase; letter-spacing:.03em; font-weight:700; font-size:.8rem; border-bottom-width:3px; padding:.6rem .15rem .7rem; }
.cp-portal-app .cp-subnav-item.is-active { border-bottom-color:var(--pp-ink); }

/* Tables → dark header, hairline rows. */
.cp-portal-app .cp-table { border:1px solid var(--pp-ink); }
.cp-portal-app .cp-table th {
  background:var(--pp-ink); color:#fff; text-transform:uppercase;
  letter-spacing:.1em; font-size:.62rem; padding:.7rem .9rem; border-bottom:0;
}
.cp-portal-app .cp-table td { padding:.7rem .9rem; border-bottom:1px solid var(--pp-rule); }
.cp-portal-app .cp-table tbody tr:hover { background:var(--pp-paper-soft); }

/* Archived lists (Archive tab) → de-emphasised, headerless muted tables. */
.cp-portal-app .cp-table-muted { opacity:.7; }
.cp-portal-app .cp-table-muted td { color:var(--pp-soft); }
.cp-portal-app .cp-table-muted tbody tr:hover { background:transparent; }

/* Archive: permanent-delete confirm (cp-coaching 1.20.0) → square hairline
   input matching the monochrome form language; row un-mutes on hover so the
   irreversible control reads at full contrast while being used. */
.cp-portal-app .cp-del-confirm input[type="text"] {
  border:1px solid var(--pp-rule); border-radius:0; background:#fff;
  color:var(--pp-ink); font-size:.72rem; letter-spacing:.02em; padding:.3rem .55rem;
}
.cp-portal-app .cp-del-confirm input[type="text"]:focus {
  outline:none; border-color:var(--pp-ink);
}
.cp-portal-app .cp-table-muted tr:hover .cp-del-confirm { opacity:1; }

/* Chips / tags → squared; solid = black, soft = paper-deep. */
.cp-portal-app .cp-chip { border-radius:0; background:var(--pp-ink); text-transform:uppercase; letter-spacing:.04em; font-weight:700; font-size:.62rem; }
.cp-portal-app .cp-chip-soft { background:var(--pp-paper-deep); color:var(--pp-ink); }

/* Planter cards / record cards → square, hairline, black-hover. */
.cp-portal-app .cp-planter-card { transition:.16s; }
.cp-portal-app .cp-planter-card:hover { border-color:var(--pp-ink); box-shadow:none; background:var(--pp-paper-soft); }
.cp-portal-app .cp-planter-name,
.cp-portal-app .cp-card .cp-card-title { font-family:var(--inc-font); text-transform:uppercase; letter-spacing:-0.005em; }
.cp-portal-app .cp-rec-h,
.cp-portal-app .cp-los-coach-meta,
.cp-portal-app .cp-dash-card-d { font-variant-numeric:tabular-nums; }

/* Buttons inside the portal: primary = solid black, hover inverts. */
.cp-portal-app .cp-btn,
.cp-portal-app form button,
.cp-portal-app input[type="submit"] {
  text-transform:uppercase; letter-spacing:.03em; font-weight:700;
  background:var(--pp-ink); border:1.5px solid var(--pp-ink); color:#fff;
}
.cp-portal-app .cp-btn:hover,
.cp-portal-app form button:hover,
.cp-portal-app input[type="submit"]:hover { background:#fff; color:var(--pp-ink); border-color:var(--pp-ink); }
.cp-portal-app .cp-btn-soft { background:#fff; color:var(--pp-ink); border:1.5px solid var(--pp-ink); }
.cp-portal-app .cp-btn-soft:hover { background:var(--pp-ink); color:#fff; }

/* Form fields → squared, black focus ring. */
.cp-portal-app .cp-field input:focus,
.cp-portal-app .cp-field select:focus,
.cp-portal-app .cp-field textarea:focus { outline:none; border-color:var(--pp-ink); box-shadow:0 0 0 2px rgba(0,0,0,.12); }

/* Tools (360 / intake / church-planting plan) → squared comps + chips. */
.cp-portal-app .cp-360-comp legend,
.cp-portal-app .cp-qa-fields legend { font-family:var(--inc-font); text-transform:uppercase; letter-spacing:.01em; }
.cp-portal-app .cp-360-opt { border-radius:0; }
.cp-portal-app .cp-360-opt input { accent-color:var(--pp-ink); }
.cp-portal-app .cp-cp-pane-head { color:var(--pp-ink); }

/* ============================================================
   PUBLIC FRONT — align to the inc-education reference (v2.5.0)
   Numbered, ruled section heads for the locations grids and a
   tighter hero rail. Mono, squared, uppercase — consistent with
   the existing NetworkPlus hero/values/pathway already in place.
   ============================================================ */
.inc-section .cp-loc-heading,
.cp-loc-section .cp-loc-heading {
  text-transform:uppercase; letter-spacing:-0.01em; font-weight:700;
  display:flex; align-items:baseline; gap:.9rem;
}
.cp-loc-section .cp-loc-heading::after { content:""; flex:1; height:2px; background:var(--inc-ink); align-self:center; }

/* ============================================================
   PUBLIC FRONT — inc-education public-site layout  (v2.6.0)
   Scoped to .cpf (the alignfull home group). Black utility bar +
   hero with values rail, BORN FOR MORE marquee, journey track,
   numbered locations head (the live cp-locations grid follows),
   and a black CTA band. Monochrome; DIN/Oswald display type.
   ============================================================ */
.cpf { --cf-ink:#0a0a0a; --cf-soft:#5a5a5a; --cf-faint:#9b9b9b; --cf-rule:#dcdad3; }
.cpf, .cpf * { box-sizing:border-box; }
.cpf { font-family:var(--inc-font); color:var(--cf-ink); }
.cpf h1,.cpf h2,.cpf h3 { font-family:var(--inc-font); }

/* Buttons */
.cpf-btn { display:inline-flex; align-items:center; gap:.5rem; font-weight:700; font-size:.82rem; letter-spacing:.03em; text-transform:uppercase; padding:.75rem 1.4rem; border:1.5px solid transparent; text-decoration:none; cursor:pointer; transition:.16s; }
.cpf-btn-light { background:#fff; color:var(--cf-ink); border-color:#fff; }
.cpf-btn-light:hover { background:var(--cf-ink); color:#fff; }
.cpf-btn-ghost { background:transparent; border-color:rgba(255,255,255,.6); color:#fff; }
.cpf-btn-ghost:hover { background:#fff; color:var(--cf-ink); }

/* Signature lockup */
.cpf-sig { display:inline-flex; align-items:flex-end; gap:.55rem; line-height:1; color:#fff; }
.cpf-sig-word { font-weight:800; font-size:1.9rem; letter-spacing:-0.05em; position:relative; }
.cpf-sig-word sup { font-size:.55rem; font-weight:600; top:-1.1em; left:1px; }
.cpf-sig-rule { width:1px; align-self:stretch; background:currentColor; opacity:.4; }
.cpf-sig-sub { font-weight:600; font-size:1.1rem; letter-spacing:-0.01em; text-transform:uppercase; padding-bottom:2px; }
.cpf-bfm { font-weight:800; letter-spacing:.18em; font-size:.7rem; text-transform:uppercase; }

/* Utility bar */
.cpf-util { background:var(--cf-ink); color:#fff; display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; padding:.6rem clamp(1rem,4vw,2.5rem); font-weight:600; font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; }
.cpf-util a { color:#fff; text-decoration:none; opacity:.85; } .cpf-util a:hover { opacity:1; }
.cpf-util-priv { display:flex; align-items:center; gap:.45rem; }
.cpf-dot { width:6px; height:6px; border-radius:50%; background:#fff; }

/* Hero */
.cpf-hero { background:var(--cf-ink); color:#fff; padding:2rem clamp(1rem,4vw,2.5rem) 5rem; position:relative; overflow:hidden; }
.cpf-hero::before { content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(circle at 82% -20%, rgba(255,255,255,.10), transparent 42%), radial-gradient(circle at 0% 120%, rgba(255,255,255,.06), transparent 46%); }
.cpf-hero-wrap { max-width:1240px; margin:0 auto; position:relative; }
.cpf-hero-nav { display:flex; justify-content:space-between; align-items:center; margin-bottom:clamp(2.5rem,6vw,4.5rem); }
.cpf-hero-grid { display:grid; grid-template-columns:1.18fr .82fr; gap:clamp(2rem,4vw,3.5rem); align-items:center; }
.cpf-hero-eyebrow { font-weight:700; font-size:.7rem; letter-spacing:.28em; text-transform:uppercase; color:rgba(255,255,255,.65); margin-bottom:1.4rem; }
.cpf-hero-title { font-weight:800; font-size:clamp(2.6rem,6vw,4.6rem); line-height:.92; letter-spacing:-0.03em; margin:0 0 1.4rem; text-transform:uppercase; color:#fff; }
.cpf-hero-title em { font-style:normal; font-weight:500; color:rgba(255,255,255,.55); }
.cpf-hero-lead { font-size:1rem; line-height:1.7; color:rgba(255,255,255,.72); max-width:36rem; margin:0 0 1.8rem; }
.cpf-hero-cta { display:flex; gap:.8rem; flex-wrap:wrap; }
.cpf-hero-side { border-left:1px solid rgba(255,255,255,.2); padding-left:clamp(1.5rem,3vw,2.5rem); }
.cpf-hero-side .cpf-bfm { color:#fff; display:block; margin-bottom:1.2rem; }
.cpf-values { display:flex; flex-direction:column; gap:1.1rem; }
.cpf-val { display:flex; gap:.9rem; align-items:flex-start; }
.cpf-val b { font-weight:800; letter-spacing:.1em; font-size:.82rem; min-width:6.5rem; color:#fff; }
.cpf-val span { font-size:.82rem; color:rgba(255,255,255,.6); line-height:1.5; }

/* Marquee */
.cpf-marquee { background:var(--cf-ink); color:#fff; border-top:1px solid rgba(255,255,255,.18); overflow:hidden; padding:.85rem 0; white-space:nowrap; }
.cpf-marquee-track { display:inline-block; animation:cpf-scroll 38s linear infinite; }
.cpf-marquee-track span { font-weight:800; font-size:1.1rem; letter-spacing:.04em; text-transform:uppercase; padding:0 1.6rem; opacity:.92; }
.cpf-marquee-track span:nth-child(even) { -webkit-text-stroke:1px #fff; color:transparent; }
@keyframes cpf-scroll { from{ transform:translateX(0);} to{ transform:translateX(-50%);} }
@media (prefers-reduced-motion:reduce){ .cpf-marquee-track{ animation:none; } }

/* Journey */
.cpf-journey { max-width:1240px; margin:-2.6rem auto 0; padding:0 clamp(1rem,4vw,2.5rem); position:relative; z-index:5; }
.cpf-journey-card { background:#fff; border:1px solid var(--cf-ink); box-shadow:0 28px 64px -30px rgba(0,0,0,.5); padding:1.9rem 2.2rem 2.1rem; }
.cpf-journey-head { display:flex; align-items:baseline; gap:.8rem; margin-bottom:1.6rem; }
.cpf-journey-head h2 { font-size:1.5rem; font-weight:800; margin:0; text-transform:uppercase; letter-spacing:-0.01em; }
.cpf-diamond { font-size:.8rem; }
.cpf-journey-track { display:grid; grid-template-columns:1fr auto 1fr auto 1fr auto 1fr; align-items:stretch; gap:0; }
.cpf-jstage { padding:.4rem 1.4rem; } .cpf-jstage:first-child{ padding-left:0; } .cpf-jstage:last-child{ padding-right:0; }
.cpf-jlbl { font-weight:700; font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--cf-faint); }
.cpf-jstage h3 { font-size:1.2rem; font-weight:700; margin:.5rem 0 .4rem; text-transform:uppercase; letter-spacing:-0.01em; }
.cpf-jstage p { font-size:.82rem; color:var(--cf-soft); line-height:1.5; margin:0; }
.cpf-jcount { font-weight:700; font-size:.68rem; color:var(--cf-ink); margin-top:.6rem; text-transform:uppercase; letter-spacing:.04em; }
.cpf-jconnect { display:flex; align-items:center; justify-content:center; color:var(--cf-ink); font-size:1.4rem; padding:0 .25rem; }

/* Section head + locations grid */
.cpf-pubsect { max-width:1240px; margin:4.5rem auto 0; padding:0 clamp(1rem,4vw,2.5rem); }
.cpf-pubsect-head { display:flex; align-items:baseline; gap:.9rem; }
.cpf-pubsect-head .cpf-num { font-weight:700; font-size:.78rem; color:var(--cf-ink); letter-spacing:.1em; }
.cpf-pubsect-head h2 { font-size:clamp(1.8rem,3.5vw,2.2rem); font-weight:800; letter-spacing:-0.02em; margin:0; text-transform:uppercase; }
.cpf-pubsect-head .cpf-rule { flex:1; height:2px; background:var(--cf-ink); }
.cpf-pubsect-head .cpf-meta { font-weight:600; font-size:.7rem; color:var(--cf-faint); text-transform:uppercase; letter-spacing:.1em; }
/* The live cp-locations grid: cap to the content width, hide its own heading
   (the numbered head above replaces it). */
.cpf .cp-loc-wrap { max-width:1240px; margin:1.6rem auto 0; padding:0 clamp(1rem,4vw,2.5rem); }
.cpf .cp-loc-heading, .cpf .cp-loc-intro { display:none; }
.cpf .cp-loc-section { margin-bottom:0; }

/* CTA band */
.cpf-ctaband { max-width:1240px; margin:2rem auto 4.5rem; padding:0 clamp(1rem,4vw,2.5rem); }
.cpf-cta { background:var(--cf-ink); color:#fff; padding:clamp(1.8rem,3vw,2.5rem); display:grid; grid-template-columns:1fr auto; gap:1.8rem; align-items:center; text-decoration:none; }
.cpf-cta .cpf-cta-lbl { font-weight:700; font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.6); }
.cpf-cta h3 { color:#fff; font-size:clamp(1.6rem,3vw,2rem); font-weight:800; margin:.6rem 0 .5rem; text-transform:uppercase; letter-spacing:-0.02em; }
.cpf-cta h3 em { font-style:normal; color:rgba(255,255,255,.55); font-weight:500; }
.cpf-cta p { font-size:.88rem; color:rgba(255,255,255,.72); margin:0; max-width:40rem; line-height:1.6; }

@media (max-width:1080px){
  .cpf-hero-grid { grid-template-columns:1fr; gap:2rem; }
  .cpf-hero-side { border-left:0; border-top:1px solid rgba(255,255,255,.2); padding-left:0; padding-top:1.6rem; }
  .cpf-journey-track { grid-template-columns:1fr; }
  .cpf-jstage { padding:1rem 0; border-top:1px solid var(--cf-rule); }
  .cpf-jstage:first-child { border-top:0; }
  .cpf-jconnect { transform:rotate(90deg); padding:.3rem 0; }
  .cpf-cta { grid-template-columns:1fr; }
}
@media (max-width:600px){
  .cpf-util { font-size:.6rem; letter-spacing:.08em; }
  .cpf-hero-nav .cpf-btn { display:none; }
}

/* v2.6.1 — front-page sizing. The homepage template now uses a full-width
   (default) main/post-content; these guards also lift any inherited TT5
   content cap so the .cpf home group fills the viewport instead of sitting in
   a narrow centred column (which clipped the journey track and guttered the
   hero). Inner wraps keep their own 1240px max-width. */
.wp-block-post-content:has(.cpf) { max-width: none; }
main.wp-block-group:has(.cpf) { max-width: none; padding-inline: 0; }
.cpf { max-width: none; width: 100%; }
