/* ===========================================================================
   Ruah Ranch — design-a (Opinionated Counsel, hipcamp) — BODY styles
   Scoped to [data-design="a"][data-oc]; keyframes oc-*-prefixed. Mounts under
   #design-mount below the injected AI hero. Motion: transform / opacity /
   clip-path / box-shadow / color / border-color only — never a layout prop.
   Windowed-center (max-width + margin-inline:auto) on every reading column.
   Parallax (--bl-py) + scroll-reveals are owned by body-life.js; this file
   only consumes them. script.js owns ONLY the stays selector + drawer + pointer.
   =========================================================================== */

/* ── Token contract — Opinionated Counsel reissued for a working ranch ─────── */
[data-design="a"][data-oc] {
  --oc-canvas:#F5F4F1; --oc-paper:#FFFFFF;
  --oc-ink:#171513; --oc-ink-2:#403B36; --oc-muted:#7A746C;
  --oc-rule:#1A1715; --oc-soft:#E4E0D8;
  --oc-stamp:#1A47B8; --oc-stamp-deep:#102E78; --oc-stamp-on:#FFFFFF;
  --oc-warn:#A8541C; --oc-warn-soft:#F4E7DA;
  --oc-pasture:#5C6B3E;            /* one natural accent — ranch green */

  --oc-font-display:"Söhne Breit","Inter Display",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
  --oc-font-body:"Söhne","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
  --oc-font-mono:"JetBrains Mono","IBM Plex Mono",ui-monospace,Menlo,monospace;

  --oc-t-mega:clamp(2.6rem,6.5vw,4.6rem);
  --oc-t-display:clamp(2.1rem,5vw,3.4rem);
  --oc-t-head:clamp(1.7rem,3.6vw,2.6rem);
  --oc-t-title:clamp(1.3rem,2.4vw,1.65rem);
  --oc-t-lead:clamp(1.12rem,1.6vw,1.3rem);
  --oc-t-body:clamp(1.0625rem,1.1vw,1.125rem);
  --oc-t-meta:0.8125rem;
  --oc-lh-body:1.62; --oc-lh-tight:1.04;

  --oc-hair:2px; --oc-tick:4px; --oc-bite:8px; --oc-gap:12px;
  --oc-stub:16px; --oc-block:24px; --oc-tile:32px; --oc-bay:48px;
  --oc-deck:80px; --oc-yard:128px;

  --oc-snap:120ms; --oc-stamp-dur:220ms; --oc-settle:360ms;
  --oc-ease-decide:cubic-bezier(.22,.61,.36,1);
  --oc-ease-stamp:cubic-bezier(.34,1.42,.64,1);
  --oc-ease-bite:cubic-bezier(.55,.06,.68,.19);

  --oc-r-sm:4px; --oc-r-md:8px; --oc-r-lg:12px; --oc-r-stamp:2px;
  --oc-elev-stamp:0 4px 0 0 var(--oc-rule);

  --oc-maxw:1280px;
  --oc-maxw-narrow:1080px;
  --oc-pad:clamp(20px,5vw,48px);

  /* body-life CTA-floor fallback tokens (no class-less anchor exists, belt+braces) */
  --bl-cta-ink:var(--oc-stamp-on);
  --bl-cta-bg:var(--oc-stamp);

  background:var(--oc-canvas);
  color:var(--oc-ink);
  font-family:var(--oc-font-body);
  font-size:var(--oc-t-body);
  line-height:var(--oc-lh-body);
  -webkit-font-smoothing:antialiased;
}

[data-design="a"][data-oc] * { box-sizing:border-box; }
[data-design="a"][data-oc] h2,
[data-design="a"][data-oc] h3 { margin:0; }
[data-design="a"][data-oc] p { margin:0; }

