:root {
  --beige: #f4efe5;
  --warm-beige: #e9dfcc;
  --charcoal: #3f4141;
  --oxblood: #6f1721;
  --gold: #c89f50;
}

* { box-sizing: border-box; }

html { background: var(--beige); }

body {
  margin: 0;
  color: var(--charcoal);
  background: var(--beige);
  font-family: Arial, Helvetica, sans-serif;
}

.hero {
  isolation: isolate;
  min-height: 100svh;
  overflow: hidden;
  position: relative;
  background: var(--beige);
}

.hero-image {
  position: absolute;
  inset: 0;
  z-index: -3;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.hero-wash {
  position: absolute;
  inset: 0;
  z-index: -3;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(244, 239, 229, .98) 0%, rgba(244, 239, 229, .89) 29%, rgba(244, 239, 229, .22) 53%, rgba(244, 239, 229, 0) 71%);
}

.site-header {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 2rem;
  padding: 1.65rem clamp(1.25rem, 4vw, 5rem);
}

.brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 0 0 auto;
  width: fit-content;
  text-align: center;
  text-decoration: none;
}

.brand-mark {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: .2em;
  white-space: nowrap;
}

.brand-look,
.brand-closely,
.brand-company {
  display: block;
  color: var(--charcoal);
  font-family: Baskerville, Georgia, serif;
  font-size: clamp(1.9rem, 2.35vw, 2.75rem);
  font-weight: 400;
  letter-spacing: -.025em;
  line-height: .9;
}

.brand-look {
}

.brand-company {
  position: relative;
}

.marketing-word {
  display: inline-block;
}

.brand-company small {
  position: absolute;
  bottom: .13em;
  margin-left: .18em;
  font-size: .25em;
  letter-spacing: .04em;
  white-space: nowrap;
  transform: translateX(2px);
}

.brand-tagline {
  display: block;
  margin-top: .22rem;
  color: var(--charcoal);
  font-family: Baskerville, Georgia, serif;
  width: max-content;
  font-size: clamp(1.05rem, 1.15vw, 1.18rem);
  letter-spacing: -.02em;
  line-height: 1;
  white-space: nowrap;
}

nav {
  position: absolute;
  left: clamp(24rem, 33vw, 31rem);
  top: 1.65rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: .65rem clamp(.75rem, 1.25vw, 1.2rem);
  max-width: 40rem;
  padding-top: .8rem;
}

nav a {
  position: relative;
  color: var(--charcoal);
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
}

nav a::after {
  position: absolute;
  right: 0;
  bottom: -.55rem;
  left: 0;
  height: 1px;
  background: currentColor;
  content: "";
  opacity: 0;
  transform: scaleX(.35);
  transform-origin: center;
  transition: opacity .18s ease, transform .18s ease;
}

nav a:hover, nav a:focus-visible { color: var(--oxblood); }
nav a:hover::after, nav a:focus-visible::after, nav a.active::after { opacity: 1; transform: scaleX(1); }

nav a.active { color: var(--oxblood); }

.nav-movie { color: var(--oxblood); }

.mobile-menu-toggle { display: none; }

.hero-copy {
  position: relative;
  z-index: 1;
  width: min(45rem, 54vw);
  padding: clamp(3rem, 10vh, 8.5rem) 0 6rem clamp(1.25rem, 8vw, 9.25rem);
  transform: translateY(clamp(-3.25rem, -4vw, -2rem));
}

h1 {
  margin: 0;
  font-family: Baskerville, Georgia, serif;
  font-size: calc(clamp(2rem, 3.75vw, 4.4rem) - 4pt);
  font-weight: 400;
  letter-spacing: -.045em;
  line-height: .98;
}

h1 span { display: block; }

.home-final-mobile { display: none; }

h1 span:nth-child(2n) { margin-bottom: .48em; }

.hero-title-wrap { position: relative; }

.hero-replay {
  position: absolute;
  top: .18em;
  left: clamp(-1.65rem, -2vw, -1.15rem);
  width: 1.05rem;
  height: 1.05rem;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: rgba(63, 65, 65, .55);
  font: 1rem/1 Arial, Helvetica, sans-serif;
  cursor: pointer;
  transition: color .18s ease;
}

.hero-replay:hover, .hero-replay:focus-visible { color: var(--oxblood); }
.hero-replay:focus-visible { outline: 1px solid var(--oxblood); outline-offset: .2rem; }

.movie-slot { margin-top: 3rem; }

.movie-copy {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  width: max-content;
  max-width: 100%;
}

.movie-copy-mobile, .movie-copy-desktop {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: .9rem;
  width: max-content;
  max-width: 100%;
  color: var(--charcoal);
  text-align: center;
  text-decoration: none;
}

.movie-copy-desktop { display: none; }

.movie-action {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: .15rem;
}

.movie-prompt, .movie-detail {
  display: block;
  font-family: Baskerville, Georgia, serif;
}

.movie-prompt {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1.5rem;
  line-height: 1.15;
}

.movie-detail {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1.08rem;
  line-height: 1.3;
}

.movie-marquee {
  display: block;
  width: min(32rem, 100%);
  height: auto;
  margin-top: 0;
  filter: drop-shadow(0 .45rem .75rem rgba(63, 65, 65, .16));
}

/* Keep Home's three-part Discovery Video invitation clear of the
   businesswoman's sleeve in the desktop composition. */
@media (min-width: 761px) {
  /* Keep the desktop invitation on the exact original layout box.  The
     accessibility wrapper is needed to separate its non-link copy from the
     marquee link, but must not become an extra positioning container. */
  #home .movie-copy { display: contents; }
  #home .movie-copy-desktop { transform: translateX(-6rem); }
  /* The marquee link fills the invitation's wider alignment box.  Center the
     visible 32rem marquee within it, rather than leaving it at that box's
     left edge. */
  #home .movie-marquee-link { transform: translateX(3rem); }
  .movie-copy-mobile { display: none; }
  .movie-copy-desktop { display: inline-flex; }
}

.movie-copy-mobile:hover .movie-marquee, .movie-copy-mobile:focus-visible .movie-marquee,
.movie-marquee-link:hover .movie-marquee, .movie-marquee-link:focus-visible .movie-marquee {
  filter: brightness(.96) drop-shadow(0 .55rem .9rem rgba(63, 65, 65, .2));
}

.movie-copy-mobile:hover .movie-prompt, .movie-copy-mobile:focus-visible .movie-prompt { color: var(--oxblood); }

.movie-copy-mobile:focus-visible, .movie-marquee-link:focus-visible { outline: 2px solid var(--oxblood); outline-offset: .4rem; }

@keyframes copy-arrives {
  from { opacity: 0; }
  to { opacity: 1; }
}

.motion-intro .hero-image {
  opacity: 0;
  animation: hero-arrives 3s cubic-bezier(.22, .8, .24, 1) both;
}

@keyframes hero-arrives {
  from { opacity: 0; }
  to { opacity: 1; }
}

.motion-intro h1 span,
.motion-intro .movie-prompt,
.motion-intro .movie-action,
.motion-intro .hero-replay { opacity: 0; }

.motion-intro .hero-replay { visibility: hidden; }

.motion-intro h1 span { animation: copy-arrives .167s linear both; }
.motion-intro h1 span:nth-child(1),
.motion-intro h1 span:nth-child(2) { animation-delay: 2s; }
.motion-intro h1 span:nth-child(3),
.motion-intro h1 span:nth-child(4) { animation-delay: 6s; }
.motion-intro h1 span:nth-child(5),
.motion-intro h1 span:nth-child(6) { animation-delay: 10s; }
.motion-intro .movie-prompt { animation: copy-arrives .167s linear 14s both; }
.motion-intro .movie-action { animation: copy-arrives .167s linear 18s both; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; }
}

