/* A stationary photograph revealed by an expanding DMS aperture. */
.contact.contact--brand {
  --brand-header-height: 80px;
  --brand-stage-height: calc(100svh - var(--brand-header-height));
  padding: 0;
  overflow: visible;
  background: #fff;
}
.brand-close-top {
  position:relative; z-index:3; width:89.2%; max-width:1440px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 48px;
  padding:48px 0 40px;
}
.brand-close-copy .kicker { margin-bottom:18px; font-size:10px; letter-spacing:1.9px; }
.brand-close-copy { min-width:0; }
.contact--brand h2, html[lang="en"] .contact--brand h2 { max-width:none; font-size:clamp(30px,3.1vw,44px); line-height:1.3; letter-spacing:-.6px; white-space:nowrap; }
.contact--brand h2>span { display:inline-block; }
.brand-close-action { display:flex; flex-direction:column; align-items:flex-start; gap:21px; padding-bottom:6px; }
.contact.contact--brand .brand-close-action .copy { margin:0; max-width:none; font-size:13px; line-height:1.6; color:#718395; }
.brand-close-button { min-width:284px; min-height:56px; padding:0 8px 0 25px; gap:34px; font-size:15px; border-radius:4px; }
.brand-close-button .brand-close-button-arrow {
  display:grid; place-items:center; width:46px; height:46px;
  border-left:1px solid #ffffff40; font-size:26px; transition:transform .25s ease;
}
.brand-close-button:hover .brand-close-button-arrow { transform:translate(2px,-2px); }
.brand-reveal-track { position:relative; }
.brand-close-art {
  position:relative; isolation:isolate; width:100%; height:auto;
  margin:0; overflow:hidden; contain:paint; background:#fff;
}
.brand-close-art:focus-visible { outline:3px solid #4597df; outline-offset:-5px; }
.brand-close-background {
  display:block; position:relative; width:100%; height:var(--brand-stage-height); max-width:none;
  object-fit:cover; object-position:50% 50%;
}
.brand-close-art::after {
  content:""; position:absolute; inset:65% 0 0; z-index:1; pointer-events:none;
  background:linear-gradient(transparent,rgba(4,31,52,.48));
  opacity:var(--brand-end-opacity,1);
}
.brand-close-veil { display:none; position:absolute; inset:0; z-index:2; width:100%; height:100%; pointer-events:none; }
.brand-reveal-hint {
  display:none; position:absolute; z-index:3; bottom:44px; left:50%;
  transform:translateX(-50%); align-items:center; gap:28px;
  color:#57758e; font-size:11px; letter-spacing:1.5px; white-space:nowrap;
}
.brand-reveal-hint>span:last-child { font-size:23px; }
.brand-close-caption {
  position:absolute; z-index:3; bottom:33px; left:5.4%; right:5.4%;
  display:flex; justify-content:space-between; align-items:center; gap:20px;
  padding-top:19px; border-top:1px solid #ffffff4d; color:#fff;
  font-size:10px; line-height:1.6; letter-spacing:1.6px;
  opacity:var(--brand-end-opacity,1);
}
.brand-close-markets { display:flex; align-items:center; gap:17px; }
.brand-close-markets i { color:#ffffff80; }
/* Native sticky positioning keeps touch, keyboard and wheel scrolling intact. */
.brand-scroll-ready .brand-reveal-track { height:calc(var(--brand-stage-height) + 190svh); }
.brand-scroll-ready .brand-close-art { position:sticky; top:var(--brand-header-height); height:var(--brand-stage-height); }
.brand-scroll-ready .brand-close-background { position:absolute; inset:0; height:100%; }
.brand-scroll-ready .brand-close-top {
  position:absolute; top:clamp(28px,5svh,56px); left:0; right:0; margin:auto; padding:0;
  opacity:var(--brand-intro-opacity,1); transform:translateY(var(--brand-intro-shift,0px));
}
.brand-scroll-ready .brand-close-veil { display:block; }
.brand-scroll-ready .brand-reveal-hint { display:flex; opacity:var(--brand-hint-opacity,1); }
.brand-scroll-ready .brand-close-caption { --brand-end-opacity:0; opacity:var(--brand-caption-opacity,0); }
.brand-scroll-ready .brand-close-art::after { opacity:var(--brand-caption-opacity,0); }
/* The same introduction returns over the open photograph, without duplicate copy. */
.brand-scroll-ready .brand-close-art::before {
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg,rgba(4,31,48,.22),transparent 45%);
  opacity:var(--brand-copy-opacity,0);
}
.brand-scroll-ready.brand-content-open .brand-close-top {
  top:clamp(28px,5svh,56px); display:block;
  transform:translateY(var(--brand-intro-shift,0px));
  color:#fff; text-shadow:0 2px 16px #062d4933;
}
.brand-content-open .brand-close-copy { max-width:none; }
.brand-content-open .brand-close-copy .kicker { color:#e1f3ff; margin-bottom:22px; }
.contact--brand.brand-content-open h2, html[lang="en"] .contact--brand.brand-content-open h2 { color:#fff; font-size:clamp(28px,3.3vw,48px); line-height:1.2; letter-spacing:-.6px; }
.brand-content-open .brand-close-action { flex-direction:row; flex-wrap:wrap; align-items:center; margin-top:18px; gap:14px 24px; max-width:none; }
.contact.contact--brand.brand-content-open .brand-close-action .copy { color:#e3f0f7; font-size:13px; }
.contact--brand.brand-content-open .brand-close-button {
  min-width:0; min-height:46px; padding:11px 20px; font-size:14px;
  background:#062b421a; color:#fff; border:1px solid #ffffffa6; text-shadow:none;
}
.contact--brand.brand-content-open .brand-close-button:hover { background:#ffffff26; color:#fff; border-color:#fff; }
@media(max-width:900px) {
  .brand-close-top { display:block; padding:36px 0; }
  .brand-close-action { max-width:none; margin-top:20px; gap:16px; }
  html[lang="en"] .contact--brand h2 { white-space:normal; }
  .contact.contact--brand .brand-close-action .copy { font-size:12px; }
  .brand-close-button { min-width:250px; font-size:13px; }
}
@media(max-width:600px) {
  .brand-close-top { display:block; padding:28px 0; }
  .brand-scroll-ready .brand-close-top { top:28px; }
  .brand-close-copy .kicker { font-size:9px; margin-bottom:12px; }
  .contact--brand h2, html[lang="en"] .contact--brand h2 { max-width:none; font-size:clamp(22px,6vw,28px); line-height:1.35; letter-spacing:-.4px; }
  html[lang="en"] .contact--brand h2 { white-space:normal; }
  .brand-close-action { max-width:none; margin-top:20px; padding:0; gap:14px; }
  .contact.contact--brand .brand-close-action .copy { font-size:11px; max-width:none; }
  .brand-close-button { min-width:252px; min-height:50px; padding-left:20px; }
  .brand-close-button .brand-close-button-arrow { height:40px; width:40px; }
  .brand-scroll-ready .brand-reveal-track { height:calc(var(--brand-stage-height) + 140svh); }
  .brand-close-caption { bottom:26px; padding-top:16px; flex-direction:column; align-items:flex-start; gap:8px; font-size:8px; letter-spacing:1.3px; }
  .brand-close-markets { gap:14px; }
  .brand-reveal-hint { bottom:38px; font-size:9px; letter-spacing:1px; gap:20px; }
  .brand-scroll-ready.brand-content-open .brand-close-top { top:28px; transform:translateY(var(--brand-intro-shift,0px)); }
  .contact--brand.brand-content-open h2, html[lang="en"] .contact--brand.brand-content-open h2 { font-size:clamp(22px,6vw,28px); line-height:1.35; letter-spacing:-.4px; }
  .brand-content-open .brand-close-copy .kicker { margin-bottom:16px; }
  .brand-content-open .brand-close-action { flex-direction:column; align-items:flex-start; margin-top:16px; gap:12px; }
  .contact.contact--brand.brand-content-open .brand-close-action .copy { max-width:300px; font-size:12px; }
}
@media(max-height:500px) and (min-width:601px) {
  .contact.contact--brand { --brand-stage-height:calc(100svh - var(--brand-header-height)); }
  .brand-scroll-ready .brand-close-top { top:20px; gap:24px; }
  .brand-close-copy .kicker { font-size:8px; margin-bottom:8px; }
  .contact--brand h2, html[lang="en"] .contact--brand h2 { font-size:26px; line-height:1.2; }
  .brand-close-action { gap:10px; }
  .contact.contact--brand .brand-close-action .copy { font-size:11px; }
  .contact--brand .brand-close-button { min-height:42px; padding:10px 20px; font-size:12px; }
  .brand-scroll-ready .brand-reveal-track { height:calc(var(--brand-stage-height) + 170svh); }
  .brand-reveal-hint { bottom:24px; }
  .brand-close-caption { bottom:20px; padding-top:12px; }
  .brand-scroll-ready.brand-content-open .brand-close-top { top:20px; display:block; }
  .contact--brand.brand-content-open h2, html[lang="en"] .contact--brand.brand-content-open h2 { font-size:32px; line-height:1.2; }
  .brand-content-open .brand-close-action { margin-top:12px; gap:12px 18px; }
  .contact--brand.brand-content-open .brand-close-button { min-height:42px; padding:9px 16px; font-size:12px; }
}
@media(max-width:600px) and (max-height:650px) {
  .brand-scroll-ready .brand-close-top { top:22px; }
  .brand-scroll-ready.brand-content-open .brand-close-top { top:22px; }
  .contact--brand h2, html[lang="en"] .contact--brand h2 { font-size:clamp(22px,6vw,28px); }
  .contact--brand .brand-close-button { min-height:46px; padding:12px 20px; }
  .brand-close-action { margin-top:16px; gap:10px; }
  .brand-reveal-hint { bottom:26px; }
  .contact--brand.brand-content-open h2, html[lang="en"] .contact--brand.brand-content-open h2 { font-size:clamp(22px,6vw,28px); }
  .brand-content-open .brand-close-action { margin-top:14px; gap:12px; }
}
@media(max-width:600px) {
  html[lang="en"] .contact--brand.brand-content-open h2 { line-height:1.2; }
  html[lang="en"] .brand-content-open .brand-close-action { margin-top:12px; gap:10px; }
}
@media(prefers-reduced-motion:reduce) {
  .brand-close-button .brand-close-button-arrow { transition:none; transform:none; }
  .brand-scroll-ready .brand-reveal-track { height:auto; }
  .brand-scroll-ready .brand-close-art { position:relative; top:auto; }
  .brand-scroll-ready .brand-close-veil, .brand-scroll-ready .brand-reveal-hint { display:none; }
  .brand-scroll-ready .brand-close-caption, .brand-scroll-ready .brand-close-art::after { opacity:1; }
}