/* ── The windowed-center column — EVERY reading wrapper uses this ─────────── */
[data-design="a"][data-oc] .oc-place__inner,
[data-design="a"][data-oc] .oc-facts__inner,
[data-design="a"][data-oc] .oc-stays__inner,
[data-design="a"][data-oc] .oc-gallery__inner,
[data-design="a"][data-oc] .oc-nearby__inner,
[data-design="a"][data-oc] .oc-host__inner,
[data-design="a"][data-oc] .oc-close__inner {
  max-width:var(--oc-maxw);
  margin-left:auto; margin-right:auto;
  padding-inline:var(--oc-pad);
}
[data-design="a"][data-oc] .oc-host__inner { max-width:var(--oc-maxw-narrow); }

/* ── Meta line (mono kicker) ─────────────────────────────────────────────── */
[data-design="a"][data-oc] .oc-meta {
  font-family:var(--oc-font-mono); font-size:var(--oc-t-meta);
  letter-spacing:0.1em; text-transform:uppercase; color:var(--oc-muted);
}

/* ── Buttons (shared CTA grammar — press-into-shadow) ─────────────────────── */
[data-design="a"][data-oc] .oc-btn {
  display:inline-flex; align-items:center; gap:var(--oc-gap);
  font-family:var(--oc-font-display); font-weight:800;
  font-size:clamp(15px,1.5vw,18px); letter-spacing:-0.01em; line-height:1;
  padding:16px 26px; min-height:52px;
  border:var(--oc-hair) solid var(--oc-rule); border-radius:var(--oc-r-md);
  text-decoration:none; cursor:pointer;
  background:var(--oc-paper); color:var(--oc-ink);
  box-shadow:var(--oc-elev-stamp); transform:translateY(0);
  transition:transform var(--oc-snap) var(--oc-ease-decide),
             box-shadow var(--oc-snap) var(--oc-ease-decide),
             background var(--oc-snap) var(--oc-ease-decide),
             color var(--oc-snap) var(--oc-ease-decide);
}
[data-design="a"][data-oc] .oc-btn__ext { font-size:0.92em; transform:translateY(-1px); }
[data-design="a"][data-oc] .oc-btn--primary {
  background:var(--oc-stamp); color:var(--oc-stamp-on);
  animation:oc-cta-breath 4.6s var(--oc-ease-decide) infinite;
}
[data-design="a"][data-oc] .oc-btn--secondary {
  background:var(--oc-paper); color:var(--oc-ink);
}
@media (hover:hover) and (pointer:fine) {
  [data-design="a"][data-oc] .oc-btn:hover {
    transform:translateY(-2px); box-shadow:0 6px 0 0 var(--oc-rule);
    animation-play-state:paused;
  }
  [data-design="a"][data-oc] .oc-btn--primary:hover { background:var(--oc-stamp-deep); }
  [data-design="a"][data-oc] .oc-btn--secondary:hover { background:var(--oc-soft); }
  [data-design="a"][data-oc] .oc-btn:hover .oc-btn__ext { transform:translate(3px,-3px); }
}
[data-design="a"][data-oc] .oc-btn:focus-visible {
  outline:none; box-shadow:0 6px 0 0 var(--oc-rule), 0 0 0 3px rgba(26,71,184,0.34);
  transform:translateY(-2px); animation-play-state:paused;
}
[data-design="a"][data-oc] .oc-btn:active {
  transform:translateY(4px); box-shadow:0 0 0 0 var(--oc-rule);
  transition-timing-function:var(--oc-ease-bite);
}
@keyframes oc-cta-breath {
  0%,100% { box-shadow:var(--oc-elev-stamp), 0 0 0 0 rgba(26,71,184,0); }
  50%     { box-shadow:var(--oc-elev-stamp), 0 0 0 8px rgba(26,71,184,0.16); }
}

