/* /mgch: Dan Ventures + Mr. Good Container Homes partnership. Loaded after mr-good.css.
   Dan Ventures keeps its signal orange; Mr. Good brings its navy, teal and gold. */
:root { --mg-navy: #102D4E; --mg-teal: #0C7E8B; --mg-teal-text: #0A6874; --mg-gold: #BD8C43; --mg-tint: rgba(12,126,139,.07); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --mg-teal-text: #5CC3CE; --mg-tint: rgba(92,195,206,.08); } }
:root[data-theme="dark"] { --mg-teal-text: #5CC3CE; --mg-tint: rgba(92,195,206,.08); }

/* Co-brand lockup */
.pt-lock { display: flex; flex-wrap: wrap; align-items: stretch; margin: 0 0 22px; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; max-width: 40rem; }
.pt-lock > span { display: flex; align-items: center; gap: 12px; padding: 14px 18px; flex: 1 1 14rem; }
.pt-lock-dv { font-family: var(--mono); font-size: .82rem; letter-spacing: .14em; font-weight: 500; color: var(--ink); }
.pt-lock-dv svg { width: 34px; height: 20px; color: var(--signal-text); flex: none; }
.pt-lock-dv .dot { color: var(--signal-text); padding: 0 .15em; }
.pt-lock-x { flex: 0 0 auto !important; padding: 0 4px !important; font-family: var(--serif); font-size: 1.6rem; color: var(--muted); justify-content: center; }
.pt-lock-mg { background: var(--mg-navy); color: #fff; }
.pt-lock-mg svg { width: 40px; height: 22px; flex: none; color: var(--mg-gold); }
.pt-lock-mg b { display: block; font-family: var(--sans); font-weight: 800; font-size: 1.02rem; letter-spacing: .08em; line-height: 1.05; }
.pt-lock-mg small { display: block; font-family: var(--mono); font-size: .64rem; letter-spacing: .2em; color: #9FD3D9; margin-top: 3px; }

/* Who does what: each company's colour */
.cp-facts .pt-mg-k dt, .pt-card-mg .lab-stage, .pt-role-mg, .pt-who-mg { color: var(--mg-teal-text) !important; }
.cp-facts .pt-dv-k dt, .pt-who-dv { color: var(--signal-text) !important; }
.pt-card-mg { border-top: 3px solid var(--mg-teal); background: linear-gradient(var(--mg-tint), var(--mg-tint)), color-mix(in srgb, var(--paper) 82%, transparent); }
.pt-card-dv { border-top: 3px solid var(--signal); }
.pt-person-mg .mg-quote { border-left-color: var(--mg-teal); }

/* How a park deal moves */
.pt-flow { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; counter-reset: none; }
.pt-flow li { display: grid; align-content: start; gap: 6px; padding: 20px; border: 1px solid var(--line); border-radius: 10px; position: relative; }
.pt-flow li p, .pt-flow li h3 { margin: 0; }
.pt-flow h3 { font-family: var(--serif); font-weight: 400; font-size: 1.45rem; line-height: 1.1; }
.pt-flow li > p:last-child { color: var(--ink-2); }
.pt-n { font-size: .78rem; color: var(--muted); }
.pt-who { font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-2); }
.pt-who-both { color: var(--ink-2); }
.pt-flow-go { margin-top: 18px; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.pt-flow-go p { margin: 0; color: var(--ink-2); font-size: .92rem; }

/* Park intake call-out in the partnership colours */
.mg-park.pt-park { border-color: var(--mg-teal); background: var(--mg-tint); }
.pt-park .mg-park-k { color: var(--mg-teal-text); }

/* The two companies, side by side */
.pt-cos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; border-radius: 12px; overflow: hidden; border: 1px solid var(--line); margin: 28px 0; }
.pt-co { padding: 22px 24px; display: grid; gap: 6px; align-content: start; }
.pt-co p { margin: 0; }
.pt-co h3 { margin: 0; font-family: var(--serif); font-weight: 400; font-size: 1.6rem; line-height: 1.1; }
.pt-co a { color: inherit; }
.pt-co-mg { background: var(--mg-navy); color: #E8EEF4; }
.pt-co-mg .mono { color: #9FD3D9; }
.pt-co-mg a:focus-visible { outline: 2px solid var(--mg-gold); outline-offset: 2px; }
.pt-co .mono { font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; }
.pt-co-dv .mono { color: var(--signal-text); }

@media (max-width: 900px) { .pt-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  .pt-flow, .pt-cos { grid-template-columns: 1fr; }
  .pt-lock > span { padding: 12px 14px; }
  .pt-lock-x { display: none !important; }
}
