/* =============================================================
   css/owner-login.css — Premium Owner Login skin
   -------------------------------------------------------------
   Visual target: the owner-login concept mockup. This file stays
   purely presentational: the page still reuses the existing
   dashboard-login auth script and form IDs.
   ============================================================= */

:root {
  --ownl-navy-950: var(--bhc-ink);
  --ownl-navy-900: var(--bhc-ink-soft);
  --ownl-navy-800: var(--bhc-ink-mute);
  --ownl-ink: var(--bhc-ink);
  --ownl-ivory: var(--bhc-panel);
  --ownl-ivory-2: var(--bhc-panel-alt);
  --ownl-gold: var(--bhc-gold);
  --ownl-gold-2: var(--bhc-gold-deep);
  --ownl-bronze: var(--bhc-eyebrow);
  --ownl-stone: var(--bhc-ink-mute);
  --ownl-sage: var(--bhc-success);
  --ownl-card: var(--bhc-ink-soft);
  --ownl-card-border: var(--bhc-gold-line);
}

body.bh-ownerlogin {
  margin: 0;
  min-height: 100vh;
  min-height: 100dvh;
  overflow-x: clip;
  color: var(--ownl-ink);
  font-family: var(--bhc-font-body);
  background:
    radial-gradient(circle at 18% 18%, color-mix(in srgb, var(--bhc-gold) 56%, transparent), transparent 33%),
    radial-gradient(circle at 94% 76%, color-mix(in srgb, var(--bhc-gold) 32%, transparent), transparent 34%),
    linear-gradient(118deg, var(--bhc-panel-alt) 0%, var(--bhc-bg) 44%, color-mix(in srgb, var(--bhc-gold) 36%, var(--bhc-panel-alt)) 100%);
}

body.bh-ownerlogin::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: 0.48;
  background-image:
    linear-gradient(118deg, transparent 0 34%, color-mix(in srgb, var(--bhc-panel) 62%, transparent) 34% 35%, transparent 35%),
    radial-gradient(circle at 18% 55%, color-mix(in srgb, var(--bhc-gold) 14%, transparent) 0 2px, transparent 3px),
    radial-gradient(circle at 86% 16%, color-mix(in srgb, var(--bhc-gold) 18%, transparent) 0 2px, transparent 3px),
    radial-gradient(circle at 92% 42%, color-mix(in srgb, var(--bhc-gold) 16%, transparent) 0 2px, transparent 3px);
  background-size: 100% 100%, 280px 280px, 360px 360px, 320px 320px;
}

.ownerlogin__atmos {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}

.ownerlogin__photo {
  position: absolute;
  background-position: center;
  background-size: cover;
  filter: saturate(1.05);
  opacity: 0.44;
}

.ownerlogin__photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, color-mix(in srgb, var(--bhc-panel) 20%, transparent), color-mix(in srgb, var(--bhc-panel-alt) 50%, transparent));
}

.ownerlogin__photo--left {
  left: -3vw;
  bottom: -5vh;
  width: 28vw;
  height: 48vh;
  border-radius: 0 46% 0 0;
  background-image: url("../images/Acapulco-flagship.jpg");
  mask-image: linear-gradient(90deg, var(--bhc-ink) 0%, color-mix(in srgb, var(--bhc-ink) 82%, transparent) 54%, transparent 100%);
}

.ownerlogin__photo--right {
  right: -4vw;
  top: 16vh;
  width: 34vw;
  height: 72vh;
  border-radius: 46px 0 0 46px;
  background-image: url("../images/HamptonCary-Backyard.avif");
  mask-image: linear-gradient(90deg, transparent 0%, color-mix(in srgb, var(--bhc-ink) 75%, transparent) 24%, var(--bhc-ink) 100%);
}

.ownerlogin__atmos-glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(115px);
}

.ownerlogin__atmos-glow--gold {
  top: -16vh;
  left: 4vw;
  width: 52vw;
  height: 42vw;
  background: color-mix(in srgb, var(--bhc-gold) 56%, transparent);
}

.ownerlogin__atmos-glow--sage {
  right: 8vw;
  bottom: -18vh;
  width: 48vw;
  height: 42vw;
  background: color-mix(in srgb, var(--bhc-success) 24%, transparent);
}

.ownerlogin__constellation {
  position: absolute;
  width: 520px;
  height: 520px;
  opacity: 0.22;
  background:
    radial-gradient(circle at 10% 35%, color-mix(in srgb, var(--bhc-gold) 95%, transparent) 0 3px, transparent 4px),
    radial-gradient(circle at 55% 16%, color-mix(in srgb, var(--bhc-gold) 72%, transparent) 0 2px, transparent 3px),
    radial-gradient(circle at 72% 62%, color-mix(in srgb, var(--bhc-gold) 72%, transparent) 0 2px, transparent 3px),
    radial-gradient(circle at 32% 76%, color-mix(in srgb, var(--bhc-gold) 55%, transparent) 0 2px, transparent 3px),
    linear-gradient(132deg, transparent 0 42%, color-mix(in srgb, var(--bhc-gold) 24%, transparent) 42% 42.35%, transparent 42.35%),
    linear-gradient(28deg, transparent 0 36%, color-mix(in srgb, var(--bhc-gold) 20%, transparent) 36% 36.35%, transparent 36.35%);
}

.ownerlogin__constellation--one { left: -80px; top: 80px; }
.ownerlogin__constellation--two { right: -100px; top: -50px; transform: rotate(18deg); }

