/* GRV — individual Foriver project page, based on approved v14 prototype */
.project-page{
  overflow-x:hidden;
  background:var(--grv-paper);
  color:var(--grv-ink);
}

.project-main{padding-top:18px;}

.project-breadcrumbs{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:12px;
  padding:26px var(--pad) 0;
  color:var(--grv-ink-3);
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.project-breadcrumbs a{transition:color .3s ease;}
.project-breadcrumbs a:hover{color:var(--grv-ink);}
.project-breadcrumb-trail{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
}
.project-breadcrumb-trail [aria-current="page"]{color:var(--grv-ink-2);}
.project-back-link{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  color:var(--grv-ink-2);
  font-size:14px;
  letter-spacing:0;
  text-transform:none;
}

.project-intro{padding:42px var(--pad);}

.project-heading{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:14px;
  width:100%;
  max-width:1120px;
  margin:16px auto 0;
  text-align:center;
}

.project-status-row{
  display:flex;
  justify-content:center;
  width:100%;
  margin:0;
}

.project-status-row .project-status{
  min-height:31px;
  padding:0 12px;
  border:0;
  background:var(--grv-buttermilk);
}

.project-heading h1{
  margin:0;
  font-size:clamp(48px,5.4vw,84px);
  font-weight:var(--fw-light);
  line-height:.95;
  letter-spacing:-.045em;
}

.project-heading-meta{
  margin:6px 0 0;
  color:var(--grv-ink-2);
  font-size:14px;
  line-height:1.5;
}

.project-intro--generated{padding-bottom:54px;}

.project-hero-cover{
  position:relative;
  width:100%;
  height:clamp(560px,68vw,920px);
  margin:0;
  overflow:hidden;
  background:var(--grv-warm-grey);
}

.project-hero-cover img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}

.project-cover{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:790px;
  height:974px;
  max-width:calc(100vw - 80px);
  margin:0 auto;
  overflow:hidden;
  background:transparent;
}

.project-cover img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
}

.project-summary{padding:78px var(--pad) var(--section-y);}

.project-summary-grid{
  display:grid;
  grid-template-columns:minmax(280px,.78fr) minmax(560px,1.22fr);
  gap:72px;
  align-items:start;
  padding-bottom:28px;
  border-bottom:1px solid var(--grv-line);
}

.project-summary-content{
  grid-column:2;
  max-width:820px;
}

.project-summary-kicker{
  margin-bottom:24px;
  color:var(--grv-ink-3);
  font-size:13px;
  line-height:1.3;
  letter-spacing:.11em;
  text-transform:uppercase;
}

.project-summary-lead{
  max-width:800px;
  margin:0;
  padding-bottom:52px;
  color:var(--grv-ink);
  font-size:28px;
  font-weight:var(--fw-light);
  line-height:1.18;
  letter-spacing:-.02em;
}

.project-facts{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:30px 42px;
  margin:0;
  padding:30px 0 28px;
  border-top:0;
  border-bottom:0;
}

.project-facts div{
  min-width:0;
  padding:22px 28px 24px 0;
  border:0;
}

