/* =============================================================
   SLC · Direction 1 — "Bring the rug inside"
   Additive overrides only. Loaded after styles.css + variant-overrides.css.
   ============================================================= */

/* -----------------------------------------------------------
   PRINCIPLE BAND
   Full-bleed mustard moment between organism (dark) and intake (cream).
   Borrowed visual register from the social mustard panels:
   - sawtooth corner-flag ornament beside the eyebrow
   - large serif quote with one phrase italicized in white-on-mustard
   ----------------------------------------------------------- */
.d1-principle-band {
  position: relative;
  background: var(--gold-500, #db9a26);
  color: var(--ink, #0d0d0d);
  padding: clamp(40px, 5vw, 72px) var(--gutter) clamp(44px, 6vw, 80px);
  overflow: hidden;
  transition: background 0.4s ease, color 0.4s ease;
}

/* corner sawtooth ornaments — echo the carousel mustard/teal panels.
   Built as a CSS gradient stair so it scales cleanly. */
.d1-principle-band::before,
.d1-principle-band::after {
  content: "";
  position: absolute;
  width: clamp(140px, 18vw, 240px);
  height: clamp(140px, 18vw, 240px);
  pointer-events: none;
  opacity: 0.55;
  --tooth: rgba(20, 4, 14, 0.18);
  background:
    linear-gradient(135deg, transparent 0 38%, var(--tooth) 38% 42%, transparent 42% 50%, var(--tooth) 50% 54%, transparent 54% 62%, var(--tooth) 62% 66%, transparent 66% 74%, var(--tooth) 74% 78%, transparent 78%);
}
.d1-principle-band::before { top: 0; left: 0; transform: rotate(180deg); }
.d1-principle-band::after  { top: 0; right: 0; }

.d1-principle-band__inner {
  position: relative;
  z-index: 1;
  max-width: 1080px;
  margin: 0 auto;
  text-align: left;
}

.d1-principle-band__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin-bottom: clamp(20px, 2.4vw, 32px);
}

.d1-principle-band__tag {
  font-family: var(--mono);
  font-size: 0.66rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(20, 4, 14, 0.78);
  font-weight: 500;
}

/* Tiny sawtooth flank on either side of the eyebrow tag — pulls the
   social-corner motif inline at small scale. */
.d1-saw {
  display: inline-block;
  width: 22px;
  height: 10px;
  background:
    linear-gradient(135deg, var(--ink) 0 50%, transparent 50%) 0 0 / 5px 10px repeat-x;
  opacity: 0.55;
}
.d1-saw--right { transform: scaleX(-1); }

.d1-principle-band__quote {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(34px, 5.4vw, 72px);
  line-height: 1.04;
  letter-spacing: -0.01em;
  margin: 0;
  max-width: 22ch;
  color: var(--ink);
}
.d1-principle-band__quote em {
  font-style: italic;
  color: var(--cream, #ffffff);
  font-weight: 400;
}
.d1-principle-band__quote-2 {
  display: inline-block;
  margin-top: 0.08em;
  font-style: italic;
  color: rgba(20, 4, 14, 0.65);
  font-size: 0.6em;
  letter-spacing: -0.005em;
}

@media (max-width: 720px) {
  .d1-principle-band::before,
  .d1-principle-band::after {
    width: 120px;
    height: 120px;
    opacity: 0.35;
  }
  .d1-principle-band__quote { font-size: clamp(30px, 8vw, 44px); }
}

/* -----------------------------------------------------------
   SECTION-RAIL TINT
   ----------------------------------------------------------- */
.intake-bridge .section-rail__rule {
  background: linear-gradient(to right, rgba(163, 41, 111, 0.42) 0%, rgba(163, 41, 111, 0.10) 60%, rgba(163, 41, 111, 0.32) 100%);
}
.evidence.services .section-rail__rule {
  background: linear-gradient(to right, rgba(221, 111, 46, 0.42) 0%, rgba(221, 111, 46, 0.10) 60%, rgba(221, 111, 46, 0.32) 100%);
}
.sees .section-rail__rule {
  background: linear-gradient(to right, rgba(82, 82, 160, 0.42) 0%, rgba(82, 82, 160, 0.10) 60%, rgba(82, 82, 160, 0.32) 100%);
}
.diagnostic .section-rail__rule {
  background: linear-gradient(to right, rgba(219, 154, 38, 0.45) 0%, rgba(219, 154, 38, 0.10) 60%, rgba(219, 154, 38, 0.32) 100%);
}
.stats-band .section-rail__rule {
  background: linear-gradient(to right, rgba(12, 140, 137, 0.42) 0%, rgba(12, 140, 137, 0.10) 60%, rgba(12, 140, 137, 0.32) 100%);
}

/* -----------------------------------------------------------
   (removed) Mock identifier strip + switcher padding — dead
   scaffolding from the standalone d1 mock era. The 46px
   body padding was reserving space for a switcher strip that
   no longer exists, creating a phantom gap above the sticky
   nav on every page that loads this sheet.
   ----------------------------------------------------------- */

/* =============================================================
   PLAY SWITCHER (top strip)
   Lets us flip between baseline / A / B / C in one URL.
   ============================================================= */
.play-switch {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  background: var(--ink);
  color: var(--cream);
  font-family: var(--mono);
  font-size: 0.65rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  border-bottom: 1px solid rgba(245,237,224,0.08);
}
.play-switch__label {
  color: var(--gold-soft);
  margin-right: 8px;
  font-weight: 500;
}
.play-switch button {
  appearance: none;
  background: transparent;
  border: 1px solid rgba(245,237,224,0.18);
  color: rgba(245,237,224,0.75);
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  padding: 5px 11px;
  border-radius: 999px;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.play-switch button:hover { color: var(--cream); border-color: rgba(245,237,224,0.45); }
.play-switch button.active {
  background: var(--gold-500);
  color: var(--ink);
  border-color: var(--gold-500);
  font-weight: 600;
}

/* =============================================================
   VARIANT A · Wine band swap
   Replaces mustard with plum-500 deep; quote text inverts to cream.
   ============================================================= */
html body.play-A .d1-principle-band {
  background: var(--plum-500, #a3296f) !important;
  color: var(--cream) !important;
}
html body.play-A .d1-principle-band__tag { color: rgba(245,237,224,0.85) !important; }
html body.play-A .d1-principle-band__quote { color: var(--cream) !important; }
html body.play-A .d1-principle-band__quote em { color: var(--gold-soft) !important; }
html body.play-A .d1-principle-band__quote-2 { color: rgba(245,237,224,0.7) !important; }
body.play-A .d1-principle-band::before,
body.play-A .d1-principle-band::after {
  --tooth: rgba(245,237,224,0.18);
  opacity: 0.5;
}
body.play-A .d1-saw {
  background: linear-gradient(135deg, var(--cream) 0 50%, transparent 50%) 0 0 / 5px 10px repeat-x;
  opacity: 0.55;
}

/* =============================================================
   VARIANT B · Photo hero
   Shown only when body.play-B. Replaces cream editorial hero with
   full-bleed photo + dark gradient + sawtooth bottom edge.
   ============================================================= */
.d1-hero-photo { display: none; }
body.play-B .d1-hero-photo { display: block; }
body.play-B .hero { display: none; }
/* hide the existing horizon chevron that follows the cream hero in this variant
   (the photo hero brings its own sawtooth bottom) */
body.play-B main > .horizon-chevron:first-of-type { display: none; }

.d1-hero-photo {
  position: relative;
  width: 100%;
  min-height: clamp(560px, 88vh, 880px);
  overflow: hidden;
  background: #000;
  color: var(--cream);
  isolation: isolate;
}
.d1-hero-photo__bg {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  /* Focal point pulled toward the top so the subject's full face/head clears
     the top edge instead of being cropped by the centered cover crop. */
  object-position: center 22%;
  z-index: 0;
  filter: saturate(0.9) contrast(1.05);
}
.d1-hero-photo__scrim {
  position: absolute; inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(10,3,9,0.25) 0%, rgba(10,3,9,0.55) 55%, rgba(10,3,9,0.92) 100%),
    linear-gradient(95deg, rgba(20,4,14,0.78) 0%, rgba(20,4,14,0.45) 38%, rgba(20,4,14,0.12) 70%, rgba(163,41,111,0.28) 100%);
  pointer-events: none;
}
.d1-hero-photo__inner {
  position: relative;
  z-index: 2;
  max-width: 1100px;
  margin: 0 auto;
  /* Text pushed into the lower half of the hero so the headline/eyebrow no
     longer sit over the subjects' faces in the upper portion of the photo. */
  padding: clamp(180px, 30vh, 320px) var(--gutter) clamp(64px, 11vh, 130px);
  display: flex;
  flex-direction: column;
  gap: clamp(18px, 2.4vw, 28px);
}
.d1-hero-photo__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-bottom: clamp(6px, 1vw, 12px);
}
.d1-hero-photo__eyebrow .d1-saw {
  background: linear-gradient(135deg, var(--gold-soft) 0 50%, transparent 50%) 0 0 / 5px 10px repeat-x;
  opacity: 0.7;
}
.d1-hero-photo__tag {
  font-family: var(--mono);
  font-size: 0.66rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold-soft);
  font-weight: 500;
}
.d1-hero-photo__head {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(30px, 4vw, 56px);
  line-height: 1.06;
  letter-spacing: -0.012em;
  margin: 0;
  max-width: 18ch;
  color: var(--cream);
}
.d1-hero-photo__gold em {
  color: var(--gold-soft);
  font-style: italic;
  font-weight: 400;
  display: inline-block;
  /* Patina build — the word "a history." starts pale and deepens to full
     gold over ~2.6s. Reads as sediment settling on the word. Fires once
     on page load with a 0.3s delay so the hero registers first. */
  animation: hero-history-patina 5s cubic-bezier(.4, .0, .2, 1) 0.3s both;
}
/* Patina cycles through the brand-mark colors as it deepens — washed pale
   → teal → indigo → plum → orange → settled gold. Each color gets ~1s,
   total ~5s. Reads as the word gathering all the marks of the framework
   before resting on its native hue. */
@keyframes hero-history-patina {
  0% {
    color: rgba(251, 230, 184, 0.20);
    filter: saturate(0.2);
    opacity: 0.45;
  }
  20% {
    color: #0c8c89;  /* teal */
    filter: saturate(0.7);
    opacity: 0.75;
  }
  40% {
    color: #5252a0;  /* indigo */
    filter: saturate(0.85);
    opacity: 0.85;
  }
  60% {
    color: #a3296f;  /* plum */
    filter: saturate(0.95);
    opacity: 0.92;
  }
  80% {
    color: #e27a34;  /* orange (the eye) */
    filter: saturate(1);
    opacity: 0.97;
  }
  100% {
    color: var(--gold-soft);  /* settles on gold */
    filter: saturate(1);
    opacity: 1;
  }
}
@media (prefers-reduced-motion: reduce) {
  .d1-hero-photo__gold em { animation: none; }
}
.d1-hero-photo__sub {
  font-family: var(--serif);
  font-weight: 300;
  font-size: clamp(17px, 1.5vw, 21px);
  line-height: 1.5;
  max-width: 56ch;
  color: rgba(245,237,224,0.82);
  margin: 0;
}
.d1-hero-photo__ctas {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: clamp(8px, 1.4vw, 16px);
}
.d1-hero-photo__saw {
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 100%;
  height: clamp(20px, 3vw, 40px);
  z-index: 3;
  display: block;
}

@media (max-width: 720px) {
  /* Let the hero size to its content (no forced 88vh) so there's no dead photo space below the CTAs. */
  .d1-hero-photo { min-height: auto; }
  .d1-hero-photo__inner { padding-block: 72px 40px; }
  .d1-hero-photo__head { font-size: clamp(22px, 6.4vw, 32px); }
}

/* =============================================================
   VARIANT C · Triptych above the band
   Three columns (gold / plum / teal) reframing the band as a thesis
   beneath three named actions.
   ============================================================= */
.d1-triptych { display: none; }
body.play-C .d1-triptych { display: block; }

.d1-triptych {
  background: var(--cream);
  color: var(--ink);
  padding: clamp(40px, 5vw, 72px) var(--gutter) clamp(48px, 6vw, 80px);
  border-top: 1px solid rgba(20,4,14,0.08);
}
.d1-triptych__eyebrow-row {
  max-width: 1180px;
  margin: 0 auto clamp(28px, 3vw, 40px);
  display: flex;
  align-items: center;
  gap: 14px;
}
.d1-triptych__eyebrow-tag {
  font-family: var(--mono);
  font-size: 0.66rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(20, 4, 14, 0.6);
  font-weight: 500;
  white-space: nowrap;
}
.d1-triptych__eyebrow-rule {
  flex: 1;
  height: 1px;
  background: linear-gradient(to right, rgba(20, 4, 14, 0.18), rgba(20, 4, 14, 0.04));
}
.d1-triptych__inner {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(20px, 3vw, 48px);
}
.d1-triptych__col {
  position: relative;
  padding: clamp(24px, 2.6vw, 36px) clamp(22px, 2.4vw, 32px) clamp(28px, 3vw, 40px);
  border-radius: 6px;
  background: rgba(20,4,14,0.03);
  border: 1px solid rgba(20,4,14,0.08);
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.d1-triptych__col--gold { --accent: var(--gold-500); }
.d1-triptych__col--plum { --accent: var(--plum-500); }
.d1-triptych__col--teal { --accent: var(--teal-500); }
.d1-triptych__col::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: var(--accent);
  border-top-left-radius: 6px;
  border-top-right-radius: 6px;
}
.d1-triptych__no {
  font-family: var(--mono);
  font-size: 0.62rem;
  letter-spacing: 0.22em;
  color: var(--accent);
  font-weight: 600;
}
.d1-triptych__icon {
  width: 48px;
  height: 48px;
  color: var(--accent);
  margin-top: 4px;
}
.d1-triptych__title {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(28px, 3vw, 40px);
  line-height: 1.05;
  margin: 0;
  color: var(--ink);
}
.d1-triptych__title::after {
  content: ".";
  color: var(--accent);
}
.d1-triptych__copy {
  font-family: var(--sans);
  font-size: 0.95rem;
  line-height: 1.55;
  margin: 0;
  color: rgba(20,4,14,0.72);
}

@media (max-width: 880px) {
  .d1-triptych__inner { grid-template-columns: 1fr; }
}

/* =========================================================
   RESULTS TRIPTYCH — mirrors the work triptych, but each card
   carries a description, a "you leave with" deliverable line,
   and a "for [audience]" footer. Reuses .d1-triptych* styling.
   ========================================================= */
.d1-results { display: block; }
/* Audience toggle — switch all three cards between the Conditions side and the Postures side */
.rt-toggle { max-width: 1180px; margin: 0 auto clamp(20px, 2.4vw, 30px); display: flex; gap: 6px; flex-wrap: wrap; }
.rt-toggle__btn {
  font-family: var(--mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase;
  padding: 8px 16px; border-radius: 999px; border: 1px solid rgba(13,13,13,.18);
  background: transparent; color: rgba(13,13,13,.6); cursor: pointer;
  transition: background .18s, color .18s, border-color .18s;
}
.rt-toggle__btn.is-active { background: #0d0d0d; color: #fff; border-color: #0d0d0d; }
.rt-toggle__btn:not(.is-active):hover { color: #0d0d0d; border-color: rgba(13,13,13,.4); }
/* Sliding pill (JS adds .has-pill; the solid is-active bg is the no-JS fallback) */
.rt-toggle.has-pill { position: relative; }
.rt-toggle.has-pill .rt-toggle__btn { position: relative; z-index: 1; }
.rt-toggle.has-pill .rt-toggle__btn.is-active { background: transparent; border-color: transparent; }
.rt-toggle__pill {
  position: absolute; z-index: 0; top: 0; left: 0; width: 0; height: 0;
  background: #0d0d0d; border-radius: 999px;
  transition: transform 0.34s cubic-bezier(.4,0,.2,1), width 0.34s, height 0.34s;
}
@media (prefers-reduced-motion: reduce) { .rt-toggle__pill { transition: none; } }
/* the visible side fills the card so the deliverable can pin to the bottom */
.d1-results .rt-side { flex: 1 1 auto; flex-direction: column; min-height: 0; }
.d1-results .rt-side--c { display: flex; }
.d1-results .rt-side--p { display: none; }
.d1-results.is-postures .rt-side--c { display: none; }
.d1-results.is-postures .rt-side--p { display: flex; }
.d1-results__leave {
  font-family: var(--sans);
  font-size: 0.92rem;
  line-height: 1.5;
  margin: auto 0 0;       /* push to the bottom of the card */
  padding-top: 18px;
  color: rgba(13, 13, 13, 0.82);
}
.d1-results__leave .lbl {
  display: block;
  font-family: var(--mono);
  font-size: 0.58rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent);
  font-weight: 600;
  margin-bottom: 5px;
}
/* "For [audience]" — hidden footer that slides up on hover (accent strip).
   On touch/no-hover devices it falls back to a static line so the info
   is never lost. */
.d1-results__for {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  margin: 0;
  padding: 16px clamp(22px, 2.4vw, 32px) 20px;
  background: var(--accent);
  color: #fff;
  font-family: var(--serif);
  font-style: italic;
  font-size: 0.9rem;
  line-height: 1.4;
  transform: translateY(101%);
  transition: transform 0.34s cubic-bezier(0.22, 1, 0.36, 1);
  z-index: 3;
}
.d1-triptych__col:hover .d1-results__for,
.d1-triptych__col:focus-within .d1-results__for {
  transform: translateY(0);
}
@media (hover: none), (max-width: 760px) {
  .d1-results__for {
    position: static;
    transform: none;
    background: none;
    color: rgba(13, 13, 13, 0.55);
    padding: 14px 0 0;
    margin: 16px 0 0;
    border-top: 1px solid rgba(13, 13, 13, 0.10);
  }
}

/* =========================================================
   TRIPTYCH CARDS — Mockup 1 (approved): accent header block.
   Icon + number ride a colored top band; name + copy (+ results
   lines) sit in the white body. Applies to work + results sets.
   ========================================================= */
.d1-triptych__col {
  background: #ffffff;
  border: 1px solid #ececec;
  border-radius: 8px;
  box-shadow: 0 14px 36px -26px rgba(13, 13, 13, 0.40);
  overflow: hidden;
  padding-top: 106px;       /* clears the colored header band */
  gap: 12px;
}
.d1-triptych__col::before {
  height: 84px;             /* was a 4px rule — now the full header band */
  border-radius: 8px 8px 0 0;
}
.d1-triptych__icon {
  position: absolute;
  top: 22px;
  left: clamp(22px, 2.4vw, 32px);
  width: 42px; height: 42px;
  color: #fff;              /* white mark on the accent band */
  margin: 0;
  z-index: 2;
}
.d1-triptych__no {
  position: absolute;
  top: 32px;
  right: clamp(22px, 2.4vw, 32px);
  color: #fff;
  margin: 0;
  z-index: 2;
}