/* ── 1. Header ────────────────────────────────────────────────────────────── */
[data-design="a"][data-oc] .oc-header {
  position:sticky; top:0; z-index:20;
  background:var(--oc-canvas);
  border-bottom:var(--oc-hair) solid var(--oc-rule);
}
[data-design="a"][data-oc] .oc-header__bar {
  display:flex; align-items:center; justify-content:space-between;
  gap:var(--oc-stub);
  max-width:var(--oc-maxw); margin-left:auto; margin-right:auto;
  padding:var(--oc-stub) var(--oc-pad);
}
[data-design="a"][data-oc] .oc-logo { text-decoration:none; color:var(--oc-ink); }
[data-design="a"][data-oc] .oc-logo__mark {
  font-family:var(--oc-font-display); font-weight:800;
  font-size:clamp(20px,2.4vw,26px); letter-spacing:-0.015em; line-height:1;
}
[data-design="a"][data-oc] .oc-burger {
  appearance:none; background:transparent;
  border:var(--oc-hair) solid var(--oc-rule); border-radius:var(--oc-r-sm);
  padding:11px 13px; display:inline-flex; flex-direction:column; gap:4px;
  cursor:pointer; min-height:44px; min-width:44px; align-items:center; justify-content:center;
  transition:background var(--oc-snap) var(--oc-ease-decide),
             transform var(--oc-snap) var(--oc-ease-bite);
}
[data-design="a"][data-oc] .oc-burger__bar { display:block; width:22px; height:2px; background:var(--oc-ink); }
@media (hover:hover) and (pointer:fine) {
  [data-design="a"][data-oc] .oc-burger:hover { background:var(--oc-soft); }
}
[data-design="a"][data-oc] .oc-burger:active { transform:translateY(1px); }
[data-design="a"][data-oc] .oc-burger[aria-expanded="true"] { background:var(--oc-ink); border-color:var(--oc-ink); }
[data-design="a"][data-oc] .oc-burger[aria-expanded="true"] .oc-burger__bar { background:var(--oc-canvas); }

[data-design="a"][data-oc] .oc-scrubber {
  position:relative; height:2px; background:var(--oc-soft); overflow:hidden;
}
[data-design="a"][data-oc] .oc-scrubber__head {
  position:absolute; inset:0 auto 0 0; width:18%;
  background:linear-gradient(90deg,transparent 0%,var(--oc-ink) 22%,
             var(--oc-stamp) 60%,var(--oc-stamp) 78%,transparent 100%);
  animation:oc-scrub 24s cubic-bezier(.65,.05,.35,.95) infinite;
  will-change:transform;
}
@keyframes oc-scrub { 0% { transform:translateX(-30%);} 100% { transform:translateX(620%);} }

/* Drawer */
[data-design="a"][data-oc] .oc-drawer {
  position:fixed; inset:0; z-index:60; background:var(--oc-canvas);
  display:flex; flex-direction:column;
  transform:translateY(-100%);
  transition:transform var(--oc-settle) var(--oc-ease-decide);
}
[data-design="a"][data-oc] .oc-drawer[data-open] { transform:translateY(0); }
[data-design="a"][data-oc] .oc-drawer__bar {
  display:flex; justify-content:space-between; align-items:center;
  padding:var(--oc-stub) var(--oc-pad);
  border-bottom:var(--oc-hair) solid var(--oc-rule);
}
[data-design="a"][data-oc] .oc-drawer__brand {
  font-family:var(--oc-font-display); font-weight:800; font-size:22px; letter-spacing:-0.015em;
}
[data-design="a"][data-oc] .oc-drawer__close {
  background:transparent; border:0; font-size:38px; line-height:1; color:var(--oc-ink);
  cursor:pointer; padding:0 8px; min-height:44px; min-width:44px;
}
[data-design="a"][data-oc] .oc-drawer__nav {
  display:flex; flex-direction:column; gap:var(--oc-stub);
  padding:var(--oc-bay) var(--oc-pad);
  max-width:var(--oc-maxw); margin-left:auto; margin-right:auto; width:100%;
  overflow-y:auto;
}
[data-design="a"][data-oc] .oc-nav-link {
  position:relative; width:max-content; max-width:100%;
  font-family:var(--oc-font-display); font-weight:800;
  font-size:clamp(34px,7vw,54px); letter-spacing:-0.025em; line-height:1;
  color:var(--oc-ink); text-decoration:none; padding-bottom:6px;
}
[data-design="a"][data-oc] .oc-nav-link::after {
  content:""; position:absolute; left:0; bottom:0; height:4px; width:100%;
  background:var(--oc-stamp); transform:scaleX(0); transform-origin:left;
  transition:transform var(--oc-settle) var(--oc-ease-decide);
}
[data-design="a"][data-oc] .oc-nav-link:hover,
[data-design="a"][data-oc] .oc-nav-link:focus-visible { color:var(--oc-stamp); outline:none; }
[data-design="a"][data-oc] .oc-nav-link:focus-visible::after { transform:scaleX(1); }
@media (hover:hover) and (pointer:fine) {
  [data-design="a"][data-oc] .oc-nav-link:hover::after { transform:scaleX(1); }
}
[data-design="a"][data-oc] .oc-drawer__book { margin-top:var(--oc-stub); }

