/* royal-heart-hill-cottage-grove design-a · figma-canvas-counsel adapted for hipcamp
   All rules scoped to [data-design="a"].dq-design per hipcamp body-only contract.
   Keyframes prefixed rhh- (body) or fcc- (design system).
   PERF-6: header is sticky — backdrop-filter:blur replaced with solid bg (no blur on fixed/sticky).
*/

/* ─── Design tokens (figma-canvas-counsel palette) ───────────────────────── */
[data-design="a"] {
  --fcc-canvas:        #F5F5F7;
  --fcc-paper:         #FFFFFF;
  --fcc-ink:           #0A0A0F;
  --fcc-ink-2:         #3A3A44;
  --fcc-muted:         #6E6E78;
  --fcc-border:        #E4E4E9;
  --fcc-border-strong: #0A0A0F;
  --fcc-accent:        #0D99FF;
  --fcc-accent-soft:   #E5F4FF;
  --fcc-coral:         #F24E1E;
  --fcc-success:       #1ABC9C;
  --fcc-warn:          #F5A623;

  /* hipcamp-specific tones */
  --rhh-moss:          #3D6B4F;
  --rhh-bark:          #7A5C3A;
  --rhh-sky-mist:      #C8DDE8;

  /* typography */
  --fcc-font-display:  'Inter', -apple-system, system-ui, sans-serif;
  --fcc-font-body:     'Inter', -apple-system, system-ui, sans-serif;
  --fcc-font-mono:     'JetBrains Mono', 'IBM Plex Mono', ui-monospace, Menlo, monospace;

  /* spacing */
  --fcc-rhythm-section: 96px;
  --fcc-gutter-frame:   24px;

  /* motion */
  --fcc-dur-snap:    120ms;
  --fcc-dur-settle:  240ms;
  --fcc-dur-zoom:    420ms;
  --fcc-dur-drift:   24s;
  --fcc-dur-grid:    32s;
  --fcc-ease-snap:   cubic-bezier(0.2, 0.9, 0.15, 1);
  --fcc-ease-settle: cubic-bezier(0.22, 1, 0.36, 1);
  --fcc-ease-drift:  cubic-bezier(0.45, 0.05, 0.55, 0.95);

  /* radius */
  --fcc-r-frame: 8px;
  --fcc-r-pill:  6px;

  background: var(--fcc-canvas);
  color: var(--fcc-ink);
  font-family: var(--fcc-font-body);
  font-size: 17px;
  line-height: 1.6;
}

/* ─── Centering wrapper (windowed-center §13) ─────────────────────────────── */
[data-design="a"] .rhh-wrap {
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: clamp(20px, 5vw, 48px);
}

/* ─── Typography utilities ───────────────────────────────────────────────── */
[data-design="a"] .fcc-mono {
  font-family: var(--fcc-font-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--fcc-muted);
  font-variant-numeric: tabular-nums;
}

[data-design="a"] .rhh-eyebrow {
  display: block;
  margin-bottom: 12px;
}

[data-design="a"] .rhh-display {
  font-family: var(--fcc-font-display);
  font-size: clamp(28px, 4vw, 48px);
  font-weight: 600;
  letter-spacing: -0.022em;
  line-height: 1.05;
  margin: 0 0 24px;
  color: var(--fcc-ink);
}

[data-design="a"] .rhh-body {
  font-size: clamp(16px, 1.6vw, 18px);
  line-height: 1.65;
  color: var(--fcc-ink-2);
  max-width: 65ch;
  margin: 0 0 20px;
}

[data-design="a"] .rhh-body-sm {
  font-size: 15px;
  line-height: 1.6;
  color: var(--fcc-muted);
  margin: 0;
}

/* ─── Scroll-reveal animation ────────────────────────────────────────────── */
[data-design="a"] .rhh-reveal {
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity 560ms var(--fcc-ease-settle),
    transform 560ms var(--fcc-ease-settle);
}

[data-design="a"] .rhh-reveal.is-visible {
  opacity: 1;
  transform: none;
}

[data-design="a"] .rhh-reveal[data-delay="1"] { transition-delay: 80ms; }
[data-design="a"] .rhh-reveal[data-delay="2"] { transition-delay: 160ms; }
[data-design="a"] .rhh-reveal[data-delay="3"] { transition-delay: 240ms; }

