/* About Integrity — the same editorial language, centered on real people. */
.about-page { --soft-paper:#f4f6f7; }
.about-page em { font-weight:400; }
.about-page .main-nav a[aria-current="page"] { color:var(--blue); }
.about-page .main-nav a[aria-current="page"]::after { transform:scaleX(1); }
.about-page button.text-link { background:none; border:0; padding:0; font:inherit; font-size:16px; }
.about-hero { display:grid; grid-template-columns:1.03fr 1fr; margin-left:var(--gutter); }
.about-hero-copy { padding:24px 40px 74px 0; align-self:center; }
.breadcrumbs { display:flex; align-items:center; gap:15px; margin-bottom:43px; font-size:13px; color:#66798a; }
.breadcrumbs a { transition:color .25s; }
.breadcrumbs a:hover { color:var(--blue); }
.breadcrumbs>span[aria-hidden] { color:#bbc5ce; }
.about-hero .eyebrow { margin-bottom:24px; }
.about-hero h1 { font-size:clamp(64px,6.1vw,96px); font-weight:400; line-height:1.04; letter-spacing:-.065em; margin-bottom:31px; }
.about-hero h1 em { color:#45677e; }
.about-hero .short-rule { margin-bottom:29px; }
.about-lead { font-size:20px; line-height:1.65; max-width:425px; margin-bottom:32px; }
.founder-hero { position:relative; min-height:720px; overflow:hidden; background:#607983; isolation:isolate; }
.founder-hero>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 40%; }
.founder-hero::after { content:""; position:absolute; inset:45% 0 0; background:linear-gradient(transparent,rgba(9,28,43,.82)); pointer-events:none; }
.founder-caption { position:absolute; z-index:1; bottom:40px; left:38px; right:35px; display:flex; align-items:flex-end; justify-content:space-between; gap:18px; color:#fff; }
.founder-caption .eyebrow { display:block; color:#eef4f7; font-size:11px; letter-spacing:.2em; margin-bottom:13px; }
.founder-caption strong { display:block; font:400 38px/1.15 var(--serif); letter-spacing:-.04em; margin-bottom:8px; }
.founder-caption div>span:last-child { font-size:15px; }
.founder-caption>button { background:transparent; border:1px solid rgba(255,255,255,.55); border-radius:50%; width:52px; height:52px; color:white; font-size:28px; transition:background .3s,transform .3s; flex-shrink:0; }
.about-introduction { display:grid; grid-template-columns:1fr 1fr; gap:10%; padding-top:102px; padding-bottom:108px; }
.about-introduction h2 { font-size:clamp(38px,4.1vw,64px); }
.story-copy { padding-top:4px; }
.story-copy p { font-size:18px; line-height:1.7; }
.story-copy .story-lead { color:var(--ink); font-size:24px; line-height:1.5; font-family:var(--serif); letter-spacing:-.03em; margin-bottom:24px; }
.story-copy .text-link { margin-top:5px; }
.about-promise { background:#122f45; color:#d7e1e7; display:grid; grid-template-columns:.95fr 1.05fr; gap:11%; padding:88px var(--gutter) 91px; }
.promise-heading h2 { color:white; font-size:clamp(44px,4.25vw,67px); line-height:1.13; }
.promise-heading h2 em { color:#afc7d9; }
.promise-heading .eyebrow { color:#c4d6e3; }
.promise-heading .short-rule { color:#8fadc3; margin:33px 0; }
.promise-heading>p:last-child { font-size:18px; line-height:1.7; max-width:390px; margin-bottom:0; }
.promise-list { align-self:center; }
.promise-item { border-bottom:1px solid #516776; }
.promise-item:first-child { border-top:1px solid #516776; }
.promise-item summary { display:grid; grid-template-columns:35px 1fr 20px; gap:20px; align-items:baseline; list-style:none; padding:25px 0; cursor:pointer; }
.promise-item summary::-webkit-details-marker { display:none; }
.promise-number { font-family:var(--serif); font-size:22px; color:#92adc1; }
.promise-item summary>span:nth-child(2) { font-family:var(--serif); font-size:24px; line-height:1.35; color:#fff; }
.promise-toggle { font:300 24px/1 var(--sans); color:#bacfdf; transition:transform .3s; }
.promise-item[open] .promise-toggle { transform:rotate(45deg); }
.promise-item>p { margin:0 35px 26px 55px; font-size:17px; line-height:1.65; animation:bio-enter .35s var(--ease) both; }
.about-team { padding-top:105px; padding-bottom:110px; }
.about-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:70px; margin-bottom:55px; }
.about-section-heading h2 { font-size:clamp(44px,4.3vw,67px); margin-bottom:0; }
.about-section-heading>p { max-width:390px; margin:0 0 6px; font-size:18px; line-height:1.7; }
.about-partners { padding-top:84px; padding-bottom:96px; background:#f3f5f6; }
.partner-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid #cdd6dd; border-left:1px solid #cdd6dd; }
.partner { position:relative; padding:29px 31px 34px; border-right:1px solid #cdd6dd; border-bottom:1px solid #cdd6dd; transition:background .3s; }
.partner-top { display:flex; justify-content:space-between; align-items:center; height:72px; margin-bottom:20px; }
.partner-top img { width:110px; height:70px; object-fit:contain; mix-blend-mode:multiply; object-position:left center; }
.partner-top>span { color:#6c8598; font-size:27px; transition:transform .3s,color .3s; }
.partner h3 { font-size:29px; letter-spacing:-.035em; margin-bottom:9px; }
.partner .partner-specialty { font-size:12px; text-transform:uppercase; letter-spacing:.1em; color:#356184; margin-bottom:16px; }
.partner>p:last-child { font-size:16px; line-height:1.7; margin:0; max-width:335px; }
.about-invitation { position:relative; background:#102f49; overflow:hidden; color:#f1f4f7; min-height:530px; display:flex; align-items:center; justify-content:center; text-align:center; isolation:isolate; }
.invitation-landscape { position:absolute; inset:0; background:linear-gradient(90deg,#122f4555,#122f4533),url('media/mountains.webp') center/cover no-repeat; z-index:-1; }
.invitation-copy { padding:73px var(--gutter) 78px; }
.invitation-copy .eyebrow { color:#c4d6e3; }
.invitation-copy h2 { color:#fff; font-size:clamp(48px,5vw,77px); line-height:1.1; margin-bottom:24px; }
.invitation-copy>p:not(.eyebrow) { font-size:19px; line-height:1.65; color:#d8e3eb; margin-bottom:29px; }
.invitation-copy .button { background:#fff; color:var(--ink); border-color:#fff; }
.invitation-home { display:block; width:max-content; margin:23px auto 0; font-size:14px; color:#d1e1ec; border-bottom:1px solid #7995a8; padding-bottom:7px; }
.invitation-home span { display:inline-block; margin-left:18px; transition:transform .3s; }
.bio-dialog { padding:0; border:0; color:var(--body); background:#fff; width:min(1040px,calc(100vw - 64px)); max-width:none; max-height:88vh; overflow:auto; box-shadow:0 30px 120px #05132166; }
.bio-dialog[open] { animation:dialog-enter .35s var(--ease) both; }
.bio-dialog::backdrop { background:rgba(8,27,41,.7); backdrop-filter:blur(6px); }
.bio-close { position:sticky; top:15px; z-index:3; width:42px; height:42px; margin:15px 15px -57px auto; display:block; border:1px solid #ced8df; border-radius:50%; background:#fff; color:var(--ink); font:300 30px/1 var(--sans); transition:transform .25s,background .25s; }
.bio-content { display:grid; grid-template-columns:.8fr 1.2fr; min-height:570px; }
.bio-copy { padding:61px 48px 40px; }
.bio-copy .eyebrow { font-size:11px; letter-spacing:.16em; margin-bottom:17px; }
.bio-copy h2 { font-size:47px; letter-spacing:-.045em; margin-bottom:16px; }
.bio-copy .bio-credentials { font-size:12px; color:#547089; margin-bottom:26px; letter-spacing:.04em; }
.bio-copy>p:not(.eyebrow):not(.bio-credentials) { font-size:17px; line-height:1.7; margin-bottom:20px; }
.bio-copy .text-link { font-size:14px; margin-top:5px; }
.bio-navigation { position:sticky; bottom:0; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:20px 30px; border-top:1px solid #d8e0e6; background:#f5f7f8; }
.bio-navigation button { border:0; padding:7px 0; font-size:14px; background:none; color:var(--ink); }
.bio-navigation button span { display:inline-block; transition:transform .2s; padding:0 9px; }
#bio-position { font-size:12px; color:#60778a; }
body.bio-open { overflow:hidden; }
@keyframes dialog-enter { from { opacity:0; transform:translateY(14px) scale(.99); } to { opacity:1; transform:none; } }
@keyframes bio-enter { from { opacity:0; transform:translateY(7px); } to { opacity:1; transform:none; } }
@media(hover:hover) {
 .founder-caption>button:hover { background:#fff; color:var(--ink); transform:translateX(2px); }
 .partner:hover { background:#fff; }
 .partner:hover .partner-top>span { transform:translate(3px,-3px); color:var(--blue); }
 .promise-item summary:hover .promise-number { color:#fff; }
 .invitation-copy .button:hover { background:#e6eff5; border-color:#e6eff5; }
 .invitation-home:hover span { transform:translateX(5px); }
 .bio-close:hover { transform:rotate(90deg); background:#edf3f7; }
 .bio-navigation button:first-child:hover span { transform:translateX(-4px); }
 .bio-navigation button:last-child:hover span { transform:translateX(4px); }
}
@media(min-width:1800px) {
 .about-hero,.about-introduction,.about-team,.about-partners,.about-promise { padding-left:max(var(--gutter),calc((100vw - 1600px)/2)); padding-right:max(var(--gutter),calc((100vw - 1600px)/2)); }
 .about-hero { margin-left:0; } .founder-hero { min-height:790px; }
}
@media(max-width:1100px) {
 .about-hero h1 { font-size:clamp(53px,6.7vw,74px); }
 .about-hero { margin-left:40px; } .about-hero-copy { padding-right:25px; }
 .founder-hero { min-height:665px; }
 .founder-caption { left:25px; right:25px; bottom:30px; }
 .founder-caption strong { font-size:30px; }
 .founder-caption div>span:last-child { font-size:13px; }
 .about-lead { font-size:18px; }
 .about-introduction { gap:8%; padding-top:75px; padding-bottom:78px; }
 .about-introduction h2 { font-size:43px; }
 .about-promise { gap:8%; padding-top:70px; padding-bottom:75px; }
 .promise-heading h2 { font-size:48px; }
 .promise-item summary { gap:14px; grid-template-columns:28px 1fr 16px; padding:22px 0; }
 .promise-item summary>span:nth-child(2) { font-size:22px; }
 .promise-item>p { margin-left:42px; margin-right:16px; font-size:16px; }
 .about-section-heading { gap:38px; }
 .about-section-heading h2 { font-size:48px; }
 .about-section-heading>p { max-width:310px; font-size:17px; }
 .about-team { padding-top:75px; padding-bottom:80px; }
 .partner { padding:23px; }
 .partner h3 { font-size:26px; }
 .partner>p:last-child { font-size:15px; }
 .bio-copy { padding:60px 32px 30px; }
 .bio-copy h2 { font-size:39px; }
 .bio-content { grid-template-columns:.75fr 1.25fr; }
}
@media(max-width:700px) {
 .about-hero { margin:0; grid-template-columns:1fr; }
 .about-hero-copy { padding:22px var(--gutter) 40px; }
 .breadcrumbs { margin-bottom:32px; font-size:12px; }
 .about-hero .eyebrow { font-size:11px; margin-bottom:20px; }
 .about-hero h1 { font-size:clamp(58px,11vw,76px); line-height:1.04; margin-bottom:27px; }
 .about-lead { font-size:18px; max-width:440px; margin-bottom:26px; }
 .founder-hero { min-height:0; height:auto; aspect-ratio:1; }
 .founder-hero>img { object-position:center; }
 .founder-caption { bottom:27px; left:var(--gutter); right:var(--gutter); }
 .founder-caption strong { font-size:32px; }
 .founder-caption .eyebrow { font-size:10px; margin-bottom:10px; }
 .about-introduction { grid-template-columns:1fr; gap:23px; padding-top:57px; padding-bottom:58px; }
 .about-introduction h2 { font-size:44px; margin-bottom:0; }
 .story-copy .story-lead { font-size:23px; }
 .story-copy p { font-size:17px; }
 .about-promise { grid-template-columns:1fr; gap:36px; padding:54px var(--gutter) 60px; }
 .promise-heading h2 { font-size:48px; margin-bottom:25px; }
 .promise-heading h2 br:last-child { display:none; }
 .promise-heading>p:last-child { font-size:17px; }
 .promise-heading .short-rule { margin:27px 0; }
 .promise-item summary { grid-template-columns:26px 1fr 15px; gap:13px; }
 .promise-item summary>span:nth-child(2) { font-size:21px; }
 .promise-item>p { margin-left:39px; }
 .about-team { padding-top:58px; padding-bottom:58px; }
 .about-section-heading { display:block; margin-bottom:33px; }
 .about-section-heading h2 { font-size:44px; margin-bottom:24px; }
 .about-section-heading>p { max-width:480px; font-size:17px; margin-bottom:0; }
 .about-partners { padding-top:54px; padding-bottom:59px; }
 .partner-grid { grid-template-columns:1fr 1fr; }
 .partner { padding:19px; }
 .partner-top { height:59px; margin-bottom:19px; }
 .partner-top img { width:80px; height:58px; }
 .partner-top>span { font-size:22px; }
 .partner h3 { font-size:24px; overflow-wrap:anywhere; }
 .partner .partner-specialty { font-size:10px; letter-spacing:.04em; margin-bottom:12px; }
 .partner>p:last-child { font-size:15px; line-height:1.6; }
 .about-invitation { min-height:475px; }
 .invitation-copy { padding:57px var(--gutter); }
 .invitation-copy h2 { font-size:49px; }
 .invitation-copy>p:not(.eyebrow) { font-size:17px; }
 .invitation-copy .button { padding:16px 20px; font-size:14px; gap:15px; }
 .invitation-home { font-size:13px; }
 .bio-dialog { width:calc(100vw - 24px); max-height:92dvh; }
 .bio-content { grid-template-columns:1fr; }
 .bio-copy { padding:32px 27px; }
 .bio-copy h2 { font-size:37px; }
 .bio-copy>p:not(.eyebrow):not(.bio-credentials) { font-size:16px; line-height:1.7; }
 .bio-navigation { padding:16px; }
 .bio-navigation button { font-size:13px; }
}
@media(max-width:380px) {
 .partner-grid { grid-template-columns:1fr; }
 .about-hero h1 { font-size:54px; }
}
@media(prefers-reduced-motion:reduce) {
 .bio-dialog[open],.promise-item>p { animation:none; }
}

/* Our Team (2026-10-15): one shape, one crop. Every portrait is the same circle, framed on the face
   (the source crops are made in extract-about.cjs), set in a ruled grid that echoes the partner grid. */
.about-team { --cell-line:var(--line); --portrait:clamp(150px,13.2vw,204px); }
.team-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--cell-line); border-left:1px solid var(--cell-line); }
.team-card { position:relative; min-width:0; display:flex; flex-direction:column; align-items:center; text-align:center; padding:46px 22px 38px; border-right:1px solid var(--cell-line); border-bottom:1px solid var(--cell-line); background:#fff; transition:background .45s var(--ease), opacity .8s var(--ease), transform .8s var(--ease); transition-delay:0s,calc(var(--i,0) * 70ms),calc(var(--i,0) * 70ms); }
.portrait-link { position:relative; display:block; flex:none; width:var(--portrait); aspect-ratio:1; padding:0; border:0; border-radius:50%; background:#e9eef1; margin-bottom:30px; isolation:isolate; }
.portrait-link::after { content:""; position:absolute; inset:-9px; border-radius:50%; border:1px solid #c9d4dc; transition:inset .5s var(--ease), border-color .5s var(--ease); pointer-events:none; }
.portrait-link img { width:100%; height:100%; border-radius:50%; object-fit:cover; object-position:50% 50%; }
.team-card h3 { font-size:clamp(23px,1.85vw,29px); line-height:1.2; letter-spacing:-.04em; margin:0 0 9px; }
.team-card h3>button { background:none; border:0; padding:0; font:inherit; color:inherit; text-align:center; transition:color .25s; }
.team-card h3>button::after { content:""; position:absolute; inset:0; z-index:1; }
.team-role { font-size:15px; line-height:1.5; color:#41576b; margin:0 0 9px; }
.team-credentials { font-size:11px; font-weight:550; line-height:1.75; letter-spacing:.12em; color:#5d7488; margin:0; max-width:220px; }
.team-card .text-link { margin-top:auto; padding-top:24px; font-size:14px!important; gap:14px; pointer-events:none; }
.team-card .text-link>span { font-size:21px; }
.team-card:focus-within { background:#f6f8f9; }
.bio-portrait { display:flex; align-items:flex-start; justify-content:center; padding:72px 40px 40px; background:#eef2f4; }
.bio-portrait img { width:min(100%,280px); aspect-ratio:1; height:auto; border-radius:50%; object-fit:cover; box-shadow:0 0 0 9px #eef2f4, 0 0 0 10px #c9d4dc; }
@media(hover:hover) {
 .team-card:hover { background:#f6f8f9; }
 .team-card:hover .portrait-link::after { inset:-12px; border-color:var(--blue); }
 .team-card:hover h3>button { color:var(--blue); }
 .team-card:hover .text-link>span { transform:translateX(5px); }
}
@media(max-width:1100px) {
 .about-team { --portrait:clamp(150px,22vw,200px); }
 .team-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .team-card { padding:42px 24px 36px; }
 .bio-portrait { padding:60px 28px 32px; }
}
@media(max-width:700px) {
 .about-team { --portrait:min(116px,30vw); }
 .team-card { padding:30px 10px 26px; }
 .portrait-link { margin-bottom:22px; }
 .portrait-link::after { inset:-6px; }
 .team-card h3 { font-size:20px; margin-bottom:6px; }
 .team-role { font-size:13px; line-height:1.45; margin-bottom:7px; }
 .team-credentials { font-size:9.5px; letter-spacing:.08em; line-height:1.7; }
 .team-card .text-link { padding-top:16px; font-size:12.5px!important; gap:9px; }
 .team-card .text-link>span { font-size:17px; }
 .bio-portrait { padding:34px 20px 8px; background:#fff; }
 .bio-portrait img { width:150px; box-shadow:0 0 0 7px #fff, 0 0 0 8px #c9d4dc; }
}
@media(max-width:340px) {
 .team-grid { grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce) {
 .team-card,.portrait-link::after { transition:none; }
}
