
/* Shared finishing rules: one footer and paper-toned surfaces across pages. */
.site-footer-unified {
  background:#030b13!important;
  color:#aeb8c3!important;
  border-top:1px solid rgba(255,255,255,.12)!important;
  padding:0!important;
  margin:0!important;
  font:16px/normal Arial,Helvetica,sans-serif!important;
  text-transform:none!important;
}
.site-footer-unified__inner {
  width:min(1440px,calc(100% - 64px))!important;
  min-height:92px!important;
  margin:0 auto!important;
  display:grid!important;
  grid-template-columns:auto 1fr auto!important;
  gap:28px!important;
  align-items:center!important;
  font-size:16px!important;
  line-height:normal!important;
}
.site-footer-unified__descriptor {
  text-align:center!important
}
.site-footer-unified nav {
  position:static!important;
  display:flex!important;
  flex-direction:row!important;
  justify-content:flex-end!important;
  align-items:center!important;
  gap:22px!important;
  width:auto!important;
  padding:0!important;
  margin:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  transform:none!important;
  opacity:1!important;
  visibility:visible!important;
}
.site-footer-unified a {
  color:#f4f1e9!important;
  font-size:16px!important;
  font-weight:700!important;
  letter-spacing:.04em!important;
  text-decoration:none!important;
  text-transform:none!important;
}
.site-footer-unified a:hover,.site-footer-unified a:focus-visible {
  color:#6f9dff!important
}
@media(max-width:760px) {
  .site-footer-unified__inner {
    width:calc(100% - 48px)!important;
    grid-template-columns:1fr!important;
    gap:12px!important;
    padding:26px 0 30px!important;
    text-align:center!important;
  }
  .site-footer-unified nav {
    justify-content:center!important
  }
}
/* The older story templates omit .story-page; target their actual body classes. */
body.impact-edmunds .hero h1,
body.impact-wet .hero h1,
body.impact-lightstorm .hero h1 {
  font-size:clamp(58px,6vw,96px)!important;
  line-height:1.17!important;
  letter-spacing:-.045em!important;
}
body.impact-edmunds .hero h1 {
  max-width:15ch!important
}
body.impact-lightstorm .hero h1 {
  max-width:15ch!important
}
body.impact-wet .hero h1 {
  max-width:14ch!important;
  font-size:clamp(58px,5.6vw,90px)!important
}
body.impact-edmunds .executive-impact h2,body.impact-edmunds .case-problem h2,body.impact-edmunds .section h2,
body.impact-wet .executive-impact h2,body.impact-wet .case-problem h2,body.impact-wet .section h2,
body.impact-lightstorm .executive-impact h2,body.impact-lightstorm .case-problem h2,body.impact-lightstorm .section h2 {
  line-height:1.13!important
}
@media(max-width:800px) {
  body.impact-edmunds .hero h1,body.impact-wet .hero h1,body.impact-lightstorm .hero h1 {
    max-width:100%!important;
    font-size:clamp(45px,9vw,68px)!important;
    line-height:1.15!important;
  }
}
.about-close-103__links {
  display:flex;
  flex-wrap:wrap;
  gap:18px 30px;
  align-items:center
}
.about-close-103__links a {
  display:inline-block;
  padding:8px 0;
  border-bottom:1px solid currentColor
}
.story-invite {
  padding:clamp(42px,5vw,72px) 24px;
  background:#0d1b2a;
  color:#f4f1e9;
  text-align:center;
  border-top:1px solid rgba(255,255,255,.12);
}
.story-invite p {
  max-width:780px;
  margin:0 auto 16px;
  font:400 clamp(25px,2.4vw,37px)/1.2 Georgia,serif
}
.story-invite a {
  display:inline-block;
  color:#b9cfff;
  font:700 13px/1.5 Arial,Helvetica,sans-serif;
  letter-spacing:.08em;
  text-decoration:none;
  text-transform:uppercase;
  border-bottom:1px solid currentColor;
  padding-bottom:6px
}
.story-invite a:hover,.story-invite a:focus-visible {
  color:#f4f1e9
}
.case-index-invite {
  max-width:1100px;
  margin:clamp(54px,6vw,85px) auto 0;
  padding:35px 22px;
  border-top:1px solid rgba(255,255,255,.2);
  text-align:center
}
.case-index-invite p {
  margin:0 0 12px;
  font:400 clamp(25px,2.5vw,38px)/1.2 Georgia,serif
}
.case-index-invite a {
  color:#a9c5ff;
  text-decoration:none;
  font-size:15px;
  font-weight:700
}
.case-index-invite a:hover,.case-index-invite a:focus-visible {
  text-decoration:underline
}
/* RC116: subtle feedback for editorial cards and a centered About close. */
.about-close-103__links {
  justify-content: center;
  text-align: center;
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .about-method-grid article,
  .principles .principle,
  .rc60-home .case-grid a {
    transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease;
  }

  .about-method-grid article:hover,
  .principles .principle:hover,
  .rc60-home .case-grid a:hover {
    transform: translateY(-5px);
    box-shadow: 0 18px 38px rgba(0, 0, 0, .18);
    border-color: #6b9eea;
  }
}

