/* DNY /tests — related content showcase. Scope strictly to .dny-crosslinks */
.dny-crosslinks{--dny-ink:#1c1c1d;--dny-muted:#59585d;--dny-accent:#caa05c;--dny-surface:#f6f6f6;--dny-gutter:32px;position:relative;isolation:isolate;background:var(--dny-surface);color:var(--dny-ink);padding:80px 0 68px;font-family:Urbanist,Arial,sans-serif;overflow:hidden;clear:both}
.dny-crosslinks *{box-sizing:border-box}
.dny-crosslinks__container{width:min(100% - var(--dny-gutter)*2,1280px);margin-inline:auto}
.dny-crosslinks__intro{display:grid;grid-template-columns:30% minmax(0,1fr);gap:28px;align-items:start;padding-bottom:32px}
.dny-crosslinks__eyebrow{display:inline-flex;align-items:center;gap:8px;border:1px solid #e3e3e8;border-radius:28px;font:600 11px/1.15 Urbanist,Arial,sans-serif;letter-spacing:.085em;text-transform:uppercase;padding:9px 13px;color:var(--dny-ink);white-space:nowrap}
.dny-crosslinks__dot{display:block;width:6px;height:6px;background:var(--dny-accent);border-radius:50%;flex:none}
.dny-crosslinks__intro h2{margin:0 0 14px!important;font:600 clamp(29px,3.4vw,42px)/1.14 Urbanist,Arial,sans-serif!important;letter-spacing:-.025em!important;color:var(--dny-ink)!important;max-width:720px}
.dny-crosslinks__intro p{margin:0!important;font:400 16px/1.7 Urbanist,Arial,sans-serif!important;color:var(--dny-muted)!important;max-width:710px}
.dny-crosslinks__rail{width:100%;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;overscroll-behavior-inline:contain;scroll-behavior:auto!important;touch-action:pan-x pan-y;outline-offset:-3px}
.dny-crosslinks__rail::-webkit-scrollbar{display:none}
.dny-crosslinks__rail:focus-visible{outline:2px solid var(--dny-accent)}
.dny-crosslinks__track{display:flex;width:max-content;align-items:stretch;min-width:100%}
.dny-crosslinks__set{display:flex;align-items:stretch;gap:24px;padding-right:24px;flex:none}
.dny-crosslinks__card{display:block!important;width:clamp(238px,20vw,290px);flex:none;color:var(--dny-ink)!important;text-decoration:none!important;min-width:0}
.dny-crosslinks__photo{position:relative;display:block;overflow:hidden;background:#e6e4e0;height:280px;border-radius:24px;isolation:isolate}
.dny-crosslinks__photo:after{content:"";pointer-events:none;position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.33),transparent 44%);opacity:.9}
.dny-crosslinks__photo img{display:block!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover;object-position:center;transition:transform .42s cubic-bezier(.16,1,.3,1);border:0}
.dny-crosslinks__chip{z-index:1;position:absolute;top:22px;left:22px;border:1px solid rgba(255,255,255,.73);color:#fff;background:rgba(24,23,23,.22);border-radius:32px;font:600 11px/1.1 Urbanist,Arial,sans-serif;padding:8px 12px;text-transform:uppercase;letter-spacing:.02em;max-width:calc(100% - 44px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dny-crosslinks__card-title{display:-webkit-box!important;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;margin:19px 2px 0!important;color:var(--dny-ink)!important;font:500 clamp(19px,1.65vw,23px)/1.28 Urbanist,Arial,sans-serif!important;letter-spacing:-.015em!important;min-height:2.56em;max-height:3.84em;max-width:100%;overflow-wrap:break-word}
.dny-crosslinks__card:hover .dny-crosslinks__photo img{transform:scale(1.045)}
.dny-crosslinks__card:hover .dny-crosslinks__card-title{text-decoration:underline;text-decoration-color:var(--dny-accent);text-decoration-thickness:1px;text-underline-offset:4px}
.dny-crosslinks a:focus-visible,.dny-crosslinks button:focus-visible{outline:3px solid var(--dny-accent)!important;outline-offset:4px!important}
.dny-crosslinks__bottom{display:flex;align-items:center;justify-content:center;gap:26px;margin-top:26px;flex-wrap:wrap}
.dny-crosslinks__cta{display:inline-flex;align-items:center;gap:7px;color:var(--dny-ink)!important;border-bottom:1px solid var(--dny-accent);padding:0 0 8px;font:500 14px/1.3 Urbanist,Arial,sans-serif;text-decoration:none!important}
.dny-crosslinks__cta svg{width:14px;height:14px;transition:transform .2s}
.dny-crosslinks__cta:hover svg{transform:translate(3px,-3px)}
.dny-crosslinks__motion{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent!important;color:#59585d!important;cursor:pointer;padding:9px 10px;border-radius:8px;font:500 12px/1.3 Urbanist,Arial,sans-serif}
.dny-crosslinks__motion svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.7}
.dny-crosslinks__motion:hover{text-decoration:underline}
.dny-crosslinks__motion[hidden]{display:none!important}
@media(max-width:900px){.dny-crosslinks{--dny-gutter:24px;padding:64px 0 54px}.dny-crosslinks__intro{grid-template-columns:1fr;gap:20px;padding-bottom:26px}.dny-crosslinks__intro h2{font-size:34px!important}.dny-crosslinks__photo{height:260px}.dny-crosslinks__card{width:270px}}
@media(max-width:600px){.dny-crosslinks{--dny-gutter:16px;padding:49px 0 45px}.dny-crosslinks__intro{gap:16px}.dny-crosslinks__intro h2{font-size:29px!important;line-height:1.18!important}.dny-crosslinks__intro p{font-size:15px!important;line-height:1.6!important}.dny-crosslinks__set{gap:16px;padding-right:16px}.dny-crosslinks__card{width:min(75vw,280px)}.dny-crosslinks__photo{height:248px;border-radius:20px}.dny-crosslinks__card-title{font-size:20px!important;margin-top:14px!important}.dny-crosslinks__bottom{margin-top:17px;gap:15px}.dny-crosslinks__chip{top:16px;left:16px}.dny-crosslinks__motion{font-size:11px}}
@media(prefers-reduced-motion:reduce){.dny-crosslinks__photo img,.dny-crosslinks__cta svg{transition:none!important}.dny-crosslinks__card:hover .dny-crosslinks__photo img{transform:none!important}}

/* Smooth, seamless rightward conveyor — CSS owns each frame, not scrollLeft */
.dny-crosslinks[data-dny-running="1"] .dny-crosslinks__track{
  animation:dny-crosslinks-right var(--dny-crosslinks-duration,54s) linear infinite!important;
  animation-play-state:running;
  will-change:transform;
}
@keyframes dny-crosslinks-right {
  from{transform:translate3d(-50%,0,0)}
  to{transform:translate3d(0,0,0)}
}
.dny-crosslinks[data-dny-paused="1"] .dny-crosslinks__track,
.dny-crosslinks[data-dny-running="1"] .dny-crosslinks__rail:focus-within .dny-crosslinks__track{
  animation-play-state:paused!important;
}
.dny-crosslinks__rail{overflow-x:hidden!important;overflow-y:hidden!important;scroll-behavior:auto!important}
@media (hover:none) and (pointer:coarse) {
  .dny-crosslinks__rail{overflow-x:auto!important;touch-action:pan-x}
}
@media(prefers-reduced-motion:reduce){
  .dny-crosslinks__track{animation:none!important;transform:translate3d(-50%,0,0)!important;will-change:auto}
}

/* /tests marquee presentation: full-bleed rail with naturally fading edges.
   Only the viewport of the card track changes, not its animation geometry. */
.dny-crosslinks__rail{
  width:100vw;
  max-width:100vw;
  margin-left:calc(50% - 50vw);
  -webkit-mask-image:linear-gradient(to right,transparent 0%,#000 6%,#000 94%,transparent 100%);
  mask-image:linear-gradient(to right,transparent 0%,#000 6%,#000 94%,transparent 100%);
}
.dny-crosslinks__rail:focus-within{
  -webkit-mask-image:none;
  mask-image:none;
}
@media(max-width:600px){
  .dny-crosslinks__rail{
    -webkit-mask-image:linear-gradient(to right,transparent 0%,#000 9%,#000 91%,transparent 100%);
    mask-image:linear-gradient(to right,transparent 0%,#000 9%,#000 91%,transparent 100%);
  }
}

/* /tests crosslinks: existing DNY architectural drawing, behind the cards. */
.dny-crosslinks::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background-image:url("/wp-content/uploads/2025/06/h1-bg03.png");
  background-repeat:no-repeat;
  background-position:center center;
  background-size:cover;
  opacity:.14;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 14%,#000 86%,transparent 100%);
  mask-image:linear-gradient(to bottom,transparent 0%,#000 14%,#000 86%,transparent 100%);
}
.dny-crosslinks > .dny-crosslinks__container{
  position:relative;
  z-index:1;
}
@media(max-width:900px){
  .dny-crosslinks::before{opacity:.11;background-position:52% center}
}
@media(max-width:600px){
  .dny-crosslinks::before{opacity:.09;background-position:50% center}
}

/* DNY /tests: calm, proportional spacing for the moving related-content cards.
   Keeps the full-width fade and continuous rightward marquee untouched. */
.dny-crosslinks__set{gap:30px;padding-right:30px}
.dny-crosslinks__card{width:clamp(278px,21vw,320px)}
.dny-crosslinks__photo{height:292px}
.dny-crosslinks__intro{padding-bottom:38px}
.dny-crosslinks__bottom{margin-top:32px}
@media(max-width:900px){
  .dny-crosslinks__set{gap:26px;padding-right:26px}
  .dny-crosslinks__card{width:282px}
  .dny-crosslinks__photo{height:268px}
  .dny-crosslinks__intro{padding-bottom:30px}
}
@media(max-width:600px){
  .dny-crosslinks__set{gap:18px;padding-right:18px}
  .dny-crosslinks__card{width:min(80vw,292px)}
  .dny-crosslinks__photo{height:256px}
  .dny-crosslinks__intro{padding-bottom:26px}
  .dny-crosslinks__bottom{margin-top:24px}
}


/* /tests: dissolve the preceding page background into the SEO section.
   The page-level blueprint (notably blog #page) sits behind #content.
   This overlay stays below content children, preserving cards and text. */
body.dny-review #content{
  position:relative;
  isolation:isolate;
}
body.dny-review #content::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:clamp(88px,9vw,136px);
  z-index:0;
  pointer-events:none;
  background:linear-gradient(to bottom,
    rgba(246,246,246,0) 0%,
    rgba(246,246,246,.10) 27%,
    rgba(246,246,246,.56) 67%,
    #F6F6F6 100%
  );
}
body.dny-review #content > :is(.col-full,.col-fluid){
  position:relative;
  z-index:1;
}
