/* Structural/performance additions; established typography and layout stay in the page styles. */
picture { display: contents; }
.phase1-sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.phase1-contact-link { color:inherit; text-decoration:none; }
.phase1-contact-link:hover { color:inherit; text-decoration:underline; }
.phase1-context { font-family:var(--sans); font-size:13px; line-height:1.7; }
.phase1-context a { text-decoration:underline; text-underline-offset:3px; }
.phase1-context a.phase1-market-link { display:inline-block; color:var(--navy); font-family:var(--sans); font-size:11px; font-weight:500; letter-spacing:.16em; line-height:1.8; text-transform:uppercase; text-decoration:none; border-bottom:1px solid var(--rule); padding-bottom:4px; }
.phase1-context a.phase1-market-link:hover { border-bottom-color:var(--navy); }
.phase1-media { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; overflow:hidden; color:#fff; background:#14181f; text-decoration:none; }
.phase1-media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.phase1-media::after { content:""; position:absolute; inset:0; background:rgba(0,0,0,.3); pointer-events:none; }
.phase1-media-cta { position:relative; z-index:1; display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:60px; min-width:min(240px, calc(100% - 32px)); max-width:calc(100% - 32px); padding:16px 24px; border:1px solid rgba(255,255,255,.85); background:rgba(20,24,31,.65); font-family:var(--sans); font-size:14px; font-weight:500; line-height:1.2; color:#fff; white-space:nowrap; }
.phase1-media-icon { font-size:18px; line-height:1; flex:none; }
.phase1-media:hover .phase1-media-cta { background:rgba(20,24,31,.8); }
.phase1-media:focus-visible { outline:3px solid var(--navy); outline-offset:3px; }
