/* New team and ministry pages share the existing Army FM typography/navigation. */
.portal-main--team,.portal-main--ministry { padding:0; background:#f5fafc; }
.portal-container--team,.portal-container--ministry { max-width:none; }
.editorial-page { --ep-pad:clamp(20px,4.15vw,90px); --ep-copy:#526f80; --ep-line:#cedfe7; color:var(--navy); }
.editorial-page [hidden] { display:none!important; }
.ep-container { max-width:2080px; padding-inline:var(--ep-pad); margin-inline:auto; }
.ep-container > .breadcrumbs { margin:22px 0; font-size:12px; }
.site-frame:has(.team-page) { position:relative; --ep-header-height:90px; }
.site-frame:has(.team-page) > .portal-header { position:absolute; inset:0 0 auto; background:transparent; }
.ep-hero { position:relative; isolation:isolate; overflow:hidden; height:40svh; min-height:360px; max-height:600px; background:var(--navy); color:#fff; }
.ep-hero-image { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; object-position:70% 52%; opacity:.9; animation:ep-hero-depth 1.4s cubic-bezier(.2,.65,.3,1) both; }
.ep-hero-shade { position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,#001d2ded,#001d2b9c 45%,#001b2b10),linear-gradient(180deg,#0017258c,transparent 65%,#001b2b38); }
.ep-hero-inner { max-width:2080px; height:100%; padding:calc(var(--ep-header-height) + 22px) var(--ep-pad) 28px; margin:auto; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; }
.ep-eyebrow { display:flex; align-items:center; gap:12px; margin:0 0 16px; font-family:var(--display); font-size:9px; font-weight:600; line-height:1.5; letter-spacing:.04em; }
.ep-eyebrow::before { content:''; flex-shrink:0; width:24px; height:2px; background:var(--blue); }
.ep-hero .ep-eyebrow { color:#b9d9e7; }
.ep-hero h1 { margin:0; font-family:var(--display); font-size:clamp(46px,min(7vw,10svh),116px); font-weight:600; line-height:1.06; letter-spacing:-.045em; color:#f6fbfe; background:none; -webkit-text-fill-color:currentColor; text-shadow:0 3px 18px #001b2b88; white-space:normal; animation:ep-title-in .7s ease-out both; }
.ep-hero-lead { max-width:650px; margin:16px 0 0; font-size:clamp(15px,1.2vw,21px); line-height:1.6; color:#e1eef4; animation:ep-title-in .8s .06s ease-out both; }
.ep-hero-link { display:inline-flex; gap:14px; align-items:center; min-height:44px; margin-top:14px; color:#d5e8f1; font-size:13px; text-decoration:none; text-underline-offset:5px; }
.ep-hero-link span { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; border:1px solid #a9cfdf66; }
.ep-hero-link svg { width:16px; height:16px; }
.ep-section-navigation { display:flex; flex-wrap:wrap; gap:12px; padding:12px 0 36px; }
.ep-section-link { display:inline-flex; align-items:center; gap:12px; min-height:46px; padding:10px 16px; border-radius:30px; background:#e4f0f6; font-size:13px; line-height:1.4; text-decoration:none; transition:background .25s,box-shadow .25s,transform .25s; }
.ep-section-count { display:grid; place-items:center; min-width:24px; height:24px; padding-inline:4px; border-radius:50%; background:#fff9; font-size:11px; color:#456f83; }
.ep-section-link svg { width:16px; height:16px; }
.team-page { background:linear-gradient(180deg,#f5fafc,#fff); }
.team-section { padding-block:0 clamp(48px,5vw,88px); scroll-margin-top:32px; }
.team-section-heading { display:flex; align-items:center; gap:24px; margin-bottom:28px; }
.team-section-heading h2 { margin:0; font-family:var(--display); font-size:clamp(26px,3vw,50px); font-weight:600; line-height:1.18; letter-spacing:-.035em; }
.team-section-heading > span:first-of-type { flex:1; height:1px; background:var(--ep-line); }
.team-section-count { font-family:var(--display); font-size:13px; color:#7c9dad; }
.team-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(18px,2vw,32px); }
.team-person { min-width:0; overflow:hidden; padding:8px; border:1px solid #d8e6ed; border-radius:22px; background:#fff; box-shadow:0 4px 20px #244f6504; transition:transform .28s,box-shadow .28s; }
.team-person-visual { position:relative; overflow:hidden; border-radius:16px; aspect-ratio:3/2; background:#deebf2; }
.team-person-image { display:block; width:100%; height:100%; object-fit:contain; }
.team-person-placeholder { position:relative; isolation:isolate; display:flex; flex-direction:column; align-items:center; justify-content:center; height:100%; gap:12px; overflow:hidden; background:linear-gradient(135deg,#e7f2f7,#d6e7ee); }
.team-person:nth-child(3n+2) .team-person-placeholder { background:linear-gradient(135deg,#edf4ee,#dceae0); }
.team-person-placeholder > img { position:absolute; z-index:-1; right:-10px; top:15px; height:84%; width:auto; opacity:.045; transform:rotate(-8deg); }
.team-person-initials { font-family:var(--display); font-size:clamp(38px,4.5vw,76px); font-weight:600; letter-spacing:-.06em; line-height:1; color:#496e826b; text-shadow:0 1px 0 #fff9; }
.team-person-wave { display:flex; align-items:center; justify-content:center; gap:4px; height:30px; opacity:.55; }
.team-person-wave i { width:3px; height:calc(var(--bar-height) * .65); background:#7aa7ba; border-radius:2px; transform-origin:center; }
.team-photo-note { font-size:10px; line-height:1.5; color:#59798b; }
.team-person-copy { padding:20px 16px 18px; }
.team-person-copy h3 { margin:0; font-family:var(--display); font-size:clamp(17px,1.7vw,29px); font-weight:600; line-height:1.25; letter-spacing:-.03em; text-wrap:balance; }
.team-person-copy p { margin:9px 0 0; font-size:14px; color:var(--ep-copy); line-height:1.5; }
.mod-hero { position:relative; overflow:hidden; background:linear-gradient(115deg,#fafdff,#edf6fa); }
.mod-hero .ep-container { position:relative; padding-top:1px; padding-bottom:36px; }
.mod-hero-copy { position:relative; z-index:1; padding-top:16px; max-width:90%; }
.mod-hero .ep-eyebrow { color:#5d7f91; margin-bottom:14px; }
.mod-hero h1 { margin:0; max-width:100%; font-family:var(--display); font-size:clamp(30px,3.75vw,68px); font-weight:600; line-height:1.08; letter-spacing:-.045em; color:var(--navy); background:none; -webkit-text-fill-color:currentColor; white-space:normal; animation:ep-title-in .7s ease-out both; }
.mod-hero h1 > span { display:block; }
.mod-hero-copy > p:not(.ep-eyebrow) { max-width:1000px; margin:20px 0 0; font-size:clamp(16px,1.4vw,23px); line-height:1.6; color:#4e7086; }
.mod-official { display:inline-flex; align-items:center; gap:10px; min-height:44px; margin-top:10px; color:#557f93; font-size:12px; text-decoration:none; text-underline-offset:5px; }
.mod-official svg { width:18px; height:18px; transform:rotate(-35deg); }
.mod-hero-symbol { position:absolute; width:clamp(150px,18vw,300px); height:auto; right:var(--ep-pad); top:50%; transform:translateY(-38%); opacity:.065; pointer-events:none; }
.mod-materials { padding-top:28px; padding-bottom:clamp(56px,6vw,100px); scroll-margin-top:24px; }
.mod-toolbar { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:20px; }
.mod-topics { display:flex; flex-wrap:wrap; gap:8px; min-width:0; }
.mod-topic { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:10px 20px; border-radius:28px; background:#e5f1f7; color:#285367; font-size:13px; line-height:1.4; text-decoration:none; white-space:nowrap; transition:background .2s,box-shadow .2s,color .2s; }
.mod-topic[aria-current="true"] { background:var(--navy); color:#fff; box-shadow:0 3px 14px #123c4c1a; }
.mod-search { display:flex; align-items:center; flex:0 1 370px; min-width:230px; padding:3px 4px 3px 18px; border:1px solid #caddE9; border-radius:30px; background:#fff; box-shadow:0 5px 18px #315d7504; }
.mod-search input { width:100%; min-width:0; padding:10px 2px; border:0; background:transparent; color:var(--navy); font:inherit; font-size:13px; line-height:1.5; }
.mod-search input::placeholder { color:#6e8999; }
.mod-search button { display:grid; place-items:center; width:40px; height:40px; flex:0 0 auto; padding:0; border:0; border-radius:50%; background:transparent; color:var(--navy); cursor:pointer; transition:background .2s; }
.mod-search svg { width:20px; height:20px; }
.mod-demo-note { display:flex; align-items:center; gap:9px; margin:0 0 22px; color:#647f8d; font-size:12px; line-height:1.6; }
.mod-demo-note > span { flex:0 0 auto; width:5px; height:5px; border-radius:50%; background:#7aa7ba; }
.mod-demo-note p { margin:0; }
.mod-featured { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:16px 20px; }
.mod-card { min-width:0; overflow:hidden; padding:8px; border:1px solid #d8e8f0; border-radius:18px; background:#eef7fb; box-shadow:0 4px 18px #294f6504; transition:box-shadow .25s,transform .25s; }
.mod-card-image { position:relative; overflow:hidden; border-radius:11px; background:#dcebf1; }
.mod-card-image > img { display:block; width:100%; height:100%; object-fit:cover; }
.mod-card-image > span { position:absolute; right:9px; bottom:9px; display:inline-flex; padding:6px 8px; border-radius:7px; background:#f5fbffeb; color:#42667a; font-size:9px; line-height:1.5; }
.mod-card--lead { grid-row:span 2; }
.mod-card--lead .mod-card-image { aspect-ratio:2.4/1; }
.mod-card-copy { padding:14px 10px 12px; }
.mod-card-meta { display:flex; align-items:center; flex-wrap:wrap; gap:8px 12px; margin-bottom:12px; color:#617e90; font-size:10px; line-height:1.5; }
.mod-card-meta > span:first-child { padding:4px 8px; border-radius:18px; background:#dceef6; color:#30566b; font-size:8px; }
.mod-card h3 { margin:0; font-family:var(--display); font-size:clamp(15px,1.5vw,26px); font-weight:600; line-height:1.3; letter-spacing:-.035em; text-wrap:pretty; }
.mod-card p { margin:10px 0 0; font-size:14px; color:#57758a; line-height:1.6; }
.mod-card-pending { display:block; margin-top:16px; color:#6f8f9e; font-size:10px; line-height:1.5; }
.mod-card--side { display:grid; grid-template-columns:36% minmax(0,1fr); gap:8px; }
.mod-card--side .mod-card-image { min-height:156px; }
.mod-card--side .mod-card-copy { padding:10px 6px; align-self:center; }
.mod-card--side h3 { font-size:clamp(13px,1.15vw,20px); }
.mod-card--side p { display:none; }
.mod-card--side .mod-card-meta { gap:6px; margin-bottom:10px; }
.mod-card--side .mod-card-image > span { font-size:8px; padding:4px; right:5px; bottom:5px; }
.mod-card--side .mod-card-pending { margin-top:10px; }
.mod-featured[data-count="2"] { grid-template-columns:repeat(2,minmax(0,1fr)); }
.mod-featured[data-count="1"] { grid-template-columns:minmax(0,1fr); max-width:850px; }
.mod-featured[data-count="2"] .mod-card { display:block; grid-row:auto; }
.mod-featured[data-count="2"] .mod-card-image { aspect-ratio:2.2/1; min-height:0; }
.mod-latest { margin-top:40px; }
.mod-latest-heading { display:flex; align-items:center; gap:22px; margin-bottom:22px; }
.mod-latest-heading h2 { margin:0; font-family:var(--display); font-size:clamp(16px,1.6vw,26px); font-weight:600; line-height:1.3; letter-spacing:-.03em; }
.mod-latest-heading > span { flex:1; height:1px; background:#b8d3e1; }
.mod-latest-heading > a { display:inline-flex; align-items:center; gap:8px; min-height:44px; font-size:12px; text-decoration:none; white-space:nowrap; }
.mod-latest-heading svg { width:18px; height:18px; }
.mod-latest-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.mod-card--compact .mod-card-image { aspect-ratio:2/1; }
.mod-card--compact h3 { font-size:clamp(14px,1.2vw,21px); }
.mod-card--compact .mod-card-copy { padding:14px 10px; }
.mod-empty { padding:60px 20px; border-radius:18px; background:#edf6fa; text-align:center; }
.mod-empty h3 { margin:0 0 12px; font-family:var(--display); font-size:22px; }
.mod-empty p { margin:0 0 16px; color:#597b8c; font-size:14px; line-height:1.6; }
.mod-empty button { display:inline-flex; align-items:center; gap:12px; min-height:44px; padding:10px 18px; border:0; border-radius:24px; background:var(--navy); color:#fff; font:inherit; font-size:12px; cursor:pointer; }
.mod-empty svg { width:18px; height:18px; }
@media(hover:hover) {
 .ep-section-link:hover,.mod-search button:hover { background:#d4e8f3; box-shadow:0 0 18px #7aa7ba29; }
 .ep-hero-link:hover { text-decoration:underline; }
 .team-person:hover,.mod-card:hover { transform:translateY(-3px); box-shadow:0 10px 28px #315d751c,0 0 20px #add2e221; }
 .team-person:hover .team-person-wave i { animation:ep-wave .65s var(--bar-delay) ease-in-out infinite alternate; }
 .mod-topic:not([aria-current="true"]):hover { background:#d5eaf4; box-shadow:0 0 18px #7aa7ba29; }
 .mod-official:hover,.mod-latest-heading > a:hover { text-decoration:underline; }
}
@media(max-width:1100px) and (min-width:761px) {
 .team-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .team-person-copy h3 { font-size:23px; }
 .mod-toolbar { flex-wrap:wrap; }
 .mod-search { flex-basis:100%; }
 .mod-card--side .mod-card-image { min-height:150px; }
 .mod-card--side h3 { font-size:14px; }
 .mod-card--side .mod-card-meta > span:not(:first-child) { display:none; }
 .mod-hero-copy { max-width:95%; }
}
@media(max-width:900px) and (min-width:761px) {
 .site-frame:has(.team-page) { --ep-header-height:142px; }
 .ep-hero { min-height:380px; }
}
@media(max-width:760px) {
 .editorial-page { --ep-pad:20px; }
 .site-frame:has(.team-page) { --ep-header-height:78px; }
 .ep-hero { height:auto; min-height:430px; max-height:none; }
 .ep-hero-inner { min-height:430px; padding-top:112px; padding-bottom:40px; }
 .ep-hero-image { object-position:62% 50%; }
 .ep-hero-shade { background:linear-gradient(90deg,#001d2bd9,#001d2b75),linear-gradient(180deg,#001d2b78,transparent); }
 .ep-hero h1 { font-size:clamp(35px,10vw,72px); }
 .ep-hero-lead { max-width:90%; margin-top:16px; font-size:15px; }
 .ep-hero-link { font-size:12px; margin-top:14px; }
 .ep-eyebrow { font-size:8px; margin-bottom:16px; }
 .ep-container > .breadcrumbs { margin:18px 0; font-size:11px; }
 .ep-section-navigation { gap:8px; padding:8px 0 30px; }
 .ep-section-link { gap:8px; padding:8px 12px; font-size:11px; min-height:44px; }
 .ep-section-count { min-width:20px; height:20px; font-size:10px; }
 .ep-section-link svg { width:14px; height:14px; }
 .team-section { padding-bottom:40px; scroll-margin-top:24px; }
 .team-section-heading { gap:14px; margin-bottom:20px; }
 .team-section-heading h2 { font-size:clamp(22px,5.8vw,34px); }
 .team-section-count { font-size:11px; }
 .team-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
 .team-person { border-radius:16px; padding:5px; }
 .team-person-visual { border-radius:11px; aspect-ratio:1/1; }
 .team-person-placeholder { gap:8px; }
 .team-person-initials { font-size:clamp(29px,9vw,58px); }
 .team-person-wave { height:20px; gap:3px; }
 .team-person-wave i { width:2px; height:calc(var(--bar-height) * .4); }
 .team-photo-note { font-size:8px; }
 .team-person-copy { padding:13px 7px 12px; }
 .team-person-copy h3 { font-size:clamp(13px,3.7vw,21px); line-height:1.3; overflow-wrap:break-word; text-wrap:pretty; }
 .team-person-copy p { margin-top:7px; font-size:11px; }
 .mod-hero .ep-container { padding-bottom:26px; }
 .mod-hero-copy { max-width:100%; padding-top:12px; }
 .mod-hero .ep-eyebrow { font-size:7px; }
 .mod-hero h1 { font-size:clamp(25px,6.7vw,46px); line-height:1.12; }
 .mod-hero h1 > span { display:inline; }
 .mod-hero-copy > p:not(.ep-eyebrow) { margin-top:16px; font-size:14px; line-height:1.6; }
 .mod-official { font-size:11px; margin-top:8px; }
 .mod-hero-symbol { width:155px; right:6px; top:44%; opacity:.045; }
 .mod-materials { padding-top:22px; padding-bottom:44px; }
 .mod-toolbar { display:grid; gap:14px; margin-bottom:16px; }
 .mod-topics { gap:7px; }
 .mod-topic { min-height:40px; padding:9px 14px; font-size:11px; }
 .mod-search { min-width:0; padding-left:14px; }
 .mod-search input { font-size:13px; }
 .mod-demo-note { align-items:flex-start; gap:8px; font-size:10px; margin-bottom:18px; }
 .mod-demo-note > span { margin-top:6px; }
 .mod-featured,.mod-featured[data-count="2"] { grid-template-columns:1fr; gap:14px; max-width:none; }
 .mod-card--lead { grid-row:auto; }
 .mod-card--lead .mod-card-image { aspect-ratio:1.7/1; }
 .mod-card { border-radius:16px; padding:7px; }
 .mod-card-copy { padding:14px 10px 12px; }
 .mod-card h3 { font-size:clamp(17px,4.6vw,27px); }
 .mod-card p { font-size:13px; }
 .mod-card--side { grid-template-columns:34% minmax(0,1fr); gap:6px; }
 .mod-card--side .mod-card-image { min-height:145px; }
 .mod-card--side .mod-card-copy { padding:8px 5px; }
 .mod-card--side h3 { font-size:clamp(13px,3.65vw,20px); }
 .mod-card--side .mod-card-meta { font-size:9px; gap:4px; }
 .mod-card--side .mod-card-meta > span:first-child { font-size:7px; }
 .mod-card--side .mod-card-image > span { font-size:7px; line-height:1.5; }
 .mod-featured[data-count="2"] .mod-card-image { aspect-ratio:1.8/1; }
 .mod-latest { margin-top:28px; }
 .mod-latest-heading { gap:12px; margin-bottom:18px; flex-wrap:wrap; }
 .mod-latest-heading h2 { font-size:16px; }
 .mod-latest-heading > a { font-size:11px; }
 .mod-latest-grid { grid-template-columns:1fr; gap:14px; }
 .mod-card--compact { display:grid; grid-template-columns:34% minmax(0,1fr); gap:7px; }
 .mod-card--compact .mod-card-image { aspect-ratio:auto; min-height:140px; }
 .mod-card--compact h3 { font-size:clamp(13px,3.65vw,20px); }
 .mod-card--compact p { display:none; }
 .mod-card--compact .mod-card-copy { padding:8px 5px; }
}
@media(max-width:350px) {
 .team-grid { gap:10px; }
 .team-person-copy h3 { font-size:12px; }
 .ep-section-link { padding-inline:10px; font-size:10px; }
 .mod-hero h1 { font-size:24px; }
}
@keyframes ep-title-in { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
@keyframes ep-hero-depth { from { transform:scale(1.025); } to { transform:scale(1.06) translateX(5px); } }
@keyframes ep-wave { to { transform:scaleY(.35); } }
@media(prefers-reduced-motion:reduce) {
 .editorial-page * { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
 .team-person:hover,.mod-card:hover { transform:none; }
}

/* Inner-page leads match Exclusive and the homepage subtitle. */
.about-lead,.ep-hero-lead,.mod-hero-copy > p:not(.ep-eyebrow),.projects-catalog-hero p,.procurement-hero-copy > p,.portal-lead {
 font-family:var(--display); font-weight:600; letter-spacing:-.025em; line-height:1.45;
}
.site-frame:has(.ministry-page,.gallery-page,.partners-page,.coverage-page) { position:relative; --ep-header-height:90px; }
.site-frame:has(.ministry-page,.gallery-page,.partners-page,.coverage-page) > .portal-header { position:absolute; inset:0 0 auto; background:transparent; }
.portal-main--gallery,.portal-main--partners,.portal-main--coverage { padding:0; }
.portal-container--gallery,.portal-container--partners { max-width:none; }
.ministry-page .ep-hero h1 { font-size:clamp(30px,min(4.2vw,5.6svh),68px); max-width:1050px; }
.ministry-page .ep-hero h1 span { display:block; }
.ministry-page .ep-hero-lead { max-width:780px; font-size:clamp(14px,1.23vw,21px); }
.ministry-page .ep-hero-image { object-position:76% 42%; }
.ep-hero-link--external svg { width:17px; height:17px; transform:rotate(-35deg); }
@media(max-width:900px) and (min-width:761px) { .site-frame:has(.ministry-page,.gallery-page,.partners-page,.coverage-page) { --ep-header-height:142px; } }
@media(max-width:760px) {
 .site-frame:has(.ministry-page,.gallery-page,.partners-page,.coverage-page) { --ep-header-height:78px; }
 .ministry-page .ep-hero h1 { font-size:clamp(26px,7.6vw,52px); }
 .ministry-page .ep-hero-lead { font-size:clamp(12px,3.05vw,15px); max-width:100%; line-height:1.55; }
 .ep-hero-lead { font-size:clamp(12px,3.05vw,15px); line-height:1.55; }
}
/* Real team portraits form a CSS composition; source faces stay untouched. */
.team-hero-composition { position:absolute; z-index:-2; top:0; right:-3%; bottom:0; width:66%; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; transform:skewX(-8deg); background:#0b2f43; }
.team-hero-portrait { position:relative; overflow:hidden; }
.team-hero-portrait:nth-child(even) { margin-top:36px; margin-bottom:-36px; }
.team-hero-portrait img { display:block; width:120%; max-width:none; height:100%; object-fit:cover; object-position:50% 25%; transform:skewX(8deg) translateX(-8%); }
.team-page .ep-hero-shade { background:linear-gradient(90deg,#001e30 0%,#001e30ed 30%,#001e3070 49%,transparent 67%),linear-gradient(180deg,#001728a6,transparent 45%,#001e3055); }
.team-page .ep-hero-lead { max-width:45%; }
.team-page .ep-hero h1 { font-size:clamp(44px,6vw,98px); }
@media(max-width:760px) {
 .team-hero-composition { top:43%; right:-8%; width:112%; gap:5px; opacity:.85; }
 .team-hero-portrait:nth-child(even) { margin-top:14px; margin-bottom:-14px; }
 .team-page .ep-hero-shade { background:linear-gradient(180deg,#001e30 0%,#001e30f5 37%,#001e3040 70%,#001e3070); }
 .team-page .ep-hero-inner { justify-content:flex-start; }
 .team-page .ep-hero-lead { max-width:100%; }
 .team-page .ep-hero h1 { font-size:clamp(38px,9vw,66px); }
}