.project-facts dt{
  margin:0 0 12px;
  color:var(--grv-ink-3);
  font-size:14px;
  line-height:1.2;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.project-facts dd{
  margin:0;
  color:var(--grv-ink);
  font-size:18px;
  font-weight:var(--fw-regular);
  line-height:1.38;
}

.project-section{padding:var(--section-y) var(--pad);}

.project-section-label{
  color:var(--grv-ink-3);
  font-size:13px;
  line-height:1.3;
  letter-spacing:.11em;
  text-transform:uppercase;
}

.project-overview,
.project-task,
.project-information,
.project-services{
  display:grid;
  grid-template-columns:minmax(220px,.62fr) minmax(0,1.38fr);
  gap:clamp(54px,8vw,130px);
  align-items:start;
}

.project-overview h2{
  max-width:980px;
  margin:0;
  font-size:28px;
  font-weight:var(--fw-light);
  line-height:1.18;
  letter-spacing:-.025em;
}

.project-task{
  position:relative;
  border:0;
}
.project-task::after{
  content:"";
  position:absolute;
  right:var(--pad);
  left:var(--pad);
  height:1px;
  background:var(--grv-line);
}
.project-task::after{bottom:0;}
.project-task h2,
.project-information h2,
.project-services h2{
  margin:0 0 30px;
  font-size:clamp(42px,3.3vw,50px);
  font-weight:var(--fw-light);
  line-height:1.05;
  letter-spacing:-.03em;
}

.project-task p{
  max-width:880px;
  margin:0;
  color:var(--grv-ink-2);
  font-size:20px;
  line-height:1.55;
}

.project-editorial{padding-top:72px;}
.project-editorial-grid{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(24px,3vw,52px) clamp(18px,2.2vw,38px);
  align-items:start;
}

.project-editorial-item{
  position:relative;
  margin:0;
  overflow:hidden;
  background:var(--grv-warm-grey);
}

.project-editorial-item img{display:block;width:100%;height:100%;object-fit:cover;}
.project-editorial-item--1{grid-column:1/span 8;aspect-ratio:16/10;}
.project-editorial-item--2{grid-column:9/span 4;margin-top:72px;aspect-ratio:4/5;}
.project-editorial-item--3{grid-column:1/span 5;aspect-ratio:4/5;}
.project-editorial-item--4{grid-column:6/span 7;margin-top:52px;aspect-ratio:16/10;}
.project-editorial-item--5{grid-column:2/span 4;aspect-ratio:4/5;}
.project-editorial-item--6{grid-column:7/span 6;margin-top:78px;aspect-ratio:3/2;}
.project-gallery-empty{grid-column:1/-1;padding:80px 0;border-top:1px solid var(--grv-line);border-bottom:1px solid var(--grv-line);color:var(--grv-ink-3);font-size:16px;}

.project-information{border-top:1px solid var(--grv-line);}
.project-information-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin:0;
  border-top:1px solid var(--grv-line);
  border-bottom:1px solid var(--grv-line);
}

.project-information-grid div{min-width:0;padding:24px 24px 26px 0;}
.project-information-grid dt{margin:0 0 11px;color:var(--grv-ink-3);font-size:12px;letter-spacing:.1em;text-transform:uppercase;}
.project-information-grid dd{margin:0;color:var(--grv-ink);font-size:17px;line-height:1.42;}

.project-services{border-top:1px solid var(--grv-line);}
.project-services ol{margin:0;padding:0;list-style:none;border-top:1px solid var(--grv-ink);}
.project-services li{display:grid;grid-template-columns:54px 1fr;gap:22px;padding:24px 0;border-bottom:1px solid var(--grv-line);}
.project-services li span{padding-top:5px;color:var(--grv-ink-3);font-size:11px;letter-spacing:.12em;}
.project-services li strong{font-size:20px;font-weight:var(--fw-light);line-height:1.35;}

.project-video{
  display:block;
  padding-top:clamp(72px,6vw,88px);
  padding-bottom:clamp(72px,6vw,88px);
  background:var(--grv-brown);
  color:var(--grv-paper-warm);
}
.project-video__card{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(400px,.92fr);
  gap:0;
  align-items:stretch;
  width:min(100%,1040px);
  margin:0 auto;
  background:var(--grv-brown);
}
.project-video__media{position:relative;display:block;min-height:320px;overflow:hidden;background-color:var(--grv-ink);background-position:center;background-size:cover;color:inherit}
.project-video__media img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .9s var(--ease)}
.project-video__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(48,28,27,.06),rgba(48,28,27,.42))}
.project-video__play{position:absolute;top:50%;left:50%;display:grid;width:68px;height:68px;place-items:center;padding:0;border-radius:50%;background:var(--accent-buttermilk);color:var(--grv-brown);box-shadow:0 8px 28px rgba(48,28,27,.18);font-size:0;line-height:1;transform:translate(-50%,-50%);transition:transform .35s var(--ease),background .3s ease}
.project-video__play::before{content:"";display:block;width:0;height:0;margin-left:5px;border-top:10px solid transparent;border-bottom:10px solid transparent;border-left:16px solid currentColor}
.project-video__content{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:clamp(36px,3.5vw,48px)}
.project-video__content>span{color:rgba(255,255,255,.66);font-size:12px;letter-spacing:.11em;text-transform:uppercase}
.project-video h2{max-width:440px;margin:15px 0 20px;color:inherit;font-size:clamp(34px,2.5vw,38px);font-weight:var(--fw-light);line-height:1.03;letter-spacing:-.03em}
.project-video p{max-width:430px;margin:0 0 26px;color:rgba(255,255,255,.76);font-size:15px;line-height:1.5}
.project-video .gx-primary{background:var(--accent-buttermilk);color:var(--grv-brown)}
@media(hover:hover){
  .project-video__media:hover img{transform:scale(1.018)}
  .project-video__media:hover .project-video__play{background:var(--grv-paper-warm);transform:translate(-50%,-50%) scale(1.06)}
}
@media(hover:none) and (pointer:coarse){.project-video__media:active .project-video__play{transform:translate(-50%,-50%) scale(.94)}}