.rc60-home .case-grid a:focus-visible {
  outline: 3px solid #6b9eea;
  outline-offset: 3px;
}

/* Edmunds: let the validation argument occupy the full reading width. */
.pano-discovery {
  display: block;
}

.pano-discovery .discovery-copy {
  max-width: 880px;
  margin: 0 auto clamp(36px, 5vw, 64px);
  text-align: center;
}

.pano-discovery .discovery-copy p:last-child {
  max-width: 76ch;
  margin-inline: auto;
}

.pano-discovery .validation-path {
  width: min(100%, 1320px);
  margin-inline: auto;
  padding: clamp(24px, 3vw, 48px);
}

.pano-discovery .validation-kicker {
  font-size: clamp(12px, 1vw, 15px);
  margin-bottom: 32px;
}

.pano-discovery .validation-steps {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(10px, 1.4vw, 22px);
  align-items: stretch;
}

.pano-discovery .validation-steps > i {
  display: none;
}

.pano-discovery .validation-steps article {
  width: auto;
  min-width: 0;
  min-height: 218px;
  padding: clamp(18px, 2vw, 28px);
  display: flex;
  flex-direction: column;
  border-top: 3px solid #6b9eea;
}

.pano-discovery .validation-steps article > span {
  font-size: 18px;
  line-height: 1;
  letter-spacing: .06em;
}

.pano-discovery .validation-steps strong {
  margin: 24px 0 12px;
  font-size: clamp(23px, 2.2vw, 32px);
}

.pano-discovery .validation-steps small {
  margin-top: auto;
  font-size: clamp(13px, 1vw, 16px);
  line-height: 1.5;
}

@media (max-width: 1050px) {
  .pano-discovery .validation-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .pano-discovery .validation-steps article {
    min-height: 190px;
  }
  .pano-discovery .validation-steps article:last-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 580px) {
  .pano-discovery .discovery-copy {
    text-align: left;
  }
  .pano-discovery .validation-steps {
    grid-template-columns: 1fr;
  }
  .pano-discovery .validation-steps article,
  .pano-discovery .validation-steps article:last-child {
    grid-column: auto;
    min-height: 0;
  }
  .pano-discovery .validation-steps small {
    margin-top: 0;
  }
}