/* ── 2. Place story ───────────────────────────────────────────────────────── */
[data-design="a"][data-oc] .oc-place { padding-block:var(--oc-deck); border-bottom:var(--oc-hair) solid var(--oc-rule); }
[data-design="a"][data-oc] .oc-place__inner {
  display:grid; grid-template-columns:1.05fr 1fr; gap:var(--oc-bay); align-items:center;
}
[data-design="a"][data-oc] .oc-place__title {
  font-family:var(--oc-font-display); font-weight:800;
  font-size:var(--oc-t-display); letter-spacing:-0.025em; line-height:1.04;
  margin:var(--oc-stub) 0 var(--oc-block); max-width:18ch; color:var(--oc-ink);
}
[data-design="a"][data-oc] .oc-place__body { display:flex; flex-direction:column; gap:var(--oc-stub); max-width:62ch; }
[data-design="a"][data-oc] .oc-place__body p { color:var(--oc-ink-2); }
[data-design="a"][data-oc] .oc-place__cta { margin-top:var(--oc-block); }
[data-design="a"][data-oc] .oc-place__feature {
  margin:0; border:var(--oc-hair) solid var(--oc-rule); border-radius:var(--oc-r-lg);
  overflow:hidden; background:var(--oc-soft);
  box-shadow:var(--oc-elev-stamp);
}
[data-design="a"][data-oc] .oc-place__feature img {
  display:block; width:100%; height:clamp(320px,46vh,520px); object-fit:cover;
}
[data-design="a"][data-oc] .oc-place__cap {
  display:block; padding:var(--oc-gap) var(--oc-stub);
  background:var(--oc-paper); border-top:var(--oc-hair) solid var(--oc-rule);
  color:var(--oc-muted);
}

/* ── 3. Key facts ─────────────────────────────────────────────────────────── */
[data-design="a"][data-oc] .oc-facts { padding-block:var(--oc-deck); background:var(--oc-paper); border-bottom:var(--oc-hair) solid var(--oc-rule); }
[data-design="a"][data-oc] .oc-facts__grid {
  list-style:none; margin:0 0 var(--oc-bay); padding:0;
  display:grid; grid-template-columns:repeat(4,1fr); gap:var(--oc-stub);
}
[data-design="a"][data-oc] .oc-fact {
  display:flex; flex-direction:column; gap:var(--oc-bite);
  padding:var(--oc-tile); background:var(--oc-canvas);
  border:var(--oc-hair) solid var(--oc-rule); border-radius:var(--oc-r-lg); min-width:0;
}
[data-design="a"][data-oc] .oc-fact__n {
  font-family:var(--oc-font-display); font-weight:800;
  font-size:clamp(44px,5.4vw,68px); letter-spacing:-0.035em; line-height:0.92; color:var(--oc-ink);
}
[data-design="a"][data-oc] .oc-fact__u { font-size:0.42em; letter-spacing:0; color:var(--oc-stamp); }
[data-design="a"][data-oc] .oc-fact__l { font-family:var(--oc-font-mono); font-size:var(--oc-t-meta); color:var(--oc-muted); line-height:1.4; }
[data-design="a"][data-oc] .oc-facts__quote {
  margin:0; padding:var(--oc-tile); max-width:64ch;
  background:var(--oc-stamp); color:var(--oc-stamp-on);
  border:var(--oc-hair) solid var(--oc-rule); border-radius:var(--oc-r-lg);
  font-family:var(--oc-font-display); font-weight:700;
  font-size:var(--oc-t-title); line-height:1.32; letter-spacing:-0.01em;
}
[data-design="a"][data-oc] .oc-facts__quote cite {
  display:block; margin-top:var(--oc-stub);
  font-family:var(--oc-font-mono); font-size:var(--oc-t-meta); font-style:normal;
  font-weight:500; letter-spacing:0.06em; color:rgba(255,255,255,0.82);
}

