/* Technical and evidence handoffs. Roboto and the existing type scale are retained. */
.technical-actions { display: flex; flex-wrap: wrap; gap: 1rem 2rem; margin-top: 1.5rem; }
.deployment-overview { margin-top: 1.75rem; border-block: 1px solid var(--line); }
.deployment-overview summary, .supporting-records summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: 1.25rem; cursor: pointer; list-style: none; font-weight: 600; }
summary::-webkit-details-marker { display: none; }
summary:focus-visible { outline: 3px solid #81b920; outline-offset: 5px; }
.deployment-overview summary > span, .supporting-records summary > span:last-child { font-size: 1.5rem; font-weight: 400; flex-shrink: 0; }
.deployment-overview[open] summary > span, .supporting-records details[open] summary > span:last-child { transform: rotate(45deg); }
.deployment-overview > div { padding-bottom: 1.5rem; }
.deployment-overview img { display: block; width: 100%; height: auto; background: white; }
.deployment-overview p { font-size: .875rem; color: var(--copy-dark); margin: 1rem 0 0; max-width: 80ch; }
.case-studies { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem; }
.case-study { min-width: 0; padding: 2rem; border-top: 3px solid #a5c877; background: #e9eee6; scroll-margin-top: 2rem; }
.case-study:target { outline: 2px solid #7a9a50; outline-offset: 5px; }
.case-study .eyebrow { font-size: .75rem; line-height: 1.65; }
.case-key { font-size: clamp(3.5rem,3rem + 1.5vw,4.5rem); line-height: 1.1; font-weight: 700; letter-spacing: -.035em; margin-block: 1.5rem; }
.case-key > span { font-size: 1.125rem; font-weight: 400; letter-spacing: 0; color: var(--copy-dark); }
.case-study h3 { font-size: var(--type-card); margin-bottom: 1rem; }
.case-study > p:not(.eyebrow) { font-size: var(--type-body); line-height: 1.65; color: var(--copy-dark); }
.case-facts { border-top: 1px solid #bdccb6; margin-block: 1.5rem; padding-top: 1.25rem; }
.case-facts > div + div { margin-top: 1rem; }
.case-facts dt { font-size: .75rem; font-weight: 600; line-height: 1.6; letter-spacing: .05em; text-transform: uppercase; color: #4d6454; }
.case-facts dd { margin: .375rem 0 0; font-size: .9375rem; line-height: 1.6; color: var(--copy-dark); }
.case-links { display: flex; gap: .75rem 1.5rem; flex-wrap: wrap; }
.case-links .text-link { font-size: .875rem; }
.supporting-records { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2rem; margin-top: 2rem; }
.supporting-records details { min-width: 0; align-self: start; border-block: 1px solid var(--line); scroll-margin-top: 2rem; }
.supporting-records summary { font-size: 1.375rem; line-height: 1.35; letter-spacing: -.015em; align-items: flex-start; }
.supporting-records small { display: block; font-size: .75rem; font-weight: 500; line-height: 1.6; letter-spacing: .05em; margin-bottom: .625rem; color: var(--copy-dark); }
.supporting-records details > div { padding-bottom: 1.5rem; }
.supporting-records p { font-size: .9375rem; line-height: 1.65; color: var(--copy-dark); }
.supporting-records .text-link { font-size: .875rem; }
.regulatory-proof { grid-template-columns: repeat(2,minmax(0,1fr)); }
.scope-prompts { padding-left: 1.25rem; margin: -.5rem 0 1.5rem; color: #d5e0e5; }
.scope-prompts li { padding-left: .25rem; margin-bottom: .5rem; font-size: 1rem; line-height: 1.6; }
.technical-contact { margin-block: 1.5rem 0; font-size: .9375rem; line-height: 1.65; color: #c5d3db; }
.technical-contact strong { color: var(--white); }
.contact-alternatives { display: flex; flex-wrap: wrap; align-items: flex-start; gap: .75rem 1.5rem; margin-top: 1rem; }
.contact-alternatives button { color: #e1ebee; border-bottom-color: #536571; font-size: .875rem; }
.contact-alternatives .text-link { font-size: .875rem; }
.copy-status { margin: .75rem 0 0; font-size: .875rem; line-height: 1.65; color: var(--lime); }
.copy-status:empty { display: none; }
.footer-company { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; padding-block: 0 2rem; }
.footer-company p { margin: 0; font-size: .8125rem; line-height: 1.7; color: #b3c7d3; max-width: 58ch; }

/* Client marks: real artwork, quiet grid, consistent optical bounds. */
.client-group { margin-top: 2rem; }
.client-group h3 { font-size: .75rem; line-height: 1.6; letter-spacing: .09em; text-transform: uppercase; margin-bottom: 1.25rem; }
.client-grid { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1px; border-block: 1px solid #cbd5c6; }
.client-mark { display: flex; flex-direction: column; justify-content: center; align-items: center; min-width: 0; padding: 1.5rem 1rem; min-height: 132px; text-align: center; }
.client-mark img { max-width: 100%; width: 160px; height: 56px; object-fit: contain; object-position: center; }
.client-mark .mark-square { width: 90px; height: 60px; }
.client-mark .mark-wide { width: 180px; height: 48px; }
.client-mark .mark-tall { width: 122px; height: 66px; }
.client-mark .mark-aker { width: 125px; height: 54px; }
.client-mark .mark-inverse-tall { width: 110px; height: 80px; }
.client-mark .mark-inverse { background: var(--navy); padding: .5rem .875rem; width: 180px; height: 60px; }
.client-mark > span { margin-top: .875rem; font-size: .75rem; line-height: 1.5; color: var(--copy-dark); }
.client-mark .mark-inverse.mark-inverse-tall { width: 110px; height: 80px; }
a.client-mark:hover { background: #e3ebde; }
.client-context { font-size: .875rem; line-height: 1.65; color: var(--copy-dark); margin: 1rem 0 0; max-width: 90ch; }
.study-client-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }

/* Standalone technical overview, sharing the same local type and identity. */
.document-header { display: flex; justify-content: space-between; align-items: center; gap: 2rem; padding: 1.5rem 0; border-bottom: 1px solid var(--line); }
.document-header .brand img { height: 60px; }
.document-header nav { display: flex; gap: 1.5rem; flex-wrap: wrap; font-size: .875rem; font-weight: 500; }
.technical-document { max-width: 1100px; }
.document-intro { padding-block: 4rem 3rem; }
.document-intro h1 { font-size: clamp(2.5rem,1.75rem + 3vw,4rem); line-height: 1.08; max-width: 18ch; margin-bottom: 1.5rem; }
.document-intro .lead { max-width: 60ch; }
.document-section { border-top: 1px solid var(--line); padding-block: 2rem; }
.document-section h2 { font-size: clamp(1.75rem,1.5rem + 1vw,2.5rem); margin-bottom: 1.5rem; }
.document-data { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1.5rem; margin: 0; }
.document-data > div { min-width: 0; }
.document-data dt { font-size: .8125rem; line-height: 1.5; color: var(--copy-dark); }
.document-data dd { margin: .5rem 0 0; font-size: 1.75rem; line-height: 1.2; font-weight: 700; }
.document-data small { display: block; margin-top: .5rem; font-size: .875rem; line-height: 1.6; font-weight: 400; color: var(--copy-dark); }
.document-note { font-size: .875rem; line-height: 1.65; color: var(--copy-dark); margin: 1.5rem 0 0; max-width: 85ch; }
.document-diagram img { display: block; width: 100%; height: auto; background: white; }
.document-table { width: 100%; border-collapse: collapse; text-align: left; }
.document-table th, .document-table td { padding: 1rem .75rem 1rem 0; border-bottom: 1px solid var(--line); vertical-align: top; font-size: .9375rem; line-height: 1.6; }
.document-table th { font-weight: 600; }
.document-checklist { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem 3rem; }
.document-checklist h3 { font-size: 1.25rem; line-height: 1.3; margin-bottom: .75rem; }
.document-checklist p { font-size: 1rem; line-height: 1.65; color: var(--copy-dark); }
.document-footer { padding-block: 2rem; border-top: 1px solid var(--line); font-size: .8125rem; line-height: 1.7; color: var(--copy-dark); }
@media(max-width:1100px) {
  .client-mark .mark-wide, .client-mark .mark-inverse { max-width: 100%; }
  .supporting-records { gap: 1.5rem; }
}
@media(max-width:900px) {
  .client-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .case-study { padding: 1.5rem; }
  .case-links { flex-direction: column; align-items: flex-start; }
  .document-data { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem; }
}
@media(max-width:760px) {
  .case-studies, .supporting-records, .footer-company { grid-template-columns: 1fr; }
  .case-study { padding: 1.75rem 1.5rem; }
  .supporting-records { gap: 1rem; }
  .regulatory-proof { grid-template-columns: 1fr; }
  .technical-actions { align-items: flex-start; flex-direction: column; gap: .75rem; }
  .contact-alternatives { flex-direction: column; gap: .5rem; }
  .client-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .client-mark { padding: 1.25rem .5rem; min-height: 124px; }
  .client-mark img { width: 140px; height: 50px; }
  .client-mark .mark-wide { width: 150px; height: 42px; }
  .client-mark .mark-square { width: 78px; height: 55px; }
  .client-mark .mark-inverse { width: 150px; height: 52px; padding: .5rem; }
  .client-mark > span { font-size: .75rem; }
  .document-header { gap: 1rem; }
  .document-header nav { gap: 1rem; justify-content: flex-end; }
  .document-header .brand img { height: 52px; }
  .document-intro { padding-block: 2.5rem 2rem; }
  .document-checklist { grid-template-columns: 1fr; gap: 1rem; }
  .document-table th, .document-table td { font-size: .875rem; padding-block: .875rem; }
}
@media(max-width:380px) {
  .client-mark img, .client-mark .mark-wide, .client-mark .mark-inverse { max-width: 126px; }
  .document-header nav a:last-child { display: none; }
  .document-data { grid-template-columns: 1fr; }
}
