/* Spatial image carousel within PLANOVATION's established photographic hero. */
.pv-scene-journey.pv-carousel-journey {height:auto;background:#27272b;}
.pv-scene-journey.pv-carousel-journey > .experience.pv-carousel {
  position:relative;top:auto;display:flex;flex-direction:column;height:auto;
  min-height:max(760px,100svh);background:#27272b;overflow:hidden;
}
.experience.pv-carousel .pv-carousel-backdrop {position:absolute;inset:0;z-index:-3;pointer-events:none;overflow:hidden;}
.experience.pv-carousel .pv-carousel-backdrop img {
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 50%;
  opacity:0;transform:scale(1.03);filter:saturate(.72) brightness(.8);
  transition:opacity .55s ease;
}
.experience.pv-carousel .pv-carousel-backdrop img.active {opacity:1;}
.experience.pv-carousel .shade {
  z-index:-1;background:linear-gradient(90deg,rgba(39,39,43,0.83),rgba(39,39,43,0.59) 40%,rgba(39,39,43,0.36)),linear-gradient(0deg,rgba(39,39,43,0.82),transparent 40%);
}
.experience.pv-carousel .shade::after {
  -webkit-backdrop-filter:blur(5px) saturate(.85);backdrop-filter:blur(5px) saturate(.85);
  -webkit-mask-image:linear-gradient(90deg,#000,rgba(0,0,0,.6) 65%,rgba(0,0,0,.3));
  mask-image:linear-gradient(90deg,#000,rgba(0,0,0,.6) 65%,rgba(0,0,0,.3));
}
.experience.pv-carousel .pv-carousel-main {
  position:relative;display:grid;grid-template-columns:minmax(0,.37fr) minmax(0,.63fr);
  align-items:center;gap:24px;flex:1;width:100%;padding:66px var(--edge) 48px;
}
.pv-scene-journey .experience.pv-carousel .copy-stack {
  position:relative;z-index:3;display:grid;width:100%;max-width:none;margin:0;padding:0;
  transform:none;text-shadow:none;
}
.experience.pv-carousel .copy-stack::before {content:none;}
.pv-scene-journey .experience.pv-carousel .scene-copy .eyebrow {font-size:11px;letter-spacing:.15em;margin-bottom:22px;}
.pv-scene-journey .experience.pv-carousel .scene-copy h1,
.pv-scene-journey .experience.pv-carousel .scene-copy h2 {font-size:clamp(44px,4.05vw,78px);line-height:1.19;}
.pv-scene-journey .experience.pv-carousel .scene-copy .description {font-size:16px;line-height:1.65;max-width:430px;margin:24px 0;}
.pv-scene-journey .experience.pv-carousel .scene-copy .discover {font-size:14px;gap:20px;max-width:100%;}
.experience.pv-carousel .photographs {
  position:relative;inset:auto;z-index:1;perspective:1200px;pointer-events:auto;
  width:100%;aspect-ratio:1.72;min-width:0;isolation:isolate;
}
.experience.pv-carousel .photographs::before {
  content:"";position:absolute;inset:-12% -3%;pointer-events:none;
  background:radial-gradient(ellipse at 50% 56%,rgba(103,196,247,.16),transparent 65%);
}
.experience.pv-carousel .photograph {
  position:absolute;inset:auto;left:50%;top:50%;width:77%;height:auto;aspect-ratio:16/9;
  margin:0;padding:0;background:#27272b;border:1px solid rgba(144,215,255,.7);border-radius:20px;
  overflow:hidden;pointer-events:auto;opacity:0;cursor:pointer;backface-visibility:hidden;
  transform:translate(-50%,-50%) scale(.65);filter:saturate(.82);
  box-shadow:0 24px 45px rgba(2,11,18,.3),0 0 18px rgba(95,188,245,.13);
  transition:transform .5s cubic-bezier(.22,1,.36,1),opacity .35s ease,filter .35s ease,box-shadow .35s ease;
}
.experience.pv-carousel .photograph::after {content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(225,246,255,.24),inset 0 0 17px rgba(114,205,255,.12);}
.experience.pv-carousel .photograph[data-position="front"] {
  z-index:4;opacity:1;transform:translate(-50%,-50%) scale(1);filter:none;
  border-color:rgba(168,229,255,.92);box-shadow:0 28px 60px rgba(2,11,18,.36),0 0 24px rgba(95,188,245,.28);
}
.experience.pv-carousel .photograph[data-position="left"] {z-index:2;opacity:.65;transform:translate(-50%,-50%) translateX(-31%) scale(.8) rotateY(22deg);}
.experience.pv-carousel .photograph[data-position="right"] {z-index:2;opacity:.65;transform:translate(-50%,-50%) translateX(31%) scale(.8) rotateY(-22deg);}
.experience.pv-carousel .photograph[data-position="back"] {z-index:1;opacity:0;transform:translate(-50%,-50%) translateY(-18px) scale(.65);pointer-events:none;}
.experience.pv-carousel .photograph .photo-frame,
.experience.pv-carousel.opening-active .photograph .photo-frame {
  position:absolute;inset:0;animation:none;transform:scale(1.005);transition:transform 8s linear;
}
.experience.pv-carousel .photograph.active .photo-frame {transform:scale(1.035);}
.experience.pv-carousel .photograph img,
.experience.pv-carousel .photograph:is([data-photo="0"],[data-photo="1"],[data-photo="3"]) img {object-fit:cover;object-position:50% 50%;filter:saturate(.9);}
.experience.pv-carousel .chapter-position {position:absolute;top:146px;right:var(--edge);font-size:11px;}
.experience.pv-carousel .pv-scroll-hint {display:none;}
.pv-scene-journey .experience.pv-carousel .bottom-bar {
  position:relative;display:flex;align-items:center;gap:32px;margin:0 var(--edge) 30px;
  transform:none;
}
.experience.pv-carousel .chapters {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;max-width:900px;width:100%;padding:0;}
.experience.pv-carousel .chapter {
  position:relative;display:block;min-width:0;padding:6px 6px 11px;
  border:1px solid rgba(193,224,243,.24);border-radius:11px;background:rgba(39,39,43,0.52);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  transition:transform .4s cubic-bezier(.22,1,.36,1),border-color .4s,box-shadow .4s,background .4s;
}
.experience.pv-carousel .chapter .pv-carousel-thumbnail {display:block;width:100%;height:76px;object-fit:cover;object-position:center;border-radius:6px;margin:0 0 10px;opacity:.7;transition:opacity .3s;}
.experience.pv-carousel .chapter .track {height:1px;margin:0 5px 9px;background:rgba(208,229,240,.25);}
.experience.pv-carousel .chapter.active .track {height:1px;margin-bottom:9px;}
.experience.pv-carousel .chapter-label {display:flex;align-items:center;gap:9px;padding:0 5px;font-size:13px;line-height:1.5;white-space:nowrap;}
.experience.pv-carousel .chapter-label small {display:inline;font-size:10px;margin:0;}
.experience.pv-carousel .chapter.active {transform:translateY(-5px);border-color:rgba(145,216,255,.9);background:rgba(52,99,128,.42);box-shadow:0 0 18px rgba(105,196,250,.19);}
.experience.pv-carousel .chapter.active .pv-carousel-thumbnail {opacity:1;}
.experience.pv-carousel .playback {position:static;display:flex;flex:0 0 auto;width:auto;grid-column:auto;justify-content:flex-end;margin:0 0 0 auto;transform:none;}
.experience.pv-carousel .playback button {width:44px;height:44px;}
.experience.pv-carousel .playback button:focus-visible {outline:2px solid var(--blue);outline-offset:4px;}
@media(hover:hover) and (pointer:fine) {
  .experience.pv-carousel .photograph[data-position="front"]:hover {box-shadow:0 28px 60px rgba(2,11,18,.36),0 0 34px rgba(95,188,245,.43);}
  .experience.pv-carousel .chapter:hover {transform:translateY(-5px);border-color:rgba(145,216,255,.7);}
  .experience.pv-carousel .chapter:hover .pv-carousel-thumbnail {opacity:1;}
}
@media(min-width:1500px) {
  .experience.pv-carousel .pv-carousel-main {gap:40px;padding-block:72px 60px;}
  .experience.pv-carousel .photographs {max-width:1100px;justify-self:end;}
  .experience.pv-carousel .chapter .pv-carousel-thumbnail {height:88px;}
}
@media(max-width:1100px) {
  .pv-scene-journey.pv-carousel-journey > .experience.pv-carousel {min-height:100svh;}
  .experience.pv-carousel .pv-carousel-main {grid-template-columns:minmax(0,1fr);gap:12px;padding:46px var(--edge) 24px;}
  .pv-scene-journey .experience.pv-carousel .copy-stack {max-width:850px;text-align:center;margin:0 auto;}
  .pv-scene-journey .experience.pv-carousel .scene-copy .eyebrow {justify-content:center;margin-bottom:16px;}
  .pv-scene-journey .experience.pv-carousel .scene-copy h1,
  .pv-scene-journey .experience.pv-carousel .scene-copy h2 {font-size:clamp(40px,6vw,64px);}
  .pv-scene-journey .experience.pv-carousel .scene-copy .description {max-width:540px;margin:20px auto 15px;}
  .pv-scene-journey .experience.pv-carousel .scene-copy .discover {text-align:center;}
  .experience.pv-carousel .photographs {aspect-ratio:2.35;max-width:830px;justify-self:center;}
  .experience.pv-carousel .photograph {width:69%;}
  .experience.pv-carousel .chapter-position {display:none;}
  .pv-scene-journey .experience.pv-carousel .bottom-bar {display:flex;flex-wrap:wrap;justify-content:center;gap:22px;margin-bottom:24px;}
  .experience.pv-carousel .chapters {flex-basis:100%;max-width:720px;}
  .experience.pv-carousel .playback {justify-content:center;margin:0;}
  .experience.pv-carousel .chapter .pv-carousel-thumbnail {height:84px;}
}
@media(max-width:600px) {
  .experience.pv-carousel .pv-carousel-main {padding:34px 0 12px;gap:9px;}
  .pv-scene-journey .experience.pv-carousel .copy-stack {width:calc(100% - var(--edge)*2);}
  .pv-scene-journey .experience.pv-carousel .scene-copy .eyebrow {font-size:9px;letter-spacing:.12em;gap:10px;margin-bottom:15px;}
  .pv-scene-journey .experience.pv-carousel .scene-copy .eyebrow>span {width:20px;}
  .pv-scene-journey .experience.pv-carousel .scene-copy h1,
  .pv-scene-journey .experience.pv-carousel .scene-copy h2 {font-size:clamp(33px,9.6vw,48px);}
  .pv-scene-journey .experience.pv-carousel .scene-copy .description {font-size:14px;line-height:1.55;margin:18px auto 12px;max-width:365px;}
  .pv-scene-journey .experience.pv-carousel .scene-copy .discover {font-size:12px;gap:13px;min-height:44px;}
  .experience.pv-carousel .photographs {aspect-ratio:1.9;}
  .experience.pv-carousel .photograph {width:76%;border-radius:13px;}
  .experience.pv-carousel .photograph[data-position="left"] {transform:translate(-50%,-50%) translateX(-28%) scale(.8) rotateY(22deg);}
  .experience.pv-carousel .photograph[data-position="right"] {transform:translate(-50%,-50%) translateX(28%) scale(.8) rotateY(-22deg);}
  .pv-scene-journey .experience.pv-carousel .bottom-bar {margin:0 16px 24px;gap:16px;}
  .experience.pv-carousel .chapters {gap:7px;}
  .experience.pv-carousel .chapter {padding:4px 4px 9px;border-radius:8px;}
  .experience.pv-carousel .chapter .pv-carousel-thumbnail {height:auto;aspect-ratio:1.2;margin-bottom:8px;border-radius:4px;}
  .experience.pv-carousel .chapter-label {justify-content:center;padding:0;font-size:11px;letter-spacing:-.2px;}
  .experience.pv-carousel .chapter-label small {display:none;}
  .experience.pv-carousel .chapter .track {margin-inline:2px;}
}
@media(max-width:350px) {
  .pv-scene-journey .experience.pv-carousel .bottom-bar {margin-inline:10px;}
  .experience.pv-carousel .chapters {gap:4px;}
  .experience.pv-carousel .chapter {padding-inline:2px;}
}
@media(prefers-reduced-motion:reduce) {
  .experience.pv-carousel .photograph .photo-frame {transform:none!important;}
  .experience.pv-carousel .pv-carousel-backdrop img {transform:none;}
}

/* Keep the original copy in step with the faster image movement. */
.experience.pv-carousel .scene-copy {
  transition:opacity .2s ease,transform .3s ease,visibility .3s;
}
.experience.pv-carousel .scene-copy.active {
  transition:opacity .4s .06s ease,transform .5s .04s cubic-bezier(.16,1,.3,1),visibility 0s;
}

/* Phone previews: 70% of the previous image width and height. */
@media(max-width:600px) {
  .experience.pv-carousel .chapter .pv-carousel-thumbnail {
    width:70%;height:auto;margin-inline:auto;
  }
}

/* Phone chapter navigation uses only timeline tracks and labels. */
@media(max-width:600px) {
  .experience.pv-carousel .chapter .pv-carousel-thumbnail {display:none;}
  .experience.pv-carousel .chapter,
  .experience.pv-carousel .chapter.active,
  .experience.pv-carousel .chapter:hover {
    min-height:44px;padding:10px 0 8px;border:0;border-radius:0;
    background:transparent;box-shadow:none;transform:none;
    -webkit-backdrop-filter:none;backdrop-filter:none;
  }
  .experience.pv-carousel .chapter .track,
  .experience.pv-carousel .chapter.active .track {height:2px;margin:0 0 10px;}
  .experience.pv-carousel .chapter-label {padding:0;justify-content:center;}
}


/* Fill the visible phone screen and give the carousel more room near the bottom. */
@media(max-width:600px) {
  .pv-scene-journey.pv-carousel-journey > .experience.pv-carousel {
    min-height:100svh;min-height:100dvh;
  }
  .experience.pv-carousel .pv-carousel-main {
    grid-template-rows:minmax(min-content,1fr) auto;
    padding:clamp(18px,3.2svh,30px) 0 14px;
    gap:12px;
  }
  .experience.pv-carousel .photographs {aspect-ratio:1.8;}
  .experience.pv-carousel .photograph {width:82%;}
  .pv-scene-journey .experience.pv-carousel .bottom-bar {
    margin-bottom:max(12px,env(safe-area-inset-bottom,0px));gap:14px;
  }
  .experience.pv-carousel .chapter-label {font-size:clamp(11px,3.05vw,12px);}
  .experience.pv-carousel .chapter .track,
  .experience.pv-carousel .chapter.active .track {height:3px;}
  .experience.pv-carousel .playback button {width:48px;height:48px;}
}

/* Keep all controls in view on shorter phones without changing the header. */
@media(max-width:600px) and (max-height:740px) {
  .experience.pv-carousel:not(.pv-phone-layout-locked) .pv-carousel-main {padding-block:12px;gap:8px;}
  .pv-scene-journey .experience.pv-carousel:not(.pv-phone-layout-locked) .scene-copy .eyebrow {margin-bottom:10px;}
  .pv-scene-journey .experience.pv-carousel:not(.pv-phone-layout-locked) .scene-copy .description {margin-block:12px 8px;}
  .pv-scene-journey .experience.pv-carousel:not(.pv-phone-layout-locked) .bottom-bar {
    margin-bottom:max(8px,env(safe-area-inset-bottom,0px));gap:10px;
  }
}
@media(max-width:600px) and (max-height:620px) {
  .experience.pv-carousel:not(.pv-phone-layout-locked) .pv-carousel-main {padding-block:6px 8px;gap:4px;}
  .pv-scene-journey .experience.pv-carousel:not(.pv-phone-layout-locked) .scene-copy .eyebrow {margin-bottom:8px;}
  .pv-scene-journey .experience.pv-carousel:not(.pv-phone-layout-locked) .scene-copy h1,
  .pv-scene-journey .experience.pv-carousel:not(.pv-phone-layout-locked) .scene-copy h2 {font-size:clamp(28px,8.5vw,36px);line-height:1.15;}
  .pv-scene-journey .experience.pv-carousel:not(.pv-phone-layout-locked) .scene-copy .description {font-size:13px;line-height:1.4;margin-block:8px 4px;}
  .pv-scene-journey .experience.pv-carousel:not(.pv-phone-layout-locked) .scene-copy .discover {font-size:11px;padding-block:0;}
  .pv-scene-journey .experience.pv-carousel:not(.pv-phone-layout-locked) .bottom-bar {gap:2px;}
  .experience.pv-carousel:not(.pv-phone-layout-locked) .playback button {width:44px;height:44px;}
}

/* Retain the initial short-phone fit while the browser bars move. */

@media(max-width:600px) {
  .experience.pv-carousel.pv-phone-short .pv-carousel-main {padding-block:12px;gap:8px;}
  .pv-scene-journey .experience.pv-carousel.pv-phone-short .scene-copy .eyebrow {margin-bottom:10px;}
  .pv-scene-journey .experience.pv-carousel.pv-phone-short .scene-copy .description {margin-block:12px 8px;}
  .pv-scene-journey .experience.pv-carousel.pv-phone-short .bottom-bar {
    margin-bottom:max(8px,env(safe-area-inset-bottom,0px));gap:10px;
  }
}
@media(max-width:600px) {
  .experience.pv-carousel.pv-phone-compact .pv-carousel-main {padding-block:6px 8px;gap:4px;}
  .pv-scene-journey .experience.pv-carousel.pv-phone-compact .scene-copy .eyebrow {margin-bottom:8px;}
  .pv-scene-journey .experience.pv-carousel.pv-phone-compact .scene-copy h1,
  .pv-scene-journey .experience.pv-carousel.pv-phone-compact .scene-copy h2 {font-size:clamp(28px,8.5vw,36px);line-height:1.15;}
  .pv-scene-journey .experience.pv-carousel.pv-phone-compact .scene-copy .description {font-size:13px;line-height:1.4;margin-block:8px 4px;}
  .pv-scene-journey .experience.pv-carousel.pv-phone-compact .scene-copy .discover {font-size:11px;padding-block:0;}
  .pv-scene-journey .experience.pv-carousel.pv-phone-compact .bottom-bar {gap:2px;}
  .experience.pv-carousel.pv-phone-compact .playback button {width:44px;height:44px;}
}

/* Keep the two scene arrows clear when hovered; retain keyboard focus feedback. */
.experience.pv-carousel .playback :is(#previous,#next):hover {
  background:transparent;box-shadow:none;
}

/* Center the image timeline independently of the carousel playback controls. */
.pv-home .experience.pv-carousel .bottom-bar {
  display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;
}
.pv-home .experience.pv-carousel .chapters {
  grid-area:1 / 1;justify-self:center;min-width:0;margin-inline:0;
}
.pv-home .experience.pv-carousel .playback {
  grid-area:2 / 1;justify-self:center;justify-content:center;margin-inline:0;
}

/* Playback belongs directly below the large photograph, centered on its stage. */
.experience.pv-carousel .pv-carousel-visual {
  display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;
  width:100%;min-width:0;gap:10px;
}
.experience.pv-carousel .pv-carousel-visual .photographs {grid-area:1 / 1;justify-self:center;}
@media(min-width:1500px) {
  .experience.pv-carousel .pv-carousel-visual {max-width:1100px;justify-self:end;}
}

/* Hide the complete photo timeline immediately after leaving the page top.
   Visibility preserves its space and prevents a scroll/layout jump. */
.pv-home .experience.pv-carousel.pv-timeline-scrolled-away > .bottom-bar {
  visibility:hidden;
  opacity:0;
  pointer-events:none;
  transition:none;
}

/* Toggle only the front photograph; the existing image transition handles
   the enlargement without reflowing the surrounding page. */
.experience.pv-carousel .photograph[data-position="front"] {cursor:zoom-in;}
.experience.pv-carousel.pv-carousel-image-expanded .photograph[data-position="front"] {
  transform:translate(-50%,-50%) scale(1.3);
  cursor:zoom-out;
}
.experience.pv-carousel .pv-carousel-visual .playback {
  transform:translateY(var(--pv-expanded-overhang,0px));
  transition:transform .5s cubic-bezier(.22,1,.36,1);
}
@media(prefers-reduced-motion:reduce) {
  .experience.pv-carousel .pv-carousel-visual .playback {transition:none;}
}