/* ── Pointer (shadow-creep — not a button) ────────────────────────────────── */
[data-design="a"][data-oc] .oc-pointer {
  display:flex; align-items:center; gap:var(--oc-stub); cursor:pointer;
  max-width:var(--oc-maxw); margin-left:auto; margin-right:auto;
  padding:var(--oc-bay) var(--oc-pad);
}
[data-design="a"][data-oc] .oc-pointer__rule {
  flex:1; height:2px; background:var(--oc-soft); position:relative; overflow:hidden; border-radius:1px;
}
[data-design="a"][data-oc] .oc-pointer__rule::after {
  content:""; position:absolute; inset:0; transform-origin:left; transform:scaleX(0.18);
  background:var(--oc-stamp);
  animation:oc-creep 9s var(--oc-ease-decide) infinite;
}
[data-design="a"][data-oc] .oc-pointer__label {
  font-family:var(--oc-font-mono); font-size:var(--oc-t-meta);
  letter-spacing:0.14em; text-transform:uppercase; color:var(--oc-muted);
}
[data-design="a"][data-oc] .oc-pointer__chev {
  font-size:20px; color:var(--oc-stamp); animation:oc-chev 4.4s ease-in-out infinite;
}
@keyframes oc-creep { 0% { transform:scaleX(0.12);} 60% { transform:scaleX(1);} 100% { transform:scaleX(1); opacity:0.25; } }
@keyframes oc-chev { 0%,100% { transform:translateY(0); opacity:0.55; } 50% { transform:translateY(4px); opacity:1; } }