.ownerlogin__shell {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(680px, 1.35fr) minmax(440px, 0.95fr);
  align-items: stretch;
  width: min(1380px, calc(100% - 72px));
  min-height: min(860px, calc(100vh - 76px));
  min-height: min(860px, calc(100dvh - 76px));
  margin: 38px auto;
  filter: drop-shadow(0 36px 80px color-mix(in srgb, color-mix(in srgb, var(--bhc-bg) 50%, var(--bhc-ink)) 34%, transparent));
}

.ownerlogin__shell > * {
  opacity: 0;
  transform: translateY(18px) scale(0.99);
  animation: ownl-card-rise 780ms cubic-bezier(0.16, 0.84, 0.34, 1) forwards;
}

.ownerlogin__shell > .ownerlogin__story { animation-delay: 80ms; }
.ownerlogin__shell > .ownerlogin__panel { animation-delay: 170ms; }

/* The sign-in panel comes first in the document, so phones, keyboards and
   screen readers reach the form before the owner story. Side by side, the
   story keeps the left column and the form the right one. */
@media (width > 1180px) {
  .ownerlogin__shell > .ownerlogin__story { grid-column: 1; grid-row: 1; }
  .ownerlogin__shell > .ownerlogin__panel { grid-column: 2; grid-row: 1; }
}

/* The page's main heading names the page for assistive technology; the
   visible titles belong to each sign-in step. */
.ownerlogin__sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

@keyframes ownl-card-rise {
  to { opacity: 1; transform: translateY(0) scale(1); }
}

/* LEFT: editorial owner-portfolio surface */
.ownerlogin__story {
  position: relative;
  overflow: hidden;
  min-width: 0;
  padding: 44px 34px 28px;
  color: color-mix(in srgb, var(--bhc-panel) 50%, var(--bhc-ink));
  border: 1px solid color-mix(in srgb, var(--bhc-gold) 72%, transparent);
  border-right: 0;
  border-radius: 26px 0 0 26px;
  background:
    linear-gradient(90deg, var(--ownl-navy-950) 0%, var(--ownl-navy-950) 43%, var(--ownl-navy-950) 100%),
    linear-gradient(90deg, var(--bhc-on-gold) 0%, var(--bhc-on-gold) 43%, var(--bhc-on-gold) 100%),
    url("../images/Raleigh-Flagship.avif") center / cover no-repeat,
    linear-gradient(145deg, var(--ownl-navy-950) 0%, var(--ownl-navy-900) 100%);
  background-blend-mode: multiply, multiply, normal, normal;
  box-shadow:
    inset 0 0 0 1px color-mix(in srgb, color-mix(in srgb, var(--bhc-panel) 50%, var(--bhc-ink)) 5%, transparent),
    inset 0 -80px 110px color-mix(in srgb, var(--ownl-navy-950) 42%, transparent);
}

.ownerlogin__story::before {
  content: "";
  position: absolute;
  inset: 14px;
  pointer-events: none;
  border: 1px solid color-mix(in srgb, var(--bhc-gold) 18%, transparent);
  border-radius: 20px 0 0 20px;
}

.ownerlogin__story::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--bhc-gold) 6%, transparent), transparent 28%),
    linear-gradient(var(--ownl-navy-950), var(--ownl-navy-950)),
    linear-gradient(var(--bhc-on-gold), var(--bhc-on-gold));
  background-blend-mode: multiply, multiply, normal;
  mask-image: linear-gradient(180deg, transparent 0%, var(--bhc-ink) 100%);
  opacity: 0.42;
}

.ownerlogin__story > * {
  position: relative;
  z-index: 1;
}

.ownerlogin__story-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 22px;
  margin-bottom: 26px;
}

.ownerlogin__brand {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 142px;
  height: 92px;
  text-decoration: none;
}

.ownerlogin__brand-mark {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter:
    drop-shadow(0 8px 18px color-mix(in srgb, color-mix(in srgb, var(--bhc-panel) 50%, var(--bhc-ink)) 42%, transparent))
    drop-shadow(0 0 16px color-mix(in srgb, var(--bhc-gold-deep) 10%, transparent));
  opacity: 1;
}

.ownerlogin__badge {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 10px 17px;
  margin-top: 8px;
  border: 1px solid color-mix(in srgb, var(--bhc-gold) 32%, transparent);
  border-radius: 999px;
  background: color-mix(in srgb, color-mix(in srgb, var(--bhc-panel) 50%, var(--bhc-ink)) 2%, transparent);
  color: color-mix(in srgb, var(--bhc-panel) 50%, var(--bhc-ink));
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  white-space: nowrap;
  backdrop-filter: blur(14px);
}


@keyframes ownl-glow-pulse {
  0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--bhc-success) 62%, transparent); }
  50% { box-shadow: 0 0 0 7px transparent; }
}

.ownerlogin__story-head {
  max-width: 640px;
  margin-bottom: 22px;
}

.ownerlogin__story-title {
  margin: 0 0 12px;
  font-family: var(--bhc-font-display);
  font-size: clamp(3.05rem, 5.15vw, 4.65rem);
  font-weight: 400;
  font-style: italic;
  line-height: 0.98;
  letter-spacing: -0.045em;
  color: color-mix(in srgb, var(--bhc-panel) 50%, var(--bhc-ink));
  text-wrap: balance;
}

.ownerlogin__story-title em {
  color: var(--ownl-gold-2);
}

.ownerlogin__story-sub {
  max-width: 430px;
  margin: 0;
  color: color-mix(in srgb, var(--bhc-panel) 50%, var(--bhc-ink));
  font-size: 15px;
  line-height: 1.55;
}

