/* Services Vin — a scroll-driven illustrated journey. */
.voyage{position:relative;background:#fff;border-block:1px solid var(--line);margin-block:24px;scroll-margin-top:0}
.voyage-sticky{max-width:1440px;margin:auto;padding:34px 56px 24px;background:#fff}
.voyage.is-ready{height:480vh;height:480svh}
.voyage.is-ready .voyage-sticky{position:sticky;top:94px;height:calc(100vh - 94px);height:calc(100svh - 94px);min-height:560px;display:flex;flex-direction:column;justify-content:center}
.voyage-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-shrink:0}.voyage-heading h2{font-size:clamp(26px,2.7vw,38px);margin-top:12px}.voyage-heading h2 em{display:inline}.voyage-skip{font-size:13px;color:#514b42;white-space:nowrap;min-height:44px;display:flex;align-items:center;gap:10px}.voyage-skip:hover{color:#6b4d15}.voyage-skip span{font-size:20px}
.voyage-stage{position:relative;min-height:0;flex:1;max-height:480px;margin-block:8px 0;display:flex;align-items:center;justify-content:center;overflow:hidden}
svg.voyage-art{width:100%;height:100%;min-height:210px;max-height:480px;display:block;fill:none;stroke:none;stroke-width:1;flex-shrink:1;overflow:visible}
.voyage-art text{font-family:var(--font-sans);stroke:none}.voyage-art .vj-note{font-size:10px;letter-spacing:2px;fill:#81745a}.voyage-art .vj-leader{fill:none;stroke:#c8b58c;stroke-width:1}.voyage-art .vj-map-label{font-size:13px;letter-spacing:2px;fill:#70531c}.voyage-art .vj-ocean{font-size:10px;letter-spacing:5px;fill:#a8a292}.vj-route-base{fill:none;stroke:#c8b98f;stroke-width:1.5;stroke-dasharray:3 7}.vj-route{fill:none;stroke:#947026;stroke-width:2.5;stroke-dasharray:1;stroke-dashoffset:1}
.voyage-counter{position:absolute;top:20px;right:0;font:400 12px/1 var(--font-sans);color:#8c877c}.voyage-counter [data-vj-number]{font:400 36px/1 var(--font-display);color:#92702d}.voyage-scroll{position:absolute;bottom:17px;left:0;font:600 8px/1 var(--font-sans);letter-spacing:1.7px;color:#8a8172;display:flex;align-items:center;gap:15px}.voyage-scroll span{font-size:19px;animation:vj-scroll 1.8s ease-in-out infinite}
.voyage-description{min-height:91px;text-align:center;max-width:620px;align-self:center;flex-shrink:0;margin:0 auto}.voyage-caption h3{font-size:25px;font-weight:700;margin:0 0 7px}.voyage-caption p{font-size:13px;line-height:1.65;color:#716b61;max-width:560px;margin:auto}.voyage-caption:not([hidden]){animation:vj-caption .35s ease both}
.voyage-rail{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:10px;width:min(750px,100%);margin:8px auto 0;flex-shrink:0}.voyage-rail button{position:relative;z-index:1;border:0;background:transparent;padding:0 4px 5px;min-height:76px;display:flex;align-items:center;gap:7px;flex-direction:column;color:#514b42;font:600 14px/1.4 var(--font-sans)}.voyage-dot{display:grid;place-items:center;width:34px;height:34px;border:1px solid #d8d3c9;border-radius:50%;background:#fff;color:#655438;font-size:12px;transition:background .25s,color .25s,border-color .25s,box-shadow .25s}.voyage-rail button[aria-current="step"]{color:#634713;font-weight:600}.voyage-rail button[aria-current="step"] .voyage-dot{color:#fff;background:#8b651e;border-color:#8b651e;box-shadow:0 0 0 5px #8b651e0c}.voyage-rail button.is-past .voyage-dot{border-color:#ac8a49;color:#6f511d}.voyage-rail button:hover .voyage-dot{border-color:#8b651e;box-shadow:0 0 0 4px #8b651e0c}.voyage-rail-track{position:absolute;left:10%;right:10%;top:17px;height:1px;background:#e4dfd5}.voyage-rail-track>span{display:block;width:100%;height:100%;background:#a5833b;transform:scaleX(var(--journey-progress,0));transform-origin:left}
.voyage-footnote{font-size:10px;line-height:1.5;text-align:center;color:#857e71;flex-shrink:0;margin-top:2px}
@keyframes vj-scroll{0%,100%{transform:translateY(-3px)}50%{transform:translateY(3px)}}@keyframes vj-caption{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(min-width:1500px){.voyage.is-ready .voyage-sticky{max-height:920px}}
@media(max-width:960px){.voyage-sticky{padding:25px 40px 19px}.voyage-heading h2{font-size:29px;max-width:450px}.voyage-heading h2 em{display:block}.voyage-description{min-height:100px}.voyage-counter{right:2px}.voyage-stage{max-height:390px}}
@media(max-width:700px){.voyage{scroll-margin-top:0}.voyage.is-ready{height:400svh}.voyage-sticky{padding:23px 20px 17px}.voyage.is-ready .voyage-sticky{top:76px;height:calc(100svh - 76px);min-height:490px}.voyage-heading{align-items:flex-start;gap:8px}.voyage-heading h2{font-size:26px;line-height:1.17;margin-top:10px}.voyage-heading .eyebrow{font-size:8px;letter-spacing:.1em}.voyage-skip{font-size:0;min-width:35px;justify-content:center;margin-top:17px}.voyage-skip span{font-size:21px}.voyage-stage{width:calc(100% + 40px);margin-left:-20px;max-height:300px;min-height:180px}.voyage-art .vj-note,.voyage-art .vj-leader{display:none}.voyage-counter{top:12px;right:23px}.voyage-counter [data-vj-number]{font-size:28px}.voyage-scroll{left:22px;bottom:8px;font-size:7px;letter-spacing:1px}.voyage-description{min-height:108px}.voyage-caption h3{font-size:22px;max-width:330px;margin:0 auto 8px}.voyage-caption p{font-size:12px;line-height:1.6;max-width:345px}.voyage-rail{gap:0;margin-top:0}.voyage-rail button{font-size:12px;padding:0 2px;min-height:80px;gap:8px}.voyage-dot{width:32px;height:32px;font-size:12px}.voyage-rail-track{top:16px}.voyage-footnote{font-size:9px;margin-top:6px;max-width:320px;margin-inline:auto}}
@media(max-height:700px) and (min-width:701px){.voyage.is-ready .voyage-sticky{padding-top:16px;padding-bottom:12px;min-height:480px}.voyage-heading h2{font-size:25px;margin-top:5px}.voyage-stage{max-height:245px}.voyage-description{min-height:76px}.voyage-caption h3{font-size:22px}.voyage-caption p{font-size:12px}.voyage-rail button{min-height:70px}.voyage-footnote{font-size:9px}}
/* Short windows and reduced motion use the same artwork with direct step selection. */
.voyage.is-static{height:auto}.voyage.is-static .voyage-sticky{position:relative;top:auto;height:auto;min-height:0;display:flex;flex-direction:column}.voyage.is-static .voyage-stage{height:350px;flex:auto}.voyage.is-static .voyage-scroll{display:none}.voyage.is-static .voyage-caption{animation:none}
@media(prefers-reduced-motion:reduce){.voyage-scroll span{animation:none}.voyage-caption:not([hidden]){animation:none}.voyage-dot{transition:none}}

@media(max-width:700px){.voyage-rail{width:calc(100% + 16px);margin-left:-8px;margin-right:-8px}.voyage-rail button{letter-spacing:-.015em}}
@media(max-width:380px){.voyage-rail button{font-size:11.5px}}