.project-next{
  position:relative;
  display:block;
  min-height:clamp(480px,62vw,760px);
  overflow:hidden;
  color:var(--grv-white);
}
.project-next>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease);}
.project-next-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(48,28,27,.12),rgba(48,28,27,.66));}
.project-next-copy{position:absolute;right:var(--pad);bottom:72px;left:var(--pad);display:grid;gap:14px;}
.project-next-copy small{font-size:12px;letter-spacing:.12em;text-transform:uppercase;}
.project-next-copy strong{font-size:clamp(46px,6vw,88px);font-weight:var(--fw-light);line-height:.95;letter-spacing:-.04em;}
.project-next-copy>span{font-size:16px;}
.project-noscript{margin:80px var(--pad);}

.project-section-head{
  display:flex;
  align-items:end;
  justify-content:center;
  gap:32px;
  margin-bottom:38px;
}

.project-section-head h2{
  margin:0;
  font-size:clamp(44px,3.5vw,50px);
  font-weight:var(--fw-light);
  line-height:1;
  letter-spacing:-.03em;
}

.project-visualization{
  position:relative;
  padding-top:96px;
  border:0;
  background:var(--surface-page);
}

.project-visualization::after{
  content:none;
}

.project-realized-cards{
  position:relative;
  overflow:hidden;
  border:0;
  background:var(--surface-page);
}

.project-realized-cards::after{
  content:"";
  position:absolute;
  right:var(--pad);
  left:var(--pad);
  z-index:2;
  height:1px;
  background:var(--grv-line);
}
.project-realized-cards::after{bottom:0;}

.project-card-gallery{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(18px,2vw,30px);
  align-items:start;
}

.project-card-gallery__item{
  position:relative;
  min-width:0;
  margin:0;
}

.project-card-gallery__media{
  position:relative;
  overflow:hidden;
  background:var(--grv-warm-grey);
}

.project-card-gallery__media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transition:transform .9s var(--ease);
}

.project-card-gallery__item--1{grid-column:auto;}
.project-card-gallery__item--1 .project-card-gallery__media{aspect-ratio:4/5;}
.project-card-gallery__item--2{grid-column:auto;margin-top:clamp(24px,2.2vw,38px);}
.project-card-gallery__item--2 .project-card-gallery__media{aspect-ratio:4/5;}
.project-card-gallery__item--3{grid-column:auto;margin-top:clamp(8px,1vw,16px);}
.project-card-gallery__item--3 .project-card-gallery__media{aspect-ratio:4/5;}
.project-card-gallery__item--4{grid-column:auto;margin-top:clamp(8px,1vw,16px);}
.project-card-gallery__item--4 .project-card-gallery__media{aspect-ratio:4/5;}
.project-card-gallery__item--5{grid-column:auto;margin-top:clamp(30px,2.6vw,44px);}
.project-card-gallery__item--5 .project-card-gallery__media{aspect-ratio:4/5;}
.project-card-gallery__item--6{grid-column:auto;margin-top:clamp(12px,1.2vw,20px);}
.project-card-gallery__item--6 .project-card-gallery__media{aspect-ratio:4/5;}

@media(hover:hover){
  .project-card-gallery__item:hover .project-card-gallery__media img{transform:scale(1.018);}
}

.project-gallery-shell{
  width:100%;
}

.project-gallery-vertical{
  display:grid;
  grid-template-columns:minmax(0,620px) 88px;
  gap:14px;
  align-items:stretch;
  justify-content:center;
  width:min(100%,722px);
  margin:0 auto;
}

.project-gallery-main{
  position:relative;
  margin:0;
  overflow:hidden;
  aspect-ratio:790/974;
  background:var(--grv-warm-grey);
}

.project-gallery-main img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  transition:opacity .45s ease,transform .9s var(--ease);
}

.project-gallery-main.is-changing>img{
  opacity:.18;
  transform:scale(.985);
}

.project-gallery-thumbs-wrap{
  position:relative;
  min-width:0;
  min-height:0;
}

.project-gallery-thumbs{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  gap:10px;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-color:color-mix(in srgb,var(--grv-ink) 32%,transparent) transparent;
  scrollbar-width:thin;
}