.ownerlogin__insights {
  display: grid;
  grid-template-columns: minmax(260px, 0.92fr) minmax(330px, 1.45fr);
  gap: 12px;
}

.ownerlogin__statement-card,
.ownerlogin__performance-card,
.ownerlogin__status-card,
.ownerlogin__properties {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--ownl-card-border);
  border-radius: 16px;
  background:
    linear-gradient(180deg, var(--ownl-navy-950), var(--ownl-navy-950)),
    linear-gradient(180deg, var(--bhc-on-gold), var(--bhc-on-gold)),
    var(--bhc-bg);
  background-blend-mode: multiply, multiply, normal;
  box-shadow:
    inset 0 1px 0 color-mix(in srgb, color-mix(in srgb, var(--bhc-panel) 50%, var(--bhc-ink)) 6%, transparent),
    0 16px 40px -28px color-mix(in srgb, color-mix(in srgb, var(--bhc-bg) 50%, var(--bhc-ink)) 75%, transparent);
  backdrop-filter: blur(14px);
}

.ownerlogin__statement-card,
.ownerlogin__performance-card {
  min-height: 190px;
  padding: 20px;
}

.ownerlogin__statement-card {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 15px;
  background:
    radial-gradient(circle at 18% 16%, color-mix(in srgb, var(--bhc-gold-deep) 6%, transparent), transparent 34%),
    linear-gradient(180deg, var(--ownl-navy-950), var(--ownl-navy-950)),
    linear-gradient(180deg, var(--bhc-on-gold), var(--bhc-on-gold)),
    var(--bhc-bg);
  background-blend-mode: normal, multiply, multiply, normal;
}

.ownerlogin__kicker {
  margin: 0;
  color: var(--bhc-gold);
  font-size: var(--r7-owner-micro-size, 10px);
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.ownerlogin__statement-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.ownerlogin__statement-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex: 0 0 auto;
  padding: 6px 10px;
  border: 1px solid color-mix(in srgb, var(--bhc-gold) 30%, transparent);
  border-radius: 999px;
  background: color-mix(in srgb, var(--bhc-gold) 8%, transparent);
  color: color-mix(in srgb, var(--bhc-panel) 51%, var(--bhc-ink));
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.ownerlogin__statement-copy {
  padding: 17px 16px 18px;
  border: 1px solid color-mix(in srgb, var(--bhc-gold-deep) 18%, transparent);
  border-radius: 15px;
  background: linear-gradient(135deg, color-mix(in srgb, color-mix(in srgb, var(--bhc-panel) 50%, var(--bhc-ink)) 6%, transparent), color-mix(in srgb, color-mix(in srgb, var(--bhc-panel) 50%, var(--bhc-ink)) 2%, transparent));
}

.ownerlogin__round-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ownl-gold-2);
  border: 1px solid color-mix(in srgb, var(--bhc-gold-deep) 55%, transparent);
  background: var(--bhc-gold-soft);
  box-shadow: inset 0 0 18px var(--bhc-gold-soft);
}

.ownerlogin__statement-card h2 {
  margin: 0 0 8px;
  font-family: var(--bhc-font-display);
  font-size: 19px;
  font-weight: 500;
  line-height: 1.05;
  color: color-mix(in srgb, var(--bhc-panel) 50%, var(--bhc-ink));
}

.ownerlogin__statement-copy p {
  margin: 0;
  color: color-mix(in srgb, var(--bhc-panel) 50%, var(--bhc-ink));
  font-size: 12px;
  line-height: 1.5;
}

.ownerlogin__statement-footer {
  display: flex;
  align-items: center;
  justify-content: stretch;
  margin-top: auto;
  padding-top: 2px;
  color: color-mix(in srgb, var(--bhc-panel) 50%, var(--bhc-ink));
  font-size: 11px;
  font-weight: 700;
}

.ownerlogin__preview-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 9px 13px;
  border-radius: 999px;
  background: var(--bhc-gold-deep);
  color: var(--bhc-on-gold);
  font-size: 11px;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: filter 0.2s ease, box-shadow 0.2s ease;
}

/* The pill takes the visitor to the sign-in form. */
.ownerlogin__preview-btn:hover { filter: brightness(1.08); }
.ownerlogin__preview-btn:focus-visible {
  outline: 2px solid var(--bhc-gold);
  outline-offset: 3px;
}

@media (max-width: 920px) {
  /* 44px effective touch target without changing the card layout. */
  .ownerlogin__preview-btn::after {
    content: '';
    position: absolute;
    inset: -8px 0;
  }
}

.ownerlogin__card-head,
.ownerlogin__properties-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.ownerlogin__card-head span,
.ownerlogin__properties-head span {
  color: color-mix(in srgb, var(--bhc-panel) 50%, var(--bhc-ink));
  font-size: 10px;
}

.ownerlogin__chart {
  display: block;
  width: 100%;
}

.ownerlogin__chart--large {
  height: 132px;
  margin-top: 10px;
}

.ownerlogin__chart-grid line {
  stroke: color-mix(in srgb, color-mix(in srgb, var(--bhc-panel) 50%, var(--bhc-ink)) 18%, transparent);
  stroke-dasharray: 3 5;
}

#ownerLoginChartFill stop {
  stop-color: var(--bhc-gold);
}

.ownerlogin__chart-line {
  stroke: var(--bhc-gold);
  stroke-dasharray: 620;
  stroke-dashoffset: 620;
  animation: ownl-chart-draw 1500ms cubic-bezier(0.65, 0.05, 0.36, 1) 560ms forwards;
}

.ownerlogin__chart-fill {
  animation: ownl-chart-fadein 700ms ease-out 1680ms forwards;
}

