/* DAC v1.2.2.4 — shared card and box system
   Content stays server-rendered. JavaScript only adds layout metadata. */

:root{
  --dac-card-radius:18px;
  --dac-card-border:#d8e1eb;
  --dac-card-bg:#fff;
  --dac-card-soft:#f8fafc;
  --dac-card-pad:20px;
  --dac-card-gap:14px;
  --dac-card-shadow:0 5px 18px rgba(6,31,74,.055);
}

/* Grid consistency ------------------------------------------------------ */
:where(.cards,.mission-grid,.trust-feature-grid,.support-path-grid,.privacy-record-grid,.feature-grid,.panel-grid-even,.guide-card-grid,.kpi-grid,.contact-kpi-grid,.network-overview-kpis,.network-division-grid,.stakeholder-grid,.stakeholder-home-grid,.network-role-cards){
  align-items:stretch;
  grid-auto-rows:1fr;
}
:where(.cards,.mission-grid,.trust-feature-grid,.support-path-grid,.privacy-record-grid,.feature-grid,.panel-grid-even,.guide-card-grid,.network-division-grid,.stakeholder-grid,.stakeholder-home-grid,.network-role-cards) > *{min-width:0}

/* Public card family ---------------------------------------------------- */
:where(.card,.feature-card,.trust-panel,.support-path,.institution-card,.contact-info-card,.mission-card,.boundary-card,.transparency-card){
  box-sizing:border-box;
  height:100%;
  min-width:0;
  overflow-wrap:anywhere;
  border-color:var(--dac-card-border);
  border-radius:var(--dac-card-radius);
  background:var(--dac-card-bg);
  box-shadow:var(--dac-card-shadow);
}
:where(.card,.feature-card,.trust-panel,.support-path,.contact-info-card,.mission-card,.transparency-card){
  display:flex;
  flex-direction:column;
  padding:var(--dac-card-pad);
}
:where(.card,.feature-card,.trust-panel,.support-path,.contact-info-card,.mission-card,.transparency-card) > :first-child{margin-top:0}
:where(.card,.feature-card,.trust-panel,.support-path,.contact-info-card,.mission-card,.transparency-card) > :last-child{margin-bottom:0}
:where(.card,.feature-card,.trust-panel,.support-path,.contact-info-card,.mission-card) > .text-link,
:where(.card,.feature-card,.trust-panel,.support-path,.contact-info-card,.mission-card) > .btn,
:where(.card,.feature-card,.trust-panel,.support-path,.contact-info-card,.mission-card) > .inline-actions{margin-top:auto;padding-top:16px}
.cards--public .feature-card{min-height:0}

/* Cards that were missing their own internal spacing ------------------- */
.institution-card{
  display:grid;
  grid-template-columns:118px minmax(0,1fr);
  gap:22px;
  align-items:center;
  padding:24px;
}
.institution-card .institution-mark{display:grid;place-items:center;align-self:stretch}
.institution-card .institution-mark img{display:block;width:min(118px,100%);height:auto;max-height:126px;object-fit:contain}
.institution-card h2{margin:7px 0 8px;color:var(--navy);font-size:clamp(1.3rem,2vw,1.75rem);line-height:1.12}
.institution-card p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.6}
.boundary-card{display:flex;flex-direction:column;gap:14px;padding:24px}
.boundary-card > .eyebrow + h2{margin:0;color:var(--navy)}

/* FAQ cards: the markup uses <details>, not <article>. ----------------- */

