/* Homepage layout: bounded columns, with full-bleed black outside the composition. */
.hero-nextgen{isolation:isolate;min-height:100svh}
.hero-nextgen .hero-grid{position:relative;display:grid;width:calc(100% - 64px);max-width:1440px;margin-inline:auto;grid-template-columns:minmax(0,clamp(480px,44vw,600px)) minmax(0,1fr);column-gap:clamp(32px,5vw,96px);grid-template-rows:1fr auto;min-height:calc(100svh - 92px);align-items:center}
.hero-nextgen .hero-copy{position:relative;z-index:auto;grid-column:1;grid-row:1;display:flex;flex-direction:column;justify-content:center;min-width:0;padding:64px 0 40px;pointer-events:none}
.hero-nextgen .hero-copy>:not(.hero-brand){position:relative;z-index:3}
.hero-nextgen .hero-copy a{pointer-events:auto}
.hero-nextgen .hero-brand{margin:0 0 28px;max-width:100%}
/* Expand the unchanged logo + mask together into the PNG's empty side margins. */
.hero-nextgen .official-logo-hero{z-index:3;width:110%;max-width:none;margin-inline:-5%;mix-blend-mode:screen;background:transparent}
.hero-nextgen h1{font-size:clamp(22px,2.15vw,32px);white-space:normal;line-height:1.35;max-width:650px}
.hero-nextgen h1 .hero-slogan-line{display:inline}
.hero-nextgen .hero-location{margin-top:16px;font-size:11px;color:var(--blush)}
.hero-eyebrow{margin:0 0 28px;color:var(--blush);font-size:10px;font-weight:500;letter-spacing:.2em;line-height:1.8;text-transform:uppercase}
.hero-eyebrow span{padding:0 .8em;opacity:.6}
.hero-nextgen .hero-actions{opacity:1;transform:none;animation:none;gap:12px;margin-top:28px}
.hero-nextgen .hero-actions .btn{min-width:0;min-height:48px;font-size:10px;letter-spacing:.13em;padding:0 20px;background-color:rgba(5,5,5,.65)}
.hero-nextgen .hero-actions .primary{background:var(--rose)}
.hero-nextgen .hero-actions .primary:hover{background:var(--blush)}
.hero-helper{max-width:400px;color:var(--text-dark-editorial);font-size:11px;line-height:1.7;margin:20px 0 0}
.hero-nextgen .hero-visual{position:absolute;inset:0 0 0 32%;min-height:0;height:auto;isolation:auto;pointer-events:none}
.hero-nextgen .hero-visual::before,.hero-nextgen .hero-visual::after{display:none}
.hero-nextgen .hero-media{inset:0;overflow:hidden}
.hero-nextgen .hero-photo{width:106%;height:106%;max-width:none;object-position:50% 32%;animation:heroNextgenPortraitDrift 13s ease-in-out 1.25s infinite alternate both;filter:saturate(.8) contrast(1.045) brightness(.94)}
@keyframes heroNextgenPortraitDrift{
  0%{transform:translate3d(calc(var(--hero-image-x) - 6px),calc(var(--hero-image-y) + 4px),0) scale(1)}
  100%{transform:translate3d(calc(var(--hero-image-x) + 12px),calc(var(--hero-image-y) - 8px),0) scale(1.08)}
}
.hero-nextgen .hero-vignette{background:linear-gradient(90deg,#050505 2%,rgba(5,5,5,.92) 12%,rgba(5,5,5,.55) 30%,rgba(5,5,5,.12) 50%,transparent 65%,rgba(5,5,5,.12) 82%,#050505 98%),linear-gradient(0deg,#050505 2%,rgba(5,5,5,.22) 24%,transparent 65%)}
.hero-film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 32%;opacity:0;transition:opacity .8s ease;filter:saturate(.8) contrast(1.045) brightness(.94)}
.hero-nextgen[data-media-state="playing"] .hero-film{opacity:1}
.hero-nextgen[data-media-state="playing"] .hero-photo{animation-play-state:paused}
.hero-nextgen.is-hero-paused .hero-photo{animation-play-state:paused!important}
.hero-bottom{position:relative;z-index:4;grid-column:1 / -1;grid-row:2;margin:0 64px 34px 0;display:flex;justify-content:space-between;align-items:center;gap:20px}
.hero-discover{display:inline-flex;align-items:center;gap:24px;min-height:44px;color:var(--blush);font-size:10px;text-transform:uppercase;letter-spacing:.17em}
.hero-discover span{font-size:18px}
.hero-controls{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.hero-controls button{min-height:44px;padding:9px 14px;border:1px solid rgba(231,177,168,.38);border-radius:0;background:rgba(5,5,5,.84);color:var(--ivory);font:500 10px/1.4 Montserrat,Arial,sans-serif;cursor:pointer;letter-spacing:.04em}
.hero-controls [hidden]{display:none!important}
.hero-controls button:hover{border-color:var(--blush)}
@media(max-width:960px){
  .hero-nextgen .hero-grid{width:100%;grid-template-columns:minmax(0,1fr);column-gap:0;min-height:calc(100svh - 76px);align-items:end}
  .hero-nextgen .hero-copy{padding:300px 32px 32px}
  .hero-nextgen .hero-brand{max-width:480px;margin-bottom:20px}
  .hero-nextgen .official-logo-hero{width:100%;max-width:610px;margin-inline:0}
  .hero-nextgen .hero-visual{inset:0}
  .hero-nextgen .hero-media{left:0;right:0}
  .hero-nextgen .hero-photo,.hero-nextgen .hero-film{object-position:50% 25%}
  .hero-nextgen .hero-vignette{background:linear-gradient(0deg,#050505 0%,rgba(5,5,5,.98) 15%,rgba(5,5,5,.90) 32%,rgba(5,5,5,.78) 54%,rgba(5,5,5,.66) 73%,rgba(5,5,5,.12) 88%,rgba(5,5,5,.05) 100%),linear-gradient(90deg,rgba(5,5,5,.25),transparent 70%)}
  .hero-nextgen .hero-eyebrow{margin-bottom:12px;font-size:9px;letter-spacing:.16em}
  .hero-nextgen .hero-location{display:none}
  .hero-nextgen .hero-actions{display:flex;margin-top:20px}
  .hero-nextgen .hero-actions .btn{width:auto}
  .hero-nextgen .hero-helper{margin-top:16px}
  .hero-bottom{margin:0 100px 30px 32px;align-items:flex-end}
}
@media(max-width:600px){
  .hero-nextgen .hero-copy{padding:270px 24px 32px}
  .hero-nextgen .hero-brand{max-width:350px;margin-bottom:16px}
  .hero-nextgen h1{font-size:21px!important;max-width:340px}
  .hero-nextgen .hero-actions{display:grid;grid-template-columns:1fr;gap:10px}
  .hero-nextgen .hero-actions .btn{width:100%}
  .hero-nextgen .hero-eyebrow{font-size:9px;letter-spacing:.12em}
  .hero-eyebrow span{padding:0 .3em}
  .hero-nextgen .hero-helper{font-size:10px;line-height:1.65}
  .hero-bottom{margin:0 104px 32px 24px;align-items:flex-start;flex-direction:column;gap:6px}
  .hero-controls{justify-content:flex-start}
  .hero-discover{font-size:9px;min-height:36px}
}
@media(orientation:landscape) and (max-height:500px){
  .hero-nextgen .hero-copy{padding-top:90px;padding-bottom:40px}
  .hero-nextgen .hero-grid{min-height:650px!important}
}
@media(prefers-reduced-motion:reduce){
  .hero-nextgen .hero-photo{animation:none!important;transform:none!important;opacity:1!important}
  .hero-film{display:none;transition:none}
  .hero-controls{display:none}
}