.ownerlogin__chart-end {
  fill: var(--bhc-gold-deep);
  opacity: 0;
  animation: ownl-chart-fadein 380ms ease-out 1880ms forwards;
}

@keyframes ownl-chart-draw { to { stroke-dashoffset: 0; } }
@keyframes ownl-chart-fadein { to { opacity: 1; } }

.ownerlogin__months {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  color: color-mix(in srgb, var(--bhc-panel) 50%, var(--bhc-ink));
  font-size: 9px;
  text-transform: uppercase;
}

.ownerlogin__performance-note {
  margin: 12px 0 0;
  color: color-mix(in srgb, var(--bhc-panel) 50%, var(--bhc-ink));
  font-size: 12px;
  line-height: 1.5;
}

.ownerlogin__status-card {
  min-height: 74px;
  padding: 17px 18px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 16px;
}

.ownerlogin__round-icon {
  width: 52px;
  height: 52px;
  border-radius: 50%;
}

.ownerlogin__status-card span:not(.ownerlogin__round-icon):not(.ownerlogin__check) {
  display: block;
  margin-top: 6px;
  color: color-mix(in srgb, var(--bhc-panel) 50%, var(--bhc-ink));
  font-size: 12px;
}

.ownerlogin__check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  color: var(--bhc-on-gold);
  background: var(--bhc-success);
  box-shadow: 0 0 0 5px color-mix(in srgb, var(--bhc-success) 12%, transparent);
}

.ownerlogin__properties {
  grid-column: 1 / -1;
  padding: 16px 18px 18px;
}

.ownerlogin__property-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-top: 12px;
}

.ownerlogin__property-card {
  position: relative;
  min-height: 104px;
  margin: 0;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, color-mix(in srgb, var(--bhc-panel) 50%, var(--bhc-ink)) 16%, transparent);
  border-radius: 12px;
  background:
    linear-gradient(var(--ownl-navy-950), var(--ownl-navy-950)),
    linear-gradient(var(--bhc-on-gold), var(--bhc-on-gold));
  background-blend-mode: multiply;
}

.ownerlogin__property-card img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(1.12) contrast(1.02);
}

.ownerlogin__property-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--ownl-navy-950) 4%, transparent), var(--ownl-navy-950)),
    linear-gradient(180deg, color-mix(in srgb, var(--bhc-on-gold) 4%, transparent), var(--bhc-on-gold));
  background-blend-mode: multiply;
}

.ownerlogin__property-card figcaption {
  position: absolute;
  inset: auto 12px 11px;
  z-index: 1;
  display: grid;
  gap: 2px;
}

.ownerlogin__property-card strong {
  color: color-mix(in srgb, var(--bhc-panel) 50%, var(--bhc-ink));
  font-family: var(--bhc-font-display);
  font-size: 14px;
  font-weight: 500;
}

.ownerlogin__property-card span,
.ownerlogin__property-card em {
  color: color-mix(in srgb, var(--bhc-panel) 50%, var(--bhc-ink));
  font-size: 11px;
  font-style: normal;
}

.ownerlogin__property-card em {
  color: color-mix(in srgb, var(--bhc-panel) 50%, var(--bhc-ink));
}

.ownerlogin__property-card em::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-right: 5px;
  border-radius: 50%;
  background: var(--bhc-success);
}

.ownerlogin__promise-row {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
}

.ownerlogin__promise-row li {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 9px;
  row-gap: 2px;
  align-items: center;
}

.ownerlogin__promise-row li > span {
  grid-row: span 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid color-mix(in srgb, var(--bhc-gold-deep) 44%, transparent);
  color: var(--ownl-gold-2);
}

.ownerlogin__promise-row strong {
  color: color-mix(in srgb, var(--bhc-panel) 50%, var(--bhc-ink));
  font-size: 11px;
}

.ownerlogin__promise-row small {
  color: color-mix(in srgb, var(--bhc-panel) 50%, var(--bhc-ink));
  font-size: 10px;
}

/* RIGHT: ivory owner access card */
.ownerlogin__panel {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  padding: 56px 58px;
  border: 1px solid color-mix(in srgb, var(--bhc-gold) 56%, transparent);
  border-radius: 26px;
  background:
    radial-gradient(circle at 50% 9%, color-mix(in srgb, var(--bhc-panel) 88%, transparent), transparent 18%),
    radial-gradient(circle at 102% 8%, color-mix(in srgb, var(--bhc-gold) 18%, transparent), transparent 24%),
    linear-gradient(180deg, color-mix(in srgb, var(--bhc-panel) 95%, transparent), color-mix(in srgb, var(--bhc-panel-alt) 93%, transparent)),
    var(--ownl-ivory);
  box-shadow:
    -22px 0 60px -36px color-mix(in srgb, color-mix(in srgb, var(--bhc-bg) 50%, var(--bhc-ink)) 55%, transparent),
    0 0 0 1px color-mix(in srgb, var(--bhc-ink) 12%, transparent) inset;
}

.ownerlogin__panel::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  background:
    linear-gradient(122deg, transparent 0 18%, color-mix(in srgb, var(--bhc-gold) 19%, transparent) 18.15%, transparent 18.55%),
    radial-gradient(circle at 82% 6%, color-mix(in srgb, var(--bhc-gold) 16%, transparent) 0 1px, transparent 2px),
    radial-gradient(circle at 89% 42%, color-mix(in srgb, var(--bhc-gold) 12%, transparent) 0 1px, transparent 2px);
  background-size: 100% 100%, 120px 120px, 180px 180px;
  opacity: 0.7;
}