@media (max-width: 760px) {
  html, body { max-width: 100%; overflow-x: hidden; }
  .hero { min-height: 47rem; }
  .hero-image { object-position: 64% center; }
  .hero-wash { background: linear-gradient(90deg, rgba(244, 239, 229, .97) 0%, rgba(244, 239, 229, .86) 56%, rgba(244, 239, 229, .18) 100%); }
  .site-header { align-items: center; padding-top: 1.1rem; }
  .brand-mark { gap: .14em; }
  .brand-look, .brand-closely, .brand-company { font-size: 1.32rem; }
  .brand-tagline { font-size: .82rem; }
  nav { display: none; }
  .hero-copy { display: block; width: min(25rem, 83vw); padding: 6.5rem 0 3rem 1.35rem; }
  h1 { font-size: calc(clamp(2.25rem, 9.8vw, 3.1rem) - 4pt); }
  .hero-replay { left: -1.15rem; }
  .movie-slot { margin-top: 2rem; }
  .movie-copy { width: min(22rem, 100%); }
  .movie-detail { max-width: 17rem; }

  .site-header {
    position: relative;
    justify-content: space-between;
    width: 100%;
    min-height: 4.55rem;
    padding: 1.1rem 1.35rem;
  }
  .mobile-menu-toggle {
    position: relative;
    z-index: 7;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    min-width: 4.75rem;
    min-height: 2.75rem;
    padding: .5rem .65rem;
    border: 1px solid rgba(63, 65, 65, .38);
    color: var(--charcoal);
    background: rgba(244, 239, 229, .78);
    font: 700 .68rem/1 Arial, Helvetica, sans-serif;
    letter-spacing: .12em;
    text-transform: uppercase;
    cursor: pointer;
  }
  .mobile-menu-toggle-icon,
  .mobile-menu-toggle-icon::before,
  .mobile-menu-toggle-icon::after {
    display: block;
    width: 1rem;
    height: 1px;
    background: currentColor;
    content: "";
    transition: transform .18s ease, opacity .18s ease;
  }
  .mobile-menu-toggle-icon { position: relative; }
  .mobile-menu-toggle-icon::before { position: absolute; top: -.28rem; }
  .mobile-menu-toggle-icon::after { position: absolute; top: .28rem; }
  .site-header.menu-open .mobile-menu-toggle-icon { background: transparent; }
  .site-header.menu-open .mobile-menu-toggle-icon::before { transform: translateY(.28rem) rotate(45deg); }
  .site-header.menu-open .mobile-menu-toggle-icon::after { transform: translateY(-.28rem) rotate(-45deg); }
  .site-header nav {
    position: fixed;
    z-index: 6;
    top: 4.55rem;
    right: 0;
    left: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    max-width: none;
    max-height: calc(100svh - 4.55rem);
    padding: .8rem 1.35rem 1.35rem;
    overflow-y: auto;
    border-top: 1px solid rgba(63, 65, 65, .16);
    background: rgba(244, 239, 229, .98);
    box-shadow: 0 1.2rem 2.2rem rgba(33, 34, 34, .18);
    opacity: 0;
    pointer-events: none;
    transform: translateY(-1rem);
    transition: transform .18s ease, opacity .18s ease;
  }
  .site-header.menu-open nav {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }
  .site-header nav a {
    display: block;
    padding: .95rem 0;
    border-bottom: 1px solid rgba(63, 65, 65, .16);
    font-size: .78rem;
    letter-spacing: .13em;
  }
  .site-header nav a::after { display: none; }
  .movie-header .mobile-menu-toggle {
    border-color: rgba(255, 253, 248, .58);
    color: #fffdf8;
    background: rgba(8, 12, 16, .42);
  }
  .movie-header nav {
    border-color: rgba(244, 239, 229, .16);
    background: rgba(8, 12, 16, .98);
  }
  .movie-header nav a { color: #fffdf8; border-color: rgba(244, 239, 229, .16); }
  .movie-header nav a.nav-movie { color: #c89f50; }
  .mobile-menu-open { overflow: hidden; }
}

/* Legal and sitemap pages */
.legal-page { min-height: 100svh; background: var(--beige); }
.legal-close { display: none; }
.legal-header { border-bottom: 1px solid rgba(63, 65, 65, .18); }
.legal-main {
  position: relative;
  width: min(58rem, calc(100% - 2.5rem));
  margin: 0 auto;
  padding: clamp(4.5rem, 9vw, 8rem) 0 clamp(5rem, 10vw, 8rem);
}
.legal-main > h1 { max-width: 46rem; font-size: clamp(2.8rem, 5vw, 5.1rem); }
.legal-effective { margin: 1.2rem 0 0; color: rgba(63, 65, 65, .7); font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.legal-copy { width: min(44rem, 100%); margin: clamp(3.5rem, 7vw, 6rem) 0 0 auto; }
.legal-copy > p:first-child { margin-top: 0; font-family: Baskerville, Georgia, serif; font-size: clamp(1.35rem, 2.1vw, 1.8rem); line-height: 1.38; }
.legal-copy section { margin-top: 2.8rem; padding-top: 2rem; border-top: 1px solid rgba(63, 65, 65, .24); }
.legal-copy h2 { margin: 0; font-family: Baskerville, Georgia, serif; font-size: clamp(1.45rem, 2.2vw, 2rem); font-weight: 400; letter-spacing: -.025em; line-height: 1.1; }
.legal-copy p { margin: 1rem 0 0; font-size: 1rem; line-height: 1.68; }
.sitemap-main > h1 { margin-bottom: clamp(3.5rem, 7vw, 6rem); }
.sitemap-list { width: min(44rem, 100%); margin-left: auto; border-top: 1px solid rgba(63, 65, 65, .3); }
.sitemap-list a { display: grid; grid-template-columns: minmax(10rem, .7fr) minmax(0, 1.3fr); gap: 2rem; padding: 1.45rem 0; border-bottom: 1px solid rgba(63, 65, 65, .22); color: var(--charcoal); text-decoration: none; }
.sitemap-list span { font-family: Baskerville, Georgia, serif; font-size: 1.35rem; line-height: 1.1; }
.sitemap-list small { font-size: .94rem; line-height: 1.5; }
.sitemap-list a:hover span, .sitemap-list a:focus-visible span { color: var(--oxblood); text-decoration: underline; text-underline-offset: .25rem; }

@media (max-width: 760px) {
  .legal-header { min-height: 4.55rem; }
  .legal-main { width: min(100% - 2.7rem, 36rem); padding: 4.5rem 0 5rem; }
  .legal-copy { margin-top: 3.2rem; }
  .sitemap-list a { grid-template-columns: 1fr; gap: .45rem; }

  .legal-close {
    position: absolute;
    z-index: 2;
    top: 4.1rem;
    right: 0;
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    color: var(--charcoal);
    font: 2.2rem/1 Arial, Helvetica, sans-serif;
    text-decoration: none;
    transform: translateY(-100%);
  }
  .legal-close-bottom {
    position: static;
    display: block;
    width: max-content;
    height: auto;
    margin: 3rem 0 0 auto;
    font-size: 2.2rem;
    line-height: 1;
    transform: none;
  }
  .legal-close:focus-visible { outline: 1px solid var(--charcoal); outline-offset: .2rem; }
}

@media (max-width: 760px) {
  .movie-legal { right: 1.35rem; bottom: .72rem; max-width: calc(100% - 2.7rem); font-size: .6rem; }
}

/* Free Discovery Video */
.movie-page { background: #11151a; }

.movie-header {
  position: absolute;
  z-index: 5;
  width: 100%;
  min-height: 6.65rem;
  background: linear-gradient(180deg, rgba(8, 12, 16, .78), rgba(8, 12, 16, 0));
}

.movie-header .brand-look, .movie-header .brand-closely, .movie-header .brand-company, .movie-header .brand-tagline, .movie-header nav a, .movie-header .nav-movie { color: #fffdf8; }
.movie-header nav a:hover, .movie-header nav a:focus-visible { color: #c89f50; }
.movie-header nav a.active { color: #fffdf8; }

.movie-request {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  background: #101419;
}

.movie-theater {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 72% center;
}

.movie-request::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(7, 11, 15, .99) 0%, rgba(7, 11, 15, .98) 38%, rgba(7, 11, 15, .88) 46%, rgba(7, 11, 15, .52) 54%, rgba(7, 11, 15, 0) 66%);
  content: "";
  pointer-events: none;
}

.movie-panel {
  position: relative;
  z-index: 1;
  width: min(34rem, 46vw);
  padding: clamp(3rem, 7vh, 5.5rem) 0 4rem clamp(1.4rem, 8vw, 9.25rem);
  color: #f4efe5;
}

.eyebrow {
  margin: 0 0 .8rem;
  color: #c89f50;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.movie-panel h1 {
  margin: 0;
  color: var(--gold);
  font-size: clamp(2.75rem, 4.1vw, 4.45rem);
  line-height: .95;
}

.movie-panel h1 span { display: block; }

.movie-intro, .movie-reassurance {
  max-width: 31rem;
  margin: 1.3rem 0 0;
  font-size: 1rem;
  line-height: 1.5;
}

.movie-reassurance {
  margin-top: .75rem;
  color: #d8d1c5;
  font-size: .91rem;
}

.movie-reassurance strong { color: var(--gold); font-weight: 700; }

.movie-paths {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .7rem;
  margin-top: 1.5rem;
}
.movie-paths a,
.movie-paths button {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 5.4rem;
  padding: .8rem;
  border: 1px solid rgba(200, 159, 80, .55);
  color: #f4efe5;
  background: rgba(10, 14, 19, .34);
  cursor: pointer;
  text-decoration: none;
  transition: border-color .18s ease, background .18s ease;
}
.movie-paths .movie-path-primary { border-color: var(--gold); background: rgba(200, 159, 80, .12); }
.movie-paths a:hover, .movie-paths a:focus-visible,
.movie-paths button:hover, .movie-paths button:focus-visible { border-color: var(--gold); color: #f4efe5; background: rgba(200, 159, 80, .2); outline-offset: 3px; }
.movie-paths span { color: #d8d1c5; font: .7rem/1.3 Arial,sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.movie-paths strong { margin-top: .35rem; font: 400 1.12rem/1.2 Baskerville,Georgia,serif; }
.movie-paths-final { grid-column: 1 / -1; }
.movie-choice-heading { grid-column: 1 / -1; margin: .75rem 0 -.4rem; color: #f4efe5; font: 400 clamp(1.55rem, 2.4vw, 2rem)/1.15 Baskerville,Georgia,serif; }
.movie-paths-final .movie-choice-button { width: 100%; min-height: 7.25rem; padding: .85rem .75rem; }
.movie-paths-final .movie-choice-button img { width: 3.25rem; height: 3.25rem; margin-bottom: .38rem; }
.movie-paths-final .movie-choice-button strong { margin: 0; max-width: 12rem; }
.movie-paths-final .movie-choice-button strong span { color: var(--gold); font: inherit; letter-spacing: .035em; }
.movie-paths-final .movie-choice-button:disabled { cursor: not-allowed; opacity: .58; border-color: #6f685e; color: #d2cabf; background: rgba(54, 58, 61, .72); }
#movie-request-form { scroll-margin-top: 6rem; }
@media (max-width: 760px) { .movie-paths { grid-template-columns: 1fr; } .movie-paths a, .movie-paths button { min-height: 0; } }

.movie-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .8rem;
  margin-top: 1.8rem;
}

.movie-form label {
  color: #e8e0d5;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1.25;
  text-transform: uppercase;
}

.required-marker { color: #c89f50; }

.movie-listing, .movie-notes { grid-column: 1 / -1; }

.movie-form input, .movie-form textarea, .movie-form select, .state-trigger {
  display: block;
  width: 100%;
  margin-top: .38rem;
  padding: .65rem .72rem;
  border: 1px solid rgba(244, 239, 229, .55);
  border-radius: 0;
  outline: none;
  color: #f4efe5;
  background: #0f1419;
  font: inherit;
  font-size: .92rem;
  letter-spacing: normal;
  text-transform: none;
  color-scheme: dark;
}

.movie-form textarea { min-height: 2.85rem; resize: vertical; }
.state-field { position: relative; }
.state-native-select { position: absolute; inline-size: 1px; block-size: 1px; opacity: 0; pointer-events: none; }
.movie-form .state-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-color: rgba(244, 239, 229, .55);
  color: #f4efe5;
  background: #0f1419;
  cursor: pointer;
}
.state-trigger b { color: #f4efe5; font-size: 1rem; font-weight: 400; line-height: 1; }
.movie-form .state-trigger:hover, .movie-form .state-trigger:focus-visible { border-color: #c89f50; color: #c89f50; background: #0f1419; box-shadow: 0 0 0 2px rgba(200, 159, 80, .2); }
.state-trigger:hover b, .state-trigger:focus-visible b { color: #c89f50; }
.state-menu {
  position: absolute;
  z-index: 10;
  top: calc(100% + .2rem);
  left: 0;
  right: 0;
  max-height: 14rem;
  overflow-y: auto;
  border: 1px solid rgba(244, 239, 229, .55);
  background: #0f1419;
  box-shadow: 0 .65rem 1.5rem rgba(0, 0, 0, .4);
}
.movie-form .state-menu button {
  display: block;
  width: 100%;
  padding: .55rem .72rem;
  border: 0;
  color: #f4efe5;
  background: #0f1419;
  font: inherit;
  font-size: .86rem;
  letter-spacing: normal;
  text-align: left;
  text-transform: none;
}
.movie-form .state-menu button:hover, .movie-form .state-menu button:focus-visible, .movie-form .state-menu button[aria-selected="true"] { color: #0f1419; background: #c89f50; outline: 0; }
.movie-form select {
  appearance: none;
  padding-right: 2rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23f4efe5' stroke-width='1.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: calc(100% - 10px) center;
}
.movie-form input::placeholder, .movie-form textarea::placeholder { color: #bbb4aa; }
.movie-form input:hover, .movie-form textarea:hover,
.movie-form input:focus, .movie-form textarea:focus, .movie-form select:focus {
  border-color: #c89f50;
  color: #c89f50;
  background: #0f1419;
  box-shadow: 0 0 0 2px rgba(200, 159, 80, .2);
}
.movie-form input:hover::placeholder, .movie-form textarea:hover::placeholder,
.movie-form input:focus::placeholder, .movie-form textarea:focus::placeholder { color: #c89f50; }

.movie-form .movie-listing input:focus::placeholder { color: transparent; }

.movie-form input.is-invalid,
.movie-form textarea.is-invalid,
.movie-form .state-trigger.is-invalid {
  border-color: #c95555;
  color: #f4efe5;
  box-shadow: 0 0 0 2px rgba(201, 85, 85, .2);
}

.movie-form input.is-invalid::placeholder,
.movie-form textarea.is-invalid::placeholder { color: #d68b8b; }

/* Keep browser-supplied autofill inside the form's dark visual language. */
.movie-form input:-webkit-autofill,
.movie-form input:-webkit-autofill:hover,
.movie-form input:-webkit-autofill:focus,
.movie-form input:-webkit-autofill:active {
  -webkit-text-fill-color: #f4efe5 !important;
  caret-color: #f4efe5;
  -webkit-box-shadow: 0 0 0 1000px #0f1419 inset !important;
  box-shadow: 0 0 0 1000px #0f1419 inset !important;
  background-color: #0f1419 !important;
  color-scheme: dark;
}

.movie-form select,
.movie-form select option {
  color: #f4efe5;
  background-color: #0f1419;
  color-scheme: dark;
}

.movie-form select:-webkit-autofill,
.movie-form select:-webkit-autofill:hover,
.movie-form select:-webkit-autofill:focus {
  -webkit-text-fill-color: #f4efe5;
  -webkit-box-shadow: 0 0 0 1000px #0f1419 inset;
  box-shadow: 0 0 0 1000px #0f1419 inset;
}

.movie-form-actions {
  display: flex;
  grid-column: 1 / -1;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: .2rem;
}

.movie-form button {
  flex: 0 0 auto;
  padding: .8rem 1.05rem;
  border: 1px solid #c89f50;
  color: #202326;
  background: #c89f50;
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .18s ease, color .18s ease;
}

.movie-form-actions p {
  margin: 0;
  color: #d8d1c5;
  font-size: calc(.72rem - 1pt);
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.movie-form-actions p span { color: #c89f50; }

.movie-form button:hover, .movie-form button:focus-visible { color: #f4efe5; background: var(--oxblood); border-color: var(--oxblood); }
.movie-form button:disabled {
  cursor: not-allowed;
  opacity: 1;
  border-color: #4d5052;
  color: #a8a29a;
  background: #363a3d;
  box-shadow: none;
}
.movie-form[inert] { cursor: default; }
.movie-form[inert] input, .movie-form[inert] textarea, .movie-form[inert] .state-trigger { cursor: default; }
.movie-spinner {
  display: inline-block;
  width: .82rem;
  height: .82rem;
  margin-right: .48rem;
  border: 2px solid rgba(244, 239, 229, .38);
  border-top-color: #f4efe5;
  border-radius: 50%;
  vertical-align: -.1rem;
  animation: movie-spin .8s linear infinite;
}
@keyframes movie-spin { to { transform: rotate(360deg); } }

.movie-talk-option {
  display: flex;
  grid-column: 1 / -1;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 2.1rem;
  padding: 1.1rem 1.2rem;
  border: 1px solid rgba(200, 159, 80, .55);
  color: #d8d1c5;
  font-size: .88rem;
  line-height: 1.45;
}

.movie-talk-option p { margin: 0; }
.movie-talk-option strong { color: #f4efe5; font-weight: 700; }
.movie-talk-button {
  flex: 0 0 auto;
  padding: .8rem 1.05rem;
  border: 1px solid #c89f50;
  color: #f4efe5;
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-decoration: none;
  text-transform: uppercase;
  transition: background .18s ease, color .18s ease;
}
.movie-talk-button:hover, .movie-talk-button:focus-visible { color: #202326; background: #c89f50; }
.movie-talk-button.is-disabled {
  border-color: rgba(200, 159, 80, .38);
  color: rgba(244, 239, 229, .52);
  cursor: default;
}
.movie-talk-button.is-visual-cta {
  border-color: #c89f50;
  color: #202326;
  background: #c89f50;
  cursor: default;
}

.screen-mark {
  position: absolute;
  z-index: 1;
  /* Screen midpoint at the primary desktop crop: x 73%, y 31%. */
  top: 27%;
  right: 8%;
  width: min(38vw, 41rem);
  color: #3f4141;
  text-align: center;
  transform: perspective(1050px) rotateY(-7deg) rotateZ(-1deg) scaleX(1.07);
  opacity: .92;
  pointer-events: none;
}

.screen-mark span, .screen-mark small, .screen-mark b { display: block; }
.screen-mark span { font-family: Baskerville, Georgia, serif; font-size: clamp(2.85rem, 6.2vw, 6.5rem); letter-spacing: -.06em; line-height: .85; }
.screen-mark small { margin-top: .65rem; font-size: clamp(.5rem, .75vw, .82rem); font-weight: 700; letter-spacing: .42em; }
.screen-mark b { margin-top: 1.55rem; font-size: clamp(.46rem, .68vw, .72rem); font-weight: 700; letter-spacing: .48em; }

.confirmation-open, .booking-open { overflow: hidden; }
.movie-confirmation {
  position: fixed;
  z-index: 20;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 1.5rem;
  background: rgba(6, 9, 13, .8);
  backdrop-filter: blur(7px);
}
.movie-confirmation[hidden] { display: none; }
.movie-confirmation-card {
  position: relative;
  width: min(35rem, 100%);
  padding: clamp(2rem, 5vw, 3.5rem);
  border: 1px solid rgba(200, 159, 80, .8);
  background: #10161c;
  box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, .45);
  color: #e8e0d5;
  text-align: center;
}
.movie-confirmation-card h2 {
  margin: .45rem auto 1.25rem;
  max-width: 26rem;
  color: #f4efe5;
  font-family: Baskerville, Georgia, serif;
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 400;
  line-height: 1.03;
}
.movie-confirmation-card p { max-width: 29rem; margin: 0 auto 1rem; font-size: 1rem; line-height: 1.55; }
.movie-confirmation-card .eyebrow, .booking-preview-card .eyebrow { color: var(--gold); }
.movie-confirmation-card strong { color: #f4efe5; }
.movie-confirmation-email { color: #f2dca9; }
.movie-confirmation-signoff { margin-bottom: 1.6rem !important; }
.movie-confirmation-close {
  position: absolute;
  top: .55rem;
  right: .7rem;
  border: 0;
  background: transparent;
  appearance: none;
  padding: 0;
  color: #d8d1c5;
  font-size: 2rem;
  line-height: 1;
  cursor: pointer;
}
.movie-confirmation-done {
  padding: .8rem 1.15rem;
  border: 1px solid #f4efe5;
  background: transparent;
  color: #f4efe5;
  cursor: pointer;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.movie-confirmation-done:hover, .movie-confirmation-done:focus-visible { background: var(--gold); border-color: var(--gold); color: #202326; }

.booking-preview {
  position: fixed;
  z-index: 20;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 1.5rem;
  background: rgba(6, 9, 13, .8);
  backdrop-filter: blur(7px);
}
.booking-preview[hidden] { display: none; }
.booking-preview-card {
  position: relative;
  width: min(38rem, 100%);
  padding: clamp(2rem, 5vw, 3.2rem);
  border: 1px solid rgba(200, 159, 80, .8);
  background: #10161c;
  box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, .45);
  color: #e8e0d5;
  text-align: center;
}
.booking-preview-card h2 {
  margin: .45rem auto 1rem;
  color: #f4efe5;
  font-family: Baskerville, Georgia, serif;
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 400;
  line-height: 1.03;
}
.booking-preview-intro, .booking-preview-note { max-width: 28rem; margin: 0 auto; font-size: 1rem; line-height: 1.55; }
.booking-preview-note { margin-top: 1.4rem; color: #f2dca9; }
.booking-preview-close {
  position: absolute;
  top: .55rem;
  right: .7rem;
  border: 0;
  background: transparent;
  appearance: none;
  padding: 0;
  color: #d8d1c5;
  font-size: 2rem;
  line-height: 1;
  cursor: pointer;
}
.booking-week-controls {
  display: grid;
  grid-template-columns: 2rem 1fr 2rem;
  align-items: center;
  margin: 1.55rem 0 -.65rem;
}
.booking-week-controls p { margin: 0; color: #f4efe5; font-family: Baskerville, Georgia, serif; font-size: 1.05rem; }
.booking-week-controls button {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--gold);
  cursor: pointer;
  font: 2rem/1 Baskerville, Georgia, serif;
}
.booking-week-controls button:disabled { color: rgba(200, 159, 80, .25); cursor: default; }
.booking-week-controls button:not(:disabled):hover, .booking-week-controls button:not(:disabled):focus-visible { color: #f4efe5; }
.booking-days {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: .45rem;
  margin: 1.8rem 0 1.5rem;
}
.booking-day {
  display: grid;
  justify-items: center;
  gap: .1rem;
  min-height: 5rem;
  border: 1px solid rgba(232, 224, 213, .3);
  background: transparent;
  color: #d8d1c5;
  cursor: pointer;
  font-family: inherit;
}
.booking-day span, .booking-day small { font-size: .64rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.booking-day strong { color: #f4efe5; font-family: Baskerville, Georgia, serif; font-size: 1.5rem; font-weight: 400; line-height: 1; }
.booking-day.is-selected, .booking-day:hover, .booking-day:focus-visible { border-color: #c89f50; background: #c89f50; color: #202326; }
.booking-day.is-selected strong, .booking-day:hover strong, .booking-day:focus-visible strong { color: #202326; }
.booking-times-label { margin: 0 0 .7rem; color: #f4efe5; font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.booking-times { display: grid; grid-template-columns: repeat(3, 1fr); gap: .55rem; }
.booking-times button {
  min-height: 2.65rem;
  border: 1px solid rgba(232, 224, 213, .4);
  background: transparent;
  color: #f4efe5;
  cursor: pointer;
  font: 700 .73rem/1 inherit;
  letter-spacing: .04em;
}
.booking-times button.is-selected, .booking-times button:hover, .booking-times button:focus-visible { border-color: var(--gold); background: var(--gold); color: #202326; }
.booking-submit {
  margin-top: 1.35rem;
  padding: .8rem 1.35rem;
  border: 1px solid var(--gold);
  background: var(--gold);
  color: #202326;
  cursor: pointer;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.booking-submit:disabled { opacity: .38; cursor: default; }
.booking-submit:not(:disabled):hover, .booking-submit:not(:disabled):focus-visible { background: #f4efe5; border-color: #f4efe5; }

@media (max-width: 760px) {
  .movie-header { min-height: 4.55rem; }
  .movie-request { min-height: 100svh; }
  .movie-theater { object-position: 63% center; }
  .movie-request::after { background: linear-gradient(180deg, rgba(10, 14, 19, .84) 0%, rgba(10, 14, 19, .8) 52%, rgba(10, 14, 19, .32) 100%); }
  .movie-panel { width: min(28rem, 90vw); padding: 2.6rem 0 3rem 1.35rem; }
  .movie-panel h1 { font-size: clamp(2.65rem, 13vw, 3.5rem); }
  .movie-form { grid-template-columns: 1fr; }
  .movie-form label { grid-column: 1 / -1; }
  .movie-form-actions { align-items: flex-start; flex-direction: column; }
  .movie-talk-option { align-items: flex-start; flex-direction: column; }
  .booking-days { gap: .25rem; }
  .booking-day { min-height: 4.5rem; }
  .booking-times { grid-template-columns: repeat(2, 1fr); }
  .screen-mark { top: 18%; right: 8%; bottom: auto; width: 76vw; opacity: .64; }
}

/* What We Do */
.what-page { background: var(--beige); }

.what-header {
  position: absolute;
  inset: 0 0 auto;
  z-index: 5;
}

.what-hero {
  position: relative;
  min-height: min(47rem, 90svh);
  overflow: hidden;
  background: #2d2925;
}

.what-hero > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.what-hero-wash {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(244, 239, 229, .96) 0%, rgba(244, 239, 229, .82) 6%, rgba(244, 239, 229, .42) 12%, rgba(244, 239, 229, .12) 18%, rgba(244, 239, 229, 0) 23%),
    linear-gradient(90deg, rgba(244, 239, 229, 1) 0%, rgba(244, 239, 229, .98) 34%, rgba(244, 239, 229, .75) 40%, rgba(244, 239, 229, .36) 46%, rgba(244, 239, 229, .10) 51%, rgba(244, 239, 229, 0) 55%);
}

/* Match the Home hero's single, three-second image arrival. */
.motion-intro .what-hero > img {
  opacity: 0;
  animation: hero-arrives 3s cubic-bezier(.22, .8, .24, 1) both;
}

.what-hero-copy {
  position: relative;
  z-index: 1;
  width: min(43rem, 52vw);
  padding: clamp(12rem, 25vh, 15rem) 1.25rem 5rem clamp(1.25rem, 8vw, 9.25rem);
}

.eyebrow {
  margin: 0 0 1.1rem;
  color: var(--oxblood);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.what-hero h1,
.what-intro h2,
.what-close h2 {
  margin: 0;
  font-family: Baskerville, Georgia, serif;
  font-weight: 400;
  letter-spacing: -.04em;
  line-height: .98;
}

.what-hero h1 { font-size: calc(clamp(2rem, 3.75vw, 4.4rem) - 4pt); }

.lede {
  max-width: 35rem;
  margin: 1.75rem 0 0;
  font-size: clamp(1rem, 1.28vw, 1.25rem);
  line-height: 1.45;
}

.what-intro {
  width: min(66rem, calc(100% - 2.5rem));
  margin: 0 auto;
  padding: clamp(5rem, 11vw, 10rem) 0 clamp(3.5rem, 7vw, 6rem);
}

.what-intro h2 { max-width: 58rem; font-size: clamp(2rem, 3.25vw, 3.7rem); }

.clearer-heading-mobile,
.clearer-body-mobile { display: none; }

.what-intro > p:last-child,
.what-intro > .clearer-body-desktop {
  max-width: 37.2rem;
  margin: 2rem 0 0 auto;
  font-size: clamp(1rem, 1.28vw, 1.18rem);
  line-height: 1.55;
}

.focuses {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(2rem, 5vw, 5rem);
  width: min(78rem, calc(100% - 2.5rem));
  margin: 0 auto;
  padding: 0 0 clamp(5rem, 11vw, 10rem);
}

.focuses article { border-top: 1px solid rgba(63, 65, 65, .36); padding-top: 1.2rem; }
.focus-number { margin: 0 0 2.3rem; color: var(--oxblood); font-family: Baskerville, Georgia, serif; font-size: 1.25rem; }
.focuses h3 { max-width: none; margin: 0; font-family: Baskerville, Georgia, serif; font-size: clamp(1.5rem, 2.15vw, 2.1rem); font-weight: 400; letter-spacing: -.03em; line-height: 1.05; }
.focuses article > p:last-child { margin: 1.1rem 0 0; font-size: 1rem; line-height: 1.55; }

.what-close {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 3rem;
  padding: clamp(4.5rem, 9vw, 8rem) max(1.25rem, calc((100vw - 66rem) / 2));
  color: var(--beige);
  background: var(--charcoal);
}

.what-close .eyebrow { color: #d6aa5e; }
.what-close > div { flex: 1 1 0; }
.what-close h2 { max-width: 36rem; font-size: clamp(2rem, 3.25vw, 3.55rem); }
.movie-own-line { display: block; margin-top: .08em; font-size: .74em; letter-spacing: -.025em; }
.what-close div > p { max-width: 35rem; margin: 1.2rem 0 0; font-size: 1.06rem; line-height: 1.5; }
.what-close .movie-trust { margin-top: 1.5rem; }
.what-close .movie-trust strong { color: #d6aa5e; }
.what-movie-link { flex: 0 0 min(26.5rem, 42%); color: var(--beige); font-family: Baskerville, Georgia, serif; font-size: 1.25rem; text-align: center; text-decoration: none; }
.movie-kicker { display: block; margin-bottom: .8rem; color: #fff; font-family: Baskerville, Georgia, serif; font-size: clamp(1.35rem, 2vw, 1.6rem); }
.what-movie-link img { display: block; width: 100%; filter: drop-shadow(0 .5rem .8rem rgba(0, 0, 0, .22)); }
.what-movie-link:focus-visible { outline: 2px solid #d6aa5e; outline-offset: .5rem; }
.movie-legal {
  position: absolute;
  right: max(1.25rem, calc((100vw - 66rem) / 2));
  bottom: .85rem;
  margin: 0;
  color: rgba(244, 239, 229, .58);
  font-family: Baskerville, Georgia, serif;
  font-size: .64rem;
  font-weight: 400;
  letter-spacing: .015em;
  line-height: 1.35;
  text-align: right;
}
.movie-legal a { color: inherit; text-decoration-color: rgba(244, 239, 229, .34); text-underline-offset: .16em; }
.movie-legal a:hover, .movie-legal a:focus-visible { color: #d6aa5e; text-decoration-color: currentColor; }
.movie-page-legal { z-index: 3; color: rgba(244, 239, 229, .58); }

/* How We Work closes on beige so the two offer sections do not run together. */
.work-movie-close {
  color: var(--charcoal);
  background: var(--beige);
  border-top: 1px solid rgba(63, 65, 65, .24);
}

.work-movie-close .movie-trust strong { color: #1f3d5a; }
.work-movie-close .what-movie-link { color: var(--charcoal); }
.work-movie-close .movie-kicker { color: #1f3d5a; }
.work-movie-close .what-movie-link:focus-visible { outline-color: #1f3d5a; }
.work-movie-close .movie-legal { color: rgba(63, 65, 65, .62); }
.work-movie-close .movie-legal a { text-decoration-color: rgba(63, 65, 65, .34); }
.work-movie-close .movie-legal a:hover, .work-movie-close .movie-legal a:focus-visible { color: var(--oxblood); }

/* How We Work */
.work-page { background: var(--beige); }

/* Insights */
.insights-page { background: var(--beige); }
.insights-header { position: absolute; inset: 0 0 auto; z-index: 5; }

/* About */
.about-page { background: var(--beige); }
.about-header { position: absolute; inset: 0 0 auto; z-index: 5; }
.about-hero { position: relative; min-height: clamp(45rem, 58vw, 54rem); overflow: hidden; }
.about-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; transform: none; }
.motion-intro .about-hero > img { opacity: 0; animation: hero-arrives 3s cubic-bezier(.22, .8, .24, 1) both; }
.about-hero-wash { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(244,239,229,.97) 0%, rgba(244,239,229,.87) 5%, rgba(244,239,229,.56) 9%, rgba(244,239,229,.16) 13%, rgba(244,239,229,0) 17%), linear-gradient(90deg, rgba(244,239,229,.99) 0%, rgba(244,239,229,.97) 26%, rgba(244,239,229,.75) 28%, rgba(244,239,229,.28) 32%, rgba(244,239,229,.10) 35%, rgba(244,239,229,0) 38%); }
.about-hero-copy { position: relative; z-index: 1; width: min(47rem, 56vw); padding: clamp(12rem, 25vh, 15rem) 0 5rem clamp(1.25rem, 8vw, 9.25rem); }
.about-hero h1, .about-intro h2, .about-story h2, .about-close h2 { margin: 0; font-family: Baskerville, Georgia, serif; font-weight: 400; letter-spacing: -.04em; line-height: .98; }
.about-hero h1 { font-size: calc(clamp(2rem, 3.75vw, 4.4rem) - 4pt); max-width: 44rem; }
.about-title-mobile { display: none; }
.about-hero .lede { max-width: 31rem; margin: 1.8rem 0 0; font-size: clamp(1rem, 1.28vw, 1.18rem); line-height: 1.55; }
.about-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .88fr); gap: clamp(3rem, 10vw, 10rem); width: min(66rem, calc(100% - 2.5rem)); margin: 0 auto; padding: clamp(5rem, 10vw, 8rem) 0; }
.about-intro h2, .about-story h2 { max-width: 39rem; font-size: clamp(2rem, 3.25vw, 3.7rem); }
.about-intro > p { max-width: 35rem; margin: 2.2rem 0 0; font-size: clamp(1rem, 1.28vw, 1.18rem); line-height: 1.55; }
.about-why { width: min(66rem, calc(100% - 2.5rem)); }
.what-intro h2.about-one-line-heading { width: min(80rem, calc(100vw - max(1.25rem, (100vw - 66rem) / 2) - 1.25rem)); max-width: none; font-size: clamp(2rem, 3.25vw, 3.7rem); white-space: nowrap; }
.about-beliefs { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(2rem, 5vw, 5rem); width: min(78rem, calc(100% - 2.5rem)); margin: 0 auto; padding: 0 0 clamp(5rem, 10vw, 8rem); }
.about-beliefs article { border-top: 1px solid rgba(63,65,65,.36); padding-top: 1.2rem; }
.about-beliefs h2 { margin: 0; font-family: Baskerville, Georgia, serif; font-size: clamp(1.5rem,2.15vw,2.1rem); font-weight: 400; letter-spacing: -.03em; line-height: 1.05; }
.about-beliefs p:last-child { margin: 1.1rem 0 0; font-size: 1rem; line-height: 1.55; }
.about-story { width: min(66rem, calc(100% - 2.5rem)); margin: 0 auto; padding: clamp(5rem, 10vw, 8rem) 0; border-top: 1px solid rgba(63,65,65,.24); }
.about-story > div:first-child { padding-bottom: clamp(2.7rem, 5vw, 4.4rem); }
.about-story h2 { max-width: none; white-space: nowrap; }
.about-bios { display: grid; gap: 2.4rem; width: min(43rem, 70%); margin-left: auto; }
.about-bios article { display: grid; grid-template-columns: minmax(10.5rem, .85fr) minmax(0, 1.45fr); gap: clamp(1.5rem, 3.4vw, 3rem); align-items: start; border-top: 1px solid rgba(63,65,65,.36); padding-top: 1.2rem; }
.about-bios h3 { margin: 0; font-family: Baskerville, Georgia, serif; font-size: clamp(1.5rem,2.15vw,2.1rem); font-weight: 400; letter-spacing: -.03em; line-height: 1.05; }
.about-bios p { margin: 0; font-size: 1rem; line-height: 1.55; }
.about-bios .about-role { margin: .5rem 0 0; color: var(--oxblood); font-size: .72rem; font-weight: 700; letter-spacing: .15em; line-height: 1.2; text-transform: uppercase; }
.about-close { padding: clamp(4rem, 8vw, 6.5rem) max(1.25rem, calc((100vw - 66rem) / 2)); color: var(--beige); background: var(--charcoal); }
.about-close h2 { max-width: 46rem; font-size: clamp(2rem, 3.25vw, 3.7rem); }
.about-close p { max-width: 38rem; margin: 2rem 0 0 auto; font-size: clamp(1rem, 1.28vw, 1.18rem); line-height: 1.55; }

.insights-hero {
  isolation: isolate;
  position: relative;
  min-height: min(47rem, 84svh);
  overflow: hidden;
  color: var(--charcoal);
  background: var(--beige);
}

.insights-header { position: absolute; inset: 0 0 auto; z-index: 3; width: 100%; box-sizing: border-box; background: transparent; }
.insights-hero > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: center 18%; transform: none; transform-origin: center; }
.insights-hero-wash {
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(244, 239, 229, 1) 0%, rgba(244, 239, 229, .99) 30%, rgba(244, 239, 229, .96) 35%, rgba(244, 239, 229, .72) 39%, rgba(244, 239, 229, .36) 43%, rgba(244, 239, 229, .12) 46%, rgba(244, 239, 229, 0) 48%);
}
.insights-hero-copy { width: min(43rem, 52vw); padding: clamp(12rem, 25vh, 15rem) 1.25rem 5rem clamp(1.25rem, 8vw, 9.25rem); }
.insights-hero .eyebrow { color: #d6aa5e; }
.insights-hero h1 {
  margin: 0;
  font-family: Baskerville, Georgia, serif;
  font-size: calc(clamp(2rem, 3.75vw, 4.4rem) - 4pt);
  font-weight: 400;
  letter-spacing: -.04em;
  line-height: 1;
}

.insights-intro {
  width: min(66rem, calc(100% - 2.5rem));
  margin: 0 auto;
  padding: clamp(5rem, 10vw, 8rem) 0 clamp(3.5rem, 7vw, 5.5rem);
}
.insights-intro h2,
.insights-topics h2 {
  margin: 0;
  font-family: Baskerville, Georgia, serif;
  font-weight: 400;
  letter-spacing: -.035em;
  line-height: 1;
}
.insights-intro h2 { max-width: 45rem; font-size: clamp(2rem, 3.25vw, 3.7rem); }
.insights-intro > p:last-child { max-width: 38rem; margin: 2rem 0 0 auto; font-size: clamp(1rem, 1.28vw, 1.18rem); line-height: 1.55; }

.insights-topics {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(2rem, 5vw, 5rem);
  width: min(78rem, calc(100% - 2.5rem));
  margin: 0 auto;
  padding: 0 0 clamp(5rem, 10vw, 8rem);
}
.insights-topics article { display:flex; flex-direction:column; border-top:1px solid rgba(63,65,65,.36); padding-top:1.2rem; }
.insights-topics h2 { min-height:3.15em; font-size:clamp(1.5rem,2.15vw,2.1rem); letter-spacing:-.03em; line-height:1.05; }
.insights-topics article > p:last-child { margin: 1.1rem 0 0; font-size: 1rem; line-height: 1.55; }
.more-link { display:inline-block; margin-top:auto; padding-top:1.5rem; color:var(--oxblood); font-family:Baskerville,Georgia,serif; font-size:1.2rem; text-decoration:none; }.more-link:hover,.more-link:focus-visible { color:var(--charcoal); text-decoration:underline; text-underline-offset:.25rem; }

.insights-close {
  padding: clamp(4rem, 8vw, 6.5rem) max(1.25rem, calc((100vw - 66rem) / 2));
  color: var(--charcoal);
  background: var(--warm-beige);
}
.insights-close h2 { max-width: 44rem; margin: 0; font-family: Baskerville, Georgia, serif; font-size: clamp(2rem, 3.25vw, 3.7rem); font-weight: 400; letter-spacing: -.035em; line-height: 1; }
.insights-close p { max-width: 38rem; margin: 2rem 0 0 auto; font-size: clamp(1rem, 1.28vw, 1.18rem); line-height: 1.55; }
.article-page { width:min(46rem,calc(100% - 2.7rem)); margin:0 auto; padding:5rem 0 8rem; }.article-intro { padding:3rem 0 5rem; border-bottom:1px solid rgba(63,65,65,.3); }.article-intro h1,.article-page article h2 { margin:0; font-family:Baskerville,Georgia,serif; font-weight:400; letter-spacing:-.04em; line-height:1; }.article-intro h1 { font-size:clamp(2.4rem,4vw,4.3rem); }.article-intro > p:last-child { margin:1.4rem 0 0; font-size:1.1rem; }.article-page article { padding:5rem 0; border-bottom:1px solid rgba(63,65,65,.3); }.article-page article h2 { font-size:clamp(2rem,3vw,3.2rem); }.article-page article > p:not(.eyebrow) { font-size:1.08rem; line-height:1.6; }.article-page article > p:not(.eyebrow):first-of-type { margin-top:2rem; }

.work-header { position: absolute; inset: 0 0 auto; z-index: 5; }

.work-hero {
  isolation: isolate;
  position: relative;
  min-height: min(48rem, 88svh);
  overflow: hidden;
  background: #d7cdbd;
}

.work-hero > img {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: none;
  transform-origin: center;
}

.motion-intro .work-hero > img,
.motion-intro .insights-hero > img {
  opacity: 0;
  animation: hero-arrives 3s cubic-bezier(.22, .8, .24, 1) both;
}

.work-hero-wash {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(244, 239, 229, 1) 0%, rgba(244, 239, 229, .97) 31%, rgba(244, 239, 229, .50) 37%, rgba(244, 239, 229, .10) 42%, rgba(244, 239, 229, 0) 46%);
}

.work-hero-copy {
  width: min(50rem, 55vw);
  padding: clamp(12rem, 25vh, 15rem) 1.25rem 5rem clamp(1.25rem, 8vw, 9.25rem);
}

.work-hero h1,
.work-intro h2,
.work-evidence h2,
.work-close h2 {
  margin: 0;
  font-family: Baskerville, Georgia, serif;
  font-weight: 400;
  letter-spacing: -.045em;
  line-height: .98;
}

.work-hero h1 { max-width: 55rem; font-size: calc(clamp(2rem, 3.75vw, 4.4rem) - 4pt); }
.work-hero .lede { max-width: 34rem; margin-top: 2rem; }

.work-intro {
  width: min(66rem, calc(100% - 2.5rem));
  margin: 0 auto;
  padding: clamp(4.5rem, 10vw, 9rem) 0 clamp(3.5rem, 7vw, 6.5rem);
}

.work-intro h2 { max-width: 52rem; font-size: clamp(2rem, 3.35vw, 3.8rem); }
.work-intro > p:last-child { max-width: 43rem; margin: 2rem 0 0 auto; font-size: clamp(1rem, 1.28vw, 1.18rem); line-height: 1.55; }

.work-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(2rem, 5vw, 5rem);
  width: min(78rem, calc(100% - 2.5rem));
  margin: 0 auto;
  padding-bottom: clamp(5rem, 11vw, 10rem);
}

.work-steps article { padding-top: 1.2rem; border-top: 1px solid rgba(63, 65, 65, .36); }
.work-steps .focus-number { margin-bottom: 2.3rem; }
.work-steps h3 { max-width: none; margin: 0; font-family: Baskerville, Georgia, serif; font-size: clamp(1.5rem, 2.15vw, 2.1rem); font-weight: 400; letter-spacing: -.03em; line-height: 1.05; }
.work-steps article > p:last-child { margin: 1.1rem 0 0; font-size: 1rem; line-height: 1.55; }

.work-evidence {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(16rem, .82fr);
  gap: clamp(2.5rem, 8vw, 9rem);
  align-items: start;
  padding: clamp(5rem, 10vw, 9rem) max(1.25rem, calc((100vw - 66rem) / 2));
  color: var(--charcoal);
  background: var(--charcoal);
}

.work-evidence .eyebrow { color: #d6aa5e; }
.work-evidence h2 { max-width: 29rem; font-size: clamp(2rem, 3.15vw, 3.55rem); }
.work-evidence > p { max-width: 31rem; margin: 2.15rem 0 0; font-size: 1.06rem; line-height: 1.55; }

.work-close { padding: clamp(5rem, 11vw, 10rem) max(1.25rem, calc((100vw - 66rem) / 2)); text-align: center; }
.work-close .eyebrow { margin-bottom: 1.3rem; }
.work-close h2 { font-size: clamp(2.2rem, 3.8vw, 4.2rem); }
.work-close > p { max-width: 36rem; margin: 1.5rem auto 0; font-size: 1.06rem; line-height: 1.55; }
.work-close a { display: inline-block; margin-top: 2.25rem; color: var(--oxblood); font-family: Baskerville, Georgia, serif; font-size: 1.35rem; text-underline-offset: .25rem; }
.work-close a:hover, .work-close a:focus-visible { color: var(--charcoal); }

@media (max-width: 760px) {
  .what-hero { min-height: 49rem; }
  .what-hero .lede br { display: none; }
  .what-hero > img { object-position: 70% center; }
  .what-hero-wash { background: linear-gradient(90deg, rgba(244, 239, 229, .99) 0%, rgba(244, 239, 229, .96) 38%, rgba(244, 239, 229, .78) 49%, rgba(244, 239, 229, .40) 60%, rgba(244, 239, 229, .10) 70%, rgba(244, 239, 229, 0) 78%); }
  .what-hero-copy { width: min(30rem, 88vw); padding: 10.5rem 0 4rem 1.35rem; }
  .what-intro { width: min(100% - 2.7rem, 36rem); }
  .what-intro > p:last-child { margin-left: 0; }
  .what-intro .clearer-heading-desktop,
  .what-intro .clearer-body-desktop { display: none; }
  .what-intro .clearer-heading-mobile { display: block; max-width: none; line-height: 1.06; }
  .what-intro .clearer-heading-mobile > span { display: block; }
  .what-intro .clearer-heading-mobile > span + span { margin-top: .36em; }
  .what-intro .clearer-body-mobile { display: block; max-width: 34rem; margin-top: 1.8rem; font-size: 1.08rem; line-height: 1.55; }
  .what-intro .clearer-body-mobile p { margin: 0; }
  .what-intro .clearer-body-mobile p + p { margin-top: .85rem; }
  .focuses { grid-template-columns: 1fr; gap: 2.8rem; width: min(100% - 2.7rem, 36rem); }
  .focus-number { margin-bottom: 1rem; }
  .what-close { display: block; padding: 4.5rem 1.35rem; }
  .what-movie-link { display: block; width: min(20rem, 100%); margin: 3rem auto 0; }
  .work-hero { min-height: 48rem; }
  .work-hero > img { object-position: 63% center; }
  .work-hero-wash { background: linear-gradient(90deg, rgba(244, 239, 229, .99) 0%, rgba(244, 239, 229, .97) 39%, rgba(244, 239, 229, .60) 48%, rgba(244, 239, 229, .15) 55%, rgba(244, 239, 229, 0) 62%); }
  .work-hero-copy { width: min(30rem, 88vw); padding: 10.5rem 0 4rem 1.35rem; }
  .what-hero h1, .work-hero h1 { font-size: calc(clamp(2.25rem, 9.8vw, 3.1rem) - 4pt); }
  .work-intro, .work-steps { width: min(100% - 2.7rem, 36rem); }
  .work-intro > p:last-child { margin-left: 0; }
  .work-steps { grid-template-columns: 1fr; gap: 2.8rem; }
  .work-steps .focus-number { margin-bottom: 1rem; }
  .work-evidence { grid-template-columns: 1fr; gap: 0; padding: 4.5rem 1.35rem; }
  .work-evidence > p { margin-top: 2rem; }
  .work-close { padding: 4.5rem 1.35rem; }
  .about-hero { min-height: 49rem; }
  .about-hero > img { object-position: 69% center; transform: none; }
  .about-hero-wash { background: linear-gradient(90deg, rgba(244,239,229,.99) 0%, rgba(244,239,229,.96) 38%, rgba(244,239,229,.76) 50%, rgba(244,239,229,.34) 63%, rgba(244,239,229,0) 77%); }
  .about-hero-copy { width: min(30rem, 88vw); padding: 10.5rem 0 4rem 1.35rem; }
  .about-hero h1 { font-size: calc(clamp(2.25rem, 9.8vw, 3.1rem) - 4pt); }
  .about-intro { grid-template-columns: 1fr; gap: 2rem; width: min(100% - 2.7rem, 36rem); padding: 4.5rem 0; }
  .about-intro > p { margin-top: 0; }
  .about-why { width: min(100% - 2.7rem, 36rem); }
  .what-intro h2.about-one-line-heading, .about-story h2 { white-space: normal; }
  .about-story { width: min(100% - 2.7rem, 36rem); padding: 4.5rem 0; }
  .about-story > div:first-child { padding-bottom: 2.7rem; }
  .about-bios { width: 100%; margin-left: 0; }
  .about-bios article { grid-template-columns: 1fr; gap: .9rem; }
  .about-beliefs { grid-template-columns: 1fr; gap: 2.8rem; width: min(100% - 2.7rem, 36rem); }
  .about-close { padding: 4.5rem 1.35rem; }
  .about-close p { margin: 2rem 0 0; }
  .insights-hero { min-height: 49rem; }
  .insights-hero > img { object-position: 68% 18%; }
  .insights-hero-wash { background: linear-gradient(180deg, rgba(244, 239, 229, 1) 0%, rgba(244, 239, 229, .95) 5%, rgba(244, 239, 229, .72) 10%, rgba(244, 239, 229, .30) 15%, rgba(244, 239, 229, 0) 20%), linear-gradient(90deg, rgba(244, 239, 229, 1) 0%, rgba(244, 239, 229, .99) 44%, rgba(244, 239, 229, .86) 50%, rgba(244, 239, 229, .55) 56%, rgba(244, 239, 229, .20) 61%, rgba(244, 239, 229, 0) 64%); }
  .insights-hero-copy { width: min(30rem, 88vw); padding: 10.5rem 0 4rem 1.35rem; }
  .insights-hero h1 { font-size: calc(clamp(2.25rem, 9.8vw, 3.1rem) - 4pt); }
  .insights-intro, .insights-topics { width: min(100% - 2.7rem, 36rem); }
  .insights-intro > p:last-child { margin-left: 0; }
  .insights-topics { grid-template-columns: 1fr; gap: 2.8rem; }
  .insights-close { padding: 4rem 1.35rem; }
}

@media (min-width: 761px) {
  .about-hero > img { inset: 0; width: 100%; transform: none; }
  .insights-hero > img { inset: auto 0 0 auto; width: auto; height: 97%; object-fit: contain; object-position: right bottom; transform: none; transform-origin: right bottom; }
  .movie-copy { transform: translateX(-4rem); }
  .focuses h3 { font-size: calc(clamp(1.5rem, 2.15vw, 2.1rem) - .5pt); }
  .insights-topics h2 { font-size: calc(clamp(1.5rem, 2.15vw, 2.1rem) - .5pt); }
}

.article-page { position:relative; }
.article-close { position:absolute; top:5.35rem; right:.15rem; z-index:2; color:var(--charcoal); font:2.2rem/1 Arial,sans-serif; text-decoration:none; }

.article-page article[hidden] { display:none; }.article-page article { padding-bottom:1.75rem; }.article-controls { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; margin:2rem 0 0; }.article-nav { grid-column:2; position:static; display:flex; flex-wrap:wrap; clear:both; justify-content:center; align-items:center; gap:.8rem 1.15rem; padding:0; }.article-close-bottom { position:static; grid-column:3; justify-self:end; font-size:1.7rem; }.article-nav a { color:var(--oxblood); font-family:Baskerville,Georgia,serif; font-size:1.2rem; line-height:1; text-decoration:none; }.article-nav a:hover,.article-nav a:focus-visible,.article-nav a[aria-current="page"] { color:var(--charcoal); text-decoration:underline; text-underline-offset:.3rem; }
.article-page article h3 { margin:2.4rem 0 0; font-family:Baskerville,Georgia,serif; font-size:1.45rem; font-weight:400; letter-spacing:-.02em; line-height:1.15; }.article-page article ul { margin:1.25rem 0 1.75rem; padding-left:1.25rem; font-size:1.08rem; line-height:1.6; }.article-page article li + li { margin-top:.5rem; }
.article-page article:not([hidden]) { animation: article-reveal .5s ease-out both; }
@keyframes article-reveal { from { opacity:0; } to { opacity:1; } }
@media (prefers-reduced-motion: reduce) { .article-page article:not([hidden]) { animation:none; } }

/* Services */
.services-page { background: var(--beige); }
.services-header { position: absolute; inset: 0 0 auto; z-index: 5; min-height: 6.8rem; border-bottom: 0; }
.services-directory-hero { position: relative; isolation: isolate; width: min(100%, 100rem); aspect-ratio: 1668 / 945; margin: 0 auto; overflow: hidden; background: #d7cdbd; }
.services-directory-image-wrap { position: absolute; inset: 0; z-index: 0; }
.services-directory-image { position: absolute; inset: 20px 0 -20px; z-index: 0; width: 100%; height: 100%; object-fit: cover; display: block; transform: scale(1.055); transform-origin: 76% 50%; }
.services-directory-wash { position: absolute; inset: 0; z-index: 2; pointer-events: none; background: linear-gradient(180deg, rgba(244, 239, 229, .97) 0%, rgba(244, 239, 229, .97) 6%, rgba(244, 239, 229, .87) 8%, rgba(244, 239, 229, .56) 10%, rgba(244, 239, 229, .16) 12%, rgba(244, 239, 229, 0) 15%), linear-gradient(90deg, rgba(244, 239, 229, 1) 0%, rgba(244, 239, 229, .94) 12%, rgba(244, 239, 229, .58) 18%, rgba(244, 239, 229, .18) 23%, rgba(244, 239, 229, 0) 28%); }
.services-hero-copy { position: absolute; z-index: 2; top: clamp(12rem, 25vh, 15rem); left: clamp(1.25rem, 8vw, 9.25rem); width: min(49%, 42rem); transform: none; }
.services-hero-copy h1, .services-intro h2, .service-group-heading h2, .service-card h3 { margin: 0; font-family: Baskerville, Georgia, serif; font-weight: 400; letter-spacing: -.04em; line-height: .98; }
.services-hero-copy h1 { max-width: 42rem; font-size: calc(clamp(2rem, 3.75vw, 4.4rem) - 4pt); }
.services-hero-copy .lede { max-width: 35rem; margin-left: .15rem; }
.services-hero-detail { margin: 1.65rem 0 0; font-size: clamp(1rem, 1.28vw, 1.18rem); line-height: 1.55; }
.services-hero-detail-lead { display: block; white-space: nowrap; }
.services-hero-detail-follow { display: block; max-width: min(12.5rem, 13vw); }
.services-directory-overlay { position: absolute; z-index: 3; top: calc(9.4% + 20px); left: 60.6%; width: 30.6%; height: 82.3%; box-sizing: border-box; padding: clamp(.72rem, 1.1vw, 1.18rem) clamp(.7rem, 1vw, 1.05rem); color: #e5c78d; font-size: clamp(.58rem, .84vw, .84rem); line-height: 1.15; letter-spacing: .055em; text-transform: uppercase; }
.services-directory-overlay ul { display: grid; grid-template-rows: repeat(7, 1fr); height: 100%; margin: 0; padding: 0; list-style: none; }
.services-directory-overlay li { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .7em; }
.services-directory-overlay li:nth-child(1) { transform: translateY(-3px); }
.services-directory-overlay li:nth-child(4) { transform: translateY(6px); }
.services-directory-overlay li:nth-child(5) { transform: translateY(8px); }
.services-directory-overlay li:nth-child(6) { transform: translateY(13px); }
.services-directory-overlay li:nth-child(7) { transform: translateY(11px); }
.services-directory-overlay li > span { min-width: 0; transform: translateX(15px); }
.services-directory-label-mobile { display: none; }
.services-directory-overlay li b { color: #f2d69a; font-weight: 500; letter-spacing: .14em; transform: translateX(-15px); }
.services-intro { width: min(66rem, calc(100% - 2.5rem)); margin: 0 auto; padding: clamp(5rem, 11vw, 10rem) 0 clamp(3.5rem, 7vw, 6rem); }
.services-intro .eyebrow { margin: 0 0 1.1rem; font-size: .72rem; font-weight: 700; line-height: 1; letter-spacing: .15em; text-transform: uppercase; }
.services-intro h2 { max-width: 58rem; font-size: clamp(2rem, 3.25vw, 3.7rem); }
.services-intro p { max-width: 37.2rem; margin: 2rem 0 0 auto; font-size: clamp(1rem, 1.28vw, 1.18rem); line-height: 1.55; }
.services-list { width: min(78rem, calc(100% - 2.5rem)); margin: 0 auto; }
.service-group { display: grid; grid-template-columns: minmax(13rem, .68fr) minmax(0, 2.32fr); gap: clamp(2rem, 5vw, 5.5rem); padding: clamp(4.6rem, 8vw, 7.4rem) 0; border-top: 1px solid rgba(63,65,65,.34); }
.service-group-last { border-bottom: 1px solid rgba(63,65,65,.34); }
.group-number, .service-number { margin: 0; color: var(--oxblood); font-size: .72rem; font-weight: 700; letter-spacing: .12em; }
.service-group-heading h2 { margin-top: 1.7rem; font-size: clamp(2rem, 3.25vw, 3.4rem); }
.service-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(2rem, 3.4vw, 3.6rem); align-items: start; }
.service-card { display: flex; flex-direction: column; min-height: 0; padding: 1.2rem 0 0; border-top: 1px solid rgba(63,65,65,.36); background: transparent; }
.service-card h3 { margin-top: clamp(1.8rem, 2.8vw, 2.8rem); font-size: clamp(1.55rem, 2.2vw, 2.25rem); }
.service-card > p:not(.service-number):not(.service-note) { margin: 1.25rem 0 0; font-size: .98rem; line-height: 1.58; }
.service-note { margin: 1.7rem 0 0; padding-top: 1.25rem; border-top: 1px solid rgba(63,65,65,.22); color: #4f5555; font-size: .88rem; line-height: 1.5; }
.service-note strong { color: var(--oxblood); letter-spacing: .04em; }
@media (min-width: 761px) {
  .site-header nav { left: clamp(20rem, 28vw, 28rem); gap: .65rem clamp(.6rem, .95vw, 1rem); max-width: 46rem; }
}

@media (min-width: 761px) and (max-width: 940px) {
  .site-header nav { left: 18rem; gap: .55rem; max-width: calc(100vw - 19rem); }
  .site-header nav a { font-size: .66rem; }
}

@media (max-width: 760px) {
  .services-header { position: relative; inset: auto; min-height: 4.55rem; }
  .services-directory-hero { display: flex; flex-direction: column; width: 100%; aspect-ratio: auto; overflow: visible; background: var(--beige); }
  .services-directory-image-wrap { position: relative; order: 2; height: min(125vw, 34rem); overflow: hidden; }
  .services-directory-image { inset: 0; object-position: 97% center; transform: none; }
  .services-directory-wash { display: none; }
  .services-hero-copy { position: relative; order: 1; top: auto; left: auto; width: min(100% - 2.7rem, 36rem); margin: 0 auto; padding: 4.6rem 0 3.2rem; transform: none; }
  .services-hero-copy h1 { font-size: calc(clamp(2.25rem, 9.8vw, 3.1rem) - 4pt); }
  .services-hero-copy .lede { margin: 1.7rem 0 0; }
  .services-hero-detail-lead { display: inline; white-space: normal; }
  .services-hero-detail-follow { display: inline; max-width: none; }
  .services-directory-overlay { top: 11.5%; left: 18.5%; width: 63.7%; height: 78%; padding: 1rem .85rem; font-size: clamp(.59rem, 2.05vw, .78rem); }
  .services-directory-overlay li { gap: .48em; }
  .services-directory-overlay li:nth-child(n) { transform: none; }
  .services-directory-overlay li > span { transform: none; }
  .services-directory-overlay li b { transform: none; }
  .services-intro { width: min(100% - 2.7rem, 36rem); padding: 4.3rem 0; }
  .services-intro p { margin: 1.7rem 0 0; }
  .services-list { width: min(100% - 2.7rem, 36rem); }
  .service-group { grid-template-columns: 1fr; gap: 2.3rem; padding: 4.3rem 0; }
  .service-group-heading h2 { margin-top: 1.4rem; }
  .service-grid { grid-template-columns: 1fr; }
  .service-card { min-height: 0; padding: 1.25rem 0 0; }
  .service-card h3 { margin-top: 2rem; }
}

/*
 * Shared mobile shell.  Desktop headers intentionally sit inside or over the
 * art-directed hero fields; on a phone that inherited positioning created
 * duplicate navigation, empty header bands, and occasional header overlap.
 * Every route now starts with the same compact, stationary LCM top shell.
 */
@media (max-width: 760px) {
  .site-header,
  .site-header.what-header,
  .site-header.work-header,
  .site-header.about-header,
  .site-header.insights-header,
  .site-header.services-header,
  .site-header.legal-header,
  .site-header.movie-header,
  .site-header.scroll-study-header,
  .site-header.scroll-study-header.is-home {
    position: fixed !important;
    inset: auto 0 auto 0 !important;
    top: 0 !important;
    right: 0 !important;
    bottom: auto !important;
    left: 0 !important;
    z-index: 50;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 4.55rem;
    margin: 0;
    padding: 1.1rem 1.35rem;
    border: 0;
    border-bottom: 1px solid rgba(63, 65, 65, .18);
    background: var(--beige) !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
  }

  .site-header .brand {
    flex: 0 1 auto;
    min-width: 0;
  }

  .site-header .mobile-menu-toggle {
    flex: 0 0 auto;
  }

  /* The source navigation becomes the menu panel only after the Menu button
     is used.  This prevents desktop links from ever appearing beside or over
     the mobile header. */
  .mobile-nav-ready .site-header > nav {
    display: none;
  }

  .mobile-nav-ready .site-header.menu-open > nav {
    display: flex;
  }

  .site-header.menu-open > nav {
    z-index: 11;
  }

  .site-header.scroll-study-header .brand-look,
  .site-header.scroll-study-header .brand-closely,
  .site-header.scroll-study-header .brand-company,
  .site-header.scroll-study-header .brand-tagline {
    color: var(--charcoal) !important;
  }

  .site-header.scroll-study-header .mobile-menu-toggle {
    border-color: rgba(63, 65, 65, .38) !important;
    color: var(--charcoal) !important;
    background: rgba(244, 239, 229, .78) !important;
  }

  .movie-header {
    border-bottom-color: rgba(244, 239, 229, .16) !important;
    background: #101419 !important;
  }

  .movie-header > nav {
    top: 4.55rem;
  }

  /* The home route used a desktop overlay header.  Once the shared phone
     header is in flow, remove the compensating negative margin and excess
     top space so the page begins cleanly beneath it. */
  #home {
    margin-top: 0 !important;
  }

  #home .hero-copy {
    padding-top: 5rem !important;
  }

  .hero-copy,
  .what-hero-copy,
  .work-hero-copy,
  .about-hero-copy,
  .insights-hero-copy {
    padding-top: 5rem;
  }

  /* Preserve a quiet, light reading field behind copy on every image-led
     mobile hero.  The What We Do field is deliberately strongest because its
     photograph carries the darkest detail behind the heading. */
  .hero-wash {
    background: linear-gradient(180deg, rgba(244, 239, 229, .99) 0%, rgba(244, 239, 229, .96) 47%, rgba(244, 239, 229, .82) 76%, rgba(244, 239, 229, .60) 100%);
  }

  .what-hero-wash {
    background: linear-gradient(180deg, rgba(244, 239, 229, .995) 0%, rgba(244, 239, 229, .98) 49%, rgba(244, 239, 229, .91) 78%, rgba(244, 239, 229, .78) 100%), linear-gradient(90deg, rgba(244, 239, 229, .99) 0%, rgba(244, 239, 229, .94) 67%, rgba(244, 239, 229, .56) 100%);
  }

  .work-hero-wash,
  .about-hero-wash,
  .insights-hero-wash {
    background: linear-gradient(180deg, rgba(244, 239, 229, .99) 0%, rgba(244, 239, 229, .96) 50%, rgba(244, 239, 229, .83) 79%, rgba(244, 239, 229, .62) 100%), linear-gradient(90deg, rgba(244, 239, 229, .99) 0%, rgba(244, 239, 229, .91) 63%, rgba(244, 239, 229, .44) 100%);
  }

  .movie-request::after {
    background: linear-gradient(180deg, rgba(10, 14, 19, .92) 0%, rgba(10, 14, 19, .84) 58%, rgba(10, 14, 19, .42) 100%);
  }
}

/* Mobile-only editorial labels remain absent from the approved desktop edition. */
.mobile-section-label { display: none; }
.mobile-category-strip { display: none; }

/*
 * Phone editorial layout: photographs are now clear, compact panels above
 * their related content.  The desktop art direction remains untouched.
 */
@media (max-width: 760px) {
  .mobile-category-strip {
    order: 0;
    display: flex;
    align-items: center;
    min-height: 3rem;
    margin: 0;
    padding: .72rem 1.35rem;
    box-sizing: border-box;
    color: var(--beige);
    background: var(--charcoal);
    font-family: Arial, Helvetica, sans-serif;
    font-size: .875rem;
    font-weight: 800;
    letter-spacing: .14em;
    line-height: 1;
    text-transform: uppercase;
  }

  .mobile-category-strip--light {
    color: var(--charcoal);
    background: var(--warm-beige);
  }

  .mobile-section-label {
    display: block;
    margin: 0 0 1rem;
    color: var(--oxblood);
    font-family: Arial, Helvetica, sans-serif;
    font-size: .67rem;
    font-weight: 700;
    letter-spacing: .14em;
    line-height: 1.2;
    text-transform: uppercase;
  }

  .hero,
  .what-hero,
  .work-hero,
  .about-hero,
  .insights-hero {
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: visible;
    background: var(--beige);
  }

  .hero > .hero-image,
  .what-hero > img,
  .work-hero > img,
  .about-hero > img,
  .insights-hero > img {
    position: relative;
    inset: auto;
    z-index: 0;
    order: 1;
    display: block;
    width: 100%;
    height: clamp(280px, 70vw, 320px);
    min-height: 0;
    object-fit: cover;
    opacity: 1 !important;
    animation: none !important;
    transform: none;
  }

  .hero > .hero-image { object-position: 78% 48%; }
  .what-hero > img { object-position: 72% 54%; }
  .work-hero > img { object-position: 58% 52%; }
  .about-hero > img { object-position: 52% 46%; }
  .insights-hero > img { object-position: 68% 43%; }

  .hero-wash,
  .what-hero-wash,
  .work-hero-wash,
  .about-hero-wash,
  .insights-hero-wash {
    display: none;
  }

  .hero-copy,
  .what-hero-copy,
  .work-hero-copy,
  .about-hero-copy,
  .insights-hero-copy {
    position: relative;
    inset: auto;
    z-index: 1;
    order: 2;
    width: min(calc(100% - 2.7rem), 36rem);
    margin: 0 auto;
    padding: 1.8rem 0 3.6rem !important;
    color: var(--charcoal);
    transform: none;
  }

  #home .hero-copy { padding-top: 1.8rem !important; }
  .mobile-section-label { display: none; }

  .hero-copy h1,
  .what-hero h1,
  .work-hero h1,
  .about-hero h1,
  .insights-hero h1 {
    font-size: calc(clamp(2.25rem, 9.8vw, 3.1rem) - 4pt);
  }

  .hero-copy .movie-slot { margin-top: 2.2rem; }
  .hero-replay { top: .3em; }

  .services-directory-hero {
    display: flex;
    flex-direction: column;
    min-height: 0;
    background: var(--beige);
  }

  .services-directory-image-wrap {
    order: 1;
    width: 100%;
    height: clamp(280px, 70vw, 320px);
  }

  .services-directory-image {
    height: 100%;
    object-position: 84% center;
  }

  .services-directory-wash { display: none; }

  .services-hero-copy {
    order: 2;
    width: min(calc(100% - 2.7rem), 36rem);
    margin: 0 auto;
    padding: 1.8rem 0 3.6rem;
  }

  .services-directory-overlay {
    top: 10%;
    left: 56%;
    width: 38%;
    height: 80%;
    padding: .7rem .55rem;
    font-size: clamp(.48rem, 1.7vw, .64rem);
  }

  .movie-request {
    display: flex;
    flex-direction: column;
    min-height: 0;
    background: #11151a;
  }

  .movie-theater {
    position: relative;
    inset: auto;
    order: 1;
    display: block;
    width: 100%;
    height: clamp(280px, 70vw, 320px);
    object-fit: cover;
    object-position: center 42%;
  }

  .movie-request::after { display: none; }

  .movie-panel {
    position: relative;
    inset: auto;
    z-index: 1;
    order: 2;
    width: min(calc(100% - 2.7rem), 36rem);
    margin: 0 auto;
    padding: .75rem 0 4.75rem;
    transform: none;
  }
}

/*
 * Mobile editorial correction — deliberately placed after the earlier phone
 * pass so the desktop edition and its art direction remain untouched.
 */
@media (max-width: 760px) {
  html { scroll-padding-top: 4.3rem; }

  .site-header,
  .site-header.what-header,
  .site-header.work-header,
  .site-header.about-header,
  .site-header.insights-header,
  .site-header.services-header,
  .site-header.legal-header,
  .site-header.movie-header,
  .site-header.scroll-study-header,
  .site-header.scroll-study-header.is-home {
    position: sticky !important;
    top: 0 !important;
    z-index: 50;
    min-height: 4.3rem;
    padding: .72rem 1.1rem;
  }

  .site-header .brand-mark { gap: .12em; }
  .site-header .brand-look,
  .site-header .brand-closely,
  .site-header .brand-company { font-size: 1.14rem; }
  .site-header .brand-tagline { margin-top: .16rem; font-size: .72rem; }
  .site-header .mobile-menu-toggle {
    min-width: 4.35rem;
    min-height: 2.35rem;
    padding: .45rem .5rem;
    border-color: rgba(63, 65, 65, .48);
    background: var(--beige);
    font-size: .63rem;
  }

  .site-header > nav,
  .movie-header > nav { top: 4.55rem; max-height: calc(100svh - 4.55rem); }
  .site-header.menu-open > nav { z-index: 51; }

  /* A persistent two-line section rail belongs to the mobile shell, not the
     approved desktop navigation.  It makes every section reachable without
     reopening the menu and identifies the current place in LCM burgundy. */
  .site-section-rail {
    position: fixed !important;
    top: 4.55rem !important;
    right: 0 !important;
    left: 0 !important;
    z-index: 49;
    display: grid !important;
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: .12rem .28rem;
    width: 100%;
    max-width: none;
    min-height: 3.4rem;
    margin: 0;
    padding: .48rem 1.1rem .45rem;
    box-sizing: border-box;
    border-bottom: 1px solid rgba(63, 65, 65, .18);
    background: var(--warm-beige);
    box-shadow: 0 3px 8px rgba(63, 65, 65, .06);
    backdrop-filter: blur(10px);
  }

  /* The stationary header and rail no longer take up document space. Reserve
     both heights so the page begins below the fixed top shell. */
  .site-section-rail + main { padding-top: 7.95rem; }

  .site-section-rail a {
    position: relative;
    display: block;
    min-width: 0;
    padding: .14rem .08rem .2rem;
    color: var(--charcoal);
    font-family: Arial, Helvetica, sans-serif;
    font-size: .58rem;
    font-weight: 700;
    line-height: 1.18;
    text-align: center;
    text-decoration: none;
  }

  /* The second row is deliberately staggered: each item rests between the
     two sections above it, rather than directly beneath one of them. */
  .site-section-rail a:nth-child(-n + 4) { grid-column: span 2; }
  .site-section-rail a:nth-child(5) { grid-row: 2; grid-column: 2 / span 2; }
  .site-section-rail a:nth-child(6) { grid-row: 2; grid-column: 4 / span 2; }
  .site-section-rail a:nth-child(7) { grid-row: 2; grid-column: 6 / span 2; }

  .site-section-rail a::after {
    position: absolute;
    right: 20%;
    bottom: 0;
    left: 20%;
    height: 1px;
    content: '';
    background: currentColor;
    opacity: 0;
    transform: scaleX(.4);
    transition: opacity .18s ease, transform .18s ease;
  }

  .site-section-rail a.active,
  .site-section-rail a:focus-visible { color: var(--oxblood); }
  .site-section-rail a.active::after,
  .site-section-rail a:focus-visible::after { opacity: 1; transform: scaleX(1); }
  .mobile-section-rail-ready { scroll-padding-top: 7.95rem; }
  .mobile-section-rail-ready .scroll-journey-section { scroll-margin-top: 7.95rem !important; }

  @media (orientation: landscape) {
    .site-section-rail {
      grid-template-columns: repeat(7, minmax(0, 1fr));
      min-height: 2.35rem;
      padding: .38rem .68rem;
    }
    .site-section-rail a {
      grid-row: auto;
      grid-column: auto !important;
      padding: .1rem 0 .18rem;
      font-size: .57rem;
      line-height: 1.1;
      white-space: nowrap;
    }
  }

  .site-header.movie-header {
    background: #101419 !important;
    border-bottom-color: rgba(244, 239, 229, .16);
  }
  .site-header.movie-header .brand-look,
  .site-header.movie-header .brand-closely,
  .site-header.movie-header .brand-company,
  .site-header.movie-header .brand-tagline { color: #fffdf8 !important; }
  .site-header.movie-header .mobile-menu-toggle {
    border-color: rgba(255, 253, 248, .58);
    color: #fffdf8;
    background: rgba(8, 12, 16, .42);
  }

  /* Full, clear photographs precede their respective copy blocks. */
  .hero > .hero-image,
  .what-hero > img,
  .work-hero > img,
  .about-hero > img,
  .insights-hero > img,
  .services-directory-image-wrap,
  .movie-theater {
    height: clamp(280px, 82vw, 320px);
  }

  .hero > .hero-image { object-position: 50% 38%; }
  .what-hero > img { object-position: 50% 52%; }
  .work-hero > img { object-position: 50% 47%; }
  .about-hero > img { object-position: 50% 44%; }
  .insights-hero > img { object-position: 50% 36%; }
  .services-directory-image { object-position: 66% 50%; }
  .movie-theater { object-position: 50% 42%; }

  /* Let headings choose sensible phone-width wraps instead of inheriting
     desktop line breaks.  Body paragraphs continue to flow normally. */
  .what-hero h1 br,
  .work-hero h1 br,
  .about-hero h1 br,
  .insights-hero h1 br,
  .services-hero-copy h1 br,
  .what-intro h2 br,
  .work-intro h2 br,
  .about-close h2 br,
  .insights-close h2 br,
  .service-group-heading h2 br,
  .service-card h3 br,
  .insights-topics h2 br { display: none; }

  .hero-copy h1,
  .what-hero h1,
  .work-hero h1,
  .about-hero h1,
  .insights-hero h1,
  .services-hero-copy h1 { max-width: 16.5ch; font-size: clamp(2.3rem, 10.4vw, 3rem); line-height: 1.02; }
  .work-intro h2 { max-width: 17ch; }
  .what-intro h2, .about-close h2, .insights-close h2 { max-width: 18ch; }
  .hero-copy .movie-prompt { max-width: 20rem; }

  /* Closed-by-default editorial accordion bars. */
  .mobile-accordion {
    margin: 0;
    padding: 0 !important;
    border-top: 1px solid rgba(63, 65, 65, .36) !important;
    background: transparent;
  }

  .mobile-accordion:last-child { border-bottom: 1px solid rgba(63, 65, 65, .36); }
  .mobile-accordion .accordion-heading { margin: 0 !important; padding: 0 !important; border: 0 !important; font: inherit; }
  .mobile-accordion .accordion-toggle {
    display: grid;
    grid-template-columns: 2.35rem minmax(0, 1fr) 1.25rem;
    align-items: center;
    gap: .55rem;
    width: 100%;
    min-height: 5rem;
    padding: .9rem 0;
    border: 0;
    color: var(--charcoal);
    background: transparent;
    font: inherit;
    text-align: left;
    cursor: pointer;
  }

  .mobile-accordion .accordion-number { color: var(--oxblood); font: 700 .67rem/1 Arial, Helvetica, sans-serif; letter-spacing: .12em; }
  .mobile-accordion .accordion-title { font-family: Baskerville, Georgia, serif; font-size: clamp(1.25rem, 5.6vw, 1.55rem); font-weight: 400; letter-spacing: -.025em; line-height: 1.05; }
  .mobile-accordion .accordion-symbol { justify-self: end; color: var(--oxblood); font: 1.7rem/.8 Baskerville, Georgia, serif; transition: transform .18s ease; }
  .mobile-accordion.is-open .accordion-symbol { transform: rotate(45deg); }
  .mobile-accordion .accordion-toggle:focus-visible { outline: 1px solid var(--oxblood); outline-offset: -.15rem; }
  .mobile-accordion .accordion-panel { padding: 0 0 1.55rem 2.9rem; }
  .mobile-accordion .accordion-panel > :first-child { margin-top: 0 !important; }
  .mobile-accordion .accordion-panel p { margin: 0; font-size: 1rem; line-height: 1.58; }
  .mobile-accordion .accordion-panel p + p,
  .mobile-accordion .accordion-panel p + a { margin-top: 1rem; }
  .mobile-accordion .accordion-panel a { display: inline-block; color: var(--oxblood); font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; text-underline-offset: .25rem; }

  .focuses, .work-steps, .about-beliefs, .insights-topics, .service-grid { display: block; width: min(100% - 2.7rem, 36rem); margin-right: auto; margin-left: auto; }
  .focuses, .work-steps, .about-beliefs, .insights-topics { gap: 0; }
  .service-grid { width: 100%; }
  .service-group { gap: 2rem; }
  .service-card .accordion-panel { padding-left: 2.9rem; }
  .service-card .service-note { padding-top: 1rem; border-top: 1px solid rgba(63, 65, 65, .22); }
  .insights-topics .mobile-accordion .accordion-panel { padding-right: 0; }
}

/* Final mobile correction: type is deliberately calm and spacious. These
   rules sit after earlier phone passes so they cannot disturb desktop. */
.site-section-rail { display: none; }

@media (max-width: 760px) {
  body,
  body * {
    word-spacing: normal;
  }

  p, a, label, button, input, textarea, select,
  .site-header nav a,
  .mobile-menu-toggle,
  .mobile-section-label,
  .eyebrow,
  h1, h2, h3,
  .accordion-title,
  .accordion-number {
    letter-spacing: normal !important;
  }

  h1, h2, h3, .accordion-title {
    hyphens: none;
    overflow-wrap: normal;
    text-wrap: balance;
  }

  .hero-copy h1,
  .what-hero h1,
  .work-hero h1,
  .about-hero h1,
  .insights-hero h1,
  .services-hero-copy h1,
  .movie-panel h1,
  .legal-main > h1,
  .article-intro h1 {
    max-width: 18ch;
    font-size: clamp(2.625rem, 10.5vw, 2.875rem) !important;
    line-height: 1.07;
  }

  .what-intro h2,
  .work-intro h2,
  .about-intro h2,
  .about-story h2,
  .about-close h2,
  .insights-intro h2,
  .insights-close h2,
  .services-intro h2,
  .service-group-heading h2,
  .what-close h2,
  .work-close h2,
  .article-page article h2,
  .article-reader article h2 {
    max-width: 19ch;
    font-size: clamp(2rem, 8.7vw, 2.25rem) !important;
    line-height: 1.12;
  }

  .mobile-accordion .accordion-title {
    font-size: clamp(1.2rem, 5.15vw, 1.42rem);
    line-height: 1.16;
    letter-spacing: 0 !important;
    word-spacing: .08em;
  }

  .mobile-accordion .accordion-symbol {
    font-size: 1.62rem;
    line-height: 1;
  }

  .mobile-accordion.is-open .accordion-symbol {
    transform: none;
  }

  .mobile-accordion.is-open .accordion-symbol::before {
    content: "−";
  }

  .mobile-accordion.is-open .accordion-symbol {
    font-size: 0;
  }

  .mobile-accordion.is-open .accordion-symbol::before {
    font-size: 1.62rem;
  }

  /* Disclosure carets make the collapsed and open states immediately clear. */
  .mobile-accordion .accordion-symbol {
    font-size: 0;
  }

  .mobile-accordion .accordion-symbol::before {
    content: "⌄";
    display: block;
    font: 1.62rem/1 Arial, Helvetica, sans-serif;
    transform: translateY(-.22em);
  }

  .mobile-accordion.is-open .accordion-symbol::before {
    content: "⌃";
    transform: translateY(.25em);
  }

  /* A single clear, opaque header stays in view; its menu makes the current
     place explicit without leaving desktop navigation visible on a phone. */
  .site-header > nav,
  .movie-header > nav {
    background: var(--beige) !important;
  }

  .site-header > nav a,
  .movie-header > nav a,
  .movie-header > nav a.nav-movie {
    position: relative;
    color: var(--charcoal) !important;
  }

  .site-header > nav a.active,
  .movie-header > nav a.active {
    color: var(--oxblood) !important;
  }

  .site-header > nav a::after,
  .movie-header > nav a::after {
    display: block;
    right: auto;
    bottom: .62rem;
    left: 0;
    width: 100%;
    background: var(--oxblood);
  }

  .site-header > nav a.active::after,
  .movie-header > nav a.active::after {
    opacity: 1;
    transform: scaleX(1);
  }

  /* Each approved image is now cropped around its actual subject rather than
     leaving the subject small at one side of the phone frame. */
  .hero > .hero-image { object-position: 78% 48%; }
  .what-hero > img { object-position: 72% 54%; }
  /* The working group sits well to the right in the source image.  Anchor the
     phone crop there so the table—not the empty floor—is centered. */
  .work-hero > img { object-position: 100% 50%; }
  /* Start the group at the swings and carry the crop to the far right so no
     one is cut from the portrait. */
  .about-hero > img { object-position: 100% 46%; }
  .insights-hero > img { object-position: 68% 43%; }

  .about-hero h1 { max-width: none; }
  .about-title-desktop { display: none; }
  .about-title-mobile { display: block; }
  .about-hero h1 span {
    display: block;
    white-space: nowrap;
  }
  .about-hero .lede { max-width: none; }
  .about-hero .lede br { display: none; }
  /* Keep the first About screen complete before the next editorial thought. */
  .about-hero-copy { padding-bottom: 8.5rem !important; }

  /* Let the About belief copy use the full phone column rather than preserve
     desktop line breaks.  This keeps each thought readable at phone width. */
  .about-beliefs p:last-child { max-width: none; }
  .about-beliefs p:last-child br { display: none; }

  /* This closing About statement loses its desktop breaks on a phone so its
     headline and supporting copy wrap with normal word spacing. */
  .about-close p { max-width: none; }
  .about-close p br { display: none; }

  /* The Free Discovery Video label is already clear in the light category
     strip.  Its removal lets the call to action begin higher, while this
     title card sits directly on the theater screen rather than lower in the
     long request page. */
  .movie-request > .screen-mark {
    z-index: 3;
    top: calc(3rem + 4.25rem + 10px);
    right: 8%;
    width: 54vw;
    color: #343638;
    opacity: .88;
    transform: perspective(1050px) rotateY(-7deg) rotateZ(-1deg) scaleX(1.07);
  }
  .movie-request > .screen-mark span {
    font-size: clamp(1.45rem, 6.45vw, 1.85rem);
    letter-spacing: -.035em !important;
  }
  .movie-request > .screen-mark small {
    margin-top: .35rem;
    font-size: clamp(.38rem, 1.65vw, .5rem);
    letter-spacing: .28em !important;
  }
  .movie-request > .screen-mark b {
    margin-top: .8rem;
    font-size: clamp(.36rem, 1.5vw, .46rem);
    letter-spacing: .3em !important;
  }

  /* Keep the two-part work headline composed as two sentences, then let its
     supporting copy use the full editorial reading column on a phone. */
  .work-hero h1 {
    max-width: none;
    font-size: clamp(2.35rem, 9.6vw, 2.5rem) !important;
  }
  .work-hero h1 br { display: inline; }
  .work-hero .lede { max-width: none; }
  .work-hero .lede br { display: none; }

  /* A completed Services group should end quietly.  Keep the group divider
     before the next heading, but remove the extra line that reads as an
     empty accordion entry beneath its final real service. */
  .service-grid .mobile-accordion:last-child { border-bottom: 0; }

  /* The work-method headline is deliberately two sentences; the explanatory
     paragraph should flow as a normal mobile reading measure. */
  .work-intro h2 br { display: inline; }
  .work-intro > p:not(.eyebrow) br { display: none; }

  /* Insights retains its three deliberate headline lines, while its supporting
     sentence reads across the same full phone column as the other sections. */
  .insights-hero h1 br { display: inline; }
  .insights-hero .lede { max-width: none; }
  .insights-hero .lede br { display: none; }
  /* Keep the first Insights screen self-contained on a phone. The practical
     library begins below the fold rather than peeking into the hero frame. */
  .insights-hero-copy { padding-bottom: 5.75rem !important; }
  /* This closing thought reads as two intentional lines. */
  .insights-close h2 {
    max-width: none;
    font-size: clamp(1.9rem, 8vw, 2.1rem) !important;
  }
  .insights-close h2 span {
    display: block;
    white-space: nowrap;
  }

  /* Legal footers stay readable on a phone: copyright above, then the three
     related legal links together as a centered second line. */
  .movie-legal {
    right: 1.35rem;
    left: 1.35rem;
    max-width: none;
    text-align: center;
  }
  .movie-legal a:first-of-type::before {
    content: "\A";
    white-space: pre;
  }

  .services-directory-image-wrap {
    height: clamp(17rem, 66vw, 18rem);
    overflow: hidden;
  }
  .services-directory-image {
    object-position: 52% 56%;
    transform: none;
    transform-origin: center;
  }
  .services-hero-copy {
    padding-bottom: 4.1rem;
  }
  .services-hero-copy h1 br { display: inline; }
  .services-hero-detail {
    display: block;
    max-width: 34rem;
    margin: 1.25rem 0 0;
    font-size: 1rem;
    line-height: 1.55;
  }
  .services-intro > p:not(.eyebrow) br { display: none; }
  .services-directory-overlay {
    display: block;
    top: 15%;
    left: 36%;
    width: 56%;
    height: 68%;
    padding: .46rem .42rem;
    font-size: clamp(.72rem, 2.3vw, .82rem);
  }
  .services-directory-overlay li { gap: .38em; }
  /* Mobile order and label: email is the more regular core service, and
     Social Media Marketing keeps the social line to one row. Desktop receives
     both in its dedicated revision. */
  .services-directory-overlay li:nth-child(6) { order: 2; }
  .services-directory-overlay li:nth-child(7) { order: 1; }
  .services-directory-overlay li:nth-child(n) { transform: none; }
  .services-directory-overlay li > span { transform: translateX(calc(.4rem + 9px)); }
  .services-directory-overlay li b { transform: translateX(calc(1.5rem + 6px)); }
  .services-directory-label-desktop { display: none; }
  .services-directory-label-mobile { display: inline; }
  .movie-theater { object-position: 100% 42%; }

  /* On-phone Insights uses an in-place reader. Closing it returns to the
     mounted list, so neither scroll position nor accordion state can jump. */
  .article-reader {
    position: fixed;
    z-index: 80;
    inset: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    color: var(--charcoal);
    background: var(--beige);
    animation: article-reader-arrives .5s ease both;
  }

  .article-reader-content {
    width: min(calc(100% - 2.7rem), 36rem);
    margin: 0 auto;
    padding: 5.3rem 0 3.5rem;
  }

  .article-reader article {
    padding: 0 0 2rem;
    border: 0;
  }

  .article-reader article > p:not(.eyebrow) {
    margin: 1.15rem 0 0;
    font-size: 1rem;
    line-height: 1.62;
  }

  .article-reader article h3 {
    margin: 2.25rem 0 0;
    font-family: Baskerville, Georgia, serif;
    font-size: 1.45rem;
    font-weight: 400;
    line-height: 1.18;
  }

  .article-reader article ul {
    padding-left: 1.2rem;
    font-size: 1rem;
    line-height: 1.58;
  }

  .article-reader-close,
  .article-reader-close-bottom {
    border: 0;
    color: var(--charcoal);
    background: transparent;
    font-family: Arial, Helvetica, sans-serif;
    cursor: pointer;
  }

  .article-reader-close {
    /* The opening X belongs to the article's top edge, not the reader chrome.
       It scrolls away with the article instead of sitting over body copy. */
    position: absolute;
    top: .88rem;
    right: 1.1rem;
    z-index: 2;
    width: 2.6rem;
    height: 2.6rem;
    font-size: 2rem;
    line-height: 1;
    pointer-events: auto;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
  }

  .article-reader-close:focus:not(:focus-visible) { outline: 0; }

  .article-reader-controls {
    display: grid;
    grid-template-columns: 3rem 1fr 3rem;
    align-items: center;
    gap: .85rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(63, 65, 65, .28);
  }

  .article-reader-controls button {
    min-width: 3rem;
    min-height: 3rem;
    border: 0;
    color: var(--oxblood);
    background: transparent;
    font: 2rem/1 Baskerville, Georgia, serif;
    cursor: pointer;
  }

  .article-reader-controls button:disabled { opacity: .28; cursor: default; }
  .article-reader-count { color: var(--charcoal); font: 700 1.35rem/1 Arial, Helvetica, sans-serif; text-align: center; }
  .article-reader-previous,
  .article-reader-next {
    display: grid !important;
    place-items: center;
    font-size: 0 !important;
  }
  .article-reader-previous::before,
  .article-reader-next::before {
    content: "";
    display: block;
    width: 1.15rem;
    height: 1.15rem;
    border: solid currentColor;
    border-width: 0 .19rem .19rem 0;
  }
  .article-reader-previous::before { transform: rotate(135deg); }
  .article-reader-next::before { transform: rotate(-45deg); }
  .article-reader-close-bottom { grid-column: 3; justify-self: end; }
  /* Safety net for a direct article URL while the reader retries its library. */
  .article-page .article-nav a {
    display: grid;
    min-width: 2.75rem;
    min-height: 2.75rem;
    place-items: center;
    font-size: 1.35rem;
  }

  @keyframes article-reader-arrives {
    from { opacity: 0; }
    to { opacity: 1; }
  }

  /* Home uses a deliberately compact closing invitation so the complete
     three-part thought and the Discovery Video callout remain in one composed
     phone view beneath the photograph. */
  #home .hero-copy {
    padding-top: 1.2rem !important;
    padding-bottom: 4rem !important;
  }

  #home .hero-copy h1 {
    max-width: none;
    font-size: clamp(1.6rem, 6.6vw, 1.75rem) !important;
    line-height: 1.05;
  }

  #home .hero-copy h1 span:nth-child(2n) {
    margin-bottom: .46em;
  }

  #home .home-final-desktop {
    display: none;
  }

  #home .home-final-mobile {
    display: block;
    font-size: clamp(1.42rem, 6.2vw, 1.65rem);
    line-height: 1.05;
    white-space: nowrap;
  }

  #home .hero-copy .movie-slot {
    margin-top: 1.25rem;
  }

  #home .movie-copy,
  #home .movie-action {
    align-items: center;
    text-align: center;
  }

  #home .movie-copy {
    gap: .28rem;
    width: 100%;
  }

  #home .movie-prompt {
    max-width: none;
    font-size: .92rem;
    font-weight: 700;
    line-height: 1.25;
  }

  #home .movie-detail {
    display: block;
    max-width: 19rem;
    font-size: .84rem;
    font-weight: 400;
    line-height: 1.25;
  }

  #home .movie-detail-first,
  #home .movie-detail-second {
    display: block;
  }

  #home .movie-marquee {
    width: min(15rem, 76vw);
  }

  /* On phones, Home opens as one complete editorial screen rather than
     waiting through the desktop's paced reveal. */
  .motion-intro#home .hero-image,
  .motion-intro#home h1 span,
  .motion-intro#home .movie-prompt,
  .motion-intro#home .movie-action {
    opacity: 1;
    animation: none;
  }

  #home .hero-replay {
    display: none;
  }

  .what-intro h2 {
    max-width: none;
  }

  /* The phone crop needs a lighter, more open treatment than the moody
     desktop photograph. */
  .what-hero > img {
    filter: brightness(1.15) contrast(.96);
  }

  .what-hero-copy {
    padding-bottom: 6rem !important;
  }
}

/* Final mobile top shell: the LCM wordmark and section rail form one
   stationary unit. The former Menu navigation is intentionally absent;
   the always-visible rail is the phone navigation. */
@media (max-width: 760px) {
  .site-header,
  .site-header.what-header,
  .site-header.work-header,
  .site-header.about-header,
  .site-header.insights-header,
  .site-header.services-header,
  .site-header.legal-header,
  .site-header.movie-header,
  .site-header.scroll-study-header,
  .site-header.scroll-study-header.is-home {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    bottom: auto !important;
    left: 0 !important;
    z-index: 60 !important;
    min-height: 2.75rem !important;
    padding: .35rem 1.1rem !important;
    border-bottom: 1px solid rgba(63, 65, 65, .18) !important;
    background: var(--warm-beige) !important;
  }

  .site-header .brand {
    flex: 1 1 100% !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: .9rem;
    width: 100% !important;
    margin: 0 !important;
    text-align: center;
  }

  .site-header .brand-mark {
    flex: 0 1 auto;
    min-width: 0;
    justify-content: flex-start;
  }

  .site-header .brand-look,
  .site-header .brand-closely,
  .site-header .brand-company {
    font-size: clamp(1.04rem, 4.4vw, 1.16rem) !important;
    line-height: 1 !important;
    font-weight: 700;
  }

  .site-header .brand-company small { font-weight: 700; }

  .site-header .brand-tagline {
    flex: 0 0 auto;
    width: auto;
    margin: 0 !important;
    font-size: clamp(.98rem, 4.1vw, 1.08rem) !important;
    line-height: 1.05;
    transform: translate(3px, 2px);
  }

  .site-header.movie-header .brand-look,
  .site-header.movie-header .brand-closely,
  .site-header.movie-header .brand-company,
  .site-header.movie-header .brand-tagline {
    color: var(--charcoal) !important;
  }

  .site-header .mobile-menu-toggle,
  .site-header > nav,
  .site-header.menu-open > nav,
  .mobile-nav-ready .site-header.menu-open > nav {
    display: none !important;
  }

  .site-section-rail {
    top: 2.75rem !important;
    z-index: 59 !important;
    display: block !important;
    min-height: 3.4rem;
  }

  .site-section-rail-row {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    width: 100%;
    box-sizing: border-box;
    padding: 0 .35rem;
  }
  /* These are two intentional text rows—not a grid of separate blocks.
     Space-between gives the four labels identical gaps without forcing a
     longer selected label onto a new row. */
  .site-section-rail-row--primary {
    justify-content: space-between;
  }
  .site-section-rail-row--secondary {
    justify-content: space-evenly;
    margin-top: .1rem;
  }
  /* Fine optical placement for the shorter, second navigation line.  The
     values use the rail's own character width so they remain proportional
     when the phone's text size changes. */
  .site-section-rail-row--secondary a[data-section-rail-link="insights"] {
    transform: translateX(-4ch);
  }
  .site-section-rail-row--secondary a[data-section-rail-link="about"] {
    transform: translateX(-2ch);
  }
  .site-section-rail-row--secondary a[data-section-rail-link="movie"] {
    transform: translateX(-3ch);
  }
  .site-section-rail-row a,
  .site-section-rail a:nth-child(1),
  .site-section-rail a:nth-child(4) {
    display: block;
    flex: 0 0 auto;
    min-width: auto;
    width: auto;
    padding: .14rem 0 .2rem !important;
    font-size: .73rem !important;
    white-space: nowrap;
    font-weight: 400;
    text-align: center !important;
  }
  .site-section-rail a::after { display: none !important; }
  .site-section-rail .section-rail-label {
    position: relative;
    display: inline-block;
  }
  .site-section-rail a.active .section-rail-label,
  .site-section-rail a:focus-visible .section-rail-label {
    font-weight: 700 !important;
  }
  .site-section-rail a.active,
  .site-section-rail a:focus-visible { color: var(--oxblood); }
  .site-section-rail a.active .section-rail-label::after,
  .site-section-rail a:focus-visible .section-rail-label::after {
    position: absolute;
    right: 0;
    bottom: -.25rem;
    left: 0;
    height: 1px;
    content: '';
    background: currentColor;
  }

  .mobile-category-strip { display: none !important; }

  /* The theater image begins just beneath the fixed shell. Place its title
     card at the same point on the physical screen that it occupied before
     the shared navigation was added. */
  .movie-page .movie-request { padding-top: 6.15rem !important; }
  .movie-page .movie-request > .screen-mark {
    top: calc(6.15rem + 4.875rem) !important;
  }
  .movie-journey > .screen-mark { top: 4.875rem !important; }

  #home { margin-top: 0 !important; }
  html,
  .mobile-section-rail-ready {
    scroll-padding-top: 6.15rem !important;
    scroll-snap-type: none;
  }
  .site-section-rail + main { padding-top: 6.15rem !important; }
  .mobile-section-rail-ready .scroll-journey-section {
    scroll-margin-top: 6.15rem !important;
    scroll-snap-align: none;
  }

  @media (orientation: landscape) {
    .site-section-rail {
      display: flex !important;
      align-items: center;
      justify-content: space-between;
      min-height: 2.35rem;
    }
    .site-section-rail-row {
      display: contents;
      padding: 0;
    }
    .site-section-rail-row a { font-size: .61rem !important; }
  }
}

/* Category names sit directly above every primary category headline. */
.category-label {
  display: block;
  margin: 0 0 .75rem;
  padding: 0;
  color: var(--oxblood);
  font-family: Arial, Helvetica, sans-serif;
  font-size: .875rem;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.movie-panel > .category-label { color: var(--gold); }
/* Keep the desktop request heading below the overlaid 6.65rem header. */
@media (min-width: 761px) {
  .movie-page .movie-panel {
    padding-top: max(7.65rem, 7vh);
  }
}
/* Keep the desktop Home headline in place without a category label. */
@media (min-width: 761px) {
  #home .hero-copy > .category-label { visibility: hidden; }
}
@media (max-width: 760px) {
  #home .hero-copy,
  .what-hero-copy,
  .services-hero-copy,
  .work-hero-copy,
  .insights-hero-copy,
  .about-hero-copy,
  .movie-panel {
    padding-top: 1.8rem !important;
  }
  .category-label { margin: 0 0 .75rem; }
}

/* Give Home a quiet beige tail before the next category begins. */
#home { margin-bottom: 3rem; }
@media (max-width: 760px) {
  #home {
    min-height: calc(100svh - 6.15rem);
    margin-bottom: 0;
  }
  #home .hero-copy { padding-bottom: 7rem !important; }
}

/* Match Home's quiet beige tail on the Services opening. */
.services-directory-hero { margin-bottom: 3rem; }
@media (max-width: 760px) {
  .services-directory-hero {
    min-height: calc(100svh - 6.15rem);
    margin-bottom: 0;
  }
  .services-hero-copy { padding-bottom: 7rem !important; }
}

/* Match Home's quiet beige tail on the How We Work opening. */
.work-hero { margin-bottom: 3rem; }
@media (max-width: 760px) {
  .work-hero {
    min-height: calc(100svh - 6.15rem);
    margin-bottom: 0;
  }
  .work-hero-copy { padding-bottom: 7rem !important; }
}

/* Match Home's quiet beige tail on the Insights opening. */
.insights-hero { margin-bottom: 3rem; }
@media (max-width: 760px) {
  .insights-hero {
    min-height: calc(100svh - 6.15rem);
    margin-bottom: 0;
  }
  .insights-hero-copy { padding-bottom: 7rem !important; }
}

/* Give About extra beige space to keep the next section out of view. */
.about-hero { margin-bottom: 3rem; }
@media (max-width: 760px) {
  .about-hero {
    min-height: calc(100svh - 3.15rem);
    margin-bottom: 0;
  }
  .about-hero-copy { padding-bottom: 10rem !important; }
}

/* Move the homepage subject toward the middle of the mobile photo panel. */
@media (max-width: 760px) {
  #home > .hero-image { object-position: 100% 48%; }
}
/* Request integration: preserve the existing visual language. */
.movie-form .request-consent { grid-column:1/-1; display:flex; gap:.65rem; align-items:flex-start; text-transform:none; letter-spacing:normal; font-weight:400; font-size:.8rem; line-height:1.5; }
.movie-form .request-consent input { width:1rem; min-width:1rem; height:1rem; margin:.2rem 0 0; accent-color:var(--gold); }
.request-consent a {color:inherit;text-underline-offset:.2em;}
.request-consent .request-required { margin-left:auto; color:#d8d1c5; font-size:calc(.72rem - 1pt); font-weight:700; letter-spacing:.08em; text-transform:uppercase; white-space:nowrap; }
.request-consent .request-required span { color:var(--gold); }
.request-status {grid-column:1/-1;font-size:.85rem;line-height:1.5;letter-spacing:normal;}
.movie-form .request-status {color:#e8e0d5;margin:.2rem 0;}
.request-status a {color:inherit;}
.request-honeypot {position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important;}
.movie-form button:focus-visible,.movie-talk-button:focus-visible,.schedule-button:focus-visible {outline:3px solid #e8c37c;outline-offset:4px;}
.movie-form button:active,.movie-talk-button:active,.schedule-button:active {transform:translateY(1px);}
.movie-form select:focus-visible {outline:2px solid var(--gold);outline-offset:2px;}
.lcm-request-dialog {width:min(540px,calc(100% - 2rem));padding:2.3rem;border:1px solid var(--gold);color:var(--charcoal);background:var(--warm-beige);box-shadow:0 1rem 4rem #0005;}
.lcm-request-dialog::backdrop {background:#202326aa;}
.lcm-request-dialog h2 {font:400 2rem/1.2 Baskerville,Georgia,serif; margin:0 2rem 1rem 0;}
.lcm-request-dialog p {line-height:1.65;}
.lcm-request-dialog a {color:var(--charcoal);text-underline-offset:.2em;}
.lcm-request-dialog button {cursor:pointer;font:inherit;}
.request-close {position:absolute;right:1rem;top:.6rem;font-size:2rem!important;border:0;background:none;color:var(--charcoal);}
.request-primary,.request-done {display:block;padding:.8rem 1rem;margin:1rem 0;text-align:center;background:var(--gold);border:1px solid var(--gold);font-weight:bold;color:#202326;text-decoration:none;}
.request-copy {padding:.6rem 1rem;border:1px solid var(--gold);background:transparent;color:var(--charcoal);}
.request-done {width:100%;}
.schedule-request form {display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.schedule-request label {display:block;font-size:.85rem;line-height:1.5;}
.schedule-request input,.schedule-request textarea,.schedule-request select {display:block;width:100%;padding:.65rem;margin-top:.35rem;font:inherit;color:var(--charcoal);background:#faf8f1;border:1px solid #a99a7d;}
.schedule-request .full-field,.schedule-request .request-consent,.schedule-request .schedule-button {grid-column:1/-1;}
.schedule-request .request-consent {display:flex;gap:.65rem;align-items:flex-start;}
.schedule-request .request-consent input {width:1rem;min-width:1rem;margin-top:.25rem;accent-color:var(--gold);}
.schedule-request .is-invalid {outline:2px solid var(--oxblood);}
@media(max-width:600px){.schedule-request form {grid-template-columns:1fr;}.lcm-request-dialog {padding:1.5rem;}.lcm-request-dialog h2 {font-size:1.8rem;}}

/* The three offer choices belong to the page flow, not the site header. */
.movie-panel .movie-paths {
  position: static;
  display: grid;
  width: 100%;
  max-width: none;
  padding: 0;
  flex-wrap: initial;
}
.movie-panel .movie-paths a,
.movie-panel .movie-paths button {
  min-width: 0;
  white-space: normal;
  letter-spacing: normal;
  text-transform: none;
}
.movie-panel .movie-paths a::after,
.movie-panel .movie-paths button::after { display: none; }
.movie-form .movie-paths-final .movie-choice-button:hover,
.movie-form .movie-paths-final .movie-choice-button:focus-visible { border-color: var(--gold); color: #f4efe5; background: rgba(200, 159, 80, .2); }

@media (min-width: 761px) {
  .movie-request .movie-theater {
    inset: auto 0 auto auto;
    top: 6.5rem;
    width: 80%;
    height: auto;
    object-fit: contain;
  }
  .movie-request::after {
    background: linear-gradient(90deg, #0a0e13 0%, rgba(10, 14, 19, .98) 35%, rgba(10, 14, 19, .85) 47%, rgba(10, 14, 19, 0) 64%);
  }
  .movie-request .movie-panel {
    width: min(57vw, 49rem);
    padding-left: clamp(2rem, 5vw, 5rem);
  }
  .movie-request .movie-intro,
  .movie-request .movie-reassurance { max-width: 42rem; }
  .movie-request .movie-paths { gap: .55rem; margin-top: 1rem; }
  .movie-request .movie-paths a,
  .movie-request .movie-paths button { min-height: 4.5rem; padding: .65rem .7rem; }
  .movie-request .movie-form { gap: .65rem .8rem; margin-top: 1.1rem; }
  .movie-request .screen-mark { top: clamp(13.5rem, 26svh, 16rem); right: 6%; width: 31vw; }
  .movie-request .screen-mark span { font-size: clamp(2.6rem, 5vw, 4.4rem); }
}

@media (max-width: 760px) {
  .movie-paths-final .movie-choice-button { min-height: 5.6rem; flex-direction: row; justify-content: flex-start; gap: .85rem; padding: .7rem .9rem; text-align: left; }
  .movie-paths-final .movie-choice-button img { flex: 0 0 auto; width: 2.7rem; height: 2.7rem; margin: 0; }
  .movie-paths-final .movie-choice-button strong { max-width: none; }
  .request-consent { flex-wrap: wrap; }
  .request-consent .request-required { width: 100%; margin-left: 1.65rem; }
}

/* Persistent Home message: the complete offer is available on first paint. */
#home .home-direct-copy { width: min(48rem, 58vw); }
#home .home-direct-copy h1 {
  max-width: none;
  font-size: clamp(2.1rem, 3.6vw, 4rem);
  line-height: 1.06;
  letter-spacing: normal;
}
#home .home-direct-copy h1 span { margin: 0; }
/* Keep the original vertical space so smaller signature text does not pull body copy up. */
#home .home-direct-copy h1 span.home-signature {
  font-size: .6em;
  margin-top: 1.666667em;
  min-height: 1.766667em;
}
#home .home-offer { max-width: 30rem; margin-top: 1.55rem; font-size: 1.05rem; line-height: 1.5; }
#home .home-offer p { font: inherit; }
#home .home-benefit { margin: 0; }
#home .home-request-phrase { white-space: nowrap; }
#home .home-invitation,
#home .home-reassurance { margin: 1rem 0 0; }
#home .home-reassurance-close { white-space: nowrap; }
#home .home-discovery-link { display: block; width: fit-content; max-width: 100%; margin: 1rem auto 0; }
#home .home-discovery-link:focus-visible { outline: 2px solid var(--oxblood); outline-offset: .3rem; }
#home .home-discovery-link .movie-marquee { width: min(24rem, 100%); margin: 0; }
@media (max-width: 760px) {
  #home .home-direct-copy { width: min(calc(100% - 2.7rem), 36rem); }
  #home .home-direct-copy h1 { font-size: clamp(1.9rem, 7.8vw, 2.65rem) !important; line-height: 1.08; }
  #home .home-direct-copy h1 span:nth-child(2n) { margin: 0; }
  #home .home-direct-copy h1 span.home-signature { margin-top: 1.666667em; min-height: 1.8em; }
  #home .home-offer { max-width: 30rem; margin-top: 1.4rem; font-size: 1rem; }
  #home .home-discovery-link .movie-marquee { width: min(20rem, 100%); }
}

/* Give Home’s closing phrase its own desktop line, clear of the photograph. */
@media (min-width: 761px) {
  #home .home-benefit-ending { display: block; }
}

/* Shared Discovery Video ads: one heading line and a clearer invitation. */
.what-close.discovery-video-ad h2 { white-space: nowrap; }
.what-close.discovery-video-ad .movie-own-line { display: inline; margin-top: 0; }
.what-close.discovery-video-ad div > .movie-question { font-size: calc(1.06rem + 2pt); }
.what-close.discovery-video-ad .movie-trust { color: #d6aa5e; }
@media (max-width: 760px) {
  .what-close.discovery-video-ad h2 { max-width: none; font-size: clamp(1.35rem, 5.7vw, 2.25rem) !important; }
}

/* Approved Discovery Video ad design, shared by every existing ad. */
.what-close.discovery-video-ad {
  isolation: isolate;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(16rem, 1fr);
  column-gap: 3rem;
  row-gap: 0;
  align-items: start;
  background: #000;
}
.what-close.discovery-video-ad .movie-ad-visual { position: absolute; z-index: -2; inset: 0; pointer-events: none; }
.what-close.discovery-video-ad .movie-ad-theater {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: right center;
}
.what-close.discovery-video-ad .movie-ad-screen {
  position: absolute;
  top: 31%;
  right: 9.3%;
  width: 36%;
  color: #3f4141;
  text-align: center;
  transform: translateY(-50%) perspective(1050px) rotateY(-7deg) rotateZ(-1deg);
}
.what-close.discovery-video-ad .movie-ad-screen span,
.what-close.discovery-video-ad .movie-ad-screen small,
.what-close.discovery-video-ad .movie-ad-screen b { display: block; }
.what-close.discovery-video-ad .movie-ad-screen span { font: 400 clamp(2rem, 3.6vw, 4rem)/.9 Baskerville, Georgia, serif; letter-spacing: -.04em; }
.what-close.discovery-video-ad .movie-ad-screen small { margin-top: .6rem; font-size: clamp(.5rem, .65vw, .75rem); font-weight: 700; letter-spacing: .38em; }
.what-close.discovery-video-ad .movie-ad-screen b { margin-top: .9rem; font-size: clamp(.48rem, .6vw, .7rem); font-weight: 700; letter-spacing: .4em; }
.what-close.discovery-video-ad::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  content: "";
  pointer-events: none;
  background: linear-gradient(90deg, #000 0%, rgba(0,0,0,.98) 28%, rgba(0,0,0,.92) 38%, rgba(0,0,0,.65) 48%, rgba(0,0,0,.1) 60%, transparent 72%);
}
.what-close.discovery-video-ad > .movie-ad-copy { display: contents; }
.what-close.discovery-video-ad .movie-ad-copy > * { grid-column: 1; }
.what-close.discovery-video-ad .movie-ad-copy > h2 { grid-column: 1 / -1; max-width: none; color: var(--gold); }
.what-close.discovery-video-ad .movie-own-line { font-size: 1em; letter-spacing: inherit; }
.what-close.discovery-video-ad .movie-trust { grid-row: 6; }
.what-close.discovery-video-ad > .what-movie-link {
  grid-column: 1;
  grid-row: 7;
  justify-self: start;
  width: min(24rem, 100%);
  margin: 1.25rem 0 0;
}
.what-close.discovery-video-ad .movie-legal { z-index: 1; }
@media (max-width: 760px) {
  .what-close.discovery-video-ad { display: block; padding: 0 1.35rem 4.5rem; }
  .what-close.discovery-video-ad h2 {
    position: absolute;
    bottom: calc(100% + 1rem);
    left: 0;
    z-index: 1;
    width: 100%;
    margin: 0;
    font-size: clamp(1rem, 5.7vw, 2rem) !important;
    font-weight: 700;
    line-height: 1.1;
    white-space: normal;
    text-shadow: 0 1px 4px #000;
  }
  .what-close.discovery-video-ad .movie-ad-visual {
    position: relative;
    display: block;
    width: calc(100% + 2.7rem);
    height: clamp(280px, 82vw, 320px);
    margin: 0 -1.35rem;
  }
  .what-close.discovery-video-ad .movie-ad-screen { top: 31%; right: 15%; width: 40%; }
  .what-close.discovery-video-ad .movie-ad-screen span { font-size: clamp(1.1rem, 5vw, 1.7rem); }
  .what-close.discovery-video-ad .movie-ad-screen small { margin-top: .35rem; font-size: .45rem; letter-spacing: .28em; }
  .what-close.discovery-video-ad .movie-ad-screen b { margin-top: .5rem; font-size: .42rem; letter-spacing: .3em; }
  .what-close.discovery-video-ad::before { background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.08) 11rem, #000 21rem); }
  .what-close.discovery-video-ad > .movie-ad-copy {
    position: relative;
    display: block;
    max-width: 36rem;
    margin: 0 auto;
    padding-top: .75rem;
  }
  .what-close.discovery-video-ad .movie-ad-copy > .movie-question { margin-top: 0; }
  .what-close.discovery-video-ad > .what-movie-link { display: block; width: min(20rem, 100%); margin: 1.5rem auto 0; }
}

@media (min-width: 761px) {
  .what-close.discovery-video-ad .movie-legal { right: 1rem; }
}

/* Final desktop photo pass: clear tops, with reading support only at the side. */
@media (min-width: 761px) {
  .what-hero-wash {
    background: linear-gradient(90deg, rgba(244,239,229,1) 0%, rgba(244,239,229,.98) 34%, rgba(244,239,229,.84) 40%, rgba(244,239,229,.48) 46%, rgba(244,239,229,.14) 51%, rgba(244,239,229,0) 55%);
  }
  .work-hero-wash {
    background: linear-gradient(90deg, rgba(244,239,229,1) 0%, rgba(244,239,229,.97) 31%, rgba(244,239,229,.50) 37%, rgba(244,239,229,.10) 42%, rgba(244,239,229,0) 46%);
    /* Keep the upper photograph clear; restore side support before the copy. */
    -webkit-mask-image: linear-gradient(180deg, transparent 0, transparent 6.65rem, #000 10rem);
    mask-image: linear-gradient(180deg, transparent 0, transparent 6.65rem, #000 10rem);
  }
  .about-hero-wash {
    background: linear-gradient(90deg, rgba(244,239,229,.99) 0%, rgba(244,239,229,.97) 26%, rgba(244,239,229,.75) 28%, rgba(244,239,229,.28) 32%, rgba(244,239,229,.10) 35%, rgba(244,239,229,0) 38%);
  }
  /* Contour the paragraph's right edge around the man's hair and shoulder. */
  .services-hero-detail { width: min(32rem, 42vw); }
  .services-hero-detail::before {
    content: "";
    float: right;
    width: calc(100% - min(12.5rem, 13vw));
    height: 22em;
    shape-outside: polygon(12% 0, 100% 0, 100% 100%, 0 100%, 0 35%, 6% 16%);
    shape-margin: .4rem;
  }
  .services-hero-detail-lead,
  .services-hero-detail-follow { display: inline; white-space: normal; max-width: none; }
}

.services-desktop-break { display: none; }
@media (min-width: 761px) {
  .services-desktop-break { display: inline; }
}

.insights-close h2 span { display: block; }
@media (max-width: 760px) {
  .insights-close h2 { font-size: clamp(1.15rem, 5.35vw, 1.9rem) !important; }
}

.about-close { color: var(--charcoal); background: var(--warm-beige); }

.movie-paths .movie-availability {
  display: block;
  margin-top: .45rem;
  color: #d8d1c5;
  font: 400 .75rem/1.4 Arial, Helvetica, sans-serif;
  letter-spacing: normal;
  text-transform: none;
}

/* Three clear, warm invitations before the separate custom-video request. */
.discovery-choice-hub .movie-panel h1 { line-height: 1.04; }
.discovery-choice-hub .movie-intro { max-width: 34rem; }
.discovery-options { position: static; display: grid; grid-auto-rows: 1fr; width: 100%; max-width: none; gap: 1.4rem; margin-top: 1.55rem; padding: 0; }
.discovery-option {
  display: flex;
  align-items: center;
  gap: 1rem;
  min-height: 6.75rem;
  padding: 1rem 1.2rem;
  border: 1px solid #c9bda5;
  border-radius: .25rem;
  background: var(--warm-beige);
  color: var(--charcoal);
  text-align: left;
  text-decoration: none;
  text-transform: none;
  letter-spacing: normal;
  white-space: normal;
  font-weight: 400;
  transition: background .18s ease, border-color .18s ease;
}
.discovery-option::after { display: none; }
.discovery-option-recommended { border: 2px solid var(--gold); }
.discovery-option img { flex: 0 0 auto; width: 3.1rem; height: 3.1rem; }
.discovery-option strong { display: block; font: 700 clamp(1.25rem, 1.7vw, 1.65rem)/1.15 Baskerville, Georgia, serif; }
.discovery-option p, .discovery-option-description { display: block; margin: .4rem 0 0; font: .9rem/1.45 Arial, Helvetica, sans-serif; }
.discovery-recommendation { color: #73501b; font-weight: 700; white-space: nowrap; }
.discovery-option:not(:disabled):hover { color: var(--charcoal); background: #f4ecdd; border-color: var(--gold); }
.discovery-option:focus-visible { color: var(--charcoal); outline: 3px solid var(--gold); outline-offset: 4px; background: #f4ecdd; }
.discovery-options-back { display: inline-block; margin-top: 1.2rem; color: #e8e0d5; font: .85rem/1.5 Arial, Helvetica, sans-serif; text-underline-offset: .2em; }
.discovery-request-actions button { width: 100%; min-height: 3.25rem; }
@media (min-width: 761px) {
  .discovery-choice-hub .movie-panel { width: min(51vw, 47rem); padding-bottom: 5rem; }
  .discovery-choice-hub .discovery-options { width: 75%; }
  .discovery-intro-ending { display: block; }
  /* Natural image proportions keep the enlarged audience and screen together. */
  .discovery-choice-hub .movie-theater { width: 100%; }
  .discovery-choice-hub .screen-mark {
    top: calc(8rem + 17.4vw);
    right: 7.8%;
    width: 39%;
    transform: translateY(-50%) perspective(1050px) rotateY(-7deg) rotateZ(-1deg);
  }
}
@media (max-width: 760px) {
  .discovery-option { gap: .8rem; padding: 1rem; }
  .discovery-option img { width: 2.65rem; height: 2.65rem; }
  .discovery-option strong { font-size: 1.4rem; }
  .discovery-choice-hub .movie-panel h1 { font-size: clamp(2.3rem, 8.4vw, 3rem); }
}
@media (prefers-reduced-motion: reduce) {
  .discovery-option { transition: none; }
}

.discovery-option:disabled { opacity: 1; cursor: default; font-family: inherit; }

/* The custom request ends with one clear invitation beneath the information fields. */
.discovery-request-page .discovery-request-actions button {
  background: var(--gold);
  border-color: var(--gold);
  color: var(--charcoal);
  font: 700 1.25rem/1.2 Baskerville, Georgia, serif;
  letter-spacing: normal;
  text-transform: none;
}
.discovery-request-page .discovery-request-actions button:not(:disabled):hover,
.discovery-request-page .discovery-request-actions button:focus-visible { background: #d8b56c; border-color: var(--gold); color: var(--charcoal); }

@media (min-width: 761px) {
  .discovery-request-page .movie-theater { width: 100%; top: 13.3rem; }
  .discovery-request-page .screen-mark {
    top: calc(14.8rem + 17.4vw);
    right: 7.8%;
    width: 39%;
    transform: translateY(-50%) perspective(1050px) rotateY(-7deg) rotateZ(-1deg);
  }
}

/* A lighter, compact custom-video request, with the established Back control. */
.discovery-request-page .movie-form { column-gap: 1.4rem; margin-top: calc(2rem + 25px); }
.discovery-request-page .discovery-name-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem; grid-column: 1 / -1; }
.discovery-request-page .discovery-phone-fields { display: grid; grid-template-columns: minmax(0, 1fr) 4.75rem; gap: .9rem; }
.discovery-request-page .discovery-name-fields label,
.discovery-request-page .discovery-phone-fields label { grid-column: auto; min-width: 0; }
.discovery-request-page .movie-form input,
.discovery-request-page .movie-form select,
.discovery-request-page .movie-form select option {
  color: var(--charcoal);
  background-color: var(--warm-beige);
  border-color: #b6a88d;
  color-scheme: light;
  caret-color: var(--charcoal);
}
.discovery-request-page .movie-form select { appearance: auto; background-image: none; }
.discovery-request-page .movie-form input::placeholder { color: #686457; }
.discovery-request-page .movie-form input:hover,
.discovery-request-page .movie-form input:focus,
.discovery-request-page .movie-form select:focus { color: var(--charcoal); background-color: var(--warm-beige); border-color: var(--gold); }
.discovery-request-page .movie-form input:hover::placeholder,
.discovery-request-page .movie-form input:focus::placeholder { color: #686457; }
.discovery-request-page .movie-form input.is-invalid,
.discovery-request-page .movie-form select.is-invalid { border-color: #aa4242; box-shadow: 0 0 0 2px #aa424244; }
.discovery-request-page .movie-form input:-webkit-autofill,
.discovery-request-page .movie-form input:-webkit-autofill:hover,
.discovery-request-page .movie-form input:-webkit-autofill:focus,
.discovery-request-page .movie-form input:-webkit-autofill:active,
.discovery-request-page .movie-form select:-webkit-autofill {
  -webkit-text-fill-color: var(--charcoal) !important;
  -webkit-box-shadow: 0 0 0 1000px var(--warm-beige) inset !important;
  box-shadow: 0 0 0 1000px var(--warm-beige) inset !important;
  background-color: var(--warm-beige) !important;
  caret-color: var(--charcoal);
  color-scheme: light;
}
.discovery-request-page .discovery-request-actions { justify-content: center; }
.discovery-request-page .discovery-request-actions button { width: fit-content; max-width: 100%; padding-inline: 1.35rem; }
.discovery-back-button { display: inline-flex; align-items: center; justify-content: center; min-width: 92px; margin-top: 1.2rem; padding: 10px 14px; border: 1px solid #8e6c34; color: #302e2b; background: var(--warm-beige); font: 700 12px/1 Arial, sans-serif; letter-spacing: .11em; text-decoration: none; text-transform: uppercase; }
.discovery-back-button:hover,
.discovery-back-button:focus-visible { background: #f4ecdd; color: #302e2b; }
.discovery-back-button:focus-visible { outline: 3px solid #cfb377; outline-offset: 5px; }
@media (min-width: 761px) {
  .discovery-request-page .movie-panel h1 { font-size: clamp(2rem, 3.5vw, 3.8rem); white-space: nowrap; }
}
@media (max-width: 760px) {
  .discovery-request-page .discovery-phone-fields { grid-column: 1 / -1; }
  .discovery-request-page .movie-panel h1 { max-width: none; font-size: clamp(2rem, 8.4vw, 2.8rem) !important; white-space: normal; }
}

.discovery-request-page .request-status:empty { display: none; }

@media (min-width: 761px) {
  .discovery-request-page .movie-form { width: 80%; }
  .discovery-request-page .discovery-copy-line { display: block; }
}

/* Copyright follows the viewport edge on every screen size. */
.movie-legal,
.what-close.discovery-video-ad .movie-legal {
  right: 1rem;
  left: auto;
  max-width: calc(100% - 2rem);
  text-align: right;
}
.discovery-decision { display: block; }
.discovery-request-page .movie-form select,
.discovery-request-page .movie-form select option { background-image: none; }

/* Discovery request receipt */
.discovery-confirmation { width: min(600px, calc(100% - 2rem)); max-height: calc(100dvh - 2rem); overflow-y: auto; padding: 1.4rem 1.5rem; border: 1px solid #c9bda5; border-radius: .25rem; background: var(--warm-beige); color: var(--charcoal); }
.discovery-confirmation-header { display: flex; align-items: center; gap: 1rem; padding-right: 1.5rem; }
.discovery-confirmation-icon { flex: 0 0 auto; width: 3.1rem; height: 3.1rem; }
.discovery-confirmation h2 { margin: 0; font: 700 clamp(1.6rem, 2.2vw, 2rem)/1.15 Baskerville, Georgia, serif; }
.discovery-confirmation-copy { margin-left: 4.1rem; }
.discovery-confirmation p { margin: .8rem 0 0; font: 1rem/1.5 Arial, Helvetica, sans-serif; white-space: pre-line; }
.discovery-confirmation .request-close { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; right: .5rem; top: .4rem; padding: 0; border-radius: .25rem; background: var(--warm-beige); }
.discovery-confirmation .discovery-confirmation-note { font-size: .85rem; }
@media (max-width: 600px) {
  .discovery-confirmation { padding: 1rem; }
  .discovery-confirmation-icon { width: 2.65rem; height: 2.65rem; }
  .discovery-confirmation-header { gap: .8rem; }
  .discovery-confirmation-copy { margin-left: 0; }
}


/* Phone reading and form refinements; desktop composition stays above 760px. */
@media (max-width: 760px) {
  .about-hero h1 span,
  .insights-close h2 span { white-space: normal; }
  .movie-form input:not([type="checkbox"]),
  .movie-form select,
  .movie-form textarea { min-height: 44px; font-size: 1rem; }
  .discovery-request-page .request-consent {
    display: grid;
    grid-template-columns: 1rem minmax(0, 1fr);
    column-gap: .65rem;
    row-gap: .4rem;
  }
  .discovery-request-page .request-consent .request-required {
    grid-column: 2;
    margin-left: 0;
  }
  .discovery-back-button { min-height: 44px; }
}
@media (max-width: 380px) {
  .discovery-request-page .discovery-name-fields { grid-template-columns: minmax(0, 1fr); }
}


/* Compact mobile section openings use the approved Home headline treatment. */
@media (max-width: 760px) {
  #home .home-direct-copy h1,
  .what-hero h1,
  .services-hero-copy h1,
  .work-hero h1,
  .insights-hero h1,
  .about-hero h1 {
    max-width: none;
    font-size: clamp(1.5rem, 7.8vw, 2.65rem) !important;
    font-weight: 700;
    line-height: 1.08;
  }
  .what-hero h1 br,
  .services-hero-copy h1 br,
  .work-hero h1 br,
  .insights-hero h1 br,
  .about-hero h1 br { display: none; }
  .about-hero h1 span {
    display: inline;
    white-space: normal;
  }
  #home .home-direct-copy h1 .home-main-headline > span {
    display: inline;
  }
  #home .home-direct-copy h1 span.home-signature {
    font-size: .8em;
    font-weight: inherit;
    margin-top: 1.25em;
    min-height: 1.35em;
  }
}


/* Crop the mobile Home graphic to bring the complete marquee higher. */
@media (max-width: 760px) {
  #home > .hero-image {
    height: clamp(240px, 65vw, 280px);
    clip-path: inset(.5rem 0 4rem 0);
    margin-top: -.5rem;
    margin-bottom: -4rem;
  }
  #home .home-offer { margin-top: 1.15rem; }
  #home .home-invitation,
  #home .home-reassurance { margin-top: .625rem; }
  #home .home-discovery-link { margin-top: .75rem; }
}


/* Keep the mobile invitation and reassurance compact. */
#home .home-benefit-mobile { display: none; }
@media (max-width: 760px) {
  #home .home-benefit-desktop,
  #home .home-reassurance-desktop { display: none; }
  #home .home-benefit-mobile { display: inline; }
  #home .home-reassurance-close { white-space: normal; }
  #home .home-free-really {
    display: inline;
    white-space: nowrap;
  }
}


/* The mobile choices page places its opening in the dark lower theater area. */
.discovery-hub-heading > .category-label { color: var(--gold); }
.discovery-intro-mobile-break { display: none; }
@media (max-width: 760px) {
  .discovery-choice-hub {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-content: start;
    padding-bottom: 4.75rem;
  }
  .discovery-choice-hub > .movie-theater { grid-area: 1 / 1; }
  .discovery-choice-hub .movie-panel {
    display: block;
    grid-area: 2 / 1;
    justify-self: center;
    width: min(calc(100% - 2.7rem), 36rem);
    margin: 0;
    padding: .75rem 0 0;
  }
  .discovery-choice-hub .discovery-hub-heading {
    position: absolute;
    bottom: calc(100% + 1rem);
    left: 0;
    z-index: 4;
    width: 100%;
    margin: 0;
    text-shadow: 0 1px 4px #000;
  }
  .discovery-choice-hub .discovery-hub-heading > .category-label { margin: 0 0 .5rem; }
  .discovery-choice-hub .movie-panel h1 {
    max-width: none;
    font-size: clamp(1rem, 5.7vw, 2rem) !important;
    font-weight: 700;
    line-height: 1.1;
    white-space: normal;
  }
  .discovery-choice-hub .movie-panel h1 span { display: inline; margin: 0; }
  .discovery-intro-mobile-break { display: inline; }
  .discovery-choice-hub .discovery-option { touch-action: manipulation; }
  .discovery-choice-hub .movie-intro {
    width: 100%;
    margin: 0;
  }
  .discovery-choice-hub .discovery-options {
    width: 100%;
    margin: 1rem 0 0;
  }
}


/* Match the mobile choices page: title on the dark theater, form below. */
.discovery-request-heading > .category-label { color: var(--gold); }
@media (max-width: 760px) {
  .discovery-request-page {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-content: start;
    padding-bottom: 4.75rem;
  }
  .discovery-request-page > .movie-theater { grid-area: 1 / 1; }
  .discovery-request-page .movie-panel {
    grid-area: 2 / 1;
    justify-self: center;
    width: min(calc(100% - 2.7rem), 36rem);
    margin: 0;
    padding: .75rem 0 0 !important;
  }
  .discovery-request-page .discovery-request-heading {
    position: absolute;
    bottom: calc(100% + 1rem);
    left: 0;
    width: 100%;
    text-shadow: 0 1px 4px #000;
  }
  .discovery-request-heading > .category-label { margin: 0 0 .5rem; }
  .discovery-request-page .movie-panel h1 {
    max-width: none;
    font-size: clamp(1rem, 5.7vw, 2rem) !important;
    font-weight: 700;
    line-height: 1.1;
    white-space: normal;
  }
  .discovery-request-page .movie-intro { margin-top: 0; }
  .discovery-request-page .movie-reassurance { margin-top: .75rem; }
  .discovery-request-page .movie-form { margin-top: 1.5rem; }
}


/* A small label inset keeps both phone form columns comfortable to scan. */
@media (max-width: 760px) {
  .discovery-request-page .discovery-field-label {
    display: block;
    padding-inline: .4rem;
  }
}

/* Home: approved questions lead into the existing Discovery Video invitation. */
#home .home-opening {
  max-width: 30rem;
  margin-top: 1.15rem;
  font-size: 1.05rem;
  line-height: 1.45;
}
#home .home-opening p { margin: .625rem 0 0; }
#home .home-opening p:first-child { margin-top: 0; }
@media (max-width: 760px) {
  #home .home-opening { margin-top: .8rem; font-size: 1rem; line-height: 1.4; }
  #home .home-opening p { margin-top: .5rem; }
}

/* Give every inline video invitation a visible, keyboard-accessible route. */
a.discovery-text-link {
  color: inherit;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .18em;
}
a.discovery-text-link:hover,
a.discovery-text-link:focus-visible {
  text-decoration-thickness: 2px;
}
a.discovery-text-link:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
  border-radius: 2px;
}

/* Alternate reading sections in the established two-beige palette.
   Each category's introductory copy stays on the light page background. */
.what-intro,
.services-intro,
.work-intro,
.insights-intro,
.about-story,
.insights-close {
  background-color: var(--beige);
}

.focuses,
.work-steps,
.about-beliefs,
.insights-topics {
  width: 100%;
  margin-inline: 0;
  padding-top: clamp(3.5rem, 7vw, 6rem);
  padding-inline: max(1.25rem, calc((100% - 78rem) / 2));
  background-color: var(--warm-beige);
}

/* Services follows a light introduction, then dark / light / dark bands. */
.services-list {
  width: 100%;
  margin-inline: 0;
}

.services-list > .service-group {
  padding-inline: max(1.25rem, calc((100% - 78rem) / 2));
  background-color: var(--beige);
}

.services-list > .service-group:first-child,
.services-list > .service-group-last {
  background-color: var(--warm-beige);
}

@media (max-width: 760px) {
  .focuses,
  .work-steps,
  .about-beliefs,
  .insights-topics {
    padding-block: 3.5rem 4.5rem;
  }

  .focuses,
  .work-steps,
  .about-beliefs,
  .insights-topics,
  .services-list > .service-group {
    padding-inline: max(1.35rem, calc((100% - 36rem) / 2));
  }
}