/* ── 4. Stays selector (INT-1) ────────────────────────────────────────────── */
[data-design="a"][data-oc] .oc-stays { padding-block:var(--oc-deck); border-bottom:var(--oc-hair) solid var(--oc-rule); }
[data-design="a"][data-oc] .oc-stays__title {
  font-family:var(--oc-font-display); font-weight:800;
  font-size:var(--oc-t-head); letter-spacing:-0.025em; line-height:1.04;
  margin:var(--oc-bite) 0 var(--oc-bay); color:var(--oc-ink);
}
[data-design="a"][data-oc] .oc-stays__grid {
  display:grid; grid-template-columns:minmax(280px,360px) 1fr; gap:var(--oc-bay); align-items:start;
}
[data-design="a"][data-oc] .oc-stays__list { display:flex; flex-direction:column; gap:var(--oc-gap); }
[data-design="a"][data-oc] .oc-site {
  appearance:none; text-align:left; cursor:pointer;
  display:flex; flex-direction:column; gap:var(--oc-tick);
  padding:var(--oc-block); min-height:44px;
  background:var(--oc-paper); color:var(--oc-ink);
  border:var(--oc-hair) solid var(--oc-rule); border-radius:var(--oc-r-md);
  position:relative;
  transition:transform var(--oc-stamp-dur) var(--oc-ease-stamp),
             background var(--oc-stamp-dur) var(--oc-ease-stamp),
             color var(--oc-stamp-dur) var(--oc-ease-stamp),
             border-color var(--oc-stamp-dur) var(--oc-ease-stamp);
}
[data-design="a"][data-oc] .oc-site__name {
  font-family:var(--oc-font-display); font-weight:800; font-size:var(--oc-t-title); letter-spacing:-0.01em;
}
[data-design="a"][data-oc] .oc-site__kind { font-family:var(--oc-font-mono); font-size:var(--oc-t-meta); letter-spacing:0.04em; color:var(--oc-muted); }
[data-design="a"][data-oc] .oc-site::after {
  content:"✓"; position:absolute; top:12px; right:14px;
  font-family:var(--oc-font-display); font-weight:800; font-size:18px;
  color:var(--oc-stamp-on); opacity:0; transform:scale(0.4);
  transition:opacity var(--oc-stamp-dur) var(--oc-ease-stamp), transform var(--oc-stamp-dur) var(--oc-ease-stamp);
}
@media (hover:hover) and (pointer:fine) {
  [data-design="a"][data-oc] .oc-site:hover { transform:translateY(-2px); background:var(--oc-soft); }
}
[data-design="a"][data-oc] .oc-site:focus-visible { outline:none; box-shadow:0 0 0 3px rgba(26,71,184,0.34); }
[data-design="a"][data-oc] .oc-site[aria-checked="true"] {
  background:var(--oc-stamp); color:var(--oc-stamp-on); border-color:var(--oc-stamp); transform:translateY(-1px);
}
[data-design="a"][data-oc] .oc-site[aria-checked="true"] .oc-site__kind { color:rgba(255,255,255,0.8); }
[data-design="a"][data-oc] .oc-site[aria-checked="true"]::after { opacity:1; transform:scale(1); }

[data-design="a"][data-oc] .oc-stays__preview {
  border:var(--oc-hair) solid var(--oc-rule); border-radius:var(--oc-r-lg);
  overflow:hidden; background:var(--oc-paper); box-shadow:var(--oc-elev-stamp);
}
[data-design="a"][data-oc] .oc-stays__photo {
  height:clamp(240px,34vh,360px); background:var(--oc-soft);
  background-size:cover; background-position:center;
  border-bottom:var(--oc-hair) solid var(--oc-rule);
  transition:opacity var(--oc-settle) var(--oc-ease-decide);
}
[data-design="a"][data-oc] .oc-stays__panel {
  display:flex; flex-direction:column; gap:var(--oc-gap);
  padding:var(--oc-tile);
  transition:opacity var(--oc-stamp-dur) var(--oc-ease-decide), transform var(--oc-stamp-dur) var(--oc-ease-decide);
}
[data-design="a"][data-oc] .oc-stays__panel[data-swap] { opacity:0; transform:translateY(8px); }
[data-design="a"][data-oc] .oc-stays__name {
  font-family:var(--oc-font-display); font-weight:800; font-size:var(--oc-t-head);
  letter-spacing:-0.02em; line-height:1.05; color:var(--oc-ink);
}
[data-design="a"][data-oc] .oc-stays__line { font-family:var(--oc-font-mono); font-size:var(--oc-t-meta); letter-spacing:0.04em; color:var(--oc-muted); }
[data-design="a"][data-oc] .oc-stays__desc { color:var(--oc-ink-2); max-width:60ch; }
[data-design="a"][data-oc] .oc-stays__incl {
  list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:var(--oc-bite);
}
[data-design="a"][data-oc] .oc-stays__incl li {
  font-family:var(--oc-font-mono); font-size:var(--oc-t-meta); letter-spacing:0.03em;
  padding:6px 12px; background:var(--oc-canvas);
  border:var(--oc-hair) solid var(--oc-soft); border-radius:var(--oc-r-stamp); color:var(--oc-ink-2);
}
[data-design="a"][data-oc] .oc-stays__cta { align-self:flex-start; margin-top:var(--oc-bite); }