.ownerlogin__panel-inner {
  position: relative;
  z-index: 1;
  width: min(100%, 420px);
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.ownerlogin__seal-row {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 18px;
  margin-bottom: 4px;
}

.ownerlogin__seal-row > span {
  height: 1px;
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--bhc-gold) 58%, transparent), transparent);
}

.ownerlogin__seal {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 76px;
  height: 76px;
  border-radius: 50%;
  border: 1px solid color-mix(in srgb, var(--bhc-gold-deep) 38%, transparent);
  background: color-mix(in srgb, var(--bhc-panel) 72%, transparent);
  box-shadow:
    0 10px 28px -16px color-mix(in srgb, var(--bhc-gold-deep) 65%, transparent),
    inset 0 0 0 8px var(--bhc-gold-soft);
}

.ownerlogin__seal-mark {
  width: 46px;
  height: 46px;
  object-fit: contain;
}

.ownerlogin__eyebrow {
  align-self: center;
  margin-top: 2px;
  color: var(--ownl-bronze);
  font-size: var(--r7-owner-micro-size, 10.5px);
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.ownerlogin__eyebrow--inline {
  align-self: flex-start;
  margin-bottom: 4px;
}

.ownerlogin__form {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin: 0;
}

.ownerlogin__form-head {
  text-align: center;
  margin: 2px 0 10px;
}

.ownerlogin__form-title {
  margin: 0 0 9px;
  color: var(--ownl-ink);
  font-family: var(--bhc-font-display);
  font-size: clamp(2.18rem, 3.3vw, 3rem);
  font-weight: 450;
  line-height: 1.04;
  letter-spacing: -0.035em;
}

.ownerlogin__form-sub,
.ownerlogin__form-hint {
  margin: 0 auto;
  max-width: 33ch;
  color: var(--bhc-ink-soft);
  font-size: 14px;
  line-height: 1.55;
}

.ownerlogin__form-hint {
  max-width: none;
  font-size: 12px;
  font-style: italic;
}

.ownerlogin__field {
  display: grid;
  gap: 8px;
}

.ownerlogin__field .bh-field__label {
  color: var(--bhc-ink);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.ownerlogin__field input {
  width: 100%;
  box-sizing: border-box;
  min-height: 52px;
  padding: 0 16px;
  border: 1px solid color-mix(in srgb, var(--bhc-ink) 50%, transparent);
  border-radius: 10px;
  background: color-mix(in srgb, var(--bhc-panel) 88%, transparent);
  color: var(--ownl-ink);
  font-size: 15px;
  box-shadow: 0 12px 28px -24px color-mix(in srgb, color-mix(in srgb, var(--bhc-bg) 50%, var(--bhc-ink)) 36%, transparent);
  transition: border-color 180ms ease, background 180ms ease;
}

.ownerlogin__field input::placeholder {
  color: color-mix(in srgb, var(--bhc-ink-mute) 42%, transparent);
}

.ownerlogin__field input:focus,
.ownerlogin__field input:focus-visible {
  outline: none;
  border-color: color-mix(in srgb, var(--bhc-ink) 50%, transparent);
  background: var(--bhc-panel);
  box-shadow:
    0 0 0 4px color-mix(in srgb, var(--bhc-gold) 18%, transparent),
    0 18px 36px -24px color-mix(in srgb, color-mix(in srgb, var(--bhc-bg) 50%, var(--bhc-ink)) 34%, transparent);
}

/* The shared .bh-field rules name each input type, so these do too: edges at 3:1, focus in deep gold.
   "html body" outranks the shared dark focus rule (html[data-theme="dark"] .bh-field input:focus). */
.ownerlogin__field input:is([type="email"], [type="password"], [type="text"], :not([type])) {
  border-color: color-mix(in srgb, var(--bhc-ink) 50%, transparent);
}

html body .ownerlogin__field input:is([type="email"], [type="password"], [type="text"], :not([type])):focus {
  border-color: var(--bhc-gold-deep);
}

.ownerlogin__field .bh-field__password {
  position: relative;
}

.ownerlogin__field .bh-field__password input {
  padding-right: var(--r7-owner-toggle-clearance, 48px);
}

.ownerlogin__field .bh-field__toggle {
  position: absolute;
  top: 50%;
  right: var(--r7-owner-toggle-right, 12px);
  transform: translateY(-50%);
  width: 34px;
  height: 34px;
  min-width: var(--r7-owner-toggle-size, 0px);
  min-height: var(--r7-owner-toggle-size, 0px);
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--bhc-ink-mute);
  cursor: pointer;
}

.ownerlogin__field .bh-field__toggle:focus-visible {
  outline: 2px solid var(--ownl-gold);
  outline-offset: 2px;
}

.ownerlogin__row {
  display: flex;
  justify-content: flex-end;
  margin-top: -4px;
}

.ownerlogin__forgot {
  display: var(--r7-owner-link-display, inline);
  align-items: center;
  min-height: var(--r7-owner-link-height, 0px);
  margin-block: var(--r7-owner-link-margin, 0px);
  color: var(--ownl-bronze);
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
}

.ownerlogin__forgot:hover,
.ownerlogin__forgot:focus-visible {
  text-decoration: underline;
  outline: none;
}

.ownerlogin__cta,
.ownerlogin__cta-ghost {
  min-height: 54px;
  border-radius: 10px;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.01em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  cursor: pointer;
}

.ownerlogin__cta {
  position: relative;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--bhc-gold) 34%, transparent);
  background: linear-gradient(180deg, var(--bhc-ink-soft) 0%, var(--bhc-ink) 100%);
  color: var(--bhc-on-gold);
  box-shadow: 0 18px 40px -26px color-mix(in srgb, color-mix(in srgb, var(--bhc-bg) 50%, var(--bhc-ink)) 66%, transparent);
  transition: transform 180ms ease, box-shadow 220ms ease, border-color 180ms ease;
}