.project-gallery-thumbs::-webkit-scrollbar{width:3px;}
.project-gallery-thumbs::-webkit-scrollbar-track{background:transparent;}
.project-gallery-thumbs::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--grv-ink) 32%,transparent);}

.project-gallery-thumb{
  position:relative;
  flex:0 0 auto;
  width:calc(100% - 8px);
  padding:0;
  overflow:hidden;
  aspect-ratio:4/5;
  border:0;
  outline:1px solid transparent;
  outline-offset:-1px;
  background:var(--grv-warm-grey);
  opacity:.48;
  cursor:pointer;
  transition:opacity .35s ease,outline-color .35s ease;
}

.project-gallery-thumb img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

.project-gallery-thumb.is-active{
  outline-color:var(--grv-ink);
  opacity:1;
}

.project-gallery-thumb:focus-visible{
  outline:2px solid var(--grv-ink);
  outline-offset:-2px;
}

.project-gallery-controls{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:24px;
  width:min(100%,722px);
  margin:18px auto 0;
}

.project-gallery-arrow{
  position:absolute;
  top:50%;
  z-index:3;
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  padding:0;
  transform:none;
  border:1px solid color-mix(in srgb,var(--grv-ink) 16%,transparent);
  background:color-mix(in srgb,var(--grv-paper) 92%,transparent);
  color:var(--grv-ink);
  font-size:21px;
  cursor:pointer;
  transform:translateY(-50%);
  transition:background .3s ease,color .3s ease,border-color .3s ease;
}

.project-gallery-arrow--prev{left:14px;}
.project-gallery-arrow--next{right:14px;}

.project-counter{
  position:relative;
  z-index:3;
  min-width:64px;
  padding:0;
  background:transparent;
  color:var(--grv-ink-3);
  font-size:12px;
  letter-spacing:.08em;
  text-align:center;
}

.project-counter [data-gallery-current]{
  color:var(--accent-butter);
}

.project-visualization .project-media-curtain,
.project-realized-cards .project-media-curtain{
  transform-origin:top;
}
.project-gallery-main .project-media-curtain{animation-delay:var(--gallery-reveal-delay,0ms);}

.project-features{
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:90px;
  align-items:start;
}

.project-features-label{
  color:var(--grv-ink-3);
  font-size:16px;
  letter-spacing:.06em;
}

.project-feature-list{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 40px;
}

.project-feature{
  padding:24px 0 34px;
  border-top:1px solid var(--grv-line);
}

.project-feature h3{
  margin:0 0 12px;
  color:var(--grv-ink);
  font-size:var(--text-h3);
  font-weight:var(--fw-regular);
  line-height:var(--lh-h3);
}

.project-feature p{
  margin:0;
  color:var(--grv-ink-3);
  font-size:var(--text-body);
  line-height:var(--lh-body);
}

.project-finished{
  overflow:hidden;
  border-top:1px solid var(--grv-line);
  background:var(--grv-paper);
}

.project-finished-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:36px;
  margin-bottom:46px;
}

.project-finished-head h2,
.project-next-section>h2{
  margin:0;
  font-size:clamp(44px,3.5vw,50px);
  font-weight:var(--fw-light);
  line-height:1.02;
  letter-spacing:-.035em;
}

.project-finished-controls{display:flex;gap:10px;}

.project-finished-viewport{
  width:calc(100% + var(--pad));
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-x:contain;
  scroll-behavior:smooth;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  touch-action:pan-x pan-y;
}

.project-finished-viewport::-webkit-scrollbar{display:none;}

.project-finished-track{
  display:flex;
  align-items:center;
  gap:clamp(20px,2.4vw,38px);
  width:max-content;
  padding:18px var(--pad) 22px 0;
}

.project-finished-card{
  position:relative;
  flex:0 0 clamp(390px,31vw,560px);
  width:clamp(390px,31vw,560px);
  height:clamp(500px,43vw,680px);
  margin:0;
  overflow:hidden;
  scroll-snap-align:start;
  background:var(--grv-warm-grey);
  opacity:.62;
  transform:scale(.965);
  transform-origin:center;
  transition:opacity .55s ease,transform .7s var(--ease);
}

.project-finished-card.is-active{opacity:1;transform:scale(1);}

.project-finished-card img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}

.project-next-section{padding:112px var(--pad);}
.project-next-card{
  position:relative;
  display:block;
  width:min(720px,100%);
  min-height:clamp(620px,62vw,880px);
  margin:0 auto;
  overflow:hidden;
  color:var(--grv-white);
}
.project-next-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease);}
.project-next-card .project-next-copy{right:38px;bottom:48px;left:38px;}

