/* Optional motion: no content is hidden in the default document. */
.editorial-scroll-progress {
  position: fixed;
  z-index: 110;
  inset: 0 0 auto;
  height: 2px;
  pointer-events: none;
  background: linear-gradient(90deg, #947a41, #e3d4ab 64%, #bca46e);
  transform: scaleX(var(--scroll-progress, 0));
  transform-origin: left center;
}
.intro-pending .editorial-scroll-progress { visibility: hidden; }
.editorial-scroll-progress[hidden] { display: none; }

[data-reveal].is-revealing { animation: wairua-editorial-reveal .72s cubic-bezier(.21,.65,.3,1); }
@keyframes wairua-editorial-reveal {
  from { opacity: .12; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}
[data-count-value] { display: inline-block; font-variant-numeric: tabular-nums; }
[data-hero-image] {
  transform: translate3d(0, 0, 0) scale(1.045);
  transform-origin: 65% center;
}
[data-hero-image].has-hero-motion {
  transform: translate3d(var(--hero-shift-x, 0px), var(--hero-shift-y, 0px), 0) scale(1.045);
  will-change: transform;
}

/* A small change of elevation and gold edge gives controls a tactile response. */
@media (hover:hover) and (pointer:fine) {
  .btn, .service-card, .reference-card, .future-area, .partner-overview-link {
    transition: border-color .24s ease, background-color .24s ease, box-shadow .24s ease, transform .28s ease;
  }
  .btn:hover { transform: translateY(-2px); box-shadow: 0 9px 25px #4b3a1617; }
  .service-card:hover, .reference-card:hover, .future-area:hover {
    transform: translateY(-4px);
    border-color: #b7a06b;
    box-shadow: 0 14px 34px #3636260b;
  }
}

/* The single real list is the no-JS, touch and reduced-motion experience. */
[data-partner-marquee] > .container { display: block; }
[data-partner-marquee] .partner-ribbon-head { display: flex; align-items: center; justify-content: space-between; gap: 22px; margin-bottom: 27px; }
[data-partner-marquee] .partner-ribbon-label { display: inline-block; font-size: 11px; }
[data-partner-marquee] .partner-marquee-viewport { min-width: 0; }
[data-partner-marquee] .partner-marquee-track { min-width: 0; }
[data-partner-marquee] .partner-ribbon-list { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 24px; margin: 0; padding: 0; list-style: none; }
[data-partner-marquee] .partner-ribbon-item { min-height: 110px; gap: 12px; }
[data-partner-marquee] .partner-ribbon-logo { width: 150px; max-width: 100%; height: 67px; padding: 0; border: 0; border-radius: 0; background: transparent; }
[data-partner-marquee] .partner-ribbon-logo img { width: auto; height: auto; max-width: 142px; max-height: 61px; object-fit: contain; filter: grayscale(1); mix-blend-mode: multiply; opacity: .85; transition: filter .25s ease, opacity .25s ease; }
[data-partner-marquee] a:hover .partner-ribbon-logo img, [data-partner-marquee] a:focus-visible .partner-ribbon-logo img { filter: grayscale(0); opacity: 1; }
[data-partner-marquee] .partner-ribbon-name { font-size: 11px; line-height: 1.5; }
[data-partner-marquee] .partner-pause, [data-partner-pause] { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 16px; border: 1px solid #b8ae97; border-radius: 100px; background: transparent; color: #554a34; font: inherit; font-size: 11px; cursor: pointer; flex: none; }
[data-partner-pause][hidden] { display: none; }
[data-partner-marquee] a:focus-visible, [data-partner-pause]:focus-visible { outline: 2px solid #8c7039; outline-offset: 5px; }
.partner-marquee-clone { display: none!important; }

@media (min-width:901px) {
  [data-partner-marquee].is-marquee:not(.is-keyboard-focus) .partner-marquee-viewport { overflow: hidden; }
  [data-partner-marquee].is-marquee:not(.is-keyboard-focus) .partner-marquee-track { display: flex; width: max-content; animation: wairua-partner-travel 42s linear infinite; }
  [data-partner-marquee].is-marquee:not(.is-keyboard-focus) .partner-ribbon-list { display: flex!important; flex: none; width: max-content; gap: 28px; padding-inline-end: 28px; }
  [data-partner-marquee].is-marquee:not(.is-keyboard-focus) .partner-ribbon-list > li { flex: 0 0 170px; width: 170px; }
  [data-partner-marquee].is-marquee[data-motion-paused=true] .partner-marquee-track { animation-play-state: paused; }
  [data-partner-marquee].is-keyboard-focus .partner-marquee-track { animation: none; transform: none; width: auto; }
  [data-partner-marquee].is-keyboard-focus .partner-marquee-clone { display: none!important; }
}
@keyframes wairua-partner-travel { to { transform: translateX(-50%); } }
@media (max-width:1100px) {
  [data-partner-marquee] .partner-ribbon-list { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px 22px; }
}
@media (max-width:520px) {
  [data-partner-marquee] .partner-ribbon-list { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px 12px; }
  [data-partner-marquee] .partner-ribbon-logo { width: 128px; height: 64px; }
  [data-partner-marquee] .partner-ribbon-logo img { max-width: 124px; max-height: 58px; }
  [data-partner-marquee] .partner-ribbon-head { margin-bottom: 25px; }
}
@media (prefers-reduced-motion:reduce) {
  .editorial-scroll-progress { display: none; }
  [data-reveal].is-revealing { opacity: 1; transform: none; animation: none; }
  [data-hero-image], [data-hero-image].has-hero-motion { transform: none; will-change: auto; }
  .btn, .service-card, .reference-card, .future-area, .partner-overview-link { transition: none; }
  .btn:hover, .service-card:hover, .reference-card:hover, .future-area:hover { transform: none; }
  [data-partner-marquee] .partner-marquee-track { animation: none!important; transform: none!important; }
  [data-partner-marquee] .partner-ribbon-logo img { transition: none; }
}
@media print {
  .editorial-scroll-progress, [data-partner-pause] { display: none; }
  [data-reveal].is-revealing, [data-hero-image].has-hero-motion { animation: none; transform: none; opacity: 1; }
  [data-partner-marquee] .partner-marquee-track { display: block!important; animation: none!important; transform: none!important; width: auto!important; }
  [data-partner-marquee] .partner-ribbon-list:not(.partner-marquee-clone) { display: grid!important; grid-template-columns: repeat(3,minmax(0,1fr)); width: auto!important; }
  [data-partner-marquee] .partner-marquee-clone { display: none!important; }
}