/* ── 5. Gallery ───────────────────────────────────────────────────────────── */
[data-design="a"][data-oc] .oc-gallery { padding-block:var(--oc-deck); background:var(--oc-paper); border-bottom:var(--oc-hair) solid var(--oc-rule); }
[data-design="a"][data-oc] .oc-gallery__title {
  font-family:var(--oc-font-display); font-weight:800; font-size:var(--oc-t-head);
  letter-spacing:-0.025em; line-height:1.04; margin:var(--oc-bite) 0 var(--oc-bay); color:var(--oc-ink);
}
[data-design="a"][data-oc] .oc-gallery__grid {
  display:grid; grid-template-columns:repeat(2,1fr); gap:var(--oc-stub);
}
[data-design="a"][data-oc] .oc-gallery__frame {
  margin:0; overflow:hidden; border:var(--oc-hair) solid var(--oc-rule); border-radius:var(--oc-r-lg);
  background:var(--oc-soft);
}
[data-design="a"][data-oc] .oc-gallery__frame--wide { grid-column:1 / -1; }
[data-design="a"][data-oc] .oc-gallery__frame img {
  display:block; width:100%; height:100%; object-fit:cover;
  aspect-ratio:4 / 3; transition:transform 450ms var(--oc-ease-decide);
}
[data-design="a"][data-oc] .oc-gallery__frame--wide img { aspect-ratio:21 / 9; }
@media (hover:hover) and (pointer:fine) {
  [data-design="a"][data-oc] .oc-gallery__frame:hover img { transform:scale(1.04); }
}

/* ── 6. Nearby (docket folio) ─────────────────────────────────────────────── */
[data-design="a"][data-oc] .oc-nearby { padding-block:var(--oc-deck); border-bottom:var(--oc-hair) solid var(--oc-rule); }
[data-design="a"][data-oc] .oc-nearby__title {
  font-family:var(--oc-font-display); font-weight:800; font-size:var(--oc-t-head);
  letter-spacing:-0.025em; line-height:1.04; margin:var(--oc-bite) 0 var(--oc-bay); color:var(--oc-ink);
}
[data-design="a"][data-oc] .oc-nearby__list { list-style:none; margin:0; padding:0; }
[data-design="a"][data-oc] .oc-near {
  display:grid; grid-template-columns:72px 1fr auto; align-items:baseline; gap:var(--oc-bay);
  padding:var(--oc-tile) 0; border-bottom:var(--oc-hair) solid var(--oc-rule);
}
[data-design="a"][data-oc] .oc-near:first-child { border-top:var(--oc-hair) solid var(--oc-rule); }
[data-design="a"][data-oc] .oc-near__num {
  font-family:var(--oc-font-display); font-weight:800; font-size:30px; letter-spacing:-0.02em;
  color:var(--oc-stamp); line-height:1;
}
[data-design="a"][data-oc] .oc-near__name {
  font-family:var(--oc-font-display); font-weight:800; font-size:var(--oc-t-title);
  letter-spacing:-0.01em; color:var(--oc-ink); margin-bottom:var(--oc-tick);
}
[data-design="a"][data-oc] .oc-near__note { color:var(--oc-ink-2); max-width:58ch; }
[data-design="a"][data-oc] .oc-near__meta {
  font-family:var(--oc-font-mono); font-size:var(--oc-t-meta); letter-spacing:0.06em;
  text-transform:uppercase; color:var(--oc-muted); white-space:nowrap;
}

/* ── 7. Host ──────────────────────────────────────────────────────────────── */
[data-design="a"][data-oc] .oc-host { padding-block:var(--oc-deck); background:var(--oc-paper); border-bottom:var(--oc-hair) solid var(--oc-rule); }
[data-design="a"][data-oc] .oc-host__title {
  font-family:var(--oc-font-display); font-weight:800; font-size:var(--oc-t-head);
  letter-spacing:-0.025em; line-height:1.04; margin:var(--oc-bite) 0 var(--oc-block); color:var(--oc-ink);
}
[data-design="a"][data-oc] .oc-host__body { font-size:var(--oc-t-lead); line-height:1.55; color:var(--oc-ink-2); max-width:64ch; }

