/* About page */
.ab-hero .scm-stage__grid { align-items: center; }
.ab-hero__fig { position: relative; margin: 0; height: 460px; }
.ab-hero__p { position: absolute; width: 46%; aspect-ratio: 4 / 5; object-fit: cover; object-position: top; background: #e6eef0; border: 6px solid #fff; box-shadow: 0 30px 50px -24px rgba(0, 30, 40, 0.55); }
.ab-hero__p--0 { left: 27%; top: 0; z-index: 3; width: 48%; }
.ab-hero__p--1 { left: 0; top: 70px; z-index: 2; transform: rotate(-3deg); }
.ab-hero__p--2 { right: 0; top: 70px; z-index: 2; transform: rotate(3deg); }
.ab-hero__fig figcaption { position: absolute; left: 0; right: 0; bottom: -6px; text-align: center; font: 600 11px "IBM Plex Mono", monospace; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255, 255, 255, 0.85); }
.ab-stats { background: #fff; border-bottom: 1px solid #e3eaec; }
.ab-stats ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); }
.ab-stats li { padding: 26px 18px; border-left: 1px solid #e3eaec; display: grid; gap: 4px; }
.ab-stats li:first-child { border-left: 0; padding-left: 0; }
.ab-stats b { font: 500 34px/1 "Newsreader", Georgia, serif; color: #0b8fa8; }
.ab-stats span { font-size: 13.5px; color: #55605f; }
.ab-ph { margin: 0; overflow: hidden; background: linear-gradient(180deg, #e8f3f5, #d6e7eb); aspect-ratio: 4 / 5; }
.ab-ph img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center top; filter: saturate(0.92); transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1), filter 0.4s; }
.ab-founder:hover .ab-ph img, .ab-leader:hover .ab-ph img, .ab-member:hover .ab-ph img { transform: scale(1.04); filter: saturate(1.05); }
.ab-founders { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.ab-founder { background: #fff; border: 1px solid #e0e8ea; display: grid; grid-template-rows: auto 1fr; }
.ab-founder__b { padding: 22px 24px 24px; display: grid; gap: 8px; align-content: start; border-top: 3px solid #0b8fa8; }
.ab-founder small, .ab-leader small, .ab-member small { font: 600 10.5px "IBM Plex Mono", monospace; letter-spacing: 0.1em; text-transform: uppercase; color: #0b8fa8; }
.ab-founder h3 { margin: 0; font: 500 28px/1.1 "Newsreader", Georgia, serif; color: #1f2a2e; }
.ab-role { margin: 0; font-weight: 600; font-size: 14.5px; color: #55605f; }
.ab-founder blockquote { margin: 6px 0 4px; padding: 0 0 0 14px; border-left: 2px solid #b9e3ea; font: 400 15.5px/1.55 "Source Sans 3", sans-serif; color: #2f3a3d; }
.ab-chips { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.ab-chips li { font-size: 12.5px; padding: 4px 10px; background: #eaf6f8; color: #0a6f83; }
.ab-leaders { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.ab-leader { display: grid; grid-template-columns: 200px 1fr; background: #fff; border: 1px solid #e0e8ea; }
.ab-leader > div { padding: 24px 26px; display: grid; gap: 8px; align-content: center; }
.ab-leader h3 { margin: 0; font: 500 26px/1.1 "Newsreader", Georgia, serif; color: #1f2a2e; }
.ab-leader p { margin: 0; font-size: 15px; line-height: 1.55; color: #55605f; }
.ab-team { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; }
.ab-member { display: grid; gap: 6px; align-content: start; }
.ab-member .ab-ph { margin-bottom: 6px; }
.ab-member h3 { margin: 0; font: 600 16px/1.2 "Source Sans 3", sans-serif; color: #1f2a2e; }
.ab-member p { margin: 0; font-size: 13.5px; line-height: 1.45; color: #6b7a7f; }
.ab-phil { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: #dfe8ea; border: 1px solid #dfe8ea; }
.ab-phil__c { background: #fff; padding: 26px 26px 28px; display: grid; gap: 10px; align-content: start; }
.ab-phil__c small { font: 600 11px "IBM Plex Mono", monospace; letter-spacing: 0.12em; text-transform: uppercase; color: #0b8fa8; }
.ab-phil__c h3 { margin: 0; font: 500 23px/1.2 "Newsreader", Georgia, serif; color: #1f2a2e; }
.ab-phil__c p { margin: 0; font-size: 15px; line-height: 1.55; color: #55605f; }
.ab-phil__c ul { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.ab-phil__c li { font-size: 12.5px; padding: 4px 10px; border: 1px solid #cfe3e7; color: #0a6f83; }
.ab-method { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); position: relative; }
.ab-method::before { content: ""; position: absolute; left: 0; right: 0; top: 22px; height: 2px; background: linear-gradient(90deg, #0a6f83, #5cc8d6); }
.ab-method li { position: relative; padding: 0 22px 0 0; display: grid; gap: 8px; }
.ab-method span { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: #0b8fa8; color: #fff; font: 600 13px "IBM Plex Mono", monospace; box-shadow: 0 0 0 6px #f4f8f9; position: relative; }
.ab-method h3 { margin: 8px 0 0; font: 500 24px "Newsreader", Georgia, serif; color: #1f2a2e; }
.ab-method p { margin: 0; font-size: 15px; line-height: 1.5; color: #55605f; }
.ab-method em { font: 600 11px "IBM Plex Mono", monospace; font-style: normal; letter-spacing: 0.06em; text-transform: uppercase; color: #0b8fa8; }
.ab-sectors { margin-top: 40px; padding: 22px 24px; background: #fff; border: 1px solid #e0e8ea; display: grid; gap: 12px; }
.ab-sectors small { font: 600 10.5px "IBM Plex Mono", monospace; letter-spacing: 0.1em; text-transform: uppercase; color: #7b8a8c; }
.ab-sectors ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ab-sectors li { padding: 7px 14px; background: #eaf6f8; color: #0a6f83; font-size: 14px; font-weight: 600; }
.ab-offices { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.ab-office { display: grid; gap: 6px; padding: 24px; background: #fff; border: 1px solid #e0e8ea; border-top: 3px solid #0b8fa8; text-decoration: none; transition: transform 0.3s, box-shadow 0.3s; }
.ab-office:hover { transform: translateY(-3px); box-shadow: 0 20px 34px -24px rgba(6, 74, 88, 0.5); }
.ab-office small { font: 600 10.5px "IBM Plex Mono", monospace; letter-spacing: 0.1em; text-transform: uppercase; color: #7b8a8c; }
.ab-office b { font: 500 28px "Newsreader", Georgia, serif; color: #1f2a2e; }
.ab-office span { font-size: 13.5px; font-weight: 600; color: #0b8fa8; }
@media (max-width: 1100px) { .ab-team { grid-template-columns: repeat(4, minmax(0, 1fr)); } .ab-stats ul { grid-template-columns: repeat(3, minmax(0, 1fr)); } .ab-stats li:nth-child(4) { border-left: 0; padding-left: 0; } }
@media (max-width: 900px) { .ab-founders, .ab-phil { grid-template-columns: 1fr; } .ab-leaders { grid-template-columns: 1fr; } .ab-method { grid-template-columns: 1fr 1fr; row-gap: 28px; } .ab-method::before { display: none; } .ab-offices { grid-template-columns: 1fr 1fr; } .ab-team { grid-template-columns: repeat(3, minmax(0, 1fr)); } .ab-hero__fig { height: 380px; margin-top: 24px; } .ab-founder { grid-template-columns: 200px 1fr; grid-template-rows: auto; } .ab-founder__b { border-top: 0; border-left: 3px solid #0b8fa8; } }
@media (max-width: 600px) { .ab-team { grid-template-columns: 1fr 1fr; } .ab-stats ul { grid-template-columns: 1fr 1fr; } .ab-stats li { border-left: 0; padding-left: 0; } .ab-leader, .ab-founder { grid-template-columns: 1fr; } .ab-method, .ab-offices { grid-template-columns: 1fr; } .ab-hero__fig { height: 300px; } }
/* hero portraits: three equal, aligned frames */
.ab-hero__fig { height: auto; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding-bottom: 30px; }
.ab-hero__p, .ab-hero__p--0, .ab-hero__p--1, .ab-hero__p--2 { position: static; width: 100%; transform: none; border: 0; box-shadow: 0 24px 40px -26px rgba(0, 30, 40, 0.6); aspect-ratio: 3 / 4; }
.ab-hero__p--1 { order: -1; }
.ab-hero__fig figcaption { bottom: 0; }
@media (max-width: 900px) { .ab-hero__fig { height: auto; } }
/* what we build */
.ab-suites { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.ab-suite { background: #fff; border: 1px solid #e0e8ea; border-top: 3px solid #0b8fa8; padding: 22px 20px; display: grid; gap: 10px; align-content: start; }
.ab-suite:nth-child(2) { border-top-color: #1aa5bf; } .ab-suite:nth-child(3) { border-top-color: #3197a8; } .ab-suite:nth-child(4) { border-top-color: #0a6f83; }
.ab-suite small { font: 600 10.5px "IBM Plex Mono", monospace; letter-spacing: 0.1em; text-transform: uppercase; color: #0b8fa8; }
.ab-suite h3 { margin: 0 0 4px; font: 500 21px/1.2 "Newsreader", Georgia, serif; color: #1f2a2e; }
.ab-suite ul { list-style: none; margin: 0; padding: 0; display: grid; }
.ab-suite a { display: grid; gap: 1px; padding: 9px 0; border-top: 1px solid #edf2f3; text-decoration: none; }
.ab-suite a b { font: 600 14.5px "Source Sans 3", sans-serif; color: #1f2a2e; transition: color 0.2s; }
.ab-suite a span { font-size: 12.5px; color: #7b8a8c; }
.ab-suite a:hover b { color: #0b8fa8; }
/* capabilities */
.ab-pillars { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px; background: #dfe8ea; border: 1px solid #dfe8ea; }
.ab-pillars li { background: #fff; padding: 22px 20px; display: grid; gap: 8px; align-content: start; }
.ab-pillars span { font: 600 12px "IBM Plex Mono", monospace; color: #0b8fa8; }
.ab-pillars h3 { margin: 0; font: 500 20px/1.2 "Newsreader", Georgia, serif; color: #1f2a2e; }
.ab-pillars p { margin: 0; font-size: 14px; line-height: 1.5; color: #55605f; }
.ab-pillars em { font-style: normal; font-size: 12px; line-height: 1.45; color: #0a6f83; }
@media (max-width: 1100px) { .ab-suites { grid-template-columns: 1fr 1fr; } .ab-pillars { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .ab-suites, .ab-pillars { grid-template-columns: 1fr; } }
/* hero: layered product windows (no repeated portraits) */
.ab-stack { position: relative; margin: 0; height: 470px; }
.ab-win { position: absolute; background: #fff; overflow: hidden; border-radius: 10px; box-shadow: 0 40px 70px -30px rgba(0, 25, 35, 0.7), 0 0 0 1px rgba(255, 255, 255, 0.4); }
.ab-win__bar { display: flex; align-items: center; gap: 6px; height: 26px; padding: 0 10px; background: #eef3f5; border-bottom: 1px solid #dde6e9; }
.ab-win__bar i { width: 8px; height: 8px; border-radius: 50%; background: #cdd8dc; }
.ab-win__bar span { margin-left: 8px; font: 600 10px "IBM Plex Mono", monospace; letter-spacing: 0.06em; color: #6b7a7f; white-space: nowrap; }
.ab-win img { display: block; width: 100%; height: auto; }
.ab-win--a { width: 78%; left: 0; top: 0; z-index: 1; }
.ab-win--b { width: 52%; right: 0; top: 150px; z-index: 2; animation: ab-float 7s ease-in-out infinite; }
.ab-win--c { width: 46%; left: 8%; top: 262px; z-index: 3; animation: ab-float 8s ease-in-out -3s infinite; }
.ab-phone { position: absolute; right: 4%; top: 6px; width: 21%; z-index: 4; border-radius: 22px; overflow: hidden; box-shadow: 0 30px 50px -20px rgba(0, 25, 35, 0.75); animation: ab-float 9s ease-in-out -5s infinite; }
.ab-phone img { display: block; width: 100%; height: auto; }
.ab-tags { position: absolute; left: 0; bottom: -4px; z-index: 5; list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.ab-tags li { padding: 6px 11px; background: rgba(255, 255, 255, 0.95); color: #0a6f83; font: 600 11px "IBM Plex Mono", monospace; letter-spacing: 0.06em; text-transform: uppercase; box-shadow: 0 10px 20px -12px rgba(0, 25, 35, 0.5); }
@keyframes ab-float { 50% { transform: translateY(-8px); } }
@media (prefers-reduced-motion: reduce) { .ab-win, .ab-phone { animation: none; } }
@media (max-width: 900px) { .ab-stack { height: 400px; margin-top: 28px; } }
@media (max-width: 600px) { .ab-stack { height: 300px; } .ab-win--c { top: 190px; } .ab-win--b { top: 110px; } .ab-tags { display: none; } }