.ownerlogin__cta::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 -72%;
  width: 48%;
  transform: skewX(-20deg);
  background: linear-gradient(110deg, transparent, color-mix(in srgb, var(--bhc-panel) 28%, transparent), transparent);
  transition: transform 760ms cubic-bezier(0.16, 0.84, 0.34, 1);
}

.ownerlogin__cta:hover {
  transform: translateY(-1px);
  border-color: color-mix(in srgb, var(--bhc-gold-deep) 68%, transparent);
  box-shadow: 0 24px 44px -26px color-mix(in srgb, color-mix(in srgb, var(--bhc-bg) 50%, var(--bhc-ink)) 76%, transparent);
}

.ownerlogin__cta:hover::before {
  /* The same sweep as moving from -72% to 128% of the button: 200% of it is 417% of this 48% band. */
  transform: translateX(417%) skewX(-20deg);
}

.ownerlogin__cta:focus-visible,
.ownerlogin__cta-ghost:focus-visible {
  outline: 3px solid var(--bhc-gold-deep);
  outline-offset: 2px;
}

.ownerlogin__cta[disabled],
.ownerlogin__cta[data-bh-busy="1"] {
  cursor: progress;
  opacity: 0.72;
  border-style: dashed;
  border-color: var(--bhc-ink-mute);
  color: var(--bhc-ink-soft);
  transform: none !important;
}

.ownerlogin__divider {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 3px 0;
  color: color-mix(in srgb, var(--bhc-ink-soft) 64%, transparent);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.ownerlogin__divider::before,
.ownerlogin__divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--bhc-gold-deep) 24%, transparent), transparent);
}

.ownerlogin__cta-ghost {
  border: 1px solid color-mix(in srgb, var(--bhc-gold-deep) 28%, transparent);
  background: color-mix(in srgb, var(--bhc-panel) 36%, transparent);
  color: var(--bhc-ink);
  transition: background 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.ownerlogin__cta-ghost:hover {
  transform: translateY(-1px);
  border-color: color-mix(in srgb, var(--bhc-gold) 58%, transparent);
  background: color-mix(in srgb, var(--bhc-panel) 62%, transparent);
}

.ownerlogin__error {
  min-height: 18px;
  color: var(--bhc-danger);
  font-size: 13px;
}

.ownerlogin__trust {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin: 14px 0 0;
  padding: 20px 0 0;
  border-top: 1px solid color-mix(in srgb, var(--bhc-gold-deep) 16%, transparent);
  list-style: none;
}

.ownerlogin__trust-item {
  display: grid;
  justify-items: center;
  gap: 7px;
  text-align: center;
  color: var(--bhc-ink-soft);
  font-size: 11px;
  line-height: 1.25;
}

.ownerlogin__trust-item svg {
  color: var(--ownl-bronze);
}

.ownerlogin__back {
  appearance: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  align-self: flex-start;
  /* 44px effective touch target on phones and tablets (R7 floor). */
  min-height: var(--r7-owner-link-height, 0px);
  margin: 4px 0 0;
  padding: 6px 0;
  border: 0;
  background: none;
  color: var(--ownl-bronze);
  cursor: pointer;
  font-size: 12.5px;
  font-weight: 700;
}

.ownerlogin__back:focus-visible {
  outline: 2px solid var(--ownl-gold);
  outline-offset: 3px;
  border-radius: 4px;
}

.ownerlogin__success-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  width: 58px;
  height: 58px;
  margin-bottom: 4px;
  border: 1px solid color-mix(in srgb, var(--bhc-success) 42%, transparent);
  border-radius: 50%;
  color: var(--ownl-sage);
  background: var(--bhc-success-bg);
}

.ownerlogin__foot {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 5px 8px;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid color-mix(in srgb, var(--bhc-gold-deep) 16%, transparent);
  color: var(--bhc-ink-mute);
  font-size: 12.5px;
}

.ownerlogin__foot a {
  display: var(--r7-owner-link-display, inline);
  align-items: center;
  min-height: var(--r7-owner-link-height, 0px);
  margin-block: var(--r7-owner-link-margin, 0px);
  color: var(--ownl-bronze);
  font-weight: 800;
  text-decoration: none;
}

.ownerlogin__foot a:hover {
  text-decoration: underline;
}

@media (min-width: 1181px) {
  html {
    height: 100%;
  }

  body.bh-ownerlogin {
    display: grid;
    place-items: center;
    height: 100dvh;
    min-height: 0;
    overflow-x: clip;
    overflow-y: visible;
  }

  .ownerlogin__shell {
    width: min(1380px, calc(100% - 48px));
    min-height: 0;
    max-height: calc(100dvh - 40px);
    margin: 0 auto;
  }
}

