/* People-led relationship diagrams */
.relationship-diagram { overflow:visible; }
.relationship-diagram::before { inset:30px 38px; border-style:dashed; }
.diagram-node { width:112px; min-height:0; padding:0; border:0; background:transparent; text-align:center; }
.diagram-node::before { display:none; }
.diagram-node .role-icon { display:block; position:relative; width:42px; height:42px; margin:0 auto 8px; border:1px solid var(--gold); border-radius:50%; background:var(--parchment); }
.diagram-node .role-icon::before { content:""; position:absolute; left:15px; top:8px; width:10px; height:10px; border-radius:50%; background:var(--navy); }
.diagram-node .role-icon::after { content:""; position:absolute; left:10px; bottom:7px; width:20px; height:15px; border-radius:11px 11px 5px 5px; background:var(--navy); }
.diagram-node strong { display:block; font-size:16px; }.diagram-node span { display:block; margin-top:4px; font-size:10px; }
.diagram-node.centre { width:125px; min-height:0; padding:0; background:transparent; color:var(--navy); transform:translate(-50%,-50%); }
.diagram-node.centre .role-icon { background:var(--navy); border-color:var(--navy); }.diagram-node.centre .role-icon::before,.diagram-node.centre .role-icon::after { background:var(--gold); }.diagram-node.centre span { color:var(--slate); }
.diagram-node.entity-icon .role-icon::before { content:"✦"; left:0; top:7px; width:100%; height:auto; background:none; color:var(--gold); font:22px/1 "Playfair Display",serif; }.diagram-node.entity-icon .role-icon::after { display:none; }
.trust-diagram .protector,.foundation-diagram .council { bottom:9px; }.foundation-diagram .secretary { bottom:10px; }
.diagram-line { background:rgba(179,139,69,.9); }.diagram-line::before,.diagram-line::after { content:""; position:absolute; top:-3px; width:7px; height:7px; border-radius:50%; background:var(--gold); }.diagram-line::before { left:0; }.diagram-line::after { right:0; }