@media (prefers-reduced-motion: reduce) {
  [data-design="a"] .rhh-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* ─── HEADER (Element 1 — sticky; PERF-6: solid bg, NO backdrop-filter:blur) ─ */
[data-design="a"] .fcc-header {
  position: sticky;
  top: 0;
  z-index: 40;
  /* PERF-6 FIX: solid translucent bg instead of backdrop-filter:blur on sticky */
  background: color-mix(in oklab, var(--fcc-canvas) 96%, transparent);
  border-bottom: 1px solid var(--fcc-border);
}

[data-design="a"] .fcc-header__grid {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(to right,  var(--fcc-border) 1px, transparent 1px),
    linear-gradient(to bottom, var(--fcc-border) 1px, transparent 1px);
  background-size: 32px 32px;
  opacity: 0.16;
  animation: fcc-grid-breath 32s ease-in-out infinite;
}

[data-design="a"] .fcc-header__bar {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 56px;
  padding: 0 clamp(16px, 4vw, 32px);
  max-width: 1280px;
  margin-inline: auto;
}

[data-design="a"] .fcc-logo {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--fcc-ink);
  text-decoration: none;
  font-family: var(--fcc-font-display);
  font-weight: 600;
  font-size: 15px;
  letter-spacing: -0.01em;
}

[data-design="a"] .fcc-logo__dot {
  width: 10px;
  height: 10px;
  border-radius: 9999px;
  background: var(--rhh-moss);
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--rhh-moss) 20%, transparent);
}

[data-design="a"] .fcc-burger {
  width: 36px;
  height: 36px;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  background: transparent;
  border: 1px solid var(--fcc-border);
  border-radius: 6px;
  cursor: pointer;
  transition: border-color var(--fcc-dur-snap) var(--fcc-ease-snap),
              background-color var(--fcc-dur-snap) var(--fcc-ease-snap);
}

@media (hover: hover) and (pointer: fine) {
  [data-design="a"] .fcc-burger:hover { border-color: var(--fcc-ink); }
}

[data-design="a"] .fcc-burger:focus-visible {
  outline: 2px solid var(--fcc-accent);
  outline-offset: 2px;
}

[data-design="a"] .fcc-burger__line {
  width: 16px;
  height: 1.5px;
  background: var(--fcc-ink);
  border-radius: 1px;
}

/* Drawer (position:fixed — scrim has backdrop-filter:blur(8px) which is fine:
   scrim is over static body content, not over the animating hero) */
[data-design="a"] .fcc-drawer {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 50;
}

[data-design="a"] .fcc-drawer[data-open="true"] { pointer-events: auto; }

[data-design="a"] .fcc-drawer__scrim {
  position: absolute;
  inset: 0;
  background: rgba(10,10,15,.32);
  backdrop-filter: blur(8px); /* motion-exception: scrim is over static body, not the animating hero */
  opacity: 0;
  transition: opacity var(--fcc-dur-settle) var(--fcc-ease-settle);
}

[data-design="a"] .fcc-drawer[data-open="true"] .fcc-drawer__scrim { opacity: 1; }

[data-design="a"] .fcc-drawer__panel {
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
  width: min(360px, 92vw);
  background: var(--fcc-paper);
  border-left: 1px solid var(--fcc-border);
  transform: translateX(100%);
  transition: transform var(--fcc-dur-settle) var(--fcc-ease-settle);
  display: flex;
  flex-direction: column;
}

[data-design="a"] .fcc-drawer[data-open="true"] .fcc-drawer__panel {
  transform: translateX(0);
}

[data-design="a"] .fcc-drawer__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 24px;
  border-bottom: 1px solid var(--fcc-border);
}

[data-design="a"] .fcc-drawer__x {
  width: 28px;
  height: 28px;
  border: 1px solid var(--fcc-border);
  border-radius: 6px;
  background: transparent;
  color: var(--fcc-ink);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
}

[data-design="a"] .fcc-drawer__items {
  display: flex;
  flex-direction: column;
  padding: 16px 12px;
}

[data-design="a"] .fcc-drawer__items a,
[data-design="a"] .fcc-drawer__nav-link {
  position: relative;
  padding: 12px 16px;
  color: var(--fcc-ink);
  text-decoration: none;
  font-size: 16px;
  border-radius: 6px;
  transition: background-color var(--fcc-dur-snap) var(--fcc-ease-snap);
  min-height: 44px;
  display: flex;
  align-items: center;
}

