:root {
  --field: #F8F9FB;
  --gutter: max(1rem, env(safe-area-inset-left, 0px));
  --soft: #ECEFF3;
  --charcoal: #1C2020;
  --muted: #5A6066;
  --chrome: #C4CAD2;
  --yellow: #F4B800;
  --white: #FFFFFF;
  --max: 1120px;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { -webkit-text-size-adjust: 100%; }

body {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  background: var(--field);
  color: var(--charcoal);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  min-height: 100vh;
}

a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; height: auto; }

.wrap {
  width: min(100% - 2rem, var(--max));
  margin-inline: auto;
}

/* Under construction tag */
.uc-tag {
  position: fixed;
  top: 0.75rem;
  right: 0.75rem;
  z-index: 50;
  font-size: 0.65rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
  background: rgba(248, 249, 251, 0.92);
  border: 1px solid var(--chrome);
  border-radius: 999px;
  padding: 0.35rem 0.7rem;
  backdrop-filter: blur(6px);
}

/* Header */
.site-header {
  position: sticky;
  top: 0;
  z-index: 40;
  background: rgba(248, 249, 251, 0.88);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(196, 202, 210, 0.55);
}

.site-header .inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 4rem;
}

.logo img { height: 1.75rem; width: auto; }

.nav {
  display: none;
  gap: 1.5rem;
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}

.nav a:hover,
.nav a[aria-current="page"] { color: var(--charcoal); }

/* Nav Back — sits next to Contact on main header (not sticky) */
.nav a.nav-back,
.nav-panel a.nav-back {
  display: inline-flex;
  align-items: center;
  gap: 0.32rem;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--charcoal, #1C2020);
  text-decoration: none;
  border: 1px solid rgba(28, 32, 32, 0.18);
  background: transparent;
  border-radius: 0.3rem;
  padding: 0.36rem 0.7rem;
  font-weight: 600;
  min-height: 2rem;
  line-height: 1.2;
  box-sizing: border-box;
}
.nav a.nav-back::before,
.nav-panel a.nav-back::before {
  content: "←";
  color: var(--muted, #5A6066);
  font-weight: 500;
}
.nav a.nav-back:hover,
.nav a.nav-back:focus-visible,
.nav-panel a.nav-back:hover,
.nav-panel a.nav-back:focus-visible {
  background: transparent;
  color: var(--charcoal, #1C2020);
  border-color: rgba(28, 32, 32, 0.35);
  outline: none;
}
.nav-panel a.nav-back {
  display: inline-flex;
  margin: 0.35rem 0;
  border-bottom: 1px solid rgba(28, 32, 32, 0.18);
  width: fit-content;
}


.nav-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border: 1px solid var(--chrome);
  border-radius: 0.35rem;
  background: var(--white);
  color: var(--charcoal);
  cursor: pointer;
}

.nav-toggle span {
  display: block;
  width: 1rem;
  height: 1px;
  background: currentColor;
  box-shadow: 0 -4px 0 currentColor, 0 4px 0 currentColor;
}

.nav-panel {
  display: none;
  border-top: 1px solid rgba(196, 202, 210, 0.55);
  padding: 0.75rem 0 1rem;
}

.nav-panel.open { display: block; }

.nav-panel a {
  display: block;
  padding: 0.65rem 0;
  font-size: 0.8rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
  border-bottom: 1px solid rgba(196, 202, 210, 0.35);
}

.nav-panel a:last-child { border-bottom: 0; }

@media (min-width: 768px) {
  .nav { display: flex; }
  .nav-toggle,
  .nav-panel { display: none !important; }
}

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: 0.75rem 1.15rem;
  font-size: 0.8125rem;
  letter-spacing: 0.04em;
  border-radius: 0.3rem;
  border: 1px solid transparent;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.btn-primary {
  background: var(--charcoal);
  color: var(--white);
}

.btn-primary:hover { background: #000; }

.btn-ghost {
  background: transparent;
  border-color: rgba(28, 32, 32, 0.18);
  color: var(--charcoal);
}

.btn-ghost:hover { border-color: var(--charcoal); }

/* Hero */
.hero {
  position: relative;
  overflow: hidden;
  background: var(--soft);
  min-height: min(68vh, 560px);
}

.hero-cycle {
  position: absolute;
  inset: 0;
}

.hero-cycle img,
.hero-cycle video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 1.1s ease;
  pointer-events: none;
}

.hero-cycle img.is-active,
.hero-cycle video.is-active { opacity: 1; }

.hero-cycle video {
  background: var(--soft);
}

@media (prefers-reduced-motion: reduce) {
  .hero-cycle video { display: none; }
  .hero-cycle img.hero-still { display: block; }
}

.hero-veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(105deg, rgba(248, 249, 251, 0.94) 0%, rgba(248, 249, 251, 0.72) 38%, rgba(248, 249, 251, 0.18) 68%, transparent 100%),
    linear-gradient(0deg, rgba(28, 32, 32, 0.18) 0%, transparent 40%);
  pointer-events: none;
}

.hero-copy {
  display: block;
  width: 100%;
  max-width: 34rem;
  margin: 0;
  margin-right: auto;
  margin-left: 0;
  padding: 3rem 0 4rem;
  text-align: left;
  position: relative;
  z-index: 2;
}
.hero .wrap {
  /* same left edge as header logo / cap strip */
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: min(68vh, 560px);
}

.eyebrow {
  font-size: 0.6875rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 0.85rem;
}

.hairline {
  width: 2.5rem;
  height: 2px;
  background: var(--yellow);
  margin: 1rem 0 1.15rem;
}

h1 {
  font-size: clamp(1.85rem, 5vw, 3rem);
  font-weight: 450;
  letter-spacing: -0.025em;
  line-height: 1.12;
}

.lead {
  margin-top: 0.85rem;
  color: var(--muted);
  font-size: clamp(0.95rem, 2.2vw, 1.05rem);
  max-width: 28rem;
}

.hero-actions {
  margin-top: 1.6rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}

/* Capability strip */
.cap-strip {
  border-block: 1px solid rgba(196, 202, 210, 0.55);
  background: var(--white);
}

.cap-strip .inner {
  display: grid;
  gap: 1rem;
  padding: 1.25rem 0;
  font-size: 0.8rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
}

.cap-strip strong {
  color: var(--charcoal);
  font-weight: 550;
}

.cap-marks {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
  align-items: center;
}

.cap-marks span {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}

.cap-marks span::before {
  content: "";
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  border: 1px solid var(--chrome);
  background: var(--field);
}

@media (min-width: 768px) {
  .cap-strip .inner {
    grid-template-columns: auto 1fr;
    align-items: center;
    justify-content: space-between;
  }
}

/* Doors */
.doors {
  padding: 1.5rem 0 3.5rem;
}

.doors h2 {
  font-size: clamp(1.25rem, 3vw, 1.6rem);
  font-weight: 450;
  letter-spacing: -0.02em;
  margin-bottom: 0.4rem;
}

.doors > .wrap > p {
  color: var(--muted);
  margin-bottom: 1.15rem;
  max-width: 28rem;
}

.door-grid {
  display: grid;
  gap: 1rem;
}

@media (min-width: 768px) {
  .door-grid { grid-template-columns: repeat(3, 1fr); }
}

.door {
  background: var(--white);
  border: 1px solid rgba(196, 202, 210, 0.7);
  border-radius: 0.4rem;
  padding: 1.35rem 1.25rem 1.4rem;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
  min-height: 100%;
}

.door:hover {
  border-color: var(--chrome);
  box-shadow: 0 8px 24px rgba(28, 32, 32, 0.05);
}

.door .label {
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 0.55rem;
}

.door h3 {
  font-size: 1.15rem;
  font-weight: 500;
  letter-spacing: -0.015em;
  margin-bottom: 0.55rem;
}

.door p {
  color: var(--muted);
  font-size: 0.92rem;
  margin-bottom: 1.1rem;
}

.door .more {
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--charcoal);
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.door .more::after {
  content: "→";
  color: var(--yellow);
}

/* Page hero (inner) */
.page-hero {
  padding: 2.75rem 0 2rem;
  border-bottom: 1px solid rgba(196, 202, 210, 0.45);
}

.page-hero h1 {
  max-width: 22ch;
}

.page-hero .lead {
  margin-top: 0.9rem;
}

.page-body {
  padding: 2.25rem 0 4rem;
}

.page-body .card {
  background: var(--white);
  border: 1px solid rgba(196, 202, 210, 0.7);
  border-radius: 0.4rem;
  padding: 1.4rem 1.25rem;
  max-width: 40rem;
}

.page-body .card p + p { margin-top: 0.85rem; }
.page-body .card p { color: var(--muted); }
.page-body .card strong { color: var(--charcoal); font-weight: 550; }

.voice-lines {
  list-style: none;
  display: grid;
  gap: 0.65rem;
  margin: 1rem 0 0;
}

.voice-lines li {
  padding-left: 0.9rem;
  border-left: 2px solid var(--yellow);
  color: var(--charcoal);
  font-size: 1rem;
}

.contact-list {
  list-style: none;
  display: grid;
  gap: 0.75rem;
  margin-top: 1rem;
}

.contact-list a {
  color: var(--charcoal);
  border-bottom: 1px solid var(--chrome);
  padding-bottom: 0.15rem;
}
.contact-title {
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--charcoal);
  margin-bottom: -0.15rem;
}

.contact-note {
  font-size: 0.82rem;
  color: var(--muted);
  line-height: 1.4;
}

/* Footer */
.site-footer {
  border-top: 1px solid rgba(196, 202, 210, 0.55);
  padding: 1.5rem 0 2rem;
  color: var(--muted);
  font-size: 0.8rem;
}

.site-footer .inner {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.5rem;
  justify-content: space-between;
  align-items: center;
}