/* Office and bank guide */
.office-guide,.bank-guide { margin:0 0 104px; }.office-intro,.bank-heading { display:grid; grid-template-columns:1.08fr .92fr; gap:7vw; align-items:end; margin-bottom:44px; }.office-intro .micro-label,.bank-heading .micro-label { grid-column:1 / -1; margin-bottom:-5px; }.office-intro h3,.bank-heading h3 { margin:0; font:500 clamp(32px,4vw,53px)/1.04 "Playfair Display",serif; letter-spacing:-.04em; }.office-intro > p:not(.micro-label),.bank-heading > p:not(.micro-label) { margin:0; color:var(--slate); }
.office-map { display:grid; grid-template-columns:1fr .7fr 1fr; grid-template-rows:1fr 1fr; gap:0 18px; position:relative; min-height:275px; padding:28px; background:#fff; border:1px solid rgba(15,30,58,.18); }.office-node { z-index:1; align-self:center; justify-self:center; display:flex; flex-direction:column; align-items:center; max-width:195px; text-align:center; }.office-node.hub { grid-column:2; grid-row:1 / -1; }.office-node.management { grid-column:1; grid-row:1 / -1; }.office-node.marketing { grid-column:3; grid-row:1 / -1; }.office-icon { display:grid; width:55px; height:55px; place-items:center; margin-bottom:10px; border-radius:50%; background:var(--parchment); border:1px solid var(--gold); color:var(--gold-text); font:27px "Playfair Display",serif; }.office-node.hub .office-icon { background:var(--navy); color:var(--gold); border-color:var(--navy); }.office-node b { font:500 19px/1.1 "Playfair Display",serif; }.office-node small { margin-top:5px; color:var(--slate); font-size:10px; line-height:1.35; }.office-route { position:absolute; z-index:0; top:50%; width:29%; height:1px; background:var(--gold); color:var(--gold-text); font:500 9px "DM Mono",monospace; letter-spacing:.03em; text-transform:uppercase; }.office-route::after { content:""; position:absolute; right:0; top:-3px; width:7px; height:7px; border-radius:50%; background:var(--gold); }.route-left { left:20%; text-align:center; transform:translateY(-17px); }.route-right { right:20%; text-align:center; transform:translateY(-17px); }.office-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:18px; }.office-cards article { min-height:225px; padding:26px; background:#fff; border-top:2px solid var(--gold); }.office-cards h4 { margin:0 0 12px; font:500 23px/1.08 "Playfair Display",serif; }.office-cards p { margin:0; color:var(--slate); font-size:13px; line-height:1.55; }.office-cards span { display:block; margin-top:20px; color:var(--gold-text); font:500 10px "DM Mono",monospace; line-height:1.4; text-transform:uppercase; }
.bank-guide { padding:72px 6vw; margin-left:-6vw; margin-right:-6vw; background:#fff; }.bank-readiness { display:grid; grid-template-columns:repeat(5,1fr); margin:0 0 49px; padding:0; border-top:1px solid rgba(15,30,58,.18); list-style:none; }.bank-readiness li { position:relative; min-height:170px; padding:28px 21px 15px 0; border-bottom:1px solid rgba(15,30,58,.18); }.bank-readiness li:not(:last-child) { margin-right:20px; }.bank-readiness li:not(:last-child)::after { content:"→"; position:absolute; right:-11px; top:29px; color:var(--gold-text); font-size:17px; }.bank-readiness b { display:block; margin:0 0 10px; color:var(--navy); font:500 22px/1.05 "Playfair Display",serif; }.bank-readiness span { color:var(--slate); font-size:12px; line-height:1.45; }.bank-application { border:1px solid rgba(15,30,58,.2); background:var(--parchment); }.application-title { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:19px 24px; background:var(--navy); color:var(--parchment); }.application-title span { color:#D4B77C; font:500 10px "DM Mono",monospace; letter-spacing:.1em; }.application-title strong { font:500 22px "Playfair Display",serif; }.application-fields { display:grid; grid-template-columns:repeat(3,1fr); }.application-fields div { min-height:136px; padding:24px; border-right:1px solid rgba(15,30,58,.17); border-bottom:1px solid rgba(15,30,58,.17); }.application-fields div:nth-child(3n) { border-right:0; }.application-fields b { display:block; margin-bottom:10px; color:var(--gold-text); font:500 11px "DM Mono",monospace; letter-spacing:.04em; text-transform:uppercase; }.application-fields p { margin:0; color:var(--slate); font-size:12px; line-height:1.5; }.bank-note { max-width:800px; margin:18px 0 0; color:var(--slate); font-size:11px; }
@media (max-width:720px) { .diagram-node { width:93px; }.diagram-node .role-icon { width:36px; height:36px; }.diagram-node .role-icon::before { left:13px; top:7px; width:9px; height:9px; }.diagram-node .role-icon::after { left:9px; bottom:6px; width:18px; height:13px; }.diagram-node strong { font-size:14px; }.diagram-node span { font-size:9px; }.relationship-diagram::before { inset:22px; }.office-guide,.bank-guide { margin-bottom:70px; }.office-intro,.bank-heading { grid-template-columns:1fr; gap:18px; margin-bottom:30px; }.office-map { grid-template-columns:1fr; grid-template-rows:auto; gap:27px; padding:30px 18px; }.office-node.hub,.office-node.management,.office-node.marketing { grid-column:1; grid-row:auto; }.office-node { max-width:220px; }.office-route { display:none; }.office-cards { grid-template-columns:1fr; }.office-cards article { min-height:auto; }.bank-guide { padding:55px 24px; margin-left:-24px; margin-right:-24px; }.bank-readiness { grid-template-columns:1fr; margin-bottom:35px; }.bank-readiness li { min-height:auto; padding:19px 0; }.bank-readiness li:not(:last-child) { margin-right:0; }.bank-readiness li:not(:last-child)::after { content:"↓"; left:0; right:auto; top:auto; bottom:-13px; background:#fff; padding:0 4px; }.application-title { display:block; }.application-title strong { display:block; margin-top:7px; font-size:19px; }.application-fields { grid-template-columns:1fr; }.application-fields div,.application-fields div:nth-child(3n) { min-height:auto; border-right:0; }.application-fields div:last-child { border-bottom:0; } }