.project-realisation{
  padding:96px var(--pad) 108px;
  overflow:hidden;
  background:var(--grv-buttermilk);
}

.project-realisation-layout{
  display:grid;
  grid-template-columns:minmax(300px,390px) minmax(0,1fr);
  gap:54px;
  align-items:start;
}

.project-realisation-intro{
  display:flex;
  flex-direction:column;
  min-height:540px;
  padding-top:4px;
}

.project-realisation-intro h2{
  max-width:360px;
  margin:0 0 34px;
  font-size:var(--text-section-title);
  font-weight:var(--fw-light);
  line-height:.98;
  letter-spacing:-.035em;
}

.project-realisation-intro p{
  max-width:330px;
  margin:0;
  color:var(--grv-ink);
  font-size:var(--text-lead);
  line-height:var(--lh-lead);
}

.project-realisation-controls{
  display:flex;
  gap:10px;
  margin-top:auto;
  padding-top:36px;
}

.project-realisation-arrow{
  width:50px;
  height:50px;
  padding:0;
  border:1px solid color-mix(in srgb,var(--grv-ink) 32%,transparent);
  background:color-mix(in srgb,var(--grv-ink) 8%,transparent);
  color:var(--grv-ink);
  font-size:21px;
  cursor:pointer;
  transition:background .3s ease,color .3s ease,border-color .3s ease;
}

.project-realisation-slider{position:relative;min-width:0;}

.project-realisation-viewport{
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-x:contain;
  scroll-behavior:smooth;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  -ms-overflow-style:none;
  touch-action:pan-x pan-y;
}

.project-realisation-viewport::-webkit-scrollbar{display:none;}

.project-realisation-track{
  display:flex;
  align-items:stretch;
  gap:40px;
  width:max-content;
  padding-right:18vw;
}

.project-realisation-card{
  position:relative;
  flex:0 0 clamp(520px,39vw,640px);
  width:clamp(520px,39vw,640px);
  height:540px;
  margin:0;
  overflow:hidden;
  scroll-snap-align:start;
  background:color-mix(in srgb,var(--grv-white) 28%,transparent);
}

.project-realisation-card img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transition:transform .85s var(--ease);
}

.project-media-curtain{
  position:absolute;
  inset:0;
  z-index:2;
  background:var(--grv-paper);
  transform:scaleY(1);
  transform-origin:bottom;
}

.project-realisation .project-media-curtain{background:var(--grv-buttermilk);}

.project-media.is-visible .project-media-curtain{
  animation:projectCurtain 1.25s var(--ease) forwards;
  animation-delay:var(--gallery-reveal-delay,var(--reveal-delay,0ms));
}

@keyframes projectCurtain{
  from{transform:scaleY(1);}
  to{transform:scaleY(0);}
}

@media(hover:hover){
  .project-gallery-arrow:hover,
  .project-realisation-arrow:hover{
    border-color:var(--grv-ink);
    background:var(--grv-ink);
    color:var(--grv-ink-inverse);
  }

  .project-realisation-card:hover img{transform:scale(1.025);}
  .project-next:hover>img{transform:scale(1.035);}
  .project-next-card:hover>img{transform:scale(1.035);}
}

@media(max-width:1279px){
  .project-summary-lead,
  .project-overview h2{font-size:25px;}
}

@media(max-width:1199px){
  .project-cover{
    width:min(790px,76vw);
    height:auto;
    aspect-ratio:790 / 974;
  }

  .project-summary-grid{grid-template-columns:1fr;}
  .project-summary-empty{display:none;}

  .project-summary-content{
    grid-column:1;
    max-width:900px;
    margin-left:auto;
  }

  .project-summary-lead,
  .project-overview h2{font-size:25px;}

  .project-realisation-layout{
    grid-template-columns:280px minmax(0,1fr);
    gap:36px;
  }

  .project-realisation-intro{min-height:490px;}

  .project-realisation-card{
    flex-basis:520px;
    width:520px;
    height:490px;
  }
}

@media(max-width:1023px){
  .project-gallery-vertical{grid-template-columns:minmax(0,560px) 80px;gap:12px;width:min(100%,652px);}
  .project-gallery-controls{width:min(100%,652px);}
}

