/* Stationary editorial scene, with independent service cards scrolling in front. */
.services-page .scene-journey {
  width:100%; max-width:none; margin:0; position:relative; isolation:isolate;
  display:grid; grid-template-columns:minmax(0,1fr); align-items:start;
  border-block:1px solid rgba(87,42,44,.13);
  background:#eee7d9;
}
.scene-journey .journey-aside {
  grid-area:1/1; position:sticky; top:0; align-self:start; z-index:0;
  width:100%; max-width:none; height:100svh; margin:0; overflow:hidden;
  pointer-events:none;
  background:radial-gradient(ellipse at 28% 38%,#faf6ed 0%,#f1e9da 36%,#e5d8c7 100%);
}
.scene-journey .journey-aside>.eyebrow {
  display:block; position:absolute; top:5vh; left:10vw;
  color:var(--wine); font-size:.62rem; letter-spacing:.19em;
}
.scene-journey .route-nav {
  position:absolute; left:-3vw; top:50%; transform:translateY(-50%);
  width:min(900px,72vw); height:68svh; margin:0;
}
.scene-journey .route-line {
  display:block; position:absolute; inset:0; width:100%; height:100%; max-width:none;
  overflow:visible; fill:none; pointer-events:none;
}
.scene-journey .route-base { stroke:var(--wine); stroke-width:1.15; opacity:.22; }
.scene-journey .route-travel { stroke:var(--wine); stroke-width:1.65; opacity:.78; }
.scene-journey .route-contours { fill:none; stroke:var(--wine); stroke-width:.8; opacity:.065; }
.scene-journey .route-nav ol { position:absolute; inset:0; width:auto; margin:0; padding:0; list-style:none; }
.scene-journey .route-nav li {
  position:absolute; left:var(--route-x); top:var(--route-y);
  width:max-content; height:auto; transform:translate(-18px,-18px);
}
.scene-journey .route-link,.scene-journey .route-nav li:nth-child(even) .route-link {
  display:flex; width:max-content; height:36px; min-height:36px;
  align-items:center; gap:14px; color:#736052; font:400 .94rem/1.3 var(--serif);
  text-decoration:none; pointer-events:auto; outline-offset:6px;
}
.scene-journey .route-number,.scene-journey .route-nav li:nth-child(even) .route-number {
  display:grid; place-items:center; margin:0; width:36px; height:36px; flex-basis:36px;
  border:1px solid #b6a28e; background:#f2eadc; color:var(--wine); font:400 .66rem var(--sans);
  border-radius:50%; transition:background .25s,color .25s,box-shadow .25s;
}
.scene-journey .route-link span:last-child,.scene-journey .route-nav li:nth-child(even) .route-link span:last-child {
  display:block; position:static; max-width:none; width:auto; height:auto;
  clip-path:none; overflow:visible; white-space:nowrap; margin:0;
}
.scene-journey .route-link[aria-current="step"] { color:var(--wine); }
.scene-journey .route-nav .route-link[aria-current="step"] .route-number,
.scene-journey .route-nav .route-link:hover .route-number,
.scene-journey .route-nav .route-link:focus-visible .route-number {
  background:var(--wine); color:var(--paper-light); border-color:var(--wine);
  box-shadow:0 0 0 6px rgba(87,42,44,.055);
}
.scene-journey .route-caption {
  display:block; position:absolute; left:10vw; bottom:5.5vh; margin:0;
  max-width:290px; color:var(--wine); opacity:.66;
  font:italic clamp(1.1rem,2vw,1.8rem)/1.25 var(--serif);
}
.scene-journey .journey-aside>.text-link { display:none; }
.scene-journey .journey-content {
  grid-area:1/1; position:relative; z-index:1; min-width:0;
  width:min(650px,47vw); margin:100px 6vw 100px auto; pointer-events:none;
}
.scene-journey .journey-section {
  position:relative; margin:0 0 45px; padding:48px 46px 44px;
  border:1px solid rgba(154,120,70,.22); border-radius:4px;
  background:rgba(250,247,240,.96); backdrop-filter:blur(3px);
  box-shadow:0 16px 45px rgba(49,28,18,.035);
  scroll-margin-top:45px; pointer-events:auto;
}
.scene-journey .journey-section::before {
  content:''; position:absolute; inset:7px; border:1px solid rgba(154,120,70,.11);
  border-radius:2px; pointer-events:none;
}
.scene-journey .journey-section:last-child { margin-bottom:0; border-bottom:1px solid rgba(154,120,70,.22); }
.scene-journey .station-meta { justify-content:center; flex-direction:column; gap:20px; margin-bottom:27px; text-align:center; }
.scene-journey .station-no {
  display:grid; place-items:center; width:48px; height:48px; border-radius:50%;
  border:1px solid rgba(154,120,70,.45); color:var(--bronze); font:italic 1.15rem var(--serif);
}
.scene-journey .station-meta .eyebrow { font-size:.6rem; line-height:1.5; letter-spacing:.17em; }
.scene-journey .journey-section h2 {
  margin:0 0 25px; font:400 clamp(2rem,3.2vw,3.3rem)/1.06 var(--serif);
  letter-spacing:-.045em; text-align:center; overflow-wrap:break-word;
}
.scene-journey .station-lead {
  margin:0 auto 28px; font:400 1.2rem/1.5 var(--serif); text-align:center;
}
.scene-journey .journey-section>p:not(.station-lead,.detail-note,.case-result) { font-size:.93rem; line-height:1.7; }
.scene-journey .journey-section .service-actions { justify-content:center; margin-top:30px; gap:23px; }
.scene-journey .journey-section .phone-link { text-align:center; }
.scene-journey .scope-list { margin-top:12px; }
.scene-journey .scope-list>div { grid-template-columns:1fr; gap:10px; padding:21px 0; }
.scene-journey .scope-list dt { font-size:1.25rem; }
.scene-journey .scope-list dd { font-size:.9rem; }
.scene-journey .editorial-note { margin-top:28px; padding:8px 0 8px 20px; font-size:1.1rem; }
.scene-journey .planning-four { margin-block:20px; }
.scene-journey .planning-four>div { padding:19px; }
.scene-journey .planning-four h3 { font-size:1.25rem; }
.scene-journey .mini-case li { grid-template-columns:25px 1fr; gap:8px 14px; }
.scene-journey .mini-case p { grid-column:2; }
.scene-journey .case-result { padding:23px; font-size:1.1rem; }
.scene-journey .detail-note { font-size:.74rem; }
.chapter-details { margin:33px 0 0; }
.chapter-details>summary {
  display:flex; justify-content:center; align-items:center; gap:15px;
  min-height:48px; padding:12px 8px; cursor:pointer; list-style:none;
  color:var(--wine); font:400 .72rem/1.5 var(--sans); letter-spacing:.02em;
}
.chapter-details>summary::-webkit-details-marker { display:none; }
.chapter-details>summary:hover { color:var(--ink); }
.chapter-details>summary:focus-visible { outline:2px solid var(--brass); outline-offset:4px; }
.chapter-details .details-plus { font:400 1.2rem var(--sans); transition:transform .2s; }
.chapter-details[open] .details-plus { transform:rotate(45deg); }
.chapter-details .when-open { display:none; }
.chapter-details[open] .when-open { display:inline; }
.chapter-details[open] .when-closed { display:none; }
.chapter-details .details-body { padding-top:18px; font-size:.93rem; line-height:1.7; }
@media (min-width:1600px) {
  .scene-journey .journey-content { margin-right:max(8vw,calc((100vw - 1350px)/2)); }
  .scene-journey .route-nav { left:calc((100vw - 1500px)/2); }
}
@media (max-width:1100px) {
  .scene-journey .journey-content { width:52vw; margin-right:4vw; }
  .scene-journey .journey-section { padding:40px 30px; }
  .scene-journey .route-nav { left:-9vw; width:78vw; }
  .scene-journey .route-link,.scene-journey .route-nav li:nth-child(even) .route-link { font-size:.85rem; gap:10px; }
  .scene-journey .journey-aside>.eyebrow,.scene-journey .route-caption { left:6vw; }
}
@media (max-width:800px) {
  .scene-journey .journey-content { width:auto; margin:60px 25px 60px 90px; }
  .scene-journey .journey-section { padding:38px 35px; margin-bottom:30px; scroll-margin-top:25px; }
  .scene-journey .journey-section h2 { font-size:2.5rem; }
  .scene-journey .route-nav { width:260px; left:-47px; height:78svh; top:50%; }
  .scene-journey .route-nav li { width:44px; height:44px; transform:translate(-22px,-22px); }
  .scene-journey .route-link,.scene-journey .route-nav li:nth-child(even) .route-link {
    width:44px; height:44px; min-height:44px; justify-content:center; gap:0;
  }
  .scene-journey .route-number,.scene-journey .route-nav li:nth-child(even) .route-number {
    margin:0; width:28px; height:28px; flex-basis:28px; font-size:.6rem;
  }
  .scene-journey .route-link span:last-child,.scene-journey .route-nav li:nth-child(even) .route-link span:last-child {
    position:absolute; width:1px; height:1px; clip-path:inset(50%); overflow:hidden; white-space:nowrap;
  }
  .scene-journey .journey-aside>.eyebrow,.scene-journey .route-caption { display:none; }
  .scene-journey .route-base { opacity:.16; }.scene-journey .route-travel { opacity:.5; }
}
@media (max-width:480px) {
  .scene-journey .journey-content { margin:35px 13px 35px 62px; }
  .scene-journey .journey-section { padding:30px 20px; margin-bottom:24px; }
  .scene-journey .station-meta { gap:17px; margin-bottom:20px; }
  .scene-journey .station-no { width:40px; height:40px; font-size:1rem; }
  .scene-journey .station-meta .eyebrow { font-size:.52rem; letter-spacing:.12em; }
  .scene-journey .journey-section h2 { font-size:clamp(1.8rem,8vw,2.25rem); margin-bottom:20px; }
  .scene-journey .journey-section>.station-lead { font-size:1.07rem; line-height:1.5; }
  .scene-journey .journey-section>p:not(.station-lead,.detail-note,.case-result),.chapter-details .details-body { font-size:.89rem; }
  .scene-journey .route-nav { left:-35px; width:180px; height:78svh; }
  .scene-journey .route-number,.scene-journey .route-nav li:nth-child(even) .route-number { width:24px; height:24px; flex-basis:24px; font-size:.58rem; }
  .scene-journey .planning-four { grid-template-columns:1fr; }
  .scene-journey .service-actions { align-items:center; }
  .scene-journey .service-actions .button { font-size:.57rem; letter-spacing:.06em; padding-inline:12px; gap:12px; }
  .scene-journey .case-result { padding:18px; font-size:1rem; }
}
@media (max-width:350px) {
  .scene-journey .journey-section { padding:28px 15px; }
  .scene-journey .journey-section h2 { font-size:1.75rem; }
}
@media (prefers-reduced-motion:reduce) {
  .scene-journey .route-travel,.chapter-details .details-plus { transition:none; }
}

/* Apartment page: the roadmap remains a separate, visible navigation rail. */
.apartment-services-page #standards .scope-list dt { color:var(--wine); }
.services-page .case-result-note {
  display:block; margin-top:18px; padding-top:16px;
  border-top:1px solid rgba(248,243,233,.35);
  color:var(--paper-light); font-family:var(--serif); font-style:italic;
}
@media (min-width:801px) {
  .apartment-services-page .scene-journey {
    grid-template-columns:minmax(340px,42vw) minmax(0,1fr);
  }
  .apartment-services-page .scene-journey .journey-aside {
    grid-area:1/1; border-right:1px solid rgba(87,42,44,.1);
  }
  .apartment-services-page .scene-journey .route-nav {
    left:-3vw; width:calc(100% + 1vw); max-width:720px;
  }
  .apartment-services-page .scene-journey .journey-content {
    grid-area:1/2; justify-self:end;
    width:min(720px,calc(100% - 6vw)); margin:90px 3vw 90px 0;
  }
}
@media (max-width:800px) {
  .apartment-services-page .scene-journey {
    grid-template-columns:72px minmax(0,1fr);
  }
  .apartment-services-page .scene-journey .journey-aside {
    grid-area:1/1; width:72px; border-right:1px solid rgba(87,42,44,.1);
  }
  .apartment-services-page .scene-journey .route-nav {
    left:0; width:118px;
  }
  .apartment-services-page .scene-journey .journey-content {
    grid-area:1/2; width:auto; margin:60px 24px 60px 0;
  }
}
@media (max-width:480px) {
  .apartment-services-page .scene-journey {
    grid-template-columns:54px minmax(0,1fr);
  }
  .apartment-services-page .scene-journey .journey-aside { width:54px; }
  .apartment-services-page .scene-journey .route-nav { left:-3px; width:100px; }
  .apartment-services-page .scene-journey .journey-content { margin:35px 13px 35px 0; }
}