/* Mobile presentation: align the templates to the Philosophy page's header. */
@media (max-width: 760px) {
  .simple-page-header,
  .about-header,
  .resume-header,
  .story-header,
  .site-header,
  body.rc60-home .rc60-header {
    position: relative !important;
    inset: auto !important;
    top: auto !important;
    width: 100%;
    height: auto !important;
    min-height: 110px !important;
    padding: 22px clamp(18px, 5vw, 28px) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    background: #030b13 !important;
    border-bottom: 1px solid rgba(255, 255, 255, .14) !important;
    z-index: 60 !important;
  }
  .simple-brand,
  .about-brand,
  .resume-header .brand,
  .story-brand,
  .site-header .brand,
  body.rc60-home .rc60-brand {
    display: grid !important;
    gap: 6px !important;
    flex: 0 1 auto;
    min-width: 0;
    line-height: 1.2 !important;
    letter-spacing: normal !important;
    text-decoration: none;
  }
  .simple-brand strong,
  .about-brand strong,
  .resume-header .brand strong,
  .story-brand strong,
  .site-header .brand strong,
  body.rc60-home .rc60-brand strong {
    font: 800 clamp(14px, 4.6vw, 19px)/1.2 Arial, Helvetica, sans-serif !important;
    letter-spacing: .21em !important;
    white-space: nowrap;
    color: #fff !important;
  }
  .simple-brand span,
  .about-brand span,
  .resume-header .brand span,
  .story-brand span,
  .site-header .brand span,
  body.rc60-home .rc60-brand span {
    margin: 0 !important;
    font: 400 clamp(8px, 2.4vw, 10px)/1.3 Arial, Helvetica, sans-serif !important;
    letter-spacing: .16em !important;
    text-transform: uppercase !important;
    white-space: nowrap;
    color: #aeb8c3 !important;
  }
  .simple-menu,
  .about-menu,
  .resume-header .simple-menu,
  .story-menu,
  .site-header .menu,
  body.rc60-home .rc60-header .menu {
    display: block !important;
    flex: none;
    margin-left: 14px !important;
    padding: 12px 19px !important;
    border: 1px solid #73808d !important;
    border-radius: 999px !important;
    background: transparent !important;
    color: white !important;
    font: 400 16px/1.2 Arial, Helvetica, sans-serif !important;
  }
  /* A formerly fixed header must not conceal the opening heading. */
  .story-hero::before,
  .story-hero::after {
    inset: 0 !important;
  }
  .story-hero,
  .impact-wet .hero,
  .impact-edmunds .hero,
  .impact-lightstorm .hero {
    padding-top: clamp(48px, 8vw, 74px) !important;
  }
  body.rc60-home .rc60-hero {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    min-height: 0 !important;
    padding: 0 0 48px !important;
    overflow: visible !important;
  }
  body.rc60-home .rc60-hero-media {
    position: relative !important;
    inset: auto !important;
    display: block !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;
    overflow: hidden !important;
  }
  body.rc60-home .rc60-hero-media img {
    position: static !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center 25% !important;
    transform: none !important;
  }
  body.rc60-home .rc60-hero-media::after {
    content: "";
    position: absolute;
    inset: 65% 0 0;
    background: linear-gradient(transparent, #050b12);
    pointer-events: none;
  }
  body.rc60-home .rc60-hero-shade { display: none !important; }
  body.rc60-home .rc60-hero-copy {
    width: 100% !important;
    padding: 28px clamp(20px, 5vw, 32px) 0 !important;
    margin: 0 !important;
  }
  body.rc60-home .rc60-hero h1 {
    max-width: 14ch !important;
    font-size: clamp(39px, 9.4vw, 58px) !important;
    line-height: 1.08 !important;
  }
  body.rc60-home .rc60-hero-copy > p:not(.rc60-kicker) {
    max-width: 38ch !important;
    font-size: 16px !important;
  }
  /* One photo and one gradient; keep the WET fountain visible. */
  body.impact-wet .hero {
    display: flex !important;
    align-items: flex-start !important;
    min-height: 0 !important;
    padding: clamp(290px, 83vw, 430px) 22px 60px !important;
    background-image: linear-gradient(0deg, #04101b 0%, rgba(4,16,27,.94) 35%, rgba(4,16,27,.04) 72%), url('../assets/stories/capturing-bellagio/bellagio-fountain-white-hero.jpg') !important;
    background-position: center, center 26% !important;
    background-size: cover !important;
  }
  body.impact-wet .hero::after { display: none !important; }
  body.impact-wet .hero-copy { width: 100% !important; }
  body.impact-wet .hero .back { margin-bottom: 24px !important; }
  body.impact-wet .hero h1 { line-height: 1.12 !important; }
}

/* Phone-sized Moon stages: never crop the image to a strip or expose alt text. */
@media (max-width: 640px) {
  .rc83-lroc-mosaic { display: block !important; height: 260px !important; }
  .rc83-lroc-mosaic img:first-child {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center 54% !important;
  }
  .rc83-lroc-mosaic img:not(:first-child) { display: none !important; }
  .rc84-moon-reference,
  .rc83-moon-visual--image,
  .rc83-moon-final {
    display: block !important;
    height: 260px !important;
    min-height: 260px !important;
  }
  .rc84-moon-reference picture,
  .rc83-moon-visual--image picture,
  .rc83-moon-final picture { display: block; width: 100%; height: 100%; }
  .rc84-moon-reference img,
  .rc83-moon-visual--image img,
  .rc83-moon-final img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center !important;
  }
  .canvas-work--compact .canvas-work-card video {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }
  .canvas-work--compact .canvas-work-card:has(video)::after,
  .canvas-work--compact .canvas-work-card:has(video) div {
    pointer-events: none;
  }
  .canvas-work--compact .canvas-work-card:has(video) div {
    bottom: 52px;
  }
}

/* Full-size diagrams remain on desktop. Native text takes over on phones. */
.mobile-diagram { display: none; }
@media (max-width: 700px) {
  .edmunds-strategy-plate > img,
  .edmunds-platform-plate > img { display: none !important; }
  .edmunds-strategy-plate,
  .edmunds-platform-plate {
    width: 100% !important;
    max-width: none !important;
    border-radius: 12px;
  }
  .mobile-diagram {
    display: block;
    padding: 28px 20px 32px;
    font-family: Arial, Helvetica, sans-serif;
  }
  .mobile-diagram--strategy { background: #f7f2ea; color: #102033; }
  .mobile-diagram--platforms { background: #07111d; color: #f7f4ed; }
  .mobile-diagram__label,
  .mobile-diagram span {
    display: block;
    margin: 0 0 9px;
    color: #4b80d5;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    line-height: 1.4;
    text-transform: uppercase;
  }
  .mobile-diagram--platforms .mobile-diagram__label,
  .mobile-diagram--platforms span { color: #8bb4ff; }
  .mobile-diagram h3 {
    margin: 0 0 28px;
    font: 400 clamp(26px, 7vw, 36px)/1.16 Georgia, serif;
  }
  .mobile-diagram strong {
    display: block;
    font: 400 clamp(22px, 6vw, 29px)/1.18 Georgia, serif;
  }
  .mobile-diagram p:not(.mobile-diagram__label) {
    margin: 10px 0 0;
    font-size: 15px;
    line-height: 1.5;
  }
  .mobile-diagram__core,
  .mobile-diagram__outcome {
    padding: 21px 18px;
    border-radius: 8px;
    color: white;
    background: #102033;
  }
  .mobile-diagram__core span,
  .mobile-diagram__outcome span { color: #a9c6ff; }
  .mobile-diagram__products { display: grid; gap: 12px; margin: 18px 0; }
  .mobile-diagram__products > div { padding: 20px 18px; border: 1px solid #d4d0c8; border-radius: 8px; background: #fffdfa; }
  .mobile-diagram__outcome { background: #246de0; }
  .mobile-diagram__step {
    padding: 20px 18px;
    border: 1px solid #354b61;
    border-radius: 8px;
    margin-top: 12px;
    background: #0c1a28;
  }
  .mobile-diagram__step--launch { border-color: #7daafa; }
  .mobile-diagram--platforms p:not(.mobile-diagram__label) { color: #bdcbd9; }
}