@media(max-width:1023px){
  .project-summary{
    padding-top:58px;
    padding-bottom:88px;
  }

  .project-summary-lead{
    margin-bottom:0;
    font-size:34px;
  }

  .project-facts{grid-template-columns:repeat(2,minmax(0,1fr));}

  .project-card-gallery{grid-template-columns:repeat(2,minmax(0,1fr));}
  .project-card-gallery__item{grid-column:auto;}
  .project-card-gallery__item:nth-child(even){margin-top:22px;}
  .project-card-gallery__item:nth-child(odd){margin-top:0;}

  .project-features{
    grid-template-columns:1fr;
    gap:40px;
  }

  .project-realisation-layout{
    grid-template-columns:1fr;
    gap:34px;
  }

  .project-realisation-intro{
    min-height:0;
    padding-right:0;
  }

  .project-realisation-controls{
    margin-top:28px;
    padding-top:0;
  }

  .project-realisation-card{
    flex-basis:min(74vw,520px);
    width:min(74vw,520px);
    height:460px;
  }

  .project-finished-card{
    flex-basis:min(58vw,500px);
    width:min(58vw,500px);
    height:590px;
  }

  .project-overview,
  .project-task,
  .project-information,
  .project-services{grid-template-columns:1fr;gap:34px;}

  .project-information-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}

@media(max-width:900px){
  .project-video__card{grid-template-columns:1fr;width:100%;overflow:hidden}
  .project-video__media{display:block!important;width:100%;min-width:0;min-height:clamp(190px,56.25vw,260px)!important;aspect-ratio:16/9}
}

@media(max-width:767px){
  .project-main{padding-top:8px;}

  .project-breadcrumbs{
    padding:20px 20px 0;
    font-size:10px;
  }

  .project-intro{padding:42px 20px;}

  .project-heading{margin-top:0;}

  .project-status-row{
    justify-content:center;
    margin-bottom:0;
  }

  .project-heading h1{font-size:50px;}

  .project-cover{
    width:calc(100% - 40px);
    max-width:none;
    height:auto;
    aspect-ratio:790 / 974;
  }

  .project-hero-cover{height:70svh;min-height:480px;}

  .project-summary{padding:50px 20px;}

  .project-summary-lead{
    margin-bottom:0;
    padding-bottom:40px;
    font-size:21px;
    line-height:1.2;
  }

  .project-facts{
    grid-template-columns:1fr 1fr;
    gap:26px 18px;
  }

  .project-card-gallery{grid-template-columns:1fr;gap:24px;}
  .project-card-gallery__item,
  .project-card-gallery__item:nth-child(n){margin-top:0;}
  .project-card-gallery__item--1 .project-card-gallery__media,
  .project-card-gallery__item--3 .project-card-gallery__media,
  .project-card-gallery__item--5 .project-card-gallery__media{aspect-ratio:4/5;}
  .project-card-gallery__item--2 .project-card-gallery__media,
  .project-card-gallery__item--4 .project-card-gallery__media,
  .project-card-gallery__item--6 .project-card-gallery__media{aspect-ratio:4/3;}

  .project-facts div{padding:18px 0;}
  .project-facts dt{font-size:12px;}
  .project-facts dd{font-size:16px;}

  .project-section{padding:50px 20px;}
  .project-section-head{margin-bottom:38px;}
  .project-section-head h2{font-size:clamp(34px,9vw,42px);}

  .project-gallery-vertical{grid-template-columns:1fr;gap:12px;width:100%;}
  .project-gallery-thumbs-wrap{height:86px;}
  .project-gallery-thumbs{
    position:static;
    flex-direction:row;
    gap:8px;
    height:86px;
    overflow-x:auto;
    overflow-y:hidden;
    padding-bottom:5px;
  }
  .project-gallery-thumb{width:64px;height:80px;aspect-ratio:auto;}
  .project-gallery-controls{width:100%;margin-top:14px;}

  .project-gallery-arrow{
    width:42px;
    height:42px;
  }

  .project-feature-list{grid-template-columns:1fr;}

  .project-overview h2{font-size:21px;line-height:1.2;}
  .project-task p{font-size:18px;}
  .project-editorial-grid{grid-template-columns:1fr;gap:28px;}
  .project-editorial-item--1,.project-editorial-item--2,.project-editorial-item--3,.project-editorial-item--4,.project-editorial-item--5,.project-editorial-item--6{grid-column:auto;margin-top:0;aspect-ratio:4/5;}
  .project-editorial-item--1,.project-editorial-item--4,.project-editorial-item--6{aspect-ratio:4/3;}
  .project-information-grid{grid-template-columns:1fr;}
  .project-information-grid dd{font-size:15px;}
  .project-video{padding:56px 20px;background:var(--grv-brown)}
  .project-video__card{grid-template-columns:1fr}
  .project-video__media{display:block!important;min-height:clamp(190px,56.25vw,260px)!important;aspect-ratio:16/9}
  .project-video__media img{display:block!important;visibility:visible!important;opacity:1}
  .project-video__play{width:60px;height:60px;font-size:0}
  .project-video__content{width:100%;min-width:0;padding:26px 22px}
  .project-video h2{margin:14px 0 18px;font-size:30px}
  .project-video p{margin-bottom:26px;font-size:15px}
  .project-video .gx-btn{width:100%;}
  .project-next{min-height:520px;}
  .project-next-copy{right:20px;bottom:44px;left:20px;}

  .project-realisation{padding:50px 20px;}

  .project-realisation-intro h2{
    margin-bottom:22px;
    font-size:clamp(34px,9vw,42px);
  }

  .project-realisation-intro p{font-size:16px;}

  .project-realisation-track{
    gap:16px;
    padding-right:20px;
  }

  .project-realisation-card{
    flex-basis:78vw;
    width:78vw;
    height:420px;
  }

  .project-realisation-arrow{
    width:46px;
    height:46px;
  }

  .project-finished{padding-right:20px;padding-left:20px;}
  .project-finished-head{align-items:flex-start;flex-direction:column;margin-bottom:26px;}
  .project-finished-head h2{font-size:clamp(34px,9vw,42px);}
  .project-finished-viewport{width:calc(100% + 20px);}
  .project-finished-track{gap:16px;padding-right:20px;}
  .project-finished-card{flex-basis:78vw;width:78vw;height:500px;}
  .project-next-section{padding:50px 20px;}
  .project-next-card{min-height:520px;}
  .project-next-card .project-next-copy{right:20px;bottom:40px;left:20px;}
}