[data-design="a"] .fcc-drawer__items a:hover,
[data-design="a"] .fcc-drawer__nav-link:hover { background: var(--fcc-accent-soft); }

[data-design="a"] .fcc-drawer__book {
  margin-top: 8px;
  background: var(--fcc-accent) !important;
  color: #fff !important;
  font-weight: 600;
  border-radius: 6px;
}

@keyframes fcc-grid-breath {
  0%, 100% { opacity: 0.16; }
  50%       { opacity: 0.32; }
}

@media (prefers-reduced-motion: reduce) {
  [data-design="a"] .fcc-header__grid { animation: none; opacity: 0.22; }
  [data-design="a"] .fcc-drawer__scrim,
  [data-design="a"] .fcc-drawer__panel { transition: none; }
}

@media (max-width: 560px) {
  [data-design="a"] .fcc-header__bar { height: 52px; }
  [data-design="a"] .fcc-header__grid { background-size: 24px 24px; }
}

/* ─── CTA button (Element 2 — animated breath) ───────────────────────────── */
[data-design="a"] .fcc-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 13px 22px;
  border-radius: var(--fcc-r-pill);
  background: var(--fcc-accent);
  color: #fff;
  text-decoration: none;
  font-family: var(--fcc-font-display);
  font-weight: 500;
  font-size: 15px;
  letter-spacing: -0.005em;
  border: 1px solid color-mix(in oklab, var(--fcc-accent) 70%, var(--fcc-ink) 30%);
  position: relative;
  isolation: isolate;
  min-height: 44px;
  box-shadow: 0 0 0 0 color-mix(in oklab, var(--fcc-accent) 45%, transparent);
  animation: fcc-cta-breath 4400ms ease-in-out infinite;
  transition: transform var(--fcc-dur-snap) var(--fcc-ease-snap),
              background-color var(--fcc-dur-snap) var(--fcc-ease-snap);
}

[data-design="a"] .fcc-cta::before {
  content: "";
  position: absolute;
  inset: 1px;
  border-radius: calc(var(--fcc-r-pill) - 1px);
  border-top: 1px solid rgba(255,255,255,.28);
  pointer-events: none;
}

@media (hover: hover) and (pointer: fine) {
  [data-design="a"] .fcc-cta:hover {
    background: color-mix(in oklab, var(--fcc-accent) 85%, var(--fcc-ink) 15%);
  }
  [data-design="a"] .fcc-cta:hover .fcc-cta__arrow {
    transform: translateX(4px);
  }
}

[data-design="a"] .fcc-cta:active { transform: translateY(1px); }

[data-design="a"] .fcc-cta:focus-visible {
  outline: 2px solid var(--fcc-accent);
  outline-offset: 3px;
}

[data-design="a"] .fcc-cta__arrow {
  display: inline-flex;
  transition: transform var(--fcc-dur-snap) var(--fcc-ease-snap);
}

[data-design="a"] .rhh-cta--lg {
  padding: 16px 28px;
  font-size: 17px;
}

@keyframes fcc-cta-breath {
  0%, 100% { box-shadow: 0 0 0 0   color-mix(in oklab, var(--fcc-accent) 45%, transparent); }
  50%       { box-shadow: 0 0 0 12px color-mix(in oklab, var(--fcc-accent) 0%, transparent); }
}

@media (prefers-reduced-motion: reduce) {
  [data-design="a"] .fcc-cta { animation: none; }
  [data-design="a"] .fcc-cta:hover .fcc-cta__arrow { transform: none; }
}

/* ─── PLACE STORY ────────────────────────────────────────────────────────── */
[data-design="a"] .rhh-place-story {
  padding: var(--fcc-rhythm-section) 0;
  background: var(--fcc-canvas);
}

[data-design="a"] .rhh-place-story .rhh-wrap {
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: clamp(20px, 5vw, 48px);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: start;
}

[data-design="a"] .rhh-place-story__text {
  padding-top: 16px;
}

/* data-bl-feature wrapper — body-life.js animates --bl-py on scroll */
[data-design="a"] .rhh-place-story__photo {
  position: relative;
  border-radius: var(--fcc-r-frame);
  overflow: hidden;
  border: 1px solid var(--fcc-border);
}

[data-design="a"] .rhh-place-story__photo[data-bl-feature] {
  will-change: transform;
}