.faq-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  grid-auto-rows:auto;
  align-items:start;
  width:min(100%,980px);
  margin-inline:auto;
  gap:12px;
}
.faq-grid > details{
  height:auto;
  overflow:hidden;
  border:1px solid var(--dac-card-border);
  border-radius:var(--dac-card-radius);
  background:var(--dac-card-bg);
  box-shadow:var(--dac-card-shadow);
}
.faq-grid > details > summary{
  position:relative;
  display:flex;
  min-height:74px;
  align-items:center;
  padding:18px 50px 18px 20px;
  list-style:none;
  cursor:pointer;
  color:var(--navy);
  font-size:.9rem;
  font-weight:900;
  line-height:1.4;
}
.faq-grid > details > summary::-webkit-details-marker{display:none}
.faq-grid > details > summary::after{
  content:"+";
  position:absolute;
  inset-inline-end:18px;
  top:50%;
  display:grid;
  width:26px;
  height:26px;
  place-items:center;
  transform:translateY(-50%);
  border:1px solid #cbd7e4;
  border-radius:8px;
  background:var(--dac-card-soft);
  color:var(--navy);
  font-size:1.15rem;
  line-height:1;
}
.faq-grid > details[open] > summary{border-bottom:1px solid #e6ebf1;background:#fbfcfe}
.faq-grid > details[open] > summary::after{content:"−"}
.faq-grid > details > summary:hover{background:#f8fafc}
.faq-grid > details > summary:focus-visible{outline:3px solid rgba(26,91,169,.22);outline-offset:-3px}
.faq-grid > details > p{margin:0;padding:17px 20px 20px;color:var(--muted);font-size:.86rem;line-height:1.65}

/* Direct grid cards that do not carry a dedicated card class ---------- */
:where(.trust-feature-grid,.privacy-record-grid) > article{
  box-sizing:border-box;
  display:flex;
  height:100%;
  min-width:0;
  flex-direction:column;
  overflow-wrap:anywhere;
  border:1px solid var(--dac-card-border);
  border-radius:var(--dac-card-radius);
  background:var(--dac-card-bg);
  box-shadow:var(--dac-card-shadow);
}
.trust-feature-grid > article{padding:var(--dac-card-pad)}
.privacy-record-grid > article{padding:20px}
:where(.trust-feature-grid,.privacy-record-grid) > article > :first-child{margin-top:0}
:where(.trust-feature-grid,.privacy-record-grid) > article > :last-child{margin-bottom:0}

/* Network/public directory cards use the same geometry contract. ------- */
:where(.network-division-card,.stakeholder-card,.stakeholder-home-grid > a,.network-role-card,.network-application-form-card){
  box-sizing:border-box;
  height:100%;
  min-width:0;
  overflow-wrap:anywhere;
}
:where(.network-division-card,.stakeholder-card){min-height:0}
.network-division-card > div{display:flex;min-width:0;flex:1;flex-direction:column}
.network-division-card > div > strong{margin-top:auto;padding-top:14px}
.network-role-card{display:flex;flex-direction:column}
.stakeholder-home-grid > a{align-content:start}

/* Dashboard/card boxes ------------------------------------------------- */
:where(.panel,.detail,.detail-box,.kpi-card,.guide-card){box-sizing:border-box;min-width:0;overflow-wrap:anywhere}
.panel-grid-even > .panel{height:100%}
:where(.kpi-grid,.contact-kpi-grid,.network-overview-kpis) > .kpi-card{height:100%}
.detail-box{height:100%}
.guide-card{height:100%;align-items:flex-start}

/* Progressive balancing. common.js supplies only the child count. ------ */
@media(min-width:1081px){
  :is(.cards,.trust-feature-grid,.support-path-grid,.feature-grid)[data-dac-card-count="1"]{grid-template-columns:minmax(0,1fr)}
  :is(.cards,.trust-feature-grid,.support-path-grid,.feature-grid)[data-dac-card-count="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}
  :is(.cards,.trust-feature-grid,.support-path-grid,.feature-grid)[data-dac-card-count="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}

  /* Five cards become a balanced 3 + 2 row instead of five narrow columns. */
  :is(.cards,.trust-feature-grid,.support-path-grid)[data-dac-card-count="5"]{grid-template-columns:repeat(6,minmax(0,1fr))}
  :is(.cards,.trust-feature-grid,.support-path-grid)[data-dac-card-count="5"] > *{grid-column:span 2}
  :is(.cards,.trust-feature-grid,.support-path-grid)[data-dac-card-count="5"] > :nth-child(4),
  :is(.cards,.trust-feature-grid,.support-path-grid)[data-dac-card-count="5"] > :nth-child(5){grid-column:span 3}

  /* Seven record/FAQ cards become a balanced 4 + 3 row. */
  .privacy-record-grid[data-dac-card-count="7"]{grid-template-columns:repeat(12,minmax(0,1fr))}
  .privacy-record-grid[data-dac-card-count="7"] > *{grid-column:span 3}
  .privacy-record-grid[data-dac-card-count="7"] > :nth-child(n+5){grid-column:span 4}
}
@media(max-width:820px){
  .institution-card{grid-template-columns:92px minmax(0,1fr);gap:18px;padding:20px}
  .institution-card .institution-mark img{max-height:100px}
}
@media(max-width:620px){
  :root{--dac-card-pad:18px}
  .institution-card{grid-template-columns:1fr;gap:14px;padding:18px;text-align:start}
  .institution-card .institution-mark{justify-items:start}
  .institution-card .institution-mark img{width:88px;max-height:96px}
  .boundary-card{padding:18px}
  .faq-grid > details > summary{min-height:66px;padding:16px 46px 16px 17px}
  .faq-grid > details > summary::after{inset-inline-end:15px}
  .faq-grid > details > p{padding:15px 17px 18px}
}

/* Larger form and routing boxes use the same geometry without forcing card content patterns. */
:where(.contact-route-card,.contact-form-card,.contact-followup-form,.support-flow-card,.support-payment-panel,.report-card,.receipt-scanner-card,.upload-box,.etransfer-box,.launch-signup-card,.policy-hero-card,.stakeholder-content-panel,.network-boundary-panel,.network-application-form-card,.auth-box){
  box-sizing:border-box;
  min-width:0;
  overflow-wrap:anywhere;
}
.contact-info-stack{align-items:stretch}
.contact-info-stack > .contact-info-card{height:100%}
.contact-route-list > a{transition:border-color .15s ease,background .15s ease,box-shadow .15s ease,transform .15s ease}
.contact-route-list > a:hover{box-shadow:0 5px 16px rgba(6,31,74,.06);transform:translateY(-1px)}
@media(prefers-reduced-motion:reduce){.contact-route-list > a{transition:none}.contact-route-list > a:hover{transform:none}}

/* v1.2.2.4 — canonical routes, footer social presence and stable FAQ presentation */
.footer-social{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.footer-social>a{display:inline-flex;align-items:center;gap:7px;width:max-content;padding:7px 10px;border:1px solid rgba(255,255,255,.13);border-radius:9px;background:rgba(255,255,255,.055);color:#d8e3ef;font-size:.72rem;font-weight:850;text-decoration:none}
.footer-social>a:hover{border-color:rgba(255,255,255,.25);background:rgba(255,255,255,.09);color:#fff}
.footer-social__mark{display:grid;width:20px;height:20px;place-items:center;border-radius:6px;background:#fff;color:#061f4a}.footer-social__mark svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.footer-social svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8}
.coming-soon-social{display:inline-flex;align-items:center;gap:6px;color:rgba(255,255,255,.82);font-size:.82rem;font-weight:800;text-decoration:none}.coming-soon-social svg{width:14px;height:14px;fill:currentColor;stroke:none}
.coming-soon-social:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}

/* v1.3.1 — disclosure body wrapper and optimized brand picture geometry */
.faq-grid > details > .faq-answer{margin:0;padding:17px 20px 20px;color:var(--muted);font-size:.86rem;line-height:1.65}
.faq-grid > details > .faq-answer > :first-child{margin-top:0}.faq-grid > details > .faq-answer > :last-child{margin-bottom:0}
.brand-lockup > picture{display:flex;flex:0 0 auto;align-items:center}
.institution-mark > picture{display:block}
@media(max-width:620px){.faq-grid > details > .faq-answer{padding:15px 17px 18px}}