@media(prefers-reduced-motion:reduce){
  .project-media-curtain{display:none;}

  .project-cover img,
  .project-gallery-main img,
  .project-gallery-thumb,
  .project-realisation-card img,
  .project-gallery-arrow,
    .project-realisation-arrow{
    transition:none;
  }

  .project-finished-card,
  .project-next-card>img{transition:none;}

  .project-realisation-viewport,
  .project-finished-viewport{scroll-behavior:auto;}
}


/* 2026-08-19 — visualization gallery: same design, more compact first viewport. */
@media (min-width:1025px){
  .project-visualization{padding-top:48px;padding-bottom:48px}
  .project-section-head{margin-bottom:24px}
  .project-gallery-vertical{
    grid-template-columns:minmax(0,540px) 76px;
    gap:12px;
    width:min(100%,628px);
  }
  .project-gallery-controls{width:min(100%,628px);margin-top:14px}
  .project-gallery-thumbs{gap:8px}
  .project-gallery-thumb{min-height:0}
}



/* 2026-08-19 — compact project visualisation gallery, same approved design. */
@media (min-width:1025px){
  .project-visualization{
    padding-top:44px;
    padding-bottom:52px;
  }
  .project-visualization .project-section-head{
    margin-bottom:18px;
  }
  .project-gallery-vertical{
    grid-template-columns:minmax(0,600px) 72px;
    gap:12px;
    width:min(100%,684px);
  }
  .project-gallery-main{
    height:min(55vh,510px);
    aspect-ratio:auto;
  }
  .project-gallery-main img{
    object-fit:contain;
  }
  .project-gallery-controls{
    justify-content:center;
    width:min(100%,684px);
    margin-top:12px;
  }
  .project-counter{
    min-width:90px;
    text-align:center;
  }
  .project-gallery-thumbs{gap:8px}
}

/* Counter is visually centered beneath the gallery on every breakpoint. */
.project-gallery-controls{
  justify-content:center;
}
.project-counter{
  text-align:center;
}



/* 2026-08-19 — restore the approved gallery proportions:
   no grey side fields, while the whole visualisation still fits in the viewport. */
@media (min-width:1025px){
  .project-visualization{
    padding-top:38px;
    padding-bottom:48px;
  }
  .project-visualization .project-section-head{
    margin-bottom:16px;
  }
  .project-gallery-vertical{
    grid-template-columns:minmax(0,660px) 76px;
    gap:14px;
    width:min(100%,750px);
  }
  .project-gallery-main{
    height:min(58vh,560px);
    aspect-ratio:auto;
    background:transparent;
  }
  .project-gallery-main img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
  }
  .project-gallery-controls{
    width:min(100%,750px);
    margin-top:10px;
    justify-content:center;
  }
  .project-counter{
    min-width:92px;
    text-align:center;
  }
}