[data-design="a"] .rhh-feature-img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}

[data-design="a"] .rhh-feature-caption {
  padding: 12px 16px;
  border-top: 1px solid var(--fcc-border);
  background: var(--fcc-paper);
}

@media (max-width: 900px) {
  [data-design="a"] .rhh-place-story .rhh-wrap {
    grid-template-columns: 1fr;
  }
}

/* ─── KEY FACTS GRID ─────────────────────────────────────────────────────── */
[data-design="a"] .rhh-facts {
  padding: 0 0 var(--fcc-rhythm-section);
  background: var(--fcc-canvas);
}

[data-design="a"] .rhh-facts .rhh-wrap {
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: clamp(20px, 5vw, 48px);
}

[data-design="a"] .rhh-facts__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--fcc-border);
  border-radius: var(--fcc-r-frame);
  overflow: hidden;
  border: 1px solid var(--fcc-border);
}

[data-design="a"] .rhh-fact {
  background: var(--fcc-paper);
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

[data-design="a"] .rhh-fact__label {
  display: block;
}

[data-design="a"] .rhh-fact__value {
  font-size: 18px;
  font-weight: 600;
  color: var(--fcc-ink);
  letter-spacing: -0.01em;
}

[data-design="a"] .rhh-fact__sub {
  font-size: 13px;
  line-height: 1.5;
  color: var(--fcc-muted);
}

@media (max-width: 900px) {
  [data-design="a"] .rhh-facts__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 560px) {
  [data-design="a"] .rhh-facts__grid { grid-template-columns: 1fr; }
}

/* ─── STAYS SELECTOR (INT-1) ─────────────────────────────────────────────── */
[data-design="a"] .rhh-stays {
  padding: var(--fcc-rhythm-section) 0;
  background: var(--fcc-canvas);
}

[data-design="a"] .rhh-stays .rhh-wrap {
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: clamp(20px, 5vw, 48px);
}

[data-design="a"] .rhh-stays__head {
  margin-bottom: 32px;
}

[data-design="a"] .rhh-stays__tabs {
  display: flex;
  gap: 1px;
  background: var(--fcc-border);
  border: 1px solid var(--fcc-border);
  border-radius: var(--fcc-r-frame) var(--fcc-r-frame) 0 0;
  overflow: hidden;
}

[data-design="a"] .rhh-stays__tab {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  padding: 16px 20px;
  background: var(--fcc-paper);
  border: none;
  cursor: pointer;
  text-align: left;
  min-height: 44px;
  transition: background-color var(--fcc-dur-snap) var(--fcc-ease-snap);
}

[data-design="a"] .rhh-stays__tab.is-active {
  background: var(--fcc-accent-soft);
  box-shadow: inset 0 -2px 0 var(--fcc-accent);
}

@media (hover: hover) and (pointer: fine) {
  [data-design="a"] .rhh-stays__tab:not(.is-active):hover {
    background: color-mix(in oklab, var(--fcc-canvas) 60%, var(--fcc-paper) 40%);
  }
}

[data-design="a"] .rhh-stays__tab:focus-visible {
  outline: 2px solid var(--fcc-accent);
  outline-offset: -2px;
}

[data-design="a"] .rhh-stays__tab-name {
  font-size: 16px;
  font-weight: 600;
  color: var(--fcc-ink);
  letter-spacing: -0.01em;
}

[data-design="a"] .rhh-stays__panels {
  border: 1px solid var(--fcc-border);
  border-top: none;
  border-radius: 0 0 var(--fcc-r-frame) var(--fcc-r-frame);
  background: var(--fcc-paper);
  overflow: hidden;
}

[data-design="a"] .rhh-stays__panel {
  display: none;
}

[data-design="a"] .rhh-stays__panel.is-active {
  display: block;
}

[data-design="a"] .rhh-stays__panel-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
}

[data-design="a"] .rhh-stays__panel-photo {
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

[data-design="a"] .rhh-stays__panel-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 560ms var(--fcc-ease-settle);
}

@media (hover: hover) and (pointer: fine) {
  [data-design="a"] .rhh-stays__panel-photo img:hover {
    transform: scale(1.02);
  }
}

[data-design="a"] .rhh-stays__panel-copy {
  padding: clamp(24px, 4vw, 40px);
  display: flex;
  flex-direction: column;
  gap: 16px;
}