@media (min-width: 1181px) and (max-height: 1050px) {
  .ownerlogin__shell {
    width: min(1340px, calc(100% - 40px));
    height: calc(100dvh - 32px);
  }

  .ownerlogin__story {
    padding: 28px 30px 24px;
  }

  .ownerlogin__panel {
    padding: 34px 46px;
  }

  .ownerlogin__story-top {
    margin-bottom: 14px;
  }

  .ownerlogin__brand {
    width: 128px;
    height: 84px;
  }

  .ownerlogin__story-head {
    max-width: 590px;
    margin-bottom: 16px;
  }

  .ownerlogin__story-title {
    margin-bottom: 8px;
    font-size: clamp(2.7rem, 4.2vw, 3.85rem);
    line-height: 0.96;
  }

  .ownerlogin__story-sub {
    font-size: 13.5px;
    line-height: 1.42;
  }

  .ownerlogin__insights {
    grid-template-columns: minmax(235px, 0.9fr) minmax(300px, 1.35fr);
    gap: 10px;
  }

  .ownerlogin__statement-card,
  .ownerlogin__performance-card {
    min-height: 160px;
    padding: 16px;
  }

  .ownerlogin__statement-card {
    gap: 12px;
  }

  .ownerlogin__statement-copy {
    padding: 14px;
  }

  .ownerlogin__chart--large {
    height: 100px;
    margin-top: 6px;
  }

  .ownerlogin__status-card {
    min-height: 62px;
    padding: 13px 14px;
    gap: 12px;
  }

  .ownerlogin__round-icon {
    width: 42px;
    height: 42px;
  }

  .ownerlogin__properties {
    display: none;
  }

  .ownerlogin__promise-row {
    gap: 8px;
    margin-top: 8px;
  }

  .ownerlogin__promise-row li > span {
    width: 28px;
    height: 28px;
  }

  .ownerlogin__promise-row small {
    display: none;
  }

  .ownerlogin__panel-inner {
    width: min(100%, 400px);
    gap: 12px;
  }

  .ownerlogin__seal-row {
    gap: 14px;
    margin-bottom: 0;
  }

  .ownerlogin__seal {
    width: 62px;
    height: 62px;
  }

  .ownerlogin__seal-mark {
    width: 38px;
    height: 38px;
  }

  .ownerlogin__eyebrow {
    font-size: 9.5px;
  }

  .ownerlogin__form {
    gap: 11px;
  }

  .ownerlogin__form-head {
    margin: 0 0 6px;
  }

  .ownerlogin__form-title {
    margin-bottom: 7px;
    font-size: clamp(2.05rem, 2.8vw, 2.55rem);
  }

  .ownerlogin__form-sub {
    font-size: 13px;
    line-height: 1.42;
  }

  .ownerlogin__field {
    gap: 6px;
  }

  .ownerlogin__field input {
    min-height: 46px;
  }

  .ownerlogin__cta,
  .ownerlogin__cta-ghost {
    min-height: 48px;
  }

  .ownerlogin__trust {
    margin-top: 8px;
    padding-top: 14px;
  }

  .ownerlogin__foot {
    margin-top: 10px;
    padding-top: 12px;
  }
}

@media (min-width: 1181px) and (max-height: 780px) {
  .ownerlogin__shell {
    width: min(1280px, calc(100% - 28px));
    height: calc(100dvh - 20px);
    grid-template-columns: minmax(610px, 1.25fr) minmax(400px, 0.9fr);
  }

  .ownerlogin__story {
    padding: 22px 26px 20px;
  }

  .ownerlogin__panel {
    padding: 24px 38px;
  }

  .ownerlogin__story-top {
    margin-bottom: 10px;
  }

  .ownerlogin__brand {
    width: 112px;
    height: 73px;
  }

  .ownerlogin__badge {
    padding: 8px 12px;
    margin-top: 4px;
    font-size: 8.5px;
  }

  .ownerlogin__story-head {
    margin-bottom: 12px;
  }

  .ownerlogin__story-title {
    font-size: clamp(2.25rem, 3.55vw, 3.25rem);
  }

  .ownerlogin__story-sub {
    max-width: 400px;
    font-size: 12.5px;
  }

  .ownerlogin__statement-card,
  .ownerlogin__performance-card {
    min-height: 138px;
    padding: 14px;
  }

  .ownerlogin__statement-card h2 {
    font-size: 16px;
  }

  .ownerlogin__statement-copy {
    padding: 12px;
  }

  .ownerlogin__preview-btn {
    padding: 8px 12px;
  }

  .ownerlogin__chart--large {
    height: 82px;
  }

  .ownerlogin__months,
  .ownerlogin__promise-row,
  .ownerlogin__seal-row,
  .ownerlogin__trust,
  .ownerlogin__foot {
    display: none;
  }

  .ownerlogin__status-card {
    min-height: 56px;
    padding: 10px 12px;
  }

  .ownerlogin__round-icon {
    width: 36px;
    height: 36px;
  }

  .ownerlogin__panel-inner,
  .ownerlogin__form {
    gap: 10px;
  }

  .ownerlogin__eyebrow {
    align-self: flex-start;
  }

  .ownerlogin__form-title {
    font-size: 2rem;
  }

  .ownerlogin__form-sub {
    max-width: none;
    font-size: 12.5px;
  }

  .ownerlogin__field input {
    min-height: 44px;
  }

  .ownerlogin__cta,
  .ownerlogin__cta-ghost {
    min-height: 44px;
  }

  .ownerlogin__divider {
    margin: 0;
  }
}

@media (max-width: 1180px) {
  .ownerlogin__shell {
    grid-template-columns: 1fr;
    width: min(920px, calc(100% - 36px));
    min-height: auto;
  }

  /* Stacked: the sign-in panel leads and the story follows beneath it. */
  .ownerlogin__story {
    border-right: 1px solid color-mix(in srgb, var(--bhc-gold) 72%, transparent);
    border-radius: 0 0 26px 26px;
  }

  .ownerlogin__story::before {
    border-radius: 0 0 20px 20px;
  }

  .ownerlogin__panel {
    border-radius: 26px 26px 0 0;
  }

  .ownerlogin__shell > .ownerlogin__panel { animation-delay: 60ms; }
  .ownerlogin__shell > .ownerlogin__story { animation-delay: 170ms; }
}