/* ── 8. Close ─────────────────────────────────────────────────────────────── */
[data-design="a"][data-oc] .oc-close { padding-block:var(--oc-deck); background:var(--oc-canvas); }
[data-design="a"][data-oc] .oc-close__inner { text-align:left; }
[data-design="a"][data-oc] .oc-close__title {
  font-family:var(--oc-font-display); font-weight:800; font-size:var(--oc-t-mega);
  letter-spacing:-0.03em; line-height:1.0; margin:var(--oc-stub) 0 var(--oc-block); color:var(--oc-ink); max-width:16ch;
}
[data-design="a"][data-oc] .oc-close__sub { font-size:var(--oc-t-lead); color:var(--oc-ink-2); max-width:56ch; margin-bottom:var(--oc-bay); }
[data-design="a"][data-oc] .oc-colophon {
  display:flex; flex-wrap:wrap; gap:var(--oc-bite) var(--oc-bay);
  max-width:var(--oc-maxw); margin:var(--oc-deck) auto 0; padding:var(--oc-block) var(--oc-pad) 0;
  border-top:var(--oc-hair) solid var(--oc-rule);
  font-family:var(--oc-font-mono); font-size:var(--oc-t-meta); letter-spacing:0.05em; color:var(--oc-muted);
}

/* ── Parallax consume (body-life.js sets --bl-py on the feature img) ───────── */
[data-design="a"][data-oc] .oc-place__feature img {
  transform:translateY(var(--bl-py,0px)) scale(1.08);
  will-change:transform;
}

/* ── Reduced motion ───────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  [data-design="a"][data-oc] .oc-btn,
  [data-design="a"][data-oc] .oc-scrubber__head,
  [data-design="a"][data-oc] .oc-pointer__rule::after,
  [data-design="a"][data-oc] .oc-pointer__chev { animation:none; }
  [data-design="a"][data-oc] .oc-drawer { transition:none; }
  [data-design="a"][data-oc] .oc-place__feature img { transform:none; }
  [data-design="a"][data-oc] .oc-gallery__frame img,
  [data-design="a"][data-oc] .oc-site,
  [data-design="a"][data-oc] .oc-stays__panel { transition:none; }
  [data-design="a"][data-oc] .oc-pointer__rule::after { transform:scaleX(0.6); }
}

/* ── Responsive ───────────────────────────────────────────────────────────── */
@media (max-width:980px) {
  [data-design="a"][data-oc] .oc-place__inner { grid-template-columns:1fr; gap:var(--oc-tile); }
  [data-design="a"][data-oc] .oc-stays__grid { grid-template-columns:1fr; }
  [data-design="a"][data-oc] .oc-facts__grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:600px) {
  [data-design="a"][data-oc] .oc-gallery__grid { grid-template-columns:1fr; }
  [data-design="a"][data-oc] .oc-facts__grid { grid-template-columns:1fr; }
  [data-design="a"][data-oc] .oc-near { grid-template-columns:48px 1fr; row-gap:var(--oc-bite); }
  [data-design="a"][data-oc] .oc-near__meta { grid-column:1 / -1; }
  [data-design="a"][data-oc] .oc-header__bar { padding:12px 18px; }
}

/* ── Mobile no-h-scroll floor (contract-mandated, appended at bottom) ──────── */
[data-design="a"].dq-design,[data-design="a"] .dq-design{max-width:100%;overflow-x:clip;}
[data-design="a"].dq-design *{min-width:0;}
[data-design="a"].dq-design img{max-width:100%;height:auto;}

/* Phase-3.4 hero visibility floor (forge_assemble) */
[data-design="a"] [data-mf-role="hero"] :is(h1,h2,p,.headline,.subtitle,.proof,[class*="headline"],[class*="subtitle"],[class*="proof"]),
[data-design="a"] [data-mf-role="cta"] { opacity: 1 !important; }