[data-design="a"] .rhh-stays__panel-title {
  font-size: clamp(20px, 2.5vw, 28px);
  font-weight: 600;
  letter-spacing: -0.015em;
  margin: 0;
  color: var(--fcc-ink);
}

[data-design="a"] .rhh-stays__amenities {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

[data-design="a"] .rhh-stays__amenities li {
  font-size: 14px;
  color: var(--fcc-ink-2);
  padding-left: 18px;
  position: relative;
}

[data-design="a"] .rhh-stays__amenities li::before {
  content: "·";
  position: absolute;
  left: 0;
  color: var(--rhh-moss);
  font-weight: 700;
}

[data-design="a"] .rhh-stays .rhh-cta {
  align-self: flex-start;
  margin-top: 8px;
}

@media (max-width: 768px) {
  [data-design="a"] .rhh-stays__panel-inner {
    grid-template-columns: 1fr;
  }
  [data-design="a"] .rhh-stays__panel-photo {
    aspect-ratio: 16 / 9;
  }
}

@media (max-width: 560px) {
  [data-design="a"] .rhh-stays__tabs {
    flex-direction: column;
  }
}

/* ─── POINTER (Element 6 — canvas leaf-fall) ─────────────────────────────── */
[data-design="a"] .rhh-pointer {
  padding: 24px 0;
  display: flex;
  justify-content: center;
  align-items: center;
  background: var(--fcc-canvas);
}

[data-design="a"] .rhh-pointer__track {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

[data-design="a"] .rhh-pointer__canvas {
  display: block;
  opacity: 0.7;
}

[data-design="a"] .rhh-pointer__label {
  font-size: 11px;
  letter-spacing: 0.12em;
  opacity: 0.55;
  animation: rhh-pointer-fade 3600ms ease-in-out infinite;
}

@keyframes rhh-pointer-fade {
  0%, 100% { opacity: 0.35; }
  50%       { opacity: 0.65; }
}

@media (prefers-reduced-motion: reduce) {
  [data-design="a"] .rhh-pointer__label { animation: none; opacity: 0.5; }
}

/* ─── GALLERY ────────────────────────────────────────────────────────────── */
[data-design="a"] .rhh-gallery {
  padding: var(--fcc-rhythm-section) 0;
  background: var(--fcc-ink);
  color: var(--fcc-canvas);
}

[data-design="a"] .rhh-gallery .rhh-wrap {
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: clamp(20px, 5vw, 48px);
}

[data-design="a"] .rhh-gallery .fcc-mono { color: color-mix(in oklab, var(--fcc-muted) 60%, var(--fcc-canvas) 40%); }

[data-design="a"] .rhh-gallery__head {
  margin-bottom: 48px;
}

[data-design="a"] .rhh-gallery .rhh-display { color: var(--fcc-canvas); }

[data-design="a"] .rhh-gallery__story {
  display: flex;
  flex-direction: column;
  gap: 96px;
}

[data-design="a"] .rhh-gallery__item {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  align-items: center;
  margin: 0;
}

[data-design="a"] .rhh-gallery__item:nth-child(even) {
  direction: rtl;
}

[data-design="a"] .rhh-gallery__item:nth-child(even) > * {
  direction: ltr;
}

[data-design="a"] .rhh-gallery__item img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--fcc-r-frame);
  border: 1px solid rgba(255,255,255,.08);
  display: block;
}

