/* Training programme pages (28/09/2026). Shared by humanfrontier.ai and riftveil.ai.
   Loaded after the site's style.css. No JavaScript, no inline style (CSP). Headings use the site's .disp font. */
.pg { --c1: #173D2E; --c2: #1E4D3A; --tint: #F4F7F5; --acc: #2F6B4F; --amb: #E9A83A; --amb-ink: #9A5F00; --ink: #14161A; --txt: #3D4046; --mut: #6B6E73; --rul: #D9D6CF; }
.pg.th-rv { --c1: #152238; --c2: #1F3350; --tint: #F1F4F8; --acc: #33506E; }
.pg.th-gold { --c1: #3A2C10; --c2: #5B4418; --tint: #FAF6EC; --acc: #8A6A1F; }
.pg { display: flex; flex-direction: column; color: var(--ink); }
.pg p { margin: 0; }
.pg h1, .pg h2, .pg h3 { margin: 0; font-weight: 400; }

/* hero, full bleed */
.pg-hero { background: var(--c1); box-shadow: 0 0 0 100vmax var(--c1); clip-path: inset(0 -100vmax); color: #F4EFE4; padding-block: 40px 34px; border-bottom: 4px solid var(--amb); display: flex; flex-direction: column; gap: 14px; position: relative; }
.pg-hero::after { content: ""; position: absolute; left: 50%; bottom: -4px; width: 100vw; height: 4px; background: var(--amb); transform: translateX(-50%); }
.pg-crumb { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--amb); }
.pg-crumb a { color: var(--amb); }
.pg-crumb a:hover { color: #FFFFFF; }
.pg-hero h1 { font-size: clamp(34px, 5vw, 54px); line-height: 1.06; color: #FFFFFF; letter-spacing: -.005em; text-wrap: balance; }
.pg-hero .sub { font-size: clamp(19px, 2.2vw, 24px); line-height: 1.3; font-style: italic; color: rgba(255,255,255,.88); max-width: 760px; }
.pg-hero .intro { font-size: 15.5px; line-height: 1.65; color: rgba(255,255,255,.84); max-width: 760px; }

/* status banner */
.pg-status { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; background: #FFF3DA; border: 1px solid var(--amb); border-left: 6px solid var(--amb); padding: 14px 18px; margin-top: 24px; }
.pg-status b { font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--ink); font-weight: 600; white-space: nowrap; }
.pg-status span { font-size: 14px; line-height: 1.55; color: var(--txt); flex: 1 1 360px; }
.pg-status a { color: var(--amb-ink); font-weight: 600; }

/* key facts */
.pg-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border: 1px solid var(--rul); border-top: 3px solid var(--c1); background: var(--tint); margin-top: 22px; }
.pg-facts div { padding: 14px 16px; border-right: 1px solid var(--rul); border-bottom: 1px solid var(--rul); display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.pg-facts dt { font-size: 10.5px; letter-spacing: .13em; text-transform: uppercase; color: var(--mut); }
.pg-facts dd { margin: 0; font-size: 14px; line-height: 1.5; color: var(--ink); }
.pg-facts dd b { font-weight: 600; }

/* sections */
.pg-sec { padding-block: 34px 6px; display: flex; flex-direction: column; gap: 14px; }
.pg-sec > h2, .pg-h2 { font-size: clamp(26px, 3vw, 32px); line-height: 1.18; color: var(--c1); }
.pg-sec p { font-size: 15px; line-height: 1.65; color: var(--txt); max-width: 820px; }
.pg-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 48px; align-items: start; }
.pg-two > div { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.pg-two h2 { font-size: 24px; line-height: 1.2; color: var(--c1); }
.pg-learn { background: #FFF8EA; border-left: 5px solid var(--amb); padding: 20px 24px; display: flex; flex-direction: column; gap: 10px; }
.pg-learn h2 { font-size: 26px; color: var(--c1); }
.pg ul.pg-list, .pg ol.pg-list { margin: 0; padding-left: 22px; display: flex; flex-direction: column; gap: 7px; font-size: 15px; line-height: 1.55; color: var(--txt); max-width: 820px; }
.pg-learn ul.pg-list { font-weight: 500; color: var(--ink); }
.pg ol.pg-obj { counter-reset: o; list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 40px; }
.pg ol.pg-obj li { counter-increment: o; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 10px; font-size: 14.5px; line-height: 1.55; color: var(--txt); border-top: 1px solid var(--rul); padding-top: 10px; }
.pg ol.pg-obj li::before { content: counter(o); width: 28px; height: 28px; border-radius: 50%; background: var(--c1); color: #FFFFFF; display: grid; place-items: center; font-size: 13px; font-weight: 600; }

/* programme table */
.pg-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.pg-table th { text-align: left; font-size: 10.5px; letter-spacing: .13em; text-transform: uppercase; color: var(--mut); font-weight: 500; border-bottom: 2px solid var(--c1); padding: 8px 10px; }
.pg-table td { padding: 9px 10px; border-bottom: 1px solid var(--rul); vertical-align: top; line-height: 1.5; color: var(--txt); }
.pg-table td:first-child { color: var(--ink); font-weight: 500; }
.pg-table td.t { white-space: nowrap; color: var(--acc); font-weight: 600; }
.pg-table tr.brk td { color: var(--mut); font-style: italic; font-weight: 400; }
.pg-table tr.key td { background: var(--tint); }
.pg-tables { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; }
.pg-note { font-size: 13.5px; color: var(--mut); line-height: 1.55; }

/* boxes */
.pg-box { border: 1px solid var(--amb); background: #FFFCF4; padding: 18px 22px; display: flex; flex-direction: column; gap: 8px; }
.pg-box h2 { font-size: 23px; color: var(--c1); }
.pg-not { border-top: 1px solid var(--rul); padding-top: 16px; }

/* where it fits */
.pg-path { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.pg-path a, .pg-path div { border: 1px solid var(--rul); border-top: 4px solid #152238; padding: 14px 16px; display: flex; flex-direction: column; gap: 6px; color: var(--txt); background: #FFFFFF; min-width: 0; }
.pg-path a:hover { border-color: var(--ink); text-decoration: none; }
.pg-path .hf { border-top-color: #173D2E; } .pg-path .rv { border-top-color: #152238; } .pg-path .gd { border-top-color: #C9A24B; }
.pg-path b { font-size: 19px; font-weight: 500; line-height: 1.2; color: var(--ink); }
.pg-path span { font-size: 13.5px; line-height: 1.45; }
.pg-path i { font-style: normal; font-size: 10.5px; letter-spacing: .13em; text-transform: uppercase; color: var(--mut); }
.pg-path .cur { background: var(--tint); box-shadow: inset 0 0 0 2px var(--c1); }
.pg-path .cur i { color: var(--acc); font-weight: 600; }

/* hub cards */
.pg-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.pg-card { border: 1px solid var(--rul); border-top: 5px solid #152238; background: #FFFFFF; padding: 20px 22px; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.pg-card.hf { border-top-color: #173D2E; } .pg-card.gd { border-top-color: #C9A24B; }
.pg-card .kind { font-size: 10.5px; letter-spacing: .13em; text-transform: uppercase; color: var(--mut); }
.pg-card h3 { font-size: 25px; line-height: 1.15; color: var(--ink); }
.pg-card p { font-size: 14.5px; line-height: 1.6; color: var(--txt); }
.pg-card .meta { font-size: 13px; color: var(--mut); border-top: 1px solid var(--rul); padding-top: 10px; margin-top: auto; }
.pg-card .go { font-weight: 600; font-size: 14.5px; color: var(--amb-ink); }
.pg-steps { margin: 0; padding-left: 22px; display: flex; flex-direction: column; gap: 8px; font-size: 15px; line-height: 1.55; color: var(--txt); max-width: 860px; }
.pg-steps b { color: var(--ink); font-weight: 600; }

/* certificate image (Practitioner only) */
.pg-cert { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 420px); gap: 28px 48px; align-items: center; }
.pg-cert img { display: block; width: 100%; height: auto; transform: rotate(-1.5deg); box-shadow: 0 0 0 5px #C9A24B, 0 24px 44px -18px rgba(0,0,0,.45); }
.pg-cert figcaption { font-size: 12.5px; color: var(--mut); margin-top: 14px; }

/* interest form */
.pg-form { border: 1px dashed #BFB9AC; background: #FFFFFF; padding: 24px 26px; display: flex; flex-direction: column; gap: 14px; margin-block: 34px 44px; }
.pg-form h2 { font-size: 26px; color: var(--c1); }
.pg-form > p { font-size: 14.5px; color: var(--txt); line-height: 1.6; }
.pg-form fieldset { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px 26px; }
.pg-form legend { font-size: 13px; color: var(--mut); margin-bottom: 8px; width: 100%; padding: 0; }
.pg-form label { font-size: 14px; color: var(--ink); display: flex; gap: 8px; align-items: center; }
.pg-form .row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 20px; }
.pg-form .row label { flex-direction: column; align-items: stretch; gap: 5px; font-size: 13px; color: var(--txt); }
.pg-form input[type=email], .pg-form input[type=text], .pg-form input[type=url] { font: 500 14.5px/1.3 inherit; font-family: inherit; border: 1px solid var(--rul); padding: 10px 12px; color: var(--ink); background: #FFFFFF; border-radius: 0; }
.pg-form .consent { font-size: 12.5px; color: var(--txt); align-items: flex-start; line-height: 1.5; }
.pg-form .consent input { margin-top: 3px; }
.pg-form button { align-self: flex-start; font: inherit; font-weight: 600; font-size: 14.5px; background: var(--amb); color: var(--ink); border: 1px solid var(--amb); padding: 12px 22px; cursor: pointer; border-radius: 0; }
.pg-form button:hover { background: var(--c1); border-color: var(--c1); color: #FFFFFF; }
.pg-form .fine2 { font-size: 12.5px; color: var(--mut); }

@media (max-width: 900px) {
  .pg-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pg-path { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pg-cert { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 720px) {
  .pg-two, .pg ol.pg-obj, .pg-cards, .pg-tables, .pg-form .row { grid-template-columns: minmax(0, 1fr); }
  .pg-hero { padding-block: 30px 26px; }
  .pg-table { font-size: 13.5px; }
  .pg-table td, .pg-table th { padding: 8px 6px; }
  .pg-form { padding: 20px 16px; }
}
@media (max-width: 480px) {
  .pg-facts, .pg-path { grid-template-columns: minmax(0, 1fr); }
  .pg-facts div { border-right: 0; }
}
.pg-hp { display: none !important; }
.pg-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.pg-scroll .pg-table { min-width: 620px; }

/* sign-up forms: the robot trap stays hidden whatever other rules say (29/09/2026) */
[hidden] { display: none !important; }

/* sign-up confirmation pages (29/09/2026) */
.pg-conf h1 { font-size: 30px; line-height: 1.2; margin-bottom: 14px; }
.pg-conf p { max-width: 620px; margin-bottom: 12px; }