@media (max-width: 980px) {
  .ownerlogin__shell {
    --r7-owner-toggle-size: 44px;
    --r7-owner-toggle-right: 7px;
    --r7-owner-toggle-clearance: 56px;
    --r7-owner-link-display: inline-flex;
    --r7-owner-link-height: 44px;
    --r7-owner-link-margin: -10px;
    --r7-owner-micro-size: 12px;

    grid-template-columns: 1fr;
    width: min(820px, calc(100% - 28px));
    margin: 22px auto;
  }

  .ownerlogin__story {
    padding: 34px 26px 24px;
  }

  .ownerlogin__story-top {
    margin-bottom: 20px;
  }

  .ownerlogin__brand {
    width: 122px;
    height: 80px;
  }

  .ownerlogin__story-title {
    font-size: clamp(2.35rem, 7vw, 3.4rem);
  }

  .ownerlogin__insights {
    grid-template-columns: 1fr;
  }

  .ownerlogin__performance-card,
  .ownerlogin__statement-card {
    min-height: auto;
  }

  .ownerlogin__promise-row {
    grid-template-columns: repeat(2, 1fr);
  }

  .ownerlogin__panel {
    padding: 42px 28px 34px;
  }
}

@media (max-width: 560px) {
  body.bh-ownerlogin {
    background:
      radial-gradient(circle at 20% 0%, color-mix(in srgb, var(--bhc-gold) 55%, transparent), transparent 38%),
      linear-gradient(160deg, var(--bhc-panel-alt) 0%, color-mix(in srgb, var(--bhc-gold) 28%, var(--bhc-panel-alt)) 100%);
  }

  .ownerlogin__photo--left,
  .ownerlogin__photo--right {
    display: none;
  }

  .ownerlogin__shell {
    width: calc(100% - 20px);
    margin: 10px auto;
  }

  .ownerlogin__story {
    padding: 24px 18px 20px;
    border-radius: 0 0 22px 22px;
  }

  .ownerlogin__story::before {
    inset: 9px;
    border-radius: 0 0 16px 16px;
  }

  .ownerlogin__story-top {
    display: grid;
    gap: 12px;
  }

  .ownerlogin__brand {
    width: 108px;
    height: 70px;
  }

  .ownerlogin__badge {
    width: fit-content;
    padding: 8px 12px;
    font-size: 9px;
  }

  .ownerlogin__story-title {
    font-size: 2.05rem;
  }

  .ownerlogin__story-sub {
    font-size: 13.5px;
  }

  .ownerlogin__statement-card {
    gap: 12px;
  }

  .ownerlogin__statement-copy {
    padding: 14px;
  }

  .ownerlogin__statement-footer {
    padding-top: 0;
  }

  .ownerlogin__chart--large {
    height: 98px;
  }

  .ownerlogin__months {
    display: none;
  }

  .ownerlogin__status-card {
    grid-template-columns: auto 1fr;
  }

  .ownerlogin__check {
    display: none;
  }

  .ownerlogin__property-row,
  .ownerlogin__promise-row {
    grid-template-columns: 1fr;
  }

  .ownerlogin__property-card {
    min-height: 132px;
  }

  .ownerlogin__panel {
    padding: 28px 20px 24px;
    border-radius: 22px 22px 0 0;
  }

  .ownerlogin__seal {
    width: 64px;
    height: 64px;
  }

  .ownerlogin__seal-mark {
    width: 39px;
    height: 39px;
  }

  .ownerlogin__form-title {
    font-size: 2rem;
  }

  .ownerlogin__trust {
    grid-template-columns: 1fr;
    justify-items: center;
  }
}

/* Short landscape screens (a phone on its side): the seal and the welcome
   line give way so the email, password and sign-in button come first. */
@media (max-width: 1180px) and (max-height: 500px) {
  .ownerlogin__shell {
    margin-top: 8px;
  }

  .ownerlogin__panel {
    padding-top: 16px;
    padding-bottom: 20px;
  }

  .ownerlogin__seal-row {
    display: none;
  }

  #bh-login-form .ownerlogin__form-sub {
    display: none;
  }

  .ownerlogin__form-title {
    font-size: 1.55rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ownerlogin__cta::before { transition: none; }
  .ownerlogin__shell > *,
  .ownerlogin__chart-line,
  .ownerlogin__chart-fill,
  .ownerlogin__chart-end,
  .ownerlogin__cta,
  .ownerlogin__cta::before {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }

  .ownerlogin__shell > * {
    animation: ownl-fade-in 260ms ease-out forwards !important;
  }

  .ownerlogin__chart-line {
    stroke-dashoffset: 0 !important;
  }

  .ownerlogin__chart-fill,
  .ownerlogin__chart-end {
    opacity: 1 !important;
  }

  .ownerlogin__cta:hover {
    transform: none !important;
    box-shadow: 0 18px 40px -26px color-mix(in srgb, color-mix(in srgb, var(--bhc-bg) 50%, var(--bhc-ink)) 66%, transparent);
  }
}

@keyframes ownl-fade-in {
  to { opacity: 1; }
}

.ownerlogin__story-title,.ownerlogin__form-title,.ownerlogin__statement-card h2,.ownerlogin__status-card h3{ text-wrap:balance; }
html[data-theme="dark"] .ownerlogin__field input{border-color:color-mix(in srgb,var(--bhc-gold) 55%,transparent)}
