/* The alternative keeps the original seven stages and changes their presentation only. */
.steps-timeline { background: #0b0b0b; color: #eee; }
.steps-timeline .steps__title { color: #eee; }
.steps-timeline .steps-row { gap: 48px; }
.steps-timeline .steps-content { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 0; padding-top: 0; border: 0; }
.steps-timeline .steps-col { display: contents; }
.steps-timeline .steps-block { display: flex; flex-direction: column; align-items: center; gap: 16px; padding: 54px 14px 88px; text-align: center; border-top: 0; border-bottom: 1px solid #ff6a33; }
.steps-timeline .steps-block::before { content: none; display: none; }
.steps-timeline .steps-block::after { content: ''; position: absolute; bottom: -12px; left: calc(50% - 12px); width: 24px; height: 24px; display: grid; place-items: center; color: #656565; border: 1px solid #656565; border-radius: 50%; background: radial-gradient(circle at center, currentColor 0 4px, #0b0b0b 4.5px); font-size: 16px; }
.steps-timeline .steps-block__number { margin: 0; font-size: 14px; line-height: 1; letter-spacing: .08em; }
.steps-timeline .steps-block__content { align-items: center; gap: 18px; }
.steps-timeline .steps-block__title { font-size: clamp(19px,1.6vw,25px); line-height: 1.15; color: #eee; }
.steps-timeline .steps-block__text { font-size: 16px; line-height: 1.5; color: #929292; }
.steps-timeline .steps-bottom { margin-top: 0; }
.steps-timeline .button-black { border: 1px solid #ffffff40; }
/* Match the section title rhythm across the alternative page. */
.news .news-row { gap: 48px; }
.news .news-top__title.section-title, .request .request-left__title.section-title { font-size: clamp(40px,4.2vw,64px); line-height: 1.08; letter-spacing: normal; }
/* Both lighting states use one fixed frame. Only opacity changes on hover. */
.similar-night .similar-block__img { isolation: isolate; }
.similar-night .similar-block__img img { display: block; transform: none !important; object-fit: cover; object-position: center; filter: none; transition: none; }
.similar-night .similar-block__img .similar-block__night { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; pointer-events: none; transition: opacity .55s cubic-bezier(.22,.61,.36,1); }
.similar-night .similar-block:focus-visible .similar-block__night { opacity: 1; }
@media (hover:hover) and (pointer:fine) {
 .similar-night .similar-block:hover .similar-block__night { opacity: 1; }
 .similar-night .similar-block, .similar-night .similar-block__img { cursor: url('../img/main/project-cursor.svg') 24 24, pointer; }
 .similar-night .similar-block__favorite { cursor: pointer; }
}
@media (min-width:769px) and (max-width:1200px) {
 .steps-timeline .steps-content { grid-template-columns: repeat(7,200px); overflow-x: auto; padding-block: 6px 16px; scrollbar-color: #ff6a33 #242424; }
}
@media (max-width:768px) {
 .steps-timeline .steps-row { gap: 32px; }
 .steps-timeline .steps-content { display: grid; grid-template-columns: minmax(0,1fr); min-width: 0; padding-left: 12px; overflow: visible; }
 .steps-timeline .steps-block { width: 100%; min-width: 0; height: auto; align-items: flex-start; text-align: left; padding: 0 0 32px 36px; border: 0; border-left: 1px solid #ff6a33; gap: 12px; }
 .steps-timeline .steps-block::before { display: none; }
 .steps-timeline .steps-block::after { top: 0; bottom: auto; left: -13px; }
 .steps-timeline .steps-col:last-child .steps-block:last-child { padding-bottom: 0; border-left-color: transparent; }
 .steps-timeline .steps-block__content { width: 100%; min-width: 0; max-width: 100%; align-items: stretch; gap: 12px; }
 .steps-timeline .steps-block__title, .steps-timeline .steps-block__text { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
 .steps-timeline .steps-block__title { font-size: 24px; }
 .news .news-row { gap: 32px; }
 .news .news-top__title.section-title, .request .request-left__title.section-title { font-size: clamp(34px,7.5vw,44px); }
}
@media (prefers-reduced-motion:reduce) {
 .similar-night .similar-block__img .similar-block__night { transition: none; }
}

.similar .similar-top, .news .news-top { margin-bottom: 0; }
.similar .similar-row { gap: 48px; }
.steps-timeline .steps__title.section-title, .similar .similar-top__title.section-title { font-size: clamp(42px,4.2vw,64px); line-height: 1.08; }
@media (max-width:768px) { .similar .similar-row { gap: 32px; } .steps-timeline .steps__title.section-title, .similar .similar-top__title.section-title { font-size: clamp(34px,7.5vw,44px); } }
@media (min-width:769px) {
 .steps-timeline .steps-block { background-image: linear-gradient(#ffffff22,#ffffff22); background-size: 1px 52px; background-position: center bottom; background-repeat: no-repeat; }
}

/* Preserve the original two-column photo grid, expanding the whole gallery. */
.project-gallery .gallery-wide { width: 100%; max-width: none; padding: 0; overflow: hidden; }
.project-gallery .gallery-wide .swiper-wrapper { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); width: 100%; height: auto; gap: 2px; transform: none; }
.project-gallery .gallery-wide .project-gallery-slider__block { width: 100%; min-width: 0; height: auto; margin: 0; aspect-ratio: 880 / 538; }
.project-gallery .gallery-wide .project-gallery-slider__block img { display: block; width: 100%; height: 100%; object-fit: cover; }
.project-gallery .gallery-wide + .project-gallery-bottom { display: none; }
.project-gallery-head__block:last-child::after { display: none; }

/* Adapt only the text and form; retain the original right-hand image. */
.request-consultation .consultation-heading { display: block; margin: 0; }
.request-consultation .consultation-heading h2 { font-size: clamp(40px,3.8vw,60px); line-height: 1.08; font-weight: 400; }
.request-consultation .request-left__content { gap: 36px; }
.request-consultation .consultation-form { width: 100%; }
.request-consultation .consultation-button { max-width: none; }
@media (max-width:768px) {
 .request-consultation .consultation-heading h2 { font-size: clamp(32px,7.5vw,42px); }
 .request-consultation .request-left__content { gap: 28px; }
}
.request-consultation .request-row.container { grid-template-columns: repeat(2,minmax(0,1fr)); }
.request-consultation .request-row.container .request-left { display: flex; padding-right: clamp(32px,4vw,80px); }
.request-consultation .request-row.container .request-left__content { display: flex; flex-direction: column; align-items: stretch; gap: 36px; }
@media (max-width:1024px) {
 .request-consultation .request-row.container { grid-template-columns: minmax(0,1fr); }
 .request-consultation .request-row.container .request-left { padding-right: 0; }
}

/* Keep menu movement as restrained as the page reveals. */
@media(max-width:1024px) {
 .alternative-page .header-menu { transition: clip-path .4s var(--motion-ease),opacity .25s ease,visibility 0s .4s; }
 .alternative-page .header-menu.active { transition-delay: 0s; }
 .alternative-page .header-menu::before { display: none; }
 .alternative-page .header-menu .nav-menu__item { transform: translateY(8px); transition: transform .35s var(--motion-ease),opacity .3s ease; }
 .alternative-page .header-menu.active .nav-menu__item { transform: none; transition-delay: calc(40ms + var(--menu-index) * 30ms); }
}
@media(prefers-reduced-motion:reduce) {
 .alternative-page .header-menu,.alternative-page .header-menu .nav-menu__item { transition: none; }
}

/* End the gallery exactly at the lower edge of the final photo row. */
.alternative-page .project-gallery { padding-bottom: 0; margin-bottom: 0; }
.alternative-page .project-gallery-row { padding-bottom: 0; margin-bottom: 0; }
.alternative-page .gallery-wide { margin-bottom: 0; padding-bottom: 0; }
.alternative-page .gallery-wide .swiper-wrapper { margin-bottom: 0; padding-bottom: 0; }
.alternative-page .gallery-wide .project-gallery-slider__block { display: block; position: relative; overflow: hidden; }
.alternative-page .gallery-wide .project-gallery-slider__block img { position: absolute; inset: 0; width: 100%; height: 100%; }

/* The CSS resting frames match WAAPI exactly, including the composited transform. */
.alternative-page [data-scroll-reveal] { opacity: 1; transform: translate3d(0,0,0); }
.alternative-page [data-scroll-reveal="pending"] { opacity: 0; transform: translate3d(0,14px,0); }
@media (prefers-reduced-motion: reduce) {
 .alternative-page [data-scroll-reveal] { opacity: 1; transform: none; }
}

/* A fixed track with a scroll-driven fill, vertical on mobile and horizontal on desktop. */
.steps-timeline .steps-content[data-scroll-track] { position: relative; }
.steps-timeline .steps-content[data-scroll-track]::before,
.steps-timeline .steps-content[data-scroll-track]::after {
 content: ''; position: absolute; pointer-events: none; z-index: 1;
 bottom: 0; left: 0; width: 100%; height: 1px; background: #ffffff30;
}
.steps-timeline .steps-content[data-scroll-track]::after {
 background: #ff6a33; transform-origin: left; transform: scaleX(var(--stage-progress,0));
}
.steps-timeline .steps-content[data-scroll-track] .steps-block { border-bottom-color: transparent; }
.steps-timeline .steps-content[data-scroll-track] .steps-block::after { border-color: #656565; color: #656565; z-index: 2; transition: color .3s ease, border-color .3s ease; }
.steps-timeline .steps-content[data-scroll-track] .steps-block.is-reached::after { border-color: #ff6a33; color: #ff6a33; }
@media (max-width:768px) {
 .steps-timeline .steps-content[data-scroll-track]::before,
 .steps-timeline .steps-content[data-scroll-track]::after {
  top: 12px; bottom: auto; left: 12px; width: 1px; height: var(--stage-track-height,0px);
 }
 .steps-timeline .steps-content[data-scroll-track]::after { transform-origin: top; transform: scaleY(var(--stage-progress,0)); }
 .steps-timeline .steps-content[data-scroll-track] .steps-block { border-left-color: transparent; }
}

/* A single composited scroll track for WebKit. */
.steps-timeline .steps-content[data-scroll-track]::after { display: none; }
.stage-progress-line { position: absolute; bottom: 0; left: 0; width: 100%; height: 1px; background: #ff6a33; pointer-events: none; z-index: 1; transform-origin: left; will-change: transform; }
@media (max-width:768px) {
 .stage-progress-line { top: 12px; bottom: auto; left: 12px; width: 1px; height: var(--stage-track-height,0px); transform-origin: top; }
}

/* Keep the project name on its own line in the desktop hero. */
@media(min-width:1025px) {
 .alternative-page .project__title > span { display: block; }
}

/* A little more presence for the project page's persistent top menu. */
.alternative-page .header-project {
 padding-block: 22px;
 --header-glass-background: rgba(19,19,19,.96);
 border-bottom: 1px solid #ffffff29;
 box-shadow: 0 4px 20px #00000024;
}
@media(max-width:1024px) {
 .alternative-page .header-project { padding-block: 15px; }
}

/* Give phone fields full width instead of squeezing two inputs side by side. */
@media(max-width:600px) {
 .request-consultation .consultation-form { grid-template-columns: minmax(0,1fr); gap: 20px; }
 .request-consultation .consultation-heading h2 { font-size: clamp(30px,7.4vw,40px); }
 .request-consultation .request-row.container .request-left__content { gap: 28px; }
 .request-consultation .consultation-button { min-height: 52px; }
}


/* Stage markers lead the content, as in the selected timeline reference. */
@media (min-width:769px) {
 .steps-timeline .steps-block { padding-top:48px; padding-bottom:24px; border-bottom:0; background-image:none; }
 .steps-timeline .steps-block::after { top:0; bottom:auto; }
 .steps-timeline .steps-content[data-scroll-track]::before,
 .steps-timeline .steps-content[data-scroll-track]::after,
 .steps-timeline .stage-progress-line { top:12px; bottom:auto; }
}