/* 2026-08-19 — final vertical visualisation viewport.
   Keep project cards vertical, fill the image area, and fit the entire block on screen. */
@media (min-width:1025px){
  .project-visualization{
    padding-top:18px !important;
    padding-bottom:34px !important;
  }
  .project-visualization .project-section-head{
    margin-bottom:12px !important;
  }
  .project-visualization .project-section-head h2{
    margin:0;
  }
  .project-gallery-vertical{
    grid-template-columns:minmax(0,500px) 72px !important;
    gap:14px !important;
    width:min(100%,586px) !important;
    margin-inline:auto;
  }
  .project-gallery-main{
    width:100% !important;
    height:min(66vh,620px) !important;
    aspect-ratio:4/5 !important;
    background:transparent !important;
  }
  .project-gallery-main img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center !important;
  }
  .project-gallery-thumbs{
    max-height:min(66vh,620px) !important;
  }
  .project-gallery-controls{
    width:min(100%,586px) !important;
    margin:8px auto 0 !important;
    justify-content:center !important;
  }
  .project-counter{
    min-width:92px;
    text-align:center !important;
  }
}


/* 2026-08-19 23:40 — make the vertical project visualisation taller in the viewport. */
@media (min-width:1025px){
  .project-visualization{
    padding-top:12px !important;
    padding-bottom:26px !important;
  }
  .project-visualization .project-section-head{
    margin-bottom:8px !important;
  }
  .project-gallery-vertical{
    grid-template-columns:minmax(0,540px) 72px !important;
    width:min(100%,626px) !important;
  }
  .project-gallery-main{
    height:min(72vh,680px) !important;
    aspect-ratio:4/5 !important;
  }
  .project-gallery-thumbs{
    max-height:min(72vh,680px) !important;
  }
  .project-gallery-controls{
    width:min(100%,626px) !important;
    margin-top:6px !important;
  }
}


/* 2026-08-19 23:55 — taller vertical visualisation with more breathing room. */
@media (min-width:1025px){
  .project-visualization{
    padding-top:28px !important;
    padding-bottom:58px !important;
  }
  .project-visualization .project-section-head{
    margin-bottom:24px !important;
  }
  .project-gallery-vertical{
    grid-template-columns:minmax(0,560px) 74px !important;
    gap:18px !important;
    width:min(100%,652px) !important;
    margin-inline:auto;
  }
  .project-gallery-main{
    height:min(76vh,720px) !important;
    aspect-ratio:4/5 !important;
    background:transparent !important;
  }
  .project-gallery-main img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
  }
  .project-gallery-thumbs{
    max-height:min(76vh,720px) !important;
    gap:10px !important;
  }
  .project-gallery-controls{
    width:min(100%,652px) !important;
    margin:16px auto 0 !important;
    justify-content:center !important;
  }
  .project-counter{
    min-width:96px;
    text-align:center !important;
  }
  .project-visualization + .project-section,
  .project-visualization + section{
    margin-top:42px !important;
  }
}


/* 2026-08-20 — taller visualisation with comfortable editorial spacing. */
@media (min-width:1025px){
  .project-visualization{
    padding-top:36px !important;
    padding-bottom:72px !important;
  }
  .project-visualization .project-section-head{
    margin-bottom:30px !important;
  }
  .project-gallery-vertical{
    grid-template-columns:minmax(0,590px) 76px !important;
    gap:20px !important;
    width:min(100%,686px) !important;
    margin-inline:auto;
  }
  .project-gallery-main{
    height:min(80vh,780px) !important;
    aspect-ratio:4/5 !important;
    background:transparent !important;
  }
  .project-gallery-main img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center !important;
  }
  .project-gallery-thumbs{
    max-height:min(80vh,780px) !important;
    gap:12px !important;
  }
  .project-gallery-controls{
    width:min(100%,686px) !important;
    margin:20px auto 0 !important;
    justify-content:center !important;
  }
  .project-counter{
    min-width:96px;
    text-align:center !important;
  }
  .project-visualization::after{
    bottom:22px !important;
  }
}


/* 2026-08-20 fix: avoid doubled dividers when there is no realised-interior gallery. */
.project-visualization + .project-features,
.project-visualization + .project-services,
.project-visualization + .project-realisation{border-top:0 !important;}
.project-realized-cards + .project-features,
.project-realized-cards + .project-services,
.project-realized-cards + .project-realisation{border-top:0 !important;}