[data-design="a"] .rhh-gallery__caption {
  padding: 0 8px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

[data-design="a"] .rhh-gallery__caption p {
  font-size: clamp(16px, 1.5vw, 18px);
  line-height: 1.65;
  color: color-mix(in oklab, var(--fcc-canvas) 80%, var(--fcc-muted) 20%);
  max-width: 55ch;
  margin: 0;
}

[data-design="a"] .rhh-gallery__cta {
  margin-top: 64px;
  display: flex;
  justify-content: center;
}

@media (max-width: 768px) {
  [data-design="a"] .rhh-gallery__item {
    grid-template-columns: 1fr;
    direction: ltr;
    gap: 20px;
  }
  [data-design="a"] .rhh-gallery__item:nth-child(even) { direction: ltr; }
  [data-design="a"] .rhh-gallery__story { gap: 64px; }
}

/* ─── WHAT'S NEARBY ──────────────────────────────────────────────────────── */
[data-design="a"] .rhh-nearby {
  padding: var(--fcc-rhythm-section) 0;
  background: var(--fcc-canvas);
}

[data-design="a"] .rhh-nearby .rhh-wrap {
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: clamp(20px, 5vw, 48px);
}

[data-design="a"] .rhh-nearby__head {
  margin-bottom: 40px;
}

[data-design="a"] .rhh-nearby__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

[data-design="a"] .rhh-nearby__item {
  background: var(--fcc-paper);
  border: 1px solid var(--fcc-border);
  border-radius: var(--fcc-r-frame);
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: border-color var(--fcc-dur-snap) var(--fcc-ease-snap),
              transform var(--fcc-dur-snap) var(--fcc-ease-snap);
}

@media (hover: hover) and (pointer: fine) {
  [data-design="a"] .rhh-nearby__item:hover {
    border-color: var(--fcc-ink);
    transform: translateY(-2px);
  }
}

[data-design="a"] .rhh-nearby__dist {
  display: block;
  color: var(--rhh-moss);
}

[data-design="a"] .rhh-nearby__name {
  font-size: 16px;
  font-weight: 600;
  color: var(--fcc-ink);
  margin: 0;
  letter-spacing: -0.01em;
}

@media (max-width: 900px) {
  [data-design="a"] .rhh-nearby__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 560px) {
  [data-design="a"] .rhh-nearby__grid { grid-template-columns: 1fr; }
}

/* ─── HOST ───────────────────────────────────────────────────────────────── */
[data-design="a"] .rhh-host {
  padding: var(--fcc-rhythm-section) 0;
  background: var(--fcc-paper);
  border-top: 1px solid var(--fcc-border);
  border-bottom: 1px solid var(--fcc-border);
}

[data-design="a"] .rhh-host .rhh-wrap {
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: clamp(20px, 5vw, 48px);
}

[data-design="a"] .rhh-host__inner {
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 48px;
  align-items: start;
}

[data-design="a"] .rhh-host__frame {
  border-radius: var(--fcc-r-frame);
  overflow: hidden;
  border: 1px solid var(--fcc-border);
}

[data-design="a"] .rhh-host__photo {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}

[data-design="a"] .rhh-host__copy {
  padding-top: 8px;
}

[data-design="a"] .rhh-host__name {
  font-size: clamp(24px, 3vw, 36px);
  font-weight: 600;
  letter-spacing: -0.02em;
  margin: 0 0 20px;
  color: var(--fcc-ink);
}

@media (max-width: 768px) {
  [data-design="a"] .rhh-host__inner {
    grid-template-columns: 1fr;
  }
  [data-design="a"] .rhh-host__frame {
    max-width: 400px;
  }
}

/* ─── CLOSING CTA ────────────────────────────────────────────────────────── */
[data-design="a"] .rhh-closing {
  padding: var(--fcc-rhythm-section) 0;
  background: var(--fcc-canvas);
}

[data-design="a"] .rhh-closing .rhh-wrap {
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: clamp(20px, 5vw, 48px);
}

[data-design="a"] .rhh-closing__inner {
  max-width: 680px;
  margin-inline: auto;
  text-align: left;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
}

[data-design="a"] .rhh-closing .rhh-body {
  margin-bottom: 28px;
}

/* ─── FOOTER ─────────────────────────────────────────────────────────────── */
[data-design="a"] .rhh-footer {
  border-top: 1px solid var(--fcc-border);
  background: var(--fcc-paper);
  padding: 24px 0;
}

[data-design="a"] .rhh-footer .rhh-wrap {
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: clamp(20px, 5vw, 48px);
}

[data-design="a"] .rhh-footer__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}

[data-design="a"] .rhh-footer__left {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

[data-design="a"] .rhh-footer__sub { opacity: 0.7; }

[data-design="a"] .rhh-footer__link {
  color: var(--fcc-accent);
  text-decoration: none;
  letter-spacing: 0.04em;
  transition: opacity var(--fcc-dur-snap) var(--fcc-ease-snap);
}

[data-design="a"] .rhh-footer__link:hover { opacity: 0.75; }

/* ─── MOBILE OVERFLOW GUARD (mandatory) ──────────────────────────────────── */
[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;
}

@media (max-width: 560px) {
  [data-design="a"] {
    --fcc-rhythm-section: 64px;
  }
  [data-design="a"] .rhh-gallery__story { gap: 48px; }
}

/* 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; }
