* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; max-width: 100%; overflow-x: hidden; }
body { background: #ffffff; }
img { max-width: 100%; }
a { color: #0a0a0a; text-decoration: none; }
a:hover { color: #555555; }
input, select, textarea { font-family: 'Archivo', sans-serif; }
input::placeholder, textarea::placeholder { color: #8f8f8f; }
input:focus, select:focus, textarea:focus { outline: none; border-color: #0a0a0a; }
@keyframes bw-up { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes bw-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes bw-rule { from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* ---- Featured video modal ------------------------------------------- */
[hidden] { display: none !important; }

.vm-overlay {
  position: fixed; inset: 0; z-index: 100;
  display: flex; align-items: center; justify-content: center;
  padding: clamp(16px, 4vw, 48px);
  background: rgba(10, 10, 10, .93);
  animation: vm-in .22s ease-out both;
}
.vm-dialog {
  position: relative; width: 100%; max-width: min(1080px, 92vw);
  animation: vm-rise .28s cubic-bezier(.2, .7, .3, 1) both;
}
.vm-head {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 16px; margin-bottom: 14px;
}
.vm-eyebrow {
  font-family: 'Archivo', sans-serif; text-transform: uppercase;
  letter-spacing: 3px; font-size: 11px; font-weight: 700; color: #9a9a9a;
  margin: 0 0 6px;
}
.vm-title {
  font-family: 'Big Shoulders Display', sans-serif; font-weight: 800;
  font-size: clamp(26px, 4.2vw, 44px); line-height: .95; letter-spacing: .5px;
  color: #fff; margin: 0;
}
.vm-close {
  flex: 0 0 auto; display: inline-flex; align-items: center; gap: 9px;
  font-family: 'Archivo', sans-serif; text-transform: uppercase;
  letter-spacing: 1.5px; font-size: 11.5px; font-weight: 700;
  color: #fff; background: transparent; border: 1px solid rgba(255,255,255,.45);
  padding: 10px 16px; cursor: pointer;
}
.vm-close:hover, .vm-close:focus-visible { background: #fff; color: #0a0a0a; }

.vm-frame {
  position: relative; aspect-ratio: 16 / 9; width: 100%;
  background: #000; border: 1px solid rgba(255,255,255,.18); overflow: hidden;
}
.vm-frame iframe, .vm-poster {
  position: absolute; inset: 0; width: 100%; height: 100%; border: 0;
}
.vm-poster { object-fit: cover; display: block; }



.vm-unmute {
  position: absolute; left: 50%; bottom: 22px; transform: translateX(-50%);
  display: inline-flex; align-items: center; gap: 9px;
  font-family: 'Archivo', sans-serif; text-transform: uppercase;
  letter-spacing: 1.5px; font-size: 12px; font-weight: 700;
  color: #0a0a0a; background: rgba(255,255,255,.95); border: 0;
  padding: 13px 22px; cursor: pointer; z-index: 2;
}
.vm-unmute:hover, .vm-unmute:focus-visible { background: #fff; }

/* Header trigger */
.vm-open {
  display: inline-flex; align-items: center; gap: 9px;
  font-family: 'Archivo', sans-serif; text-transform: uppercase;
  letter-spacing: 1.6px; font-size: 11.5px; font-weight: 700;
  color: #0a0a0a; background: #fff; border: 0; padding: 11px 22px;
  cursor: pointer;
}
.vm-open:hover, .vm-open:focus-visible { background: #d8d8d8; }

@keyframes vm-in   { from { opacity: 0 } to { opacity: 1 } }
@keyframes vm-rise { from { opacity: 0; transform: translateY(14px) } to { opacity: 1; transform: none } }

@media (prefers-reduced-motion: reduce) {
  .vm-overlay, .vm-dialog { animation: none; }
  }