.site-footer .mark {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.site-footer .mark::before {
  content: "";
  width: 0.55rem;
  height: 0.55rem;
  background: var(--yellow);
  border-radius: 1px;
}

/* Sell landing */
.landing-hero {
  position: relative;
  overflow: hidden;
  background: var(--soft);
  min-height: min(68vh, 560px);
}
.landing-hero-media {
  position: absolute;
  inset: 0;
}
.landing-hero-media video.landing-hero-video,
.landing-hero-media img.landing-hero-fallback {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
}

.landing-hero-media img,
.landing-hero-media video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.landing-hero .hero-veil { z-index: 1; }
.steps-band {
  position: relative;
  padding: 2.5rem 0 3.5rem;
  background:
    linear-gradient(rgba(196,202,210,0.22) 1px, transparent 1px),
    linear-gradient(90deg, rgba(196,202,210,0.22) 1px, transparent 1px),
    var(--field);
  background-size: 48px 48px, 48px 48px, auto;
}
.steps-band .wrap > .steps-intro {
  margin-bottom: 1.5rem;
  max-width: 36rem;
}
.steps-band .steps-intro p {
  color: var(--muted);
  font-size: 0.95rem;
}
.step-grid {
  display: grid;
  gap: 1rem;
}
@media (min-width: 768px) {
  .step-grid { grid-template-columns: repeat(3, 1fr); }
}
.step-card {
  background: var(--white);
  border: 1px solid rgba(196, 202, 210, 0.7);
  border-radius: 0.4rem;
  padding: 1.35rem 1.25rem 1.45rem;
}
.step-card .dot {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  border: 1px solid var(--chrome);
  background: var(--field);
  margin-bottom: 0.85rem;
}
.step-card h3 {
  font-size: 1.05rem;
  font-weight: 550;
  letter-spacing: -0.015em;
  margin-bottom: 0.4rem;
}
.step-card p {
  color: var(--muted);
  font-size: 0.92rem;
  margin: 0;
}
.landing-close {
  padding: 0 0 4rem;
}
.landing-close .card { max-width: 40rem; }

/* Landing copy — same wrap edge as header */
.landing-hero .wrap {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: min(68vh, 560px);
}
.landing-hero .hero-copy {
  display: block;
  width: 100%;
  max-width: 32rem;
  margin: 0;
  padding: 3rem 0 3.5rem;
  text-align: left;
}
.steps-band .steps-intro,
.landing-hero .lead {
  text-align: left;
}

/* Still-only landing hero */
.landing-hero-media img.landing-hero-still {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
}

/* Linked step cards (Sell → Capture) */
a.step-card {
  display: block;
  color: inherit;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
  cursor: pointer;
}
a.step-card:hover {
  border-color: var(--chrome);
  box-shadow: 0 8px 24px rgba(28, 32, 32, 0.05);
}
a.step-card:focus-visible {
  outline: 2px solid var(--yellow);
  outline-offset: 2px;
}

.step-card-word {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  min-height: 6.5rem;
}
.step-card-word h3 {
  margin-bottom: 0;
  font-size: 1.15rem;
  letter-spacing: -0.02em;
}

button.step-card {
  display: block;
  width: 100%;
  text-align: left;
  font: inherit;
  color: inherit;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.12s var(--ease-out, cubic-bezier(0.23, 1, 0.32, 1));
}
button.step-card:hover {
  border-color: var(--chrome);
  box-shadow: 0 8px 24px rgba(28, 32, 32, 0.05);
}
button.step-card:focus-visible {
  outline: 2px solid var(--yellow);
  outline-offset: 2px;
}
@media (hover: hover) and (pointer: fine) {
  button.step-card:active {
    transform: scale(0.97);
  }
}

.expand-layer {
  position: fixed;
  inset: 0;
  z-index: 200;
  pointer-events: none;
}
.expand-layer:not([hidden]) {
  pointer-events: auto;
}
.expand-panel {
  position: absolute;
  inset: 0;
  background: var(--field);
  color: var(--charcoal, var(--c, #1C2020));
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 4.5rem 0 3rem;
  opacity: 0;
  transform: scale(0.96);
  transform-origin: center center;
  transition: opacity 0.28s cubic-bezier(0.23, 1, 0.32, 1), transform 0.32s cubic-bezier(0.23, 1, 0.32, 1);
  overflow: auto;
}
.expand-panel.is-open {
  opacity: 1;
  transform: scale(1);
}
.expand-panel[hidden] {
  display: none;
}
.expand-panel:not([hidden]) {
  display: flex !important;
}
.expand-layer:not([hidden]) {
  display: block !important;
}
.expand-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 2;
  appearance: none;
  -webkit-appearance: none;
  border: 1px solid var(--chrome);
  background: var(--white);
  color: var(--charcoal, #1C2020);
  border-radius: 999px;
  padding: 0.55rem 0.95rem;
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
}
.expand-close:hover {
  border-color: rgba(28, 32, 32, 0.35);
}
.expand-close:focus-visible {
  outline: 2px solid var(--yellow);
  outline-offset: 2px;
}
.expand-inner {
  position: relative;
  z-index: 1;
  max-width: 40rem;
  margin-inline: auto;
  width: min(100% - 2rem, var(--max, 1120px));
  padding: 0;
}
.expand-inner h2 {
  font-size: clamp(2.4rem, 8vw, 4.5rem);
  font-weight: 450;
  letter-spacing: -0.03em;
  line-height: 1.05;
  margin: 0;
}
.expand-inner .lead {
  margin-top: 0.85rem;
  color: var(--muted);
  font-size: clamp(1rem, 2.4vw, 1.15rem);
  max-width: 28rem;
}
body.expand-open {
  overflow: hidden;
}
@media (prefers-reduced-motion: reduce) {
  .expand-panel {
    transition: opacity 0.15s ease;
    transform: none;
  }
  .expand-panel.is-open {
    transform: none;
  }
  button.step-card:active {
    transform: none;
  }
}

.tour-frame {
  margin-top: 1.5rem;
  width: min(100%, 56rem);
  aspect-ratio: 16 / 9;
  background: var(--soft);
  border: 1px solid rgba(196, 202, 210, 0.7);
  border-radius: 0.4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.tour-frame iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}
.tour-frame__note {
  color: var(--muted);
  font-size: 0.9rem;
  padding: 1rem;
  text-align: center;
}
.expand-inner--tour {
  max-width: 56rem;
}
.expand-close {
  font-family: inherit;
}

.expand-inner--stage {
  max-width: 52rem;
}
.stage-ba {
  margin-top: 1.35rem;
}

/* Interactive before/after scrub (?v=back10) — matches Journey initBaSlider */
.ba-scene-picker {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0.85rem 0 0.75rem;
}
.ba-scene-picker button {
  font-family: inherit;
  font-size: 0.78rem;
  border: 1px solid rgba(28, 32, 32, 0.15);
  background: var(--white, #fff);
  color: var(--muted, #5A6066);
  padding: 0.45rem 0.85rem;
  border-radius: 999px;
  cursor: pointer;
  transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}
.ba-scene-picker button:hover {
  border-color: var(--charcoal, #1C2020);
  color: var(--charcoal, #1C2020);
}
.ba-scene-picker button[aria-pressed="true"] {
  background: var(--charcoal, #1C2020);
  color: var(--white, #fff);
  border-color: var(--charcoal, #1C2020);
}
.ba-slider {
  position: relative;
  margin-top: 0.35rem;
  border-radius: 0.4rem;
  overflow: hidden;
  user-select: none;
  aspect-ratio: 16 / 10;
  background: var(--soft, #ECEFF3);
  border: 1px solid rgba(196, 202, 210, 0.7);
  touch-action: none;
  cursor: ew-resize;
  pointer-events: auto;
}
.ba-slider__after,
.ba-slider__before {
  position: absolute;
  inset: 0;
  width: 100% !important;
  overflow: hidden;
}
.ba-slider__after img,
.ba-slider__before img {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center;
  pointer-events: none;
  display: block;
}
.ba-slider__before {
  z-index: 1;
  /* Top layer = After; --ba-pct = visible After width from the left */
  clip-path: inset(0 calc(100% - var(--ba-pct, 50%)) 0 0);
  -webkit-clip-path: inset(0 calc(100% - var(--ba-pct, 50%)) 0 0);
}
.ba-slider__before::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: var(--ba-pct, 50%);
  width: 2px;
  margin-left: -1px;
  background: var(--yellow, #F4B800);
  z-index: 2;
  pointer-events: none;
  box-shadow: 0 0 0 0 rgba(244, 184, 0, 0.45);
  animation: jp-line-pulse 1.9s ease-out infinite;
}
.ba-slider__tag {
  position: absolute;
  top: 0.7rem;
  z-index: 10;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 0.3rem 0.55rem;
  border-radius: 4px;
  background: rgba(28, 32, 32, 0.82);
  color: var(--white, #fff);
  border: none;
  font-family: inherit;
  line-height: 1.2;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  pointer-events: auto;
  max-width: calc(50% - 1.25rem);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ba-slider__tag:hover,
.ba-slider__tag:focus-visible {
  background: rgba(28, 32, 32, 0.95);
  outline: 2px solid var(--yellow, #F4B800);
  outline-offset: 2px;
}
.ba-slider__tag--before { left: 0.55rem; }
.ba-slider__tag--after { right: 0.55rem; }
.ba-slider__handle {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  z-index: 4;
  width: 36px;
  margin-left: -18px;
  border: none;
  background: transparent;
  cursor: ew-resize;
  padding: 0;
  display: grid;
  place-items: center;
}
.ba-slider__handle span {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--yellow, #F4B800);
  color: var(--charcoal, #1C2020);
  font-weight: 700;
  box-shadow: 0 4px 14px rgba(28, 32, 32, 0.25);
  animation: jp-slider-pulse 1.9s ease-out infinite;
}
.ba-slider.is-dragging .ba-slider__handle span,
.ba-slider__handle:hover span,
.ba-slider__handle:focus-visible span {
  animation-play-state: paused;
}
.ba-slider.is-dragging .ba-slider__before::after {
  animation-play-state: paused;
}
.ba-slider.is-dragging { cursor: grabbing; }
.ba-slider__hint {
  margin: 0.55rem 0 0;
  font-size: 0.78rem;
  color: var(--muted, #5A6066);
}
@keyframes jp-slider-pulse {
  0%, 100% {
    transform: scale(1);
    box-shadow: 0 4px 14px rgba(28, 32, 32, 0.25), 0 0 0 0 rgba(244, 184, 0, 0.55);
  }
  50% {
    transform: scale(1.08);
    box-shadow: 0 6px 18px rgba(28, 32, 32, 0.28), 0 0 0 10px rgba(244, 184, 0, 0);
  }
}
@keyframes jp-line-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(244, 184, 0, 0.5); opacity: 1; }
  50% { box-shadow: 0 0 0 6px rgba(244, 184, 0, 0); opacity: 0.85; }
}
@media (prefers-reduced-motion: reduce) {
  .ba-slider__handle span,
  .ba-slider__before::after {
    animation: none;
  }
}

.ba-auto__frame {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 10;
  border-radius: 0.4rem;
  overflow: hidden;
  background: var(--soft);
  border: 1px solid rgba(196, 202, 210, 0.7);
  user-select: none;
  pointer-events: none; /* legacy auto-wipe only */
}
.ba-auto__before,
.ba-auto__after {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ba-auto__before {
  z-index: 1;
}
.ba-auto__after-wrap {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  clip-path: inset(0 100% 0 0);
  will-change: clip-path;
}
.ba-auto__rule {
  z-index: 3;
}
.ba-auto__tag {
  z-index: 4;
}
.ba-auto__after-wrap.is-revealing {
  transition: clip-path 2.4s cubic-bezier(0.77, 0, 0.175, 1);
  clip-path: inset(0 0 0 0);
}
.ba-auto__after-wrap.is-shown {
  clip-path: inset(0 0 0 0);
  transition: none;
}
.ba-auto__rule {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 2px;
  background: var(--yellow);
  left: 0%;
  transform: translateX(-50%);
  opacity: 0;
  pointer-events: none;
}
.ba-auto__rule.is-on {
  opacity: 1;
  transition: left 2.4s cubic-bezier(0.77, 0, 0.175, 1);
}
.ba-auto__tag {
  position: absolute;
  top: 0.75rem;
  z-index: 2;
  font-size: 0.65rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.35rem 0.55rem;
  border-radius: 999px;
  background: rgba(248, 249, 251, 0.92);
  border: 1px solid var(--chrome);
  color: var(--muted);
}
.ba-auto__tag--before { left: 0.75rem; }
.ba-auto__tag--after { right: 0.75rem; }
.ba-auto__caption {
  margin-top: 0.85rem;
  color: var(--muted);
  font-size: 0.9rem;
}
.ba-auto__dots {
  display: flex;
  gap: 0.4rem;
  margin-top: 0.75rem;
}
.ba-auto__dots span {
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  border: 1px solid var(--chrome);
  background: var(--field);
}
.ba-auto__dots span.is-on {
  background: var(--yellow);
  border-color: var(--yellow);
}
@media (prefers-reduced-motion: reduce) {
  .ba-auto__after-wrap.is-revealing {
    transition: none;
    clip-path: inset(0 0 0 0);
  }
  .ba-auto__rule.is-on {
    transition: none;
  }
}

.expand-inner--wide {
  max-width: 56rem;
}

.photo-compare {
  margin-top: 1.5rem;
  max-width: 40rem;
}
.photo-compare__stage {
  background: var(--white);
  border: 1px solid rgba(196, 202, 210, 0.7);
  border-radius: 0.4rem;
  overflow: hidden;
  box-shadow: inset 0 1px 0 rgba(244, 184, 0, 0.28);
}
.photo-compare__frame {
  position: relative;
  aspect-ratio: 1120 / 606;
  background: var(--soft);
  overflow: hidden;
}
.photo-compare__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 0.7s ease;
  pointer-events: none;
}
.photo-compare__img.is-on {
  opacity: 1;
}
.photo-compare__meta {
  padding: 1rem 1.1rem 0.85rem;
  border-top: 1px solid rgba(196, 202, 210, 0.45);
}
.photo-compare__scene {
  font-size: 0.6875rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  margin: 0 0 0.35rem;
}
.photo-compare__tier {
  font-size: 1rem;
  font-weight: 550;
  letter-spacing: -0.015em;
  color: var(--charcoal);
  margin: 0 0 0.35rem;
}
.photo-compare__caption {
  margin: 0;
  color: var(--muted);
  font-size: 0.92rem;
  max-width: 34rem;
}
.photo-compare__progress {
  display: flex;
  gap: 0.4rem;
  justify-content: center;
  flex-wrap: wrap;
  padding: 0 1rem 1rem;
  pointer-events: none;
}
.photo-compare__dot {
  width: 0.4rem;
  height: 0.4rem;
  border-radius: 50%;
  border: 1px solid var(--chrome);
  background: var(--field);
}
.photo-compare__dot.is-on {
  background: var(--yellow);
  border-color: var(--yellow);
}
@media (prefers-reduced-motion: reduce) {
  .photo-compare__img {
    transition: none;
  }
}

/* Expand: words lift up, media reveals underneath */
.expand-panel {
  justify-content: flex-start;
  padding-top: 4.5rem;
}
.expand-inner--wide {
  max-width: 52rem;
  width: min(100% - 2rem, 52rem);
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  min-height: min(68vh, 560px);
}
.expand-words {
  position: relative;
  z-index: 2;
  transform: translateY(22vh);
  transition: transform 0.55s cubic-bezier(0.23, 1, 0.32, 1);
  will-change: transform;
}
.expand-panel.is-open .expand-words {
  transform: translateY(0);
}
.expand-words h2 {
  font-size: clamp(2.4rem, 8vw, 4.5rem);
  font-weight: 450;
  letter-spacing: -0.03em;
  line-height: 1.05;
  margin: 0;
}
.expand-media {
  position: relative;
  z-index: 1;
  margin-top: 1.5rem;
  opacity: 0;
  transform: translateY(1.25rem);
  transition: opacity 0.45s cubic-bezier(0.23, 1, 0.32, 1) 0.28s,
              transform 0.45s cubic-bezier(0.23, 1, 0.32, 1) 0.28s;
  will-change: opacity, transform;
}
.expand-panel.is-open .expand-media {
  opacity: 1;
  transform: translateY(0);
}
.expand-media__note {
  margin-top: 1rem;
}

/* Plan & design — Experience scan video placeholder */
.plan-scan {
  margin: 2rem 0 0;
  max-width: 56rem;
}
.plan-scan__title {
  margin: 0;
  font-size: clamp(1.05rem, 2vw, 1.25rem);
  font-weight: 600;
  letter-spacing: -0.015em;
  color: #1C2020;
}
.plan-scan__note {
  margin: 0.4rem 0 0;
  color: #5A6066;
  font-size: 0.95rem;
  line-height: 1.55;
}
.plan-scan__frame {
  margin-top: 0.85rem;
  width: min(100%, 56rem);
  aspect-ratio: 16 / 9;
  min-height: 12rem;
  background: #ECEFF3;
  border: 1px solid rgba(196, 202, 210, 0.85);
  border-radius: 0.4rem;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.plan-scan__frame video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #0e1010;
}
.plan-scan__poster {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  padding: 1.25rem;
  text-align: center;
  background:
    linear-gradient(180deg, rgba(248, 249, 251, 0.35), rgba(236, 239, 243, 0.95)),
    repeating-linear-gradient(
      -45deg,
      transparent,
      transparent 10px,
      rgba(196, 202, 210, 0.18) 10px,
      rgba(196, 202, 210, 0.18) 11px
    );
}
.plan-scan__soon {
  display: inline-block;
  padding: 0.55rem 0.9rem;
  background: #fff;
  border: 1px solid rgba(196, 202, 210, 0.95);
  border-radius: 0.3rem;
  color: #5A6066;
  font-size: 0.82rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.expand-panel.is-open .expand-close {
  opacity: 1;
  transform: translateY(0);
}
.expand-close {
  opacity: 0;
  transform: translateY(-0.35rem);
  transition: opacity 0.3s ease 0.35s, transform 0.3s ease 0.35s, border-color 0.15s ease;
}
@media (prefers-reduced-motion: reduce) {
  .expand-words,
  .expand-media,
  .expand-close {
    transition: none;
    transform: none;
    opacity: 1;
  }
  .expand-words {
    transform: none;
  }
}

.photo-compare__chip {
  position: absolute;
  z-index: 3;
  max-width: min(70%, 16rem);
  padding: 0.35rem 0.65rem;
  border-radius: 999px;
  background: rgba(28, 32, 32, 0.78);
  color: #fff;
  font-family: Verdana, Geneva, sans-serif;
  font-size: 0.72rem;
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.2;
  pointer-events: none;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  box-shadow: 0 1px 8px rgba(0,0,0,0.18);
}
.photo-compare__chip--scene {
  top: 0.85rem;
  left: 0.85rem;
}
.photo-compare__chip--tier {
  left: 0.85rem;
  bottom: 0.85rem;
  background: rgba(28, 32, 32, 0.82);
}
.photo-compare__chip--tier.is-jp {
  background: rgba(244, 184, 0, 0.92);
  color: #1C2020;
  font-weight: 700;
}
.photo-compare__frame.is-drone .photo-compare__chip--tier {
  bottom: 2.75rem;
}
.photo-compare__drone {
  position: absolute;
  top: 0.85rem;
  left: 50%;
  transform: translate(-50%, -0.35rem) scale(0.96);
  z-index: 3;
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.45rem 0.85rem;
  border-radius: 999px;
  background: var(--charcoal);
  color: var(--white);
  border: 1px solid rgba(244, 184, 0, 0.85);
  box-shadow: 0 8px 24px rgba(28, 32, 32, 0.18);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.35s cubic-bezier(0.23, 1, 0.32, 1), transform 0.35s cubic-bezier(0.23, 1, 0.32, 1);
}
.photo-compare__drone.is-on {
  opacity: 1;
  transform: translate(-50%, 0) scale(1);
}
.photo-compare__frame.is-drone {
  outline: 2px solid rgba(244, 184, 0, 0.55);
  outline-offset: -2px;
}
.photo-compare__caption.is-drone {
  color: var(--charcoal);
}
.photo-compare__caption.is-drone::before {
  content: "";
  display: inline-block;
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: var(--yellow);
  margin-right: 0.45rem;
  vertical-align: 0.1em;
}
@media (prefers-reduced-motion: reduce) {
  .photo-compare__drone {
    transition: opacity 0.15s ease;
    transform: translate(-50%, 0);
  }
}

/* Phone popups: lift content so media clears the bottom edge */
@media (max-width: 640px) {
  .expand-panel {
    justify-content: flex-start;
    padding: calc(3.1rem + env(safe-area-inset-top, 0px)) 0 calc(1.25rem + env(safe-area-inset-bottom, 0px));
  }
  .expand-close {
    top: calc(0.65rem + env(safe-area-inset-top, 0px));
    right: 0.75rem;
    padding: 0.45rem 0.8rem;
    font-size: 0.68rem;
  }
  .expand-inner--wide {
    min-height: 0;
    width: min(100% - 1.5rem, 52rem);
  }
  .expand-words {
    transform: translateY(12vh);
  }
  .expand-panel.is-open .expand-words {
    transform: translateY(0);
  }
  .expand-words h2,
  .expand-inner h2 {
    font-size: clamp(1.85rem, 9vw, 2.6rem);
  }
  .expand-inner .lead,
  .expand-words .lead {
    margin-top: 0.55rem;
    font-size: 0.95rem;
    max-width: none;
  }
  .expand-media {
    margin-top: 0.85rem;
  }
  .expand-words .eyebrow {
    margin-bottom: 0.25rem;
  }
  .expand-words .hairline {
    margin: 0.55rem 0 0.35rem;
  }
  .photo-compare__meta {
    margin-top: 0.65rem;
  }
  .photo-compare__caption,
  .ba-auto__caption {
    font-size: 0.82rem;
  }
  .photo-compare__frame,
  .ba-auto__frame {
    aspect-ratio: 16 / 11;
  }
  .tour-frame {
    margin-top: 0.85rem;
    aspect-ratio: 4 / 3;
  }
  .photo-compare__chip {
    font-size: 0.65rem;
    padding: 0.28rem 0.55rem;
  }
  .photo-compare__chip--scene { top: 0.6rem; left: 0.6rem; }
  .photo-compare__chip--tier { left: 0.6rem; bottom: 0.6rem; }
  .photo-compare__frame.is-drone .photo-compare__chip--tier { bottom: 2.4rem; }
  .stage-ba,
  .clean-stage {
    margin-top: 0.85rem;
  }
}

.expand-inner--immersive {
  max-width: 52rem;
}
.immersive-more {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0.9rem 0 0;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}
.immersive-more__chev {
  width: 0.55rem;
  height: 0.55rem;
  border-right: 1.5px solid var(--charcoal, #1C2020);
  border-bottom: 1.5px solid var(--charcoal, #1C2020);
  transform: rotate(45deg);
  opacity: 0.55;
  animation: jp-more-bob 1.6s ease-in-out infinite;
}
@keyframes jp-more-bob {
  0%, 100% { transform: rotate(45deg) translateY(0); }
  50% { transform: rotate(45deg) translateY(0.2rem); }
}
.immersive-block__label,
.immersive-video__label {
  margin: 0 0 0.55rem;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}
.immersive-block .tour-frame {
  margin-top: 0;
}
.immersive-continue {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 1.35rem 0 1.1rem;
  color: var(--muted);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.immersive-continue__line {
  flex: 1;
  height: 1px;
  background: rgba(196, 202, 210, 0.85);
}
.immersive-continue__text {
  white-space: nowrap;
}
.immersive-video {
  margin-top: 0;
  width: min(100%, 56rem);
  max-width: none;
}
.immersive-video__title {
  margin: 0 0 0.55rem;
  font-size: clamp(1.2rem, 3.2vw, 1.55rem);
  font-weight: 450;
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: var(--charcoal, #1C2020);
}
.immersive-video__intro {
  margin: 0 0 0.85rem;
  color: var(--muted);
  font-size: 0.95rem;
  max-width: 56rem;
  line-height: 1.45;
}
.immersive-video__frame {
  width: min(100%, 56rem);
  aspect-ratio: 16 / 9;
  min-height: 12rem;
  background: var(--soft);
  border: 1px solid rgba(196, 202, 210, 0.7);
  border-radius: 0.4rem;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.immersive-video__frame video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  background: #0e1010;
}
.immersive-video__caption {
  margin-top: 0.65rem;
  color: var(--muted);
  font-size: 0.85rem;
  max-width: 56rem;
}
@media (max-width: 640px) {
  .immersive-video {
    width: 100%;
    max-width: 100%;
  }
  .immersive-video__frame {
    width: 100%;
    aspect-ratio: 4 / 3;
  }
  .immersive-continue {
    margin: 1.05rem 0 0.9rem;
  }
  .immersive-video__intro {
    font-size: 0.9rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .immersive-more__chev {
    animation: none;
  }
}



/* Properties listings */


/* Tone down previous oversized pair cards if still referenced */
.step-card.step-card--wide {
  min-height: 0;
  padding: 1rem 1.1rem;
}


/* Properties gallery — framed cards, highlight copy, status/price as heading */
.props-band {
  padding: 1.75rem 0 4rem;
  background: var(--field, #F8F9FB);
}
.props-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem 1.25rem;
  margin-bottom: 1.25rem;
}
.props-count {
  margin: 0;
  color: var(--muted);
  font-size: 0.82rem;
  letter-spacing: 0.04em;
}
.props-toggle {
  display: inline-flex;
  align-items: stretch;
  border: 1px solid rgba(28, 32, 32, 0.14);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  padding: 0.18rem;
  box-shadow: 0 1px 0 rgba(28, 32, 32, 0.03);
}
.props-toggle__btn {
  appearance: none;
  -webkit-appearance: none;
  border: 0;
  background: transparent;
  color: var(--muted, #5A6066);
  font: inherit;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.62rem 1.2rem;
  border-radius: 999px;
  cursor: pointer;
  min-width: 6.5rem;
  transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}
.props-toggle__btn.is-active {
  background: var(--charcoal, #1C2020);
  color: #fff;
  box-shadow: 0 1px 2px rgba(28, 32, 32, 0.18);
}
.props-toggle__btn:not(.is-active):hover {
  color: var(--charcoal, #1C2020);
}
.props-toggle__btn:focus-visible {
  outline: 2px solid var(--yellow, #F4B800);
  outline-offset: 2px;
}
.props-status {
  min-height: 1.25rem;
  margin: 0 0 1rem;
  color: var(--muted);
  font-size: 0.95rem;
}
.props-status--empty,
.props-status--error {
  color: var(--charcoal, #1C2020);
}


/* For sale / To let as proper headings */

/* Twin doors under the three — slim on all widths, with breathing room above */
.door-grid.door-grid--twin {
  margin-top: 2.75rem;
  padding-top: 0.25rem;
  width: 100%;
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
}
@media (min-width: 768px) {
  .door-grid.door-grid--twin {
    grid-template-columns: 1fr 1fr;
  }
}
a.door.door--slim,
.door.door--slim {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: space-between;
  gap: 0.75rem;
  min-height: 0 !important;
  height: auto !important;
  padding: 0.55rem 1rem !important;
  background: var(--white);
  border: 1px solid rgba(196, 202, 210, 0.7);
  border-radius: 0.4rem;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
a.door.door--slim:hover,
.door.door--slim:hover {
  border-color: var(--chrome);
  box-shadow: 0 8px 24px rgba(28, 32, 32, 0.05);
}
.door.door--slim .label {
  display: none !important;
}
.door.door--slim h3 {
  font-size: 0.92rem !important;
  font-weight: 500;
  letter-spacing: -0.015em;
  margin: 0 !important;
  min-width: 0;
  line-height: 1.25;
}

.door.door--slim .door-slim__copy {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  flex: 1;
  min-width: 0;
}
.door.door--slim .door-script {
  display: block;
  margin: 0;
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  color: var(--muted);
  line-height: 1.2;
}
.door.door--slim .more {
  font-size: 0.68rem !important;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--charcoal);
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  margin: 0 !important;
  white-space: nowrap;
  flex-shrink: 0;
}
.door.door--slim .more::after {
  content: "→";
  color: var(--yellow);
}
.door.door--slim p {
  display: none !important;
}

/* Properties page — twin mode boxes + independent listing cards */
.props-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem 1.5rem;
  margin: 0 0 1.35rem;
}
.props-headings {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  width: min(100%, 28rem);
}
.props-heading {
  appearance: none;
  -webkit-appearance: none;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.2rem;
  margin: 0;
  padding: 0.85rem 1rem 0.95rem;
  cursor: pointer;
  text-align: left;
  color: var(--charcoal);
  background: var(--white);
  border: 1px solid rgba(196, 202, 210, 0.9);
  border-radius: 0.45rem;
  box-shadow: 0 1px 0 rgba(28, 32, 32, 0.03);
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.props-heading:hover {
  border-color: rgba(28, 32, 32, 0.28);
}
.props-heading.is-active {
  border-color: rgba(28, 32, 32, 0.45);
  box-shadow: 0 0 0 1px rgba(28, 32, 32, 0.08), 0 8px 22px rgba(28, 32, 32, 0.06);
  background: #fff;
}
.props-heading.is-active .props-heading__title {
  color: var(--charcoal);
}
.props-heading__eyebrow {
  display: block;
  font-size: 0.65rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
}
.props-heading__title {
  display: block;
  font-size: 1.15rem;
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--muted);
}
.props-heading.is-active .props-heading__title {
  color: var(--charcoal);
}
.props-count {
  font-size: 0.8rem;
  color: var(--muted);
  letter-spacing: 0.04em;
}
.props-status {
  margin: 0 0 1rem;
  color: var(--muted);
  font-size: 0.92rem;
}
.props-status--error { color: #8a3b2b; }
.props-grid--boxes {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  width: 100%;
}
@media (min-width: 860px) {
  .props-grid--boxes {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.prop-box {
  display: flex !important;
  flex-direction: column !important;
  background: #ffffff !important;
  border: 1px solid rgba(28, 32, 32, 0.16) !important;
  border-radius: 0.5rem !important;
  overflow: hidden !important;
  color: inherit !important;
  text-decoration: none !important;
  min-height: 100%;
  box-shadow: 0 6px 20px rgba(28, 32, 32, 0.06) !important;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}
a.prop-box:hover {
  border-color: rgba(28, 32, 32, 0.32) !important;
  box-shadow: 0 12px 32px rgba(28, 32, 32, 0.1) !important;
  transform: translateY(-2px);
}
a.prop-box:focus-visible {
  outline: 2px solid var(--yellow);
  outline-offset: 3px;
}
.prop-box__media {
  width: 100%;
  aspect-ratio: 16 / 10;
  background: var(--soft);
  overflow: hidden;
  border-bottom: 1px solid rgba(196, 202, 210, 0.85);
}
.prop-box__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.prop-box__ph {
  width: 100%;
  height: 100%;
  min-height: 11rem;
  background: var(--soft);
}
.prop-box__body {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  padding: 1.15rem 1.2rem 1.25rem;
  flex: 1;
  background: #fff;
}
.prop-box__address {
  margin: 0;
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
}
.prop-box__title {
  margin: 0;
  font-size: clamp(1.2rem, 2.5vw, 1.45rem);
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: var(--charcoal);
}
.prop-box__meta {
  margin: 0;
  color: var(--muted);
  font-size: 0.9rem;
}
.prop-box__details {
  margin-top: 0.35rem;
  padding: 0.85rem 0.95rem;
  border-radius: 0.35rem;
  background: var(--field);
  border: 1px solid rgba(196, 202, 210, 0.9);
}
.prop-box__details p {
  margin: 0;
  color: var(--charcoal);
  font-size: 0.92rem;
  line-height: 1.45;
  display: -webkit-box;
  -webkit-line-clamp: 5;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.prop-box__more {
  margin-top: auto;
  padding-top: 0.9rem;
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--charcoal);
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.prop-box__more::after {
  content: "→";
  color: var(--yellow);
}

.step-card__extra {
  margin: 0.55rem 0 0;
  font-size: 0.78rem;
  letter-spacing: 0.02em;
  color: var(--charcoal);
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.step-card__sun {
  color: var(--yellow);
  font-size: 0.95rem;
  line-height: 1;
}

/* Guide plan pop-ups on Plan & design */
.guide-floor-gallery {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
@media (min-width: 720px) {
  .guide-floor-gallery {
    grid-template-columns: 1fr 1fr;
  }
}
.guide-floor-gallery__item {
  margin: 0;
  background: #fff;
  border: 1px solid rgba(196, 202, 210, 0.85);
  border-radius: 0.4rem;
  overflow: hidden;
}
.guide-floor-gallery__item img {
  display: block;
  width: 100%;
  height: auto;
  background: #F8F9FB;
}
.guide-floor-gallery__item figcaption {
  padding: 0.65rem 0.85rem;
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted, #5A6066);
  border-top: 1px solid rgba(196, 202, 210, 0.75);
}

.guide-sun-callout {
  display: flex;
  gap: 0.85rem;
  align-items: flex-start;
  margin: 1rem 0 0;
  padding: 0.95rem 1rem;
  border-radius: 0.4rem;
  background: #F8F9FB;
  border: 1px solid rgba(196, 202, 210, 0.9);
}
.guide-sun-callout__badge {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(244, 184, 0, 0.2);
  color: #F4B800;
  font-size: 1.1rem;
  line-height: 1;
}
.guide-sun-callout__title {
  margin: 0 0 0.35rem;
  font-size: 0.95rem;
  font-weight: 500;
  letter-spacing: -0.01em;
}
.guide-sun-callout p {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--muted, #5A6066);
}

.guide-3d-frame {
  width: 100%;
  aspect-ratio: 16 / 10;
  min-height: 320px;
  border-radius: 0.4rem;
  overflow: hidden;
  border: 1px solid rgba(196, 202, 210, 0.85);
  background: #ECEFF3;
}
.guide-3d-frame iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

.guide-live-video {
  border-radius: 0.4rem;
  overflow: hidden;
  border: 1px solid rgba(196, 202, 210, 0.85);
  background: #111;
}
.guide-live-video video {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: contain;
  background: #111;
  min-height: 12rem;
}

.steps-band .step-card p {
  margin: 0.35rem 0 0;
  font-size: 0.88rem;
  color: var(--muted, #5A6066);
  line-height: 1.35;
}


/* Launch — Present gallery compare */
.place-compare {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin-top: 1.35rem;
}
@media (min-width: 720px) {
  .place-compare {
    grid-template-columns: 1fr 1fr;
  }
}
.place-compare__col {
  margin: 0;
  padding: 1rem 1.1rem;
  background: #F8F9FB;
  border: 1px solid rgba(196, 202, 210, 0.9);
  border-radius: 0.4rem;
}
.place-compare__col--jp {
  background: #fff;
  border-color: rgba(244, 184, 0, 0.55);
  box-shadow: inset 0 0 0 1px rgba(244, 184, 0, 0.2);
}
.place-compare__title {
  margin: 0 0 0.65rem;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #1C2020;
}
.place-compare__col ul {
  margin: 0;
  padding-left: 1.1rem;
}
.place-compare__col li {
  margin: 0.35rem 0;
  font-size: 0.92rem;
  line-height: 1.4;
  color: #5A6066;
}
.launch-present-points {
  margin: 1.25rem 0 0;
  padding: 0.15rem 0 0.15rem 1.15rem;
  max-width: 34rem;
}
.launch-present-points li {
  margin: 0.65rem 0;
  font-size: 0.98rem;
  line-height: 1.45;
  color: #1C2020;
}

/* Let — process journey rail */
.let-journey {
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 0;
  position: relative;
  display: grid;
  gap: 0;
}
.let-journey::before {
  content: "";
  position: absolute;
  left: 0.55rem;
  top: 0.85rem;
  bottom: 0.85rem;
  width: 2px;
  background: linear-gradient(180deg, rgba(244, 184, 0, 0.85), rgba(196, 202, 210, 0.55));
  border-radius: 1px;
}
.let-journey__step {
  display: grid;
  grid-template-columns: 1.25rem minmax(0, 1fr);
  gap: 0.85rem 1rem;
  align-items: start;
  padding: 0.85rem 0;
  position: relative;
}
.let-journey__node {
  width: 1.15rem;
  height: 1.15rem;
  margin-top: 0.15rem;
  border-radius: 50%;
  background: #F8F9FB;
  border: 2px solid #F4B800;
  box-shadow: 0 0 0 3px rgba(244, 184, 0, 0.18);
  z-index: 1;
}
.let-journey__body h3 {
  margin: 0 0 0.35rem;
  font-size: 1.05rem;
  font-weight: 550;
  letter-spacing: -0.015em;
  color: #1C2020;
}
.let-journey__body p {
  margin: 0;
  color: #5A6066;
  font-size: 0.95rem;
  line-height: 1.45;
  max-width: 36rem;
}

/* Let — dual fee columns */
.let-fees {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.15rem;
  margin-top: 1.35rem;
}
@media (min-width: 760px) {
  .let-fees {
    grid-template-columns: 1fr 1fr;
    align-items: start;
  }
}
.let-fees__col {
  margin: 0;
  padding: 1.1rem 1.15rem 1.2rem;
  background: #F8F9FB;
  border: 1px solid rgba(196, 202, 210, 0.9);
  border-radius: 0.4rem;
}
.let-fees__col--protect {
  background: #fff;
  border-color: rgba(244, 184, 0, 0.55);
  box-shadow: inset 0 0 0 1px rgba(244, 184, 0, 0.18);
}
.let-fees__title {
  margin: 0 0 0.85rem;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #1C2020;
}
.let-fees__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0;
}
.let-fees__list li {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.55rem 0;
  border-bottom: 1px solid rgba(196, 202, 210, 0.55);
  font-size: 0.92rem;
  line-height: 1.35;
}
.let-fees__list li:last-child {
  border-bottom: 0;
}
.let-fees__name {
  color: #1C2020;
  font-weight: 500;
}
.let-fees__amt {
  color: #5A6066;
  font-size: 0.88rem;
  letter-spacing: 0.01em;
  text-align: right;
  max-width: 16rem;
  line-height: 1.35;
  text-wrap: pretty;
}
@media (max-width: 520px) {
  .let-fees__list li {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
  }
  .let-fees__amt {
    text-align: left;
    max-width: none;
  }
}
.let-fees__note {
  margin: 0.85rem 0 0;
  font-size: 0.82rem;
  color: #5A6066;
  line-height: 1.4;
}
.let-fees__col--protect > p {
  margin: 0 0 0.85rem;
  color: #5A6066;
  font-size: 0.95rem;
  line-height: 1.45;
}
.let-fees__protect {
  margin: 0;
  padding-left: 1.1rem;
}
.let-fees__protect li {
  margin: 0.4rem 0;
  font-size: 0.92rem;
  line-height: 1.4;
  color: #1C2020;
}
.let-fees__close,
.let-fees__callout {
  margin: 1rem 0 0 !important;
  padding: 0.85rem 0.95rem;
  border-top: none;
  border-left: 3px solid #F4B800;
  background: rgba(244, 184, 0, 0.08);
  border-radius: 0 0.35rem 0.35rem 0;
  color: #1C2020 !important;
  font-size: 0.95rem !important;
  font-weight: 500;
  line-height: 1.45 !important;
}
.let-fees__vat {
  margin: 0.85rem 0 0;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: #1C2020;
  line-height: 1.4;
}

/* ——— Editorial expand prose (Quiet Landmark) ——— */
.expand-words {
  max-width: 38rem;
}
.expand-words:has(.let-fees),
.expand-words:has(.let-journey),
.expand-words:has(.place-compare),
.expand-words:has(.ql-potential),
.expand-words:has(.ql-care),
.expand-words:has(.ql-jdi__framework) {
  max-width: none;
}
.expand-words .lead {
  margin-top: 0.85rem;
  margin-bottom: 0;
  color: var(--muted, #5A6066);
  font-size: clamp(1.02rem, 2.4vw, 1.18rem);
  line-height: 1.45;
  max-width: 30rem;
  font-weight: 450;
}
.expand-words > p:not(.lead):not(.eyebrow):not(.let-fees__note):not(.let-fees__vat) {
  margin: 1rem 0 0;
  color: var(--muted, #5A6066);
  font-size: 0.98rem;
  line-height: 1.55;
  max-width: 34rem;
}
.expand-words .hairline,
.expand-words .hl {
  margin: 1rem 0 0.35rem;
}

/* Proof cards — short title + one line */
.expand-proof {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
  margin: 1.35rem 0 0;
  max-width: 36rem;
  list-style: none;
  padding: 0;
}
@media (min-width: 560px) {
  .expand-proof {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.85rem;
    max-width: none;
  }
}
.expand-proof__card {
  margin: 0;
  padding: 0.95rem 1rem 1.05rem;
  background: #F8F9FB;
  border: 1px solid rgba(196, 202, 210, 0.9);
  border-radius: 0.4rem;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-height: 100%;
}
.expand-proof__title {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: #1C2020;
  line-height: 1.3;
}
.expand-proof__line {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.45;
  color: #5A6066;
}

/* Voice-line points — yellow left border */
.expand-points {
  list-style: none;
  margin: 1.35rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.65rem;
  max-width: 34rem;
}
.expand-points li {
  margin: 0;
  padding: 0.7rem 0.9rem 0.75rem 1rem;
  border-left: 3px solid #F4B800;
  background: rgba(248, 249, 251, 0.95);
  border-radius: 0 0.3rem 0.3rem 0;
  font-size: 0.95rem;
  line-height: 1.45;
  color: #1C2020;
}
.expand-points li strong {
  font-weight: 600;
  display: block;
  margin-bottom: 0.15rem;
}

/* Sticky bottom Back bar — Quiet Landmark (?v=back10) */
.subnav-sticky {
  position: fixed !important;
  left: 0;
  right: 0;
  bottom: 0 !important;
  top: auto !important;
  z-index: 90;
  background: rgba(248, 249, 251, 0.96);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-top: 1px solid rgba(196, 202, 210, 0.75);
  border-bottom: none !important;
  box-shadow: 0 -2px 10px rgba(28, 32, 32, 0.05);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
.subnav-sticky__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  min-height: 1.65rem;
  padding: 0.15rem 0;
}
.subnav-sticky__title {
  order: 1;
  margin-right: auto;
}
.subnav-sticky__back {
  order: 2;
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 0.32rem;
  width: auto !important;
  flex: 0 0 auto !important;
  max-width: max-content;
  align-self: center;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--charcoal, #1C2020);
  text-decoration: none;
  border: 1px solid rgba(28, 32, 32, 0.18);
  background: transparent;
  border-radius: 0.3rem;
  padding: 0.36rem 0.7rem;
  font-weight: 600;
  min-height: 2rem;
  line-height: 1.2;
  -webkit-tap-highlight-color: transparent;
  box-sizing: border-box;
}
.subnav-sticky__back::before {
  content: "←";
  color: var(--muted, #5A6066);
  font-weight: 500;
}
.subnav-sticky__back:hover,
.subnav-sticky__back:focus-visible {
  background: transparent;
  color: var(--charcoal, #1C2020);
  border-color: rgba(28, 32, 32, 0.35);
  outline: none;
}

.subnav-sticky__title {
  font-size: 0.65rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #5A6066;
}
body {
  padding-bottom: calc(7rem + env(safe-area-inset-bottom, 0px));
}


/* Expand popups: same Quiet Landmark Back + content clearance (?v=back10) */
.expand-panel .expand-backbar.subnav-sticky,
.expand-panel > .subnav-sticky.expand-backbar {
  position: fixed !important;
  left: 0;
  right: 0;
  bottom: 0 !important;
  top: auto !important;
  z-index: 210;
  pointer-events: auto;
}
button.subnav-sticky__back {
  appearance: none;
  -webkit-appearance: none;
  /* Never font:inherit — it overrides shared font-size on expand Backs */
  cursor: pointer;
  font-family: inherit;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  font-weight: 600;
  line-height: 1.2;
  min-height: 2rem;
  padding: 0.36rem 0.7rem;
  width: auto !important;
  flex: 0 0 auto !important;
  max-width: max-content;
  background: transparent;
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}
.expand-panel {
  padding-bottom: calc(7rem + env(safe-area-inset-bottom, 0px)) !important;
  padding-top: 2.5rem !important; /* no top Back — modest top inset */
}
/* Extra clearance on the scrolling inner/media so last pixel clears sticky + iOS chrome */
.expand-panel .expand-inner {
  padding-bottom: calc(7rem + env(safe-area-inset-bottom, 0px)) !important;
}
.expand-panel .expand-media {
  padding-bottom: calc(1.5rem + env(safe-area-inset-bottom, 0px));
}
@media (max-width: 640px) {
  .expand-panel {
    padding-bottom: calc(9rem + env(safe-area-inset-bottom, 0px)) !important;
  }
  body {
    padding-bottom: calc(9rem + env(safe-area-inset-bottom, 0px));
  }
  .expand-panel .expand-inner {
    padding-bottom: calc(9rem + env(safe-area-inset-bottom, 0px)) !important;
  }
  .expand-panel .expand-media {
    padding-bottom: calc(2.5rem + env(safe-area-inset-bottom, 0px));
  }
}
/* Hide legacy expand-close pills if any remain in cached markup */
.expand-close,
.expand-close--top,
.expand-close--bottom {
  display: none !important;
}
/* Back9: untransform open scroll panels so fixed sticky Back stays viewport-anchored */
.expand-panel:not([hidden]) {
  transform: none !important;
}


/* ——— Houdini · redesign potential (Quiet Landmark, ?v=plan4) ——— */
.ql-pull {
  margin: 1.25rem 0 0;
  padding: 0.95rem 1.1rem 1rem 1.15rem;
  max-width: 34rem;
  background: #F8F9FB;
  border: 1px solid rgba(196, 202, 210, 0.9);
  border-left: 3px solid #F4B800;
  border-radius: 0 0.4rem 0.4rem 0;
}
.ql-pull p {
  margin: 0;
  font-family: Verdana, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  font-size: clamp(0.98rem, 2.2vw, 1.08rem);
  line-height: 1.45;
  color: #1C2020;
  font-weight: 450;
  font-style: normal;
}
.ql-potential {
  margin: 1.75rem 0 0;
  padding: 1.25rem 0 0;
  border-top: 1px solid rgba(196, 202, 210, 0.85);
  max-width: none;
}
.ql-potential__line {
  margin: 0 0 1.1rem;
  max-width: 36rem;
  font-family: Verdana, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  font-size: clamp(1.05rem, 2.5vw, 1.22rem);
  line-height: 1.4;
  color: #1C2020;
  font-weight: 550;
  letter-spacing: -0.015em;
}
.ql-potential__accent {
  color: #1C2020;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  background: linear-gradient(transparent 62%, rgba(244, 184, 0, 0.35) 62%);
  padding: 0 0.06em;
}
.ql-potential__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
@media (min-width: 560px) {
  .ql-potential__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
  }
}
@media (min-width: 860px) {
  .ql-potential__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.ql-potential__card {
  margin: 0;
  padding: 0.95rem 1rem 1.05rem;
  background: #F8F9FB;
  border: 1px solid rgba(196, 202, 210, 0.9);
  border-radius: 0.4rem;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-height: 100%;
}
.ql-potential__title {
  margin: 0;
  font-family: Verdana, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: #1C2020;
  line-height: 1.3;
}
.ql-potential__title::before {
  content: "";
  display: inline-block;
  width: 0.45rem;
  height: 0.45rem;
  margin-right: 0.45rem;
  margin-bottom: 0.08rem;
  vertical-align: middle;
  border-radius: 1px;
  background: #F4B800;
}
.ql-potential__text {
  margin: 0;
  font-family: Verdana, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  font-size: 0.88rem;
  line-height: 1.45;
  color: #5A6066;
}
.expand-words:has(.ql-potential) .lead {
  max-width: 38rem;
}
.expand-words:has(.ql-care) .lead {
  max-width: 40rem;
}


/* ——— Care in judgement · Quiet Landmark editorial (?v=plan5) ——— */
.expand-words--care {
  max-width: none;
  font-family: Verdana, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
}
.ql-care__em {
  color: var(--charcoal, #1C2020);
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  background: linear-gradient(transparent 62%, rgba(244, 184, 0, 0.35) 62%);
  padding: 0 0.06em;
}
.ql-care__summary {
  max-width: 40rem;
}
.ql-care__summary strong {
  font-weight: 600;
  color: var(--charcoal, #1C2020);
}
.ql-care {
  margin: 1.85rem 0 0;
  padding: 1.35rem 0 0;
  border-top: 1px solid rgba(196, 202, 210, 0.85);
  max-width: none;
}
.ql-care__h {
  margin: 0 0 0.65rem;
  font-family: Verdana, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  font-size: clamp(1.05rem, 2.4vw, 1.28rem);
  font-weight: 550;
  letter-spacing: -0.015em;
  line-height: 1.3;
  color: var(--charcoal, #1C2020);
  text-transform: none;
}
.ql-care__intro {
  margin: 0;
  max-width: 40rem;
  font-family: Verdana, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--muted, #5A6066);
}
.ql-care__proof {
  margin-top: 1.1rem;
}
.ql-care__flow {
  list-style: none;
  margin: 1.15rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.65rem;
  max-width: 40rem;
  counter-reset: care-flow;
}
.ql-care__flow li {
  counter-increment: care-flow;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.35rem 0.85rem;
  align-items: baseline;
  margin: 0;
  padding: 0.85rem 1rem;
  background: #F8F9FB;
  border: 1px solid rgba(196, 202, 210, 0.9);
  border-radius: 0.4rem;
  border-left: 3px solid #F4B800;
}
.ql-care__flow li::before {
  content: counter(care-flow);
  grid-row: 1 / span 2;
  align-self: center;
  width: 1.55rem;
  height: 1.55rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(244, 184, 0, 0.22);
  color: var(--charcoal, #1C2020);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.ql-care__flow-step {
  font-family: Verdana, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--charcoal, #1C2020);
  letter-spacing: -0.01em;
}
.ql-care__flow-note {
  grid-column: 2;
  font-family: Verdana, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  font-size: 0.86rem;
  line-height: 1.45;
  color: var(--muted, #5A6066);
}
@media (min-width: 720px) {
  .ql-care__flow {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    max-width: none;
    gap: 0.75rem;
  }
  .ql-care__flow li {
    grid-template-columns: 1fr;
    gap: 0.4rem;
  }
  .ql-care__flow li::before {
    grid-row: auto;
    margin-bottom: 0.15rem;
  }
  .ql-care__flow-note {
    grid-column: auto;
  }
}
.ql-care__checks {
  list-style: none;
  margin: 1rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.55rem;
  max-width: 40rem;
}
.ql-care__checks li {
  position: relative;
  margin: 0;
  padding: 0.7rem 0.9rem 0.7rem 2rem;
  background: #F8F9FB;
  border: 1px solid rgba(196, 202, 210, 0.9);
  border-radius: 0.35rem;
  font-family: Verdana, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--charcoal, #1C2020);
}
.ql-care__checks li::before {
  content: "";
  position: absolute;
  left: 0.75rem;
  top: 1rem;
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 1px;
  background: #F4B800;
}
.ql-care .ql-pull {
  margin-top: 1.15rem;
}
.ql-care__assess {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.65rem;
  margin: 1.1rem 0 0;
  padding: 0;
  list-style: none;
}
@media (min-width: 520px) {
  .ql-care__assess {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 860px) {
  .ql-care__assess {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.ql-care__assess-card {
  margin: 0;
  padding: 0.9rem 1rem;
  background: #F8F9FB;
  border: 1px solid rgba(196, 202, 210, 0.9);
  border-radius: 0.4rem;
  min-height: 100%;
}
.ql-care__assess-title {
  margin: 0;
  font-family: Verdana, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--charcoal, #1C2020);
  line-height: 1.35;
}
.ql-care__assess-title::before {
  content: "";
  display: inline-block;
  width: 0.45rem;
  height: 0.45rem;
  margin-right: 0.45rem;
  margin-bottom: 0.08rem;
  vertical-align: middle;
  border-radius: 1px;
  background: #F4B800;
}
.ql-care__confidence {
  margin: 1rem 0 0;
  max-width: 36rem;
  padding: 0.7rem 1rem;
  border-left: 3px solid #F4B800;
  background: rgba(244, 184, 0, 0.12);
  border-radius: 0 0.3rem 0.3rem 0;
  font-family: Verdana, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  font-size: 0.92rem;
  font-weight: 550;
  color: var(--charcoal, #1C2020);
  line-height: 1.4;
}
.ql-care--close .ql-care__contact {
  margin: 1.1rem 0 0;
  font-family: Verdana, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--muted, #5A6066);
  max-width: 36rem;
}
.ql-care--close .ql-care__contact a {
  color: var(--charcoal, #1C2020);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
  font-weight: 550;
}
.ql-care--close .ql-care__contact a:hover,
.ql-care--close .ql-care__contact a:focus-visible {
  color: var(--charcoal, #1C2020);
  text-decoration-thickness: 2px;
  outline: none;
}
.ql-care__services {
  margin: 1.25rem 0 0;
  padding-top: 1rem;
  border-top: 1px solid rgba(196, 202, 210, 0.75);
  font-family: Verdana, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.02em;
  line-height: 1.55;
  color: var(--muted, #5A6066);
  max-width: 42rem;
}


/* ——— Houdini · JDI™ Jenkins Development Intelligence (?v=plan6) ——— */
.ql-jdi__brand {
  margin: 1.15rem 0 0;
  font-family: Verdana, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #5A6066;
}
.ql-jdi__mark {
  color: #1C2020;
  font-weight: 700;
  letter-spacing: 0.1em;
  margin-right: 0.35rem;
}
.ql-jdi__intro {
  margin: 0.85rem 0 0;
  max-width: 40rem;
  font-family: Verdana, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  font-size: 0.98rem;
  line-height: 1.55;
  color: #5A6066;
}
.ql-jdi__accent {
  margin: 1rem 0 0;
  max-width: 38rem;
  font-family: Verdana, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  font-size: clamp(1.02rem, 2.3vw, 1.14rem);
  line-height: 1.4;
  color: #1C2020;
  font-weight: 550;
  letter-spacing: -0.015em;
  padding-left: 0.85rem;
  border-left: 3px solid #F4B800;
}
.ql-pull {
  margin: 1.5rem 0 0;
  padding: 1rem 1.15rem 1.05rem;
  max-width: 36rem;
  background: #F8F9FB;
  border: 1px solid rgba(196, 202, 210, 0.9);
  border-radius: 0.4rem;
}
.ql-pull p {
  margin: 0;
  font-family: Verdana, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  font-size: clamp(1rem, 2.3vw, 1.12rem);
  line-height: 1.45;
  color: #1C2020;
  font-weight: 450;
  font-style: normal;
}
.ql-jdi__section-label {
  margin: 0 0 0.85rem;
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #5A6066;
  font-family: Verdana, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
}
.ql-jdi__framework {
  margin: 1.85rem 0 0;
  padding-top: 1.35rem;
  border-top: 1px solid rgba(196, 202, 210, 0.85);
}
.ql-jdi__steps {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
  margin: 0;
  padding: 0;
}
@media (min-width: 560px) {
  .ql-jdi__steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
  }
}
@media (min-width: 900px) {
  .ql-jdi__steps {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.ql-jdi__step {
  margin: 0;
  padding: 0.95rem 1rem 1.1rem;
  background: #F8F9FB;
  border: 1px solid rgba(196, 202, 210, 0.9);
  border-radius: 0.4rem;
  min-height: 100%;
}
.ql-jdi__step-kicker {
  margin: 0 0 0.35rem;
  font-size: 0.65rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #F4B800;
  font-weight: 700;
}
.ql-jdi__step-title {
  margin: 0 0 0.4rem;
  font-family: Verdana, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  font-size: 1rem;
  font-weight: 600;
  color: #1C2020;
  letter-spacing: -0.015em;
}
.ql-jdi__step-text {
  margin: 0;
  font-family: Verdana, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  font-size: 0.86rem;
  line-height: 1.45;
  color: #5A6066;
}
.ql-jdi__advantage {
  margin: 1.85rem 0 0;
  padding-top: 1.35rem;
  border-top: 1px solid rgba(196, 202, 210, 0.85);
}
.ql-jdi__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
  margin: 0;
  padding: 0;
}
@media (min-width: 560px) {
  .ql-jdi__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
  }
}
@media (min-width: 860px) {
  .ql-jdi__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.ql-jdi__card {
  margin: 0;
  padding: 0.95rem 1rem 1.05rem;
  background: #fff;
  border: 1px solid rgba(196, 202, 210, 0.9);
  border-radius: 0.4rem;
  min-height: 100%;
}
.ql-jdi__card-title {
  margin: 0 0 0.35rem;
  font-family: Verdana, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  font-size: 0.92rem;
  font-weight: 600;
  color: #1C2020;
  line-height: 1.3;
}
.ql-jdi__card-title::before {
  content: '';
  display: inline-block;
  width: 0.45rem;
  height: 0.45rem;
  margin-right: 0.45rem;
  margin-bottom: 0.08rem;
  vertical-align: middle;
  border-radius: 1px;
  background: #F4B800;
}
.ql-jdi__card-text {
  margin: 0;
  font-family: Verdana, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  font-size: 0.86rem;
  line-height: 1.45;
  color: #5A6066;
}
.ql-jdi__audience {
  margin: 1.85rem 0 0;
  padding-top: 1.35rem;
  border-top: 1px solid rgba(196, 202, 210, 0.85);
}
.ql-jdi__audience-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.ql-jdi__audience-list li {
  margin: 0;
  padding: 0.45rem 0.75rem;
  background: #F8F9FB;
  border: 1px solid rgba(196, 202, 210, 0.9);
  border-radius: 999px;
  font-family: Verdana, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  font-size: 0.82rem;
  color: #1C2020;
}
.ql-jdi__trust {
  margin: 1rem 0 0;
  max-width: 40rem;
  font-family: Verdana, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  font-size: 0.92rem;
  line-height: 1.5;
  color: #5A6066;
}
.ql-jdi__cta {
  margin: 1.5rem 0 0;
  font-family: Verdana, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  font-size: 0.95rem;
  line-height: 1.5;
  color: #5A6066;
}
.ql-jdi__cta a {
  color: #1C2020;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}
.expand-words:has(.ql-jdi__framework) .lead {
  max-width: 40rem;
}


/* ——— Care + Houdini visual boards · Quiet Landmark (?v=plan7) ——— */
.expand-words--care,
.expand-words--jdi {
  max-width: none;
  font-family: Verdana, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
}
.ql-ico {
  display: block;
  flex-shrink: 0;
}
.ql-viz {
  margin: 1.85rem 0 0;
  padding: 1.4rem 0 0;
  border-top: 1px solid rgba(196, 202, 210, 0.85);
}
.ql-viz--hero {
  margin-top: 1.15rem;
  padding-top: 0;
  border-top: 0;
}
.ql-viz__label {
  margin: 0 0 0.55rem;
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #5A6066;
  font-family: Verdana, system-ui, sans-serif;
}
.ql-viz__headline {
  margin: 0 0 1.15rem;
  max-width: 38rem;
  font-family: Verdana, system-ui, sans-serif;
  font-size: clamp(1.2rem, 2.8vw, 1.55rem);
  font-weight: 550;
  letter-spacing: -0.02em;
  line-height: 1.28;
  color: #1C2020;
}
.ql-viz__headline--sm {
  font-size: clamp(1.05rem, 2.4vw, 1.28rem);
  margin-bottom: 1rem;
}
.ql-viz__em {
  color: #1C2020;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  background: linear-gradient(transparent 62%, rgba(244, 184, 0, 0.38) 62%);
  padding: 0 0.06em;
}
.ql-viz__soft {
  margin: 0;
  max-width: 38rem;
  font-size: 0.95rem;
  line-height: 1.55;
  color: #5A6066;
}
.ql-viz__contact {
  margin: 1.1rem 0 0;
  font-size: 0.95rem;
  line-height: 1.5;
  color: #5A6066;
  max-width: 36rem;
}
.ql-viz__contact a {
  color: #1C2020;
  font-weight: 550;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}
.ql-viz__services {
  margin: 1.25rem 0 0;
  padding-top: 1rem;
  border-top: 1px solid rgba(196, 202, 210, 0.75);
  font-size: 0.78rem;
  letter-spacing: 0.02em;
  line-height: 1.55;
  color: #5A6066;
  max-width: 42rem;
}

/* Pillars 3-up */
.ql-pillars {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
  margin: 0 0 1.15rem;
  padding: 0;
}
@media (min-width: 720px) {
  .ql-pillars {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.9rem;
  }
}
.ql-pillar {
  margin: 0;
  padding: 1.05rem 1.05rem 1.15rem;
  background: #F8F9FB;
  border: 1px solid rgba(196, 202, 210, 0.9);
  border-radius: 0.45rem;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-height: 100%;
  position: relative;
}
.ql-pillar__ico {
  width: 2.5rem;
  height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1.5px solid rgba(244, 184, 0, 0.85);
  border-radius: 999px;
  background: #fff;
  margin-bottom: 0.25rem;
}
.ql-pillar__kicker {
  position: absolute;
  top: 0.85rem;
  right: 0.95rem;
  margin: 0;
  font-size: 1.35rem;
  font-weight: 700;
  color: rgba(244, 184, 0, 0.35);
  letter-spacing: -0.02em;
  line-height: 1;
}
.ql-pillar__title {
  margin: 0;
  font-size: 0.98rem;
  font-weight: 600;
  color: #1C2020;
  letter-spacing: -0.01em;
}
.ql-pillar__line {
  margin: 0;
  font-size: 0.86rem;
  line-height: 1.45;
  color: #5A6066;
}

/* Pull boxes */
.ql-pull--box {
  margin: 1.15rem 0 0;
  padding: 0.95rem 1.1rem 1rem;
  max-width: 40rem;
  background: #fff;
  border: 1px solid rgba(196, 202, 210, 0.95);
  border-left: 3px solid #F4B800;
  border-radius: 0 0.4rem 0.4rem 0;
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
}
.ql-pull--box p {
  margin: 0;
  font-family: Verdana, system-ui, sans-serif;
  font-size: clamp(0.95rem, 2.1vw, 1.05rem);
  line-height: 1.45;
  color: #1C2020;
  font-style: normal;
  font-weight: 450;
}
.ql-pull--box strong {
  font-weight: 600;
}
.ql-pull--accent {
  background: rgba(244, 184, 0, 0.1);
  border-color: rgba(244, 184, 0, 0.45);
}
.ql-pull__ico {
  flex-shrink: 0;
  margin-top: 0.1rem;
}

/* Chip / pill rows */
.ql-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0 0 1.25rem;
  padding: 0;
}
.ql-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0;
  padding: 0.45rem 0.8rem 0.45rem 0.55rem;
  background: #F8F9FB;
  border: 1px solid rgba(196, 202, 210, 0.9);
  border-radius: 999px;
  font-family: Verdana, system-ui, sans-serif;
  font-size: 0.8rem;
  color: #1C2020;
  line-height: 1.2;
}
.ql-chip .ql-ico {
  width: 1rem;
  height: 1rem;
}

/* Numbered step rail with connectors */
.ql-rail {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  margin: 0 0 1.15rem;
  padding: 0;
  align-items: stretch;
}
@media (min-width: 800px) {
  .ql-rail {
    flex-direction: row;
    align-items: stretch;
    gap: 0.35rem;
  }
}
.ql-rail__step {
  flex: 1 1 0;
  margin: 0;
  padding: 1rem 0.95rem 1.1rem;
  background: #F8F9FB;
  border: 1px solid rgba(196, 202, 210, 0.9);
  border-radius: 0.45rem;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  position: relative;
  min-width: 0;
}
.ql-rail__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.55rem;
  height: 1.55rem;
  border-radius: 999px;
  background: rgba(244, 184, 0, 0.22);
  color: #1C2020;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  margin-bottom: 0.15rem;
}
.ql-rail__ico {
  width: 2.35rem;
  height: 2.35rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1.5px solid rgba(244, 184, 0, 0.8);
  border-radius: 999px;
  background: #fff;
  margin: 0.15rem 0 0.25rem;
}
.ql-rail__title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 600;
  color: #1C2020;
  letter-spacing: -0.01em;
}
.ql-rail__tag {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #F4B800;
}
.ql-rail__note {
  margin: 0;
  font-size: 0.84rem;
  line-height: 1.45;
  color: #5A6066;
}
.ql-rail__conn {
  display: none;
  flex: 0 0 auto;
  align-self: center;
  opacity: 0.85;
}
@media (min-width: 800px) {
  .ql-rail__conn {
    display: flex;
    align-items: center;
    padding: 0 0.1rem;
  }
}

/* Check cards */
.ql-checks {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.55rem;
  margin: 0 0 1.15rem;
  padding: 0;
}
@media (min-width: 640px) {
  .ql-checks {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.ql-check {
  display: flex;
  gap: 0.65rem;
  align-items: flex-start;
  margin: 0;
  padding: 0.8rem 0.9rem;
  background: #F8F9FB;
  border: 1px solid rgba(196, 202, 210, 0.9);
  border-radius: 0.4rem;
}
.ql-check p {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.4;
  color: #1C2020;
}
.ql-check__mark {
  flex-shrink: 0;
}

/* Before / after contrast panels */
.ql-ba {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin: 0 0 1.15rem;
  align-items: stretch;
}
@media (min-width: 560px) {
  .ql-ba {
    flex-direction: row;
    align-items: center;
    gap: 0.65rem;
  }
}
.ql-ba__panel {
  flex: 1 1 0;
  margin: 0;
  padding: 1rem 1.05rem;
  border-radius: 0.45rem;
  border: 1px solid rgba(196, 202, 210, 0.9);
  background: #fff;
}
.ql-ba__panel--before {
  background: #F8F9FB;
}
.ql-ba__panel--after {
  border-color: rgba(244, 184, 0, 0.55);
  background: rgba(244, 184, 0, 0.1);
}
.ql-ba__kicker {
  margin: 0 0 0.25rem;
  font-size: 0.65rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #5A6066;
}
.ql-ba__title {
  margin: 0 0 0.2rem;
  font-size: 1.05rem;
  font-weight: 600;
  color: #1C2020;
  letter-spacing: -0.015em;
}
.ql-ba__tag {
  margin: 0;
  font-size: 0.84rem;
  color: #5A6066;
}
.ql-ba__arrow {
  display: flex;
  justify-content: center;
  opacity: 0.9;
}
@media (min-width: 560px) {
  .ql-ba__arrow {
    transform: none;
  }
}

/* Assess icon grid */
.ql-assess {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
  margin: 1rem 0 0;
  padding: 0;
}
@media (min-width: 720px) {
  .ql-assess {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (min-width: 980px) {
  .ql-assess {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
}
.ql-assess__card {
  margin: 0;
  padding: 0.95rem 0.75rem;
  background: #F8F9FB;
  border: 1px solid rgba(196, 202, 210, 0.9);
  border-radius: 0.4rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  min-height: 100%;
}
.ql-assess__ico {
  width: 2.5rem;
  height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1.5px solid rgba(244, 184, 0, 0.8);
  border-radius: 999px;
  background: #fff;
}
.ql-assess__title {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.3;
  color: #1C2020;
  letter-spacing: -0.01em;
}
.ql-bar {
  margin: 1.1rem 0 0;
  padding: 0.7rem 1rem;
  background: rgba(244, 184, 0, 0.22);
  border-radius: 0.35rem;
  font-family: Verdana, system-ui, sans-serif;
  font-size: 0.9rem;
  font-weight: 550;
  color: #1C2020;
  text-align: center;
  letter-spacing: -0.01em;
}

/* Houdini optimisation 3-up */
.ql-opt {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
  margin: 0;
  padding: 0;
}
@media (min-width: 720px) {
  .ql-opt {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.ql-opt__card {
  margin: 0;
  padding: 1.05rem 1rem 1.15rem;
  background: #F8F9FB;
  border: 1px solid rgba(196, 202, 210, 0.9);
  border-radius: 0.45rem;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  min-height: 100%;
}
.ql-opt__card--value {
  background: #fff;
  border-color: rgba(244, 184, 0, 0.45);
}
.ql-opt__ico {
  width: 2.35rem;
  height: 2.35rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1.5px solid rgba(244, 184, 0, 0.8);
  border-radius: 999px;
  background: #fff;
}
.ql-opt__title {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  color: #1C2020;
  letter-spacing: -0.015em;
}
.ql-opt__ba {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-wrap: wrap;
}
.ql-opt__before,
.ql-opt__after {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 0.28rem 0.55rem;
  border-radius: 999px;
}
.ql-opt__before {
  background: #ECEFF3;
  color: #5A6066;
}
.ql-opt__after {
  background: rgba(244, 184, 0, 0.22);
  color: #1C2020;
}
.ql-opt__sep {
  color: #5A6066;
  font-size: 0.9rem;
}
.ql-opt__line {
  margin: 0;
  font-size: 0.84rem;
  line-height: 1.45;
  color: #5A6066;
}
.ql-opt__nums {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.45rem;
}
.ql-opt__num-col {
  padding: 0.55rem 0.6rem;
  background: #F8F9FB;
  border: 1px solid rgba(196, 202, 210, 0.85);
  border-radius: 0.35rem;
}
.ql-opt__num-col--hi {
  background: rgba(244, 184, 0, 0.12);
  border-color: rgba(244, 184, 0, 0.45);
}
.ql-opt__num-label {
  margin: 0 0 0.2rem;
  font-size: 0.62rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #5A6066;
}
.ql-opt__num-val {
  margin: 0;
  font-size: 0.88rem;
  font-weight: 600;
  color: #1C2020;
  letter-spacing: -0.015em;
  line-height: 1.25;
}
.ql-opt__num-val--muted {
  color: #5A6066;
  font-weight: 550;
}

/* Advantage + audience split */
.ql-split {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  margin-top: 0;
}
@media (min-width: 900px) {
  .ql-split {
    grid-template-columns: 1.15fr 0.85fr;
    gap: 1.25rem;
    align-items: start;
  }
  .ql-split .ql-viz {
    border-top: 1px solid rgba(196, 202, 210, 0.85);
  }
}
.ql-viz--advantage {
  background: #F8F9FB;
  border: 1px solid rgba(196, 202, 210, 0.9);
  border-radius: 0.45rem;
  padding: 1.15rem 1.1rem 1.2rem !important;
  margin-top: 1.85rem;
  border-top: 1px solid rgba(196, 202, 210, 0.9) !important;
}
.ql-adv {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin: 0;
  padding: 0;
}
.ql-adv__item {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
  margin: 0;
  padding: 0.65rem 0.7rem;
  background: #fff;
  border: 1px solid rgba(196, 202, 210, 0.85);
  border-radius: 0.35rem;
}
.ql-adv__ico {
  width: 2.1rem;
  height: 2.1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1.5px solid rgba(244, 184, 0, 0.8);
  border-radius: 999px;
  background: #F8F9FB;
  flex-shrink: 0;
}
.ql-adv__title {
  margin: 0 0 0.2rem;
  font-size: 0.9rem;
  font-weight: 600;
  color: #1C2020;
  line-height: 1.3;
}
.ql-adv__text {
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.4;
  color: #5A6066;
}
.ql-jdi__trust {
  margin: 1rem 0 0;
  max-width: 36rem;
  font-size: 0.9rem;
  line-height: 1.5;
  color: #5A6066;
}
.expand-words--care .lead,
.expand-words--jdi .lead,
.expand-words:has(.ql-pillars) .lead,
.expand-words:has(.ql-rail) .lead {
  max-width: 40rem;
}

/* Keep legacy selectors harmless if leftover */
.ql-care__flow,
.ql-care__checks,
.ql-jdi__steps {
  /* superseded by ql-rail / ql-checks — leave base rules above intact */
}

/* plan7 modifiers */
.ql-rail--4 { }
@media (min-width: 900px) {
  .ql-rail--4 { gap: 0.25rem; }
  .ql-rail--4 .ql-rail__step { padding: 0.9rem 0.75rem 1rem; }
  .ql-rail--4 .ql-rail__note { font-size: 0.8rem; }
}
.ql-viz--audience { }
.ql-viz--close {
  margin-top: 1.85rem;
  padding-top: 1.4rem;
  border-top: 1px solid rgba(196, 202, 210, 0.85);
}
.ql-chips--audience .ql-chip {
  background: #fff;
}
.ql-viz--advantage .ql-viz__label {
  margin-bottom: 0.75rem;
}
/* Ensure connectors hidden on small screens already handled; polish */
.ql-ico { display: block; }



/* === plan8 houdini poster visuals === */
.expand-inner--jdi {
  max-width: 60rem;
  width: min(100% - 2rem, 60rem);
}
.ql-jdi-hero {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.15rem;
  align-items: stretch;
  margin-top: 1.15rem;
  padding: 0;
  border-top: 0;
}
@media (min-width: 820px) {
  .ql-jdi-hero {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: 1.35rem;
    align-items: center;
  }
}
.ql-jdi-hero__copy .ql-viz__headline {
  margin-bottom: 0.75rem;
}
.ql-jdi-hero__fig {
  margin: 0;
  border-radius: 0.45rem;
  overflow: hidden;
  border: 1px solid rgba(196, 202, 210, 0.9);
  background: #1C2020;
  box-shadow: 0 10px 28px rgba(28, 32, 32, 0.08);
}
.ql-jdi-hero__img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 800 / 710;
  object-fit: cover;
  object-position: center 40%;
}
.ql-opt__head {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}
.ql-opt__tagline {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.35;
  color: #F4B800;
  font-weight: 550;
}
.ql-opt__card--visual {
  padding: 0.95rem 0.9rem 1.05rem;
  background: #fff;
}
.ql-opt__visual {
  margin: 0.15rem 0 0.15rem;
  border-radius: 0.35rem;
  overflow: hidden;
  background: #1C2020;
  border: 1px solid rgba(28, 32, 32, 0.18);
}
.ql-opt__visual img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 335 / 122;
  object-fit: cover;
  object-position: center;
}
.ql-opt__visual--nums {
  background: #0d0f10;
}
.ql-opt__visual--nums img {
  aspect-ratio: 335 / 127;
  object-fit: contain;
  background: #0d0f10;
}
.ql-viz--advantage .ql-pull--box {
  margin: 0 0 0.9rem;
  max-width: none;
}
@media (min-width: 720px) {
  .ql-opt {
    gap: 0.85rem;
  }
}


/* === plan9 care poster boards === */
.expand-inner--care {
  max-width: 60rem;
  width: min(100% - 2rem, 60rem);
}
.ql-care-hero {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.15rem;
  align-items: stretch;
  margin-top: 1.15rem;
  padding: 0;
  border-top: 0;
}
@media (min-width: 820px) {
  .ql-care-hero {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: 1.35rem;
    align-items: center;
  }
}
.ql-care-hero__lead {
  margin: 0 0 1rem;
  font-size: 0.95rem;
  line-height: 1.55;
  color: #5A6066;
  font-family: Verdana, system-ui, sans-serif;
  max-width: 36rem;
}
.ql-care-hero__fig,
.ql-care-split__fig {
  margin: 0;
  border-radius: 0.45rem;
  overflow: hidden;
  border: 1px solid rgba(196, 202, 210, 0.9);
  background: #1C2020;
  box-shadow: 0 10px 28px rgba(28, 32, 32, 0.08);
}
.ql-care-hero__img,
.ql-care-split__fig img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  object-position: center;
}
.ql-care-hero__img {
  aspect-ratio: 255 / 450;
  max-height: 28rem;
}
.ql-care-split {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.15rem;
  align-items: start;
}
@media (min-width: 820px) {
  .ql-care-split {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: 1.35rem;
    align-items: center;
  }
}
.ql-care-split__fig img {
  aspect-ratio: 16 / 11;
}
.ql-care-ba {
  display: grid;
  gap: 0.75rem;
}
.ql-care-ba__panel {
  margin: 0;
  padding: 0.65rem;
  border-radius: 0.45rem;
  background: #fff;
  border: 1px solid rgba(196, 202, 210, 0.95);
}
.ql-care-ba__panel--after {
  border-color: rgba(244, 184, 0, 0.55);
}
.ql-care-ba__kicker {
  margin: 0 0 0.45rem;
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #5A6066;
  font-family: Verdana, system-ui, sans-serif;
}
.ql-care-ba__panel--after .ql-care-ba__kicker {
  color: #1C2020;
}
.ql-care-ba__panel img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 0.3rem;
  background: #1C2020;
}

/* === contact layout (contact1) === */
.contact-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  align-items: stretch;
  width: 100%;
}
.page-body .contact-layout .card,
.contact-layout .card {
  max-width: none;
  width: 100%;
}
.contact-card {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.contact-map {
  padding: 0;
  overflow: hidden;
  min-height: 280px;
}
.contact-map iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 280px;
  border: 0;
  border-radius: inherit;
}
@media (min-width: 768px) {
  .contact-layout {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.15fr);
    gap: 1.35rem;
  }
  .contact-map,
  .contact-map iframe {
    min-height: 320px;
  }
}

/* Contact: clear sticky bottom Back bar (+ safe-area) */
.page-body:has(.contact-layout) {
  padding-bottom: calc(7rem + env(safe-area-inset-bottom, 0px));
}
.contact-layout {
  margin-bottom: 0.5rem;
}
@media (max-width: 640px) {
  .page-body:has(.contact-layout) {
    padding-bottom: calc(9rem + env(safe-area-inset-bottom, 0px));
  }
}


/* ——— Sticky Back clearance (?v=plan7) — keep content above bottom bar ——— */
body,
main,
.expand-panel,
.expand-inner,
.expand-words,
.expand-media {
  padding-bottom: calc(8.75rem + env(safe-area-inset-bottom, 0px));
}
.expand-panel {
  padding-bottom: calc(8.75rem + env(safe-area-inset-bottom, 0px)) !important;
}
.expand-panel .expand-inner,
.expand-panel .expand-words,
.expand-panel .expand-media {
  padding-bottom: calc(8.75rem + env(safe-area-inset-bottom, 0px)) !important;
}
@media (max-width: 640px) {
  body,
  main,
  .expand-panel,
  .expand-inner,
  .expand-words,
  .expand-media {
    padding-bottom: calc(11rem + env(safe-area-inset-bottom, 0px));
  }
  .expand-panel {
    padding-bottom: calc(11rem + env(safe-area-inset-bottom, 0px)) !important;
  }
  .expand-panel .expand-inner,
  .expand-panel .expand-words,
  .expand-panel .expand-media {
    padding-bottom: calc(11rem + env(safe-area-inset-bottom, 0px)) !important;
  }
}

/* plan7: scroll padding so focused/anchors clear sticky Back */
.expand-panel {
  scroll-padding-bottom: calc(8.75rem + env(safe-area-inset-bottom, 0px));
}
@media (max-width: 640px) {
  .expand-panel {
    scroll-padding-bottom: calc(11rem + env(safe-area-inset-bottom, 0px));
  }
}

/* plan10: exact poster restyles (Quiet Landmark tones) */
.expand-words--poster {
  max-width: 56rem;
}
.ql-poster-frame {
  margin: 0.35rem 0 0;
  padding: 0.65rem;
  background: var(--field, #F8F9FB);
  border: 1px solid rgba(196, 202, 210, 0.65);
  border-radius: 0.35rem;
  box-shadow: 0 1px 0 rgba(28, 32, 32, 0.04);
}
.ql-poster-frame__img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 0.15rem;
  background: #F8F9FB;
}
.expand-media--secondary {
  margin-top: 1.75rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(196, 202, 210, 0.55);
}
.ql-poster-secondary__label {
  font-size: 0.6875rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--m, #5A6066);
  margin: 0 0 0.85rem;
}
.expand-inner--care .expand-words--poster h2,
.expand-inner--jdi .expand-words--poster h2 {
  margin-bottom: 0.35rem;
}

/* === plan11: Care + Houdini HTML boards — St Mary’s readability parity === */
.expand-words--care,
.expand-words--jdi {
  font-family: Verdana, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  color: #1C2020;
}
.expand-words--care .ql-pillar,
.expand-words--jdi .ql-opt__card,
.expand-words--jdi .ql-adv__item,
.expand-words--care .ql-assess__card {
  background: #F8F9FB;
  border: 1px solid rgba(196, 202, 210, 0.9);
}
.expand-words--care .ql-pillar__title,
.expand-words--jdi .ql-opt__title,
.expand-words--jdi .ql-adv__title,
.expand-words--care .ql-rail__title {
  color: #1C2020;
  font-weight: 600;
}
.expand-words--care .ql-pillar__line,
.expand-words--jdi .ql-opt__line,
.expand-words--jdi .ql-adv__text,
.expand-words--care .ql-rail__note,
.expand-words--jdi .ql-rail__note {
  color: #5A6066;
}
.ql-jdi__intro {
  margin: 0 0 0.75rem;
  max-width: 38rem;
  font-size: 0.95rem;
  line-height: 1.55;
  color: #5A6066;
}
.expand-panel[data-expand="care-in-judgement"] .expand-inner,
.expand-panel[data-expand="houdini"] .expand-inner {
  padding-bottom: 5.5rem; /* sticky Back clearance */
}
@media (max-width: 719px) {
  .ql-pillars,
  .ql-opt,
  .ql-rail--4 {
    grid-template-columns: 1fr;
  }
  .ql-rail__conn {
    display: none;
  }
  .ql-care-hero,
  .ql-care-split,
  .ql-jdi-hero,
  .ql-split {
    grid-template-columns: 1fr;
  }
}

/* ===== glitch1 harden (2026-09-18) ===== */
.expand-layer[hidden],
.expand-layer[hidden] * {
  pointer-events: none !important;
}
.expand-layer[hidden] {
  visibility: hidden !important;
  opacity: 0 !important;
}
body:not(.expand-open) .expand-layer {
  pointer-events: none;
}
/* Sticky Back-only: never show Contact in the bottom bar */
.subnav-sticky a[href*="contact"],
.subnav-sticky .nav-contact,
.expand-backbar a[href*="contact"] {
  display: none !important;
}
/* Reduce hero / media flash while assets load */
.hero-cycle,
.landing-hero,
[data-hero-cycle] {
  background: #1C2020;
}
.hero-cycle video,
.hero-cycle img.hero-still,
.landing-hero-video,
.landing-hero-fallback {
  background: #1C2020;
}
img, video {
  max-width: 100%;
}
/* Stop layout jump on sticky show */
.subnav-sticky {
  transform: translateZ(0);
  backface-visibility: hidden;
  contain: layout style;
}


/* === site map spine (sitemap1) === */
.contact-shell {
  display: grid;
  gap: 1.5rem;
  align-items: start;
  width: 100%;
}
.site-spine {
  font-family: Verdana, Geneva, sans-serif;
  background: var(--white);
  border: 1px solid rgba(196, 202, 210, 0.7);
  border-radius: 0.4rem;
  padding: 1.1rem 1.15rem 1.15rem 1.05rem;
  position: relative;
}
.site-spine::before {
  content: "";
  position: absolute;
  left: 0.55rem;
  top: 1.15rem;
  bottom: 1.15rem;
  width: 2px;
  background: linear-gradient(180deg, var(--yellow) 0%, rgba(244, 184, 0, 0.35) 28%, rgba(196, 202, 210, 0.85) 100%);
  border-radius: 1px;
}
.site-spine__label {
  font-size: 0.62rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
  margin: 0 0 0.7rem 0.85rem;
}
.site-spine__list,
.site-spine__sub {
  list-style: none;
  margin: 0;
  padding: 0;
}
.site-spine__list {
  display: grid;
  gap: 0.35rem;
  margin-left: 0.85rem;
}
.site-spine__list > li {
  position: relative;
  padding-left: 0.15rem;
}
.site-spine__list > li > a,
.site-spine__list > li > span[aria-current="page"] {
  display: inline-block;
  font-size: 0.82rem;
  line-height: 1.35;
  color: var(--charcoal);
  font-weight: 550;
  border-bottom: 1px solid transparent;
  transition: border-color 0.15s ease, color 0.15s ease;
}
.site-spine__list > li > a:hover,
.site-spine__list > li > a:focus-visible {
  border-bottom-color: var(--yellow);
  outline: none;
}
.site-spine__list > li > span[aria-current="page"] {
  color: var(--muted);
  font-weight: 500;
  cursor: default;
}
.site-spine__sub {
  display: grid;
  gap: 0.22rem;
  margin: 0.35rem 0 0.15rem 0.85rem;
  padding-left: 0.65rem;
  border-left: 1px solid rgba(196, 202, 210, 0.75);
}
.site-spine__sub a {
  display: inline-block;
  font-size: 0.74rem;
  line-height: 1.35;
  color: var(--muted);
  border-bottom: 1px solid transparent;
  transition: border-color 0.15s ease, color 0.15s ease;
}
.site-spine__sub a:hover,
.site-spine__sub a:focus-visible {
  color: var(--charcoal);
  border-bottom-color: rgba(244, 184, 0, 0.7);
  outline: none;
}

.site-spine__sub .site-spine__sub {
  margin: 0.2rem 0 0.05rem 0.55rem;
  padding-left: 0.55rem;
  gap: 0.14rem;
  border-left-color: rgba(196, 202, 210, 0.55);
}
.site-spine__sub .site-spine__sub a {
  font-size: 0.68rem;
  line-height: 1.3;
}
.site-spine__sub > li > a {
  font-weight: 500;
  color: var(--charcoal);
}
.site-spine__sub .site-spine__sub a {
  font-weight: 400;
  color: var(--muted);
}
.site-spine__ext::after {
  content: " ↗";
  font-size: 0.65em;
  opacity: 0.7;
}
@media (min-width: 960px) {
  .contact-shell {
    grid-template-columns: minmax(0, 1fr) minmax(12rem, 15rem);
    gap: 1.35rem;
  }
  .site-spine {
    position: sticky;
    top: 5.5rem;
  }
}
@media (max-width: 959px) {
  .site-spine {
    max-width: 28rem;
  }
}

/* keep sticky Back clearance when shell present */
.page-body:has(.contact-shell) {
  padding-bottom: calc(7rem + env(safe-area-inset-bottom, 0px));
}
@media (max-width: 640px) {
  .page-body:has(.contact-shell) {
    padding-bottom: calc(9rem + env(safe-area-inset-bottom, 0px));
  }
}
