/* Homepage portfolio showcase; scoped to preserve all other page layouts. */
.hp-hero{height:610px;position:relative;overflow:hidden;background:var(--navy);color:white;isolation:isolate;padding:0}
.hp-visual-wrap{position:absolute;left:32%;right:0;top:0;bottom:0}
.hp-visual{position:absolute;inset:0;overflow:hidden}
.hp-frame{position:absolute;inset:0;opacity:0;transition:opacity 900ms ease;pointer-events:none}
.hp-frame.active{opacity:1;pointer-events:auto}
.hp-photos{position:absolute;inset:0}
.hp-picture{display:block;width:100%;height:100%}
.hp-photo{height:100%;width:100%;object-fit:cover;display:block}
.hp-diptych{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.hp-photo-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(7,20,46,.66) 0%,rgba(7,20,46,.26) 25%,transparent 48%)}
.hp-veil{position:absolute;inset:0;background:linear-gradient(90deg,#10214c 0%,#10214c 29%,rgba(16,33,76,.92) 36%,rgba(16,33,76,.38) 48%,rgba(16,33,76,0) 65%),linear-gradient(0deg,rgba(7,20,46,.96) 0%,rgba(7,20,46,.70) 17%,rgba(7,20,46,0) 52%);z-index:1;pointer-events:none}
.hp-message{position:relative;z-index:2;padding:88px 0 0 5.2vw;width:37%;max-width:555px}
.hp-eyebrow{font-family:var(--font-body);font-size:11px;font-weight:900;letter-spacing:.18em;color:#d8c7a7;margin:0 0 24px}
.hp-message h1{font-family:var(--font-editorial);font-weight:400;font-size:clamp(42px,3.9vw,65px);letter-spacing:-.028em;line-height:1.08;margin:0 0 26px;text-wrap:initial;white-space:pre-line}
.hp-intro{font-family:var(--font-body);color:#d4dbe9;font-size:16px;line-height:1.75;max-width:355px;margin:0 0 30px}
.hp-actions{display:flex;gap:20px;align-items:center;flex-wrap:wrap}

.hp-secondary{font-size:12px;font-weight:700;border-bottom:1px solid #93a1bb;padding:8px 0}
.hp-secondary span{margin-left:8px}
.hp-identity{position:absolute;z-index:2;right:5vw;top:38px;width:250px;height:100px;display:flex;align-items:center;justify-content:flex-end}
.hp-identity img{width:100%;height:100%;object-fit:contain;object-position:right center;filter:brightness(0) invert(1) drop-shadow(0 2px 6px #18214255)}
.hp-caption{position:absolute;z-index:2;left:22.06%;right:5vw;bottom:116px;max-width:620px}
.hp-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;color:#d8dfe9;font-size:10px;text-transform:uppercase;letter-spacing:.105em;margin-bottom:16px}
.hp-caption h2{font-family:var(--font-editorial);font-weight:400;font-size:36px;line-height:1.12;margin:0 0 9px;text-wrap:initial}
.hp-company-desc{margin:0 0 19px;color:#e2e7ee;font-size:16px;line-height:1.5}
.hp-explore{font-size:12px;font-weight:900;display:inline-flex;align-items:center;gap:14px;padding-bottom:6px;border-bottom:1px solid #bfa982}
.hp-explore span{font-size:18px}
.hp-news{position:absolute;z-index:2;left:22.06%;right:5vw;bottom:33px;border-top:1px solid #ffffff30;padding-top:16px;display:flex;gap:19px;align-items:center;padding-right:175px;min-height:58px}
.hp-news-label{color:#d7c39e;font-size:9px;letter-spacing:.15em;font-weight:900;white-space:nowrap}
.hp-news a{display:block;line-height:1.45;font-size:12px}
.hp-news-date{display:block;color:#b1bfd5;font-size:10px;margin-top:3px}
.hp-controls{position:absolute;bottom:41px;right:5vw;z-index:3;display:flex;gap:8px;align-items:center}
.hp-controls[hidden]{display:none}
.hp-controls button{color:white;background:#10214c55;border:1px solid #ffffff60;width:37px;height:37px;border-radius:50%;display:grid;place-items:center;font-size:19px;cursor:pointer}
.hp-controls .hp-toggle{font-size:13px}
.hp-counter{font-size:10px;color:#ced7e6;min-width:39px;text-align:center}
.hp-announcement{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.hp-hero a:focus-visible,.hp-hero button:focus-visible{outline:3px solid var(--gold);outline-offset:5px}
@media(min-width:1800px){.hp-hero{height:680px}.hp-message{padding-top:110px}}
@media(max-width:1100px) and (min-width:761px){
 .hp-message{width:40%;padding-top:74px}.hp-intro{font-size:14px;max-width:300px}.hp-caption,.hp-news{left:23.53%}.hp-identity{width:210px}.hp-caption h2{font-size:29px}.hp-news{padding-right:135px;gap:10px}.hp-controls{gap:4px}.hp-actions{gap:14px}
}
@media(max-width:760px){
 .hp-hero{height:auto;overflow:visible;display:flex;flex-direction:column}
 .hp-message{padding:35px 24px 32px;width:100%;max-width:none;order:0}
 .hp-eyebrow{font-size:9px;margin-bottom:17px}
 .hp-message h1{font-size:40px;line-height:1.1;max-width:350px;margin-bottom:17px;white-space:normal}
 .hp-message h1 br{display:none}
 .hp-intro{font-size:14px;line-height:1.65;max-width:none;margin-bottom:22px}
 .hp-actions{gap:22px}
 .hp-visual-wrap{position:relative;left:auto;right:auto;top:auto;bottom:auto;width:100%;order:1;height:579px}
 .hp-visual{position:relative;inset:auto;overflow:visible}
 .hp-frame{position:relative;display:none;inset:auto;opacity:1;transition:none}
 .hp-frame.active{display:block}
 .hp-photos{position:relative;inset:auto;height:310px}
 .hp-photo-shade{height:310px;background:linear-gradient(0deg,rgba(9,27,65,.60),transparent 42%),linear-gradient(180deg,rgba(7,20,46,.66),transparent 48%)}
 .hp-veil{display:none}
 .hp-identity{top:24px;right:25px;width:155px;height:72px}
 .hp-caption{position:relative;left:auto;right:auto;bottom:auto;padding:25px 24px 21px;max-width:none;height:181px}
 .hp-caption h2{font-size:29px;margin-bottom:9px}
 .hp-meta{font-size:8px;letter-spacing:.055em;gap:7px;margin-bottom:12px}
 .hp-company-desc{font-size:14px;margin-bottom:14px}
 .hp-news{position:relative;left:auto;right:auto;bottom:auto;margin:0 24px;padding:15px 0 17px;gap:13px;height:88px;align-items:flex-start}
 .hp-news-label{font-size:8px;margin-top:3px}.hp-news a{font-size:11px}
 .hp-controls{right:22px;top:258px;bottom:auto;gap:6px}.hp-controls button{width:34px;height:34px}.hp-counter{display:none}
 .hp-diptych .hp-photo{object-position:50% 35%!important}
}
@media(max-width:360px){.hp-caption{height:203px}.hp-news{height:110px}.hp-visual-wrap{height:623px}.hp-news-label{white-space:normal;min-width:60px}}
@media(prefers-reduced-motion:reduce){.hp-frame{transition:none}}
