#salon-rail-map {background:#f8f6ef;color:#203e35;padding:clamp(44px,6vw,88px) 20px;scroll-margin-top:90px}
#salon-rail-map * {box-sizing:border-box}
#salon-rail-map .rail-wrap {max-width:1100px;margin:auto}
#salon-rail-map .rail-kicker {margin:0 0 8px;color:#45665b;font:600 12px/1.3 Arial,sans-serif;letter-spacing:.17em;text-transform:uppercase}
#salon-rail-map h2 {margin:0;padding:0;background:none;border:0;color:#233d34;font:500 clamp(26px,3vw,43px)/1.35 var(--salon-serif,serif);letter-spacing:.035em}
#salon-rail-map .rail-hint {margin:12px 0 23px;color:#4e6057;font-size:14px;line-height:1.7}
.rail-touch-hint {display:none}
#salon-rail-map .rail-spread {display:grid;grid-template-columns:1.3fr 1fr;overflow:hidden;border:1px solid #cccfc1;border-radius:12px;background:#fdfbf4;box-shadow:0 12px 34px #24372d0c}
#salon-rail-map .rail-paper {position:relative;min-width:0;background-color:#fcfaf3;background-image:radial-gradient(#b9bdac66 .8px,transparent 1px);background-size:17px 17px}
#salon-rail-map .rail-key,#salon-rail-map .rail-foot {padding:13px 20px;color:#47584f;font:500 13px/1.4 sans-serif;background:#faf8f0}
#salon-rail-map .rail-key {display:flex;gap:19px;border-bottom:1px solid #d9dace}
#salon-rail-map .rail-key span {display:inline-flex;align-items:center;gap:7px}
#salon-rail-map .rail-key span:before {content:"";width:20px;height:4px;border-radius:4px;background:#27725f}
#salon-rail-map .rail-key span+span:before {background:#4c92b3}
#salon-rail-map .rail-foot {border-top:1px solid #d9dace;font-size:11px}
#salon-rail-map .rail-plot {position:relative;width:100%;aspect-ratio:540/350}
#salon-rail-map .rail-plot svg {width:100%;height:100%;position:absolute;inset:0;overflow:hidden}
#salon-rail-map .rail-minor {position:absolute;transform:translate(10px,-50%);color:#53655f;font:500 clamp(11px,1vw,14px)/1 sans-serif}
#salon-rail-map .rail-stop {position:absolute;display:flex;align-items:center;min-height:44px;gap:9px;transform:translate(-13px,-50%);padding:0 6px 0 0;color:#243e33;text-decoration:none;border:0;border-radius:5px}
#salon-rail-map .rail-stop i {display:grid;place-items:center;width:26px;height:26px;border:2px solid #2d4e43;border-radius:50%;background:#fffcf5;box-shadow:0 0 0 3px #fcfaf3;transition:box-shadow .2s}
#salon-rail-map .rail-stop i:after {content:"";width:8px;height:8px;border-radius:inherit;background:#446656}
#salon-rail-map .rail-stop span {padding:2px 5px;border-radius:4px;background:#fcfaf3f5}
#salon-rail-map .rail-stop b,#salon-rail-map .rail-stop em {display:block}
#salon-rail-map .rail-stop b {font:700 clamp(16px,1.8vw,24px)/1.2 var(--salon-serif,serif)}
#salon-rail-map .rail-stop small {font-size:.61em;margin-left:2px}
#salon-rail-map .rail-stop em {font:500 clamp(10px,1vw,12px)/1.5 sans-serif;letter-spacing:.02em}
#salon-rail-map .rail-stop.is-current i {background:#294e41;box-shadow:0 0 0 4px #fcfaf3,0 0 0 6px #b49666}
#salon-rail-map .rail-stop.is-current i:after {background:#eed6a6}
#salon-rail-map a:focus-visible {outline:3px solid #a35c15;outline-offset:3px}
#salon-rail-map .rail-photos {position:relative;min-width:0;background:#30463b}
#salon-rail-map .rail-card {position:absolute;inset:0;display:flex;align-items:flex-end;overflow:hidden;text-decoration:none;color:white}
#salon-rail-map .rail-card[hidden] {display:none}
#salon-rail-map .rail-card:focus-visible {outline-offset:-5px;z-index:1}
#salon-rail-map .rail-card img {position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover}
#salon-rail-map .rail-card:after {content:"";position:absolute;inset:0;background:linear-gradient(0deg,#142720f5,#1427209c 29%,transparent 64%)}
#salon-rail-map .rail-caption {position:relative;z-index:1;width:100%;padding:clamp(20px,3vw,36px);color:white}
#salon-rail-map .rail-caption small {font:500 12px/1.4 Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#fff3d7}
#salon-rail-map .rail-caption strong {display:block;margin:5px 0 12px;font:500 clamp(23px,3vw,38px)/1.35 var(--salon-serif,serif);color:white}
#salon-rail-map .rail-caption span {display:inline-flex;align-items:center;gap:15px;border-bottom:1px solid #fffc;padding-bottom:3px;font:600 13px/1.5 sans-serif}
.rail-glint,.rail-carriage {opacity:0;pointer-events:none}
#salon-rail-map .rail-key {align-items:center;flex-wrap:wrap;row-gap:3px}
#salon-rail-map .rail-motion-toggle {margin-left:auto;min-height:32px;padding:3px 10px;border:1px solid #bac6ba;border-radius:16px;background:#fffdf6;color:#314b40;font:600 12px/1.4 sans-serif;cursor:pointer}
#salon-rail-map .rail-motion-toggle[hidden] {display:none}
#salon-rail-map .rail-motion-toggle:focus-visible {outline:3px solid #a35c15;outline-offset:2px}
@media (prefers-reduced-motion:no-preference) {
  .rail-carriage {offset-anchor:0px 0px;opacity:1;animation:rail-travel linear infinite;animation-play-state:paused}
  .rail-running .rail-carriage {animation-play-state:running}
  .rail-stop i {position:relative}
  .rail-stop i:before {content:"";position:absolute;inset:-4px;border:2px solid #ba9759;border-radius:50%;opacity:0;pointer-events:none}
  .rail-running .rail-stop.is-current i:before {animation:rail-ripple 2.4s ease-out infinite}
  .rail-enhanced:not(.rail-paused) .rail-switched img {animation:rail-appear .28s cubic-bezier(.23,1,.32,1) both}
  .rail-enhanced:not(.rail-paused) .rail-switched .rail-caption {animation:rail-caption-in .24s cubic-bezier(.23,1,.32,1) both}
  @keyframes rail-travel {from{offset-distance:0%}to{offset-distance:100%}}
  @keyframes rail-ripple {0%{opacity:.82;transform:scale(.95)}68%,100%{opacity:0;transform:scale(1.7)}}
  @keyframes rail-appear {from{opacity:.65;transform:scale(1.075)}to{opacity:1;transform:scale(1)}}
  @keyframes rail-caption-in {from{opacity:.55;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
}
@media (hover:none) { .rail-enhanced .rail-desktop-hint {display:none}.rail-enhanced .rail-touch-hint {display:inline} }
@media (max-width:700px) {
  #salon-rail-map {padding:42px 14px}
  #salon-rail-map .rail-spread {grid-template-columns:1fr}
  #salon-rail-map .rail-plot {aspect-ratio:auto;height:clamp(265px,64vw,350px)}
  #salon-rail-map .rail-photos {aspect-ratio:1.82}
  #salon-rail-map .rail-key,#salon-rail-map .rail-foot {padding:10px 14px}
  #salon-rail-map .rail-stop {gap:3px}
}
