.stg-castle-reader__inner :is(h1, h2, h3, a) { color: rgb(148, 63, 50); }
.stg-castle-reader__inner :is(section) { padding: 18px 0px; border-bottom: 1px solid rgb(221, 221, 221); }
.stg-castle-reader__inner :is(img) { display: block; width: 100%; object-fit: cover; border-radius: 10px; }
.stg-castle-reader__inner :is(figure) { margin: 20px 0px; }
.stg-castle-reader__inner :is(figcaption) { font-size: 14px; color: rgb(117, 111, 100); }
.stg-castle-reader__inner :is(nav a, .back) { display: block; min-height: 44px; padding: 4px 0px; }
.stg-castle-reader__inner :is(p) { margin: 0px 0px 16px; }
.stg-castle-reader__inner :is(a[href^="https://mapy.com/"]) { align-items: center; justify-content: center; box-sizing: border-box; min-height: 48px; margin: 12px 0px; background: rgb(148, 63, 50); border-radius: 8px; font-weight: 700; text-decoration: none; display: flex !important; padding: 10px 14px !important; color: rgb(255, 255, 255) !important; }
.stg-castle-reader__inner :is(a[href^="https://mapy.com/"])::after { content: " →"; margin-left: 8px; }
.stg-castle-reader__inner :is(section[id^="stop-"] > h2) { text-align: center; }
.stg-castle-reader__inner section[id^="stop-"] { padding-top: 38px; margin-top: 26px; border-top: 2px solid #d9b9ad; border-bottom: 0; }
.stg-castle-reader__inner h2.stg-stop-heading { margin: 0 auto 30px; max-width: 640px; font-size: 38px; line-height: 1.17; }
.stg-castle-reader__inner .stg-stop-heading__number { display: grid; place-items: center; width: 52px; height: 52px; margin: 0 auto 18px; border: 3px solid #943f32; border-radius: 50%; background: #943f32; color: #fff; font: 700 19px/1 var(--stg-sans); }
.stg-castle-reader__inner .stg-stop-heading__title { display: block; text-wrap: balance; }
.stg-castle-reader__inner #stop-A .stg-stop-heading__number { border-style: dashed; background: #fcfaf5; color: #943f32; }
@media (max-width: 480px) {
    .stg-castle-reader__inner h2.stg-stop-heading { font-size: 31px; margin-bottom: 24px; }
    .stg-castle-reader__inner section[id^="stop-"] { padding-top: 30px; margin-top: 20px; }
}
.stg-castle-reader__inner :is(.route-directions) { background: rgb(238, 238, 232); border-left: 3px solid rgb(148, 63, 50); border-radius: 7px; padding: 14px; margin: 0px 0px 20px; }
.stg-castle-reader__inner :is(.route-directions p:last-child) { margin-bottom: 0px; }
.stg-castle-reader__inner :is(.stop-glance) { background: rgb(244, 234, 228); border: 1px solid rgb(217, 185, 173); border-radius: 10px; padding: 14px; margin: 0px 0px 22px; }
.stg-castle-reader__inner :is(.stop-glance h3) { font-size: 13px; letter-spacing: 0.04em; margin: 0px 0px 10px; }
.stg-castle-reader__inner :is(.stop-glance p) { font-size: 16px; margin: 0px 0px 8px; }
.stg-castle-reader__inner :is(.glance-links) { display: flex; gap: 12px; flex-wrap: wrap; }
.stg-castle-reader__inner :is(.glance-links a) { display: flex; align-items: center; min-height: 44px; font-weight: 600; }
.stg-castle-reader__inner :is(.map-panel img) { height: auto; object-fit: contain; max-width: 430px; margin: auto; }
.stg-castle-reader__inner :is(.map-image-wrap) { position: relative; max-width: 430px; margin: auto; }
.stg-castle-reader__inner :is(.map-hotspot) { position: absolute; display: block; border-radius: 50%; background: transparent; }
.stg-castle-reader__inner :is(.map-hotspot:focus-visible) { outline: rgb(148, 63, 50) solid 3px; background: rgba(255, 255, 255, 0.333); }
.stg-castle-reader__inner :is(.map-stop-links) { display: flex; gap: 6px; flex-wrap: wrap; }
.stg-castle-reader__inner :is(.map-stop-links a) { display: flex; align-items: center; min-height: 44px; padding: 0px 8px; }
.stg-castle-reader__inner .map-image-wrap { width: 100%; max-width: 100%; }
.stg-castle-reader__inner .map-panel img { width: 100%; max-width: 100%; }
.stg-castle-reader__inner .stg-map-expand { display: inline-flex; align-items: center; min-height: 48px; margin: 0 0 12px; font-weight: 600; font-size: 15px; }
body.stg-map-viewer-open { overflow: hidden; }
.stg-map-viewer { width: min(1280px, calc(100vw - 32px)); height: calc(100dvh - 32px); max-width: none; max-height: none; border: 1px solid #d9b9ad; border-radius: 4px; padding: 0; color: #282a28; background: #fcfaf5; }
.stg-map-viewer[open] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.stg-map-viewer::backdrop { background: #1d211fe0; }
.stg-map-viewer__toolbar { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px 20px; padding: 12px 16px; border-bottom: 1px solid #d9b9ad; }
.stg-map-viewer__toolbar h2 { font: 400 24px/1.2 var(--stg-serif); color: #943f32; }
.stg-map-viewer__tools { display: flex; align-items: center; gap: 4px; }
.stg-map-viewer__tools button { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid #d9b9ad; border-radius: 3px; background: #fff; color: #943f32; font: 26px/1 var(--stg-sans); cursor: pointer; }
.stg-map-viewer__tools button:hover { background: #f4eae4; }
.stg-map-viewer__tools button:disabled { opacity: .4; cursor: default; }
.stg-map-viewer__tools output { width: 56px; text-align: center; font-size: 13px; font-variant-numeric: tabular-nums; }
.stg-map-viewer__viewport { display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden; min-height: 0; background: #eeeae2; }
.stg-map-viewer .stg-map-viewer__stage { position: relative; flex: none; max-width: none; margin: 0; }
.stg-map-viewer__stage img { display: block; width: 100%; height: 100%; max-width: none; object-fit: contain; user-select: none; }
.stg-map-viewer .map-hotspot { position: absolute; display: block; border-radius: 50%; background: transparent; }
.stg-map-viewer__stops { display: flex; flex-wrap: wrap; gap: 2px 16px; padding: 8px 16px; max-height: 22dvh; overflow-y: auto; border-top: 1px solid #d9b9ad; }
.stg-map-viewer__stops a { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; color: #943f32; text-decoration: underline; text-underline-offset: 3px; }
.stg-map-viewer :focus-visible { outline: 3px solid #943f32; outline-offset: -3px; }
.stg-map-viewer .map-hotspot:focus-visible { outline-offset: 2px; background: #ffffff80; }
@media (max-width: 600px) {
    .stg-map-viewer { width: 100vw; height: 100dvh; margin: 0; border: 0; border-radius: 0; }
    .stg-map-viewer__toolbar { padding: 8px 12px; }
    .stg-map-viewer__toolbar h2 { font-size: 22px; }
}

.stg-castle-reader__inner .stg-route-overview { margin-block: 32px 40px; }
.stg-castle-reader__inner .stg-guide-checked { font-size: 14px; color: #6e6b64; margin: 12px 0 24px; }
.stg-castle-reader__inner .stg-guide-use { margin-block: 32px; padding-top: 20px; border-top: 1px solid #d9b9ad; }
.stg-castle-reader__inner .stg-guide-use h2 { font-size: 22px; margin: 0 0 12px; }
.stg-castle-reader__inner .stg-guide-use p { font-size: 14px; line-height: 1.6; color: #6e6b64; }
.stg-castle-reader__inner .stg-launch-pdf .stg-pdf-use { font-size: 13px; }
.stg-castle-reader__inner .stg-overview-map-shortcut { margin: 0 0 20px; }
.stg-castle-reader__inner .stg-overview-map-shortcut a { display: inline-flex; align-items: center; min-height: 48px; padding: 8px 16px; border: 1px solid #943f32; border-radius: 3px; font-size: 15px; font-weight: 600; text-decoration: none; }
.stg-castle-reader__inner .stg-overview-map-shortcut a:hover { background: #f4eae4; }
.stg-castle-reader__inner .stg-overview-map-shortcut a:focus-visible { outline: 3px solid #943f32; outline-offset: 3px; }
.stg-castle-reader__inner .stg-route-line,
.stg-castle-reader__inner .stg-route-branch { list-style: none; padding: 0; margin: 0; }
.stg-castle-reader__inner .stg-route-stop { position: relative; margin: 0; padding: 0; }
.stg-castle-reader__inner .stg-route-line > .stg-route-stop:not(:last-child)::before { content: ''; position: absolute; width: 4px; left: 18px; top: 30px; bottom: -30px; background: #943f32; pointer-events: none; }
.stg-castle-reader__inner .stg-route-link { position: relative; display: grid; grid-template-columns: 40px minmax(0, 1fr); align-items: start; gap: 18px; min-height: 60px; padding: 10px 0; text-decoration: none; border-radius: 4px; }
.stg-castle-reader__inner .stg-route-dot { display: grid; place-items: center; width: 40px; height: 40px; border: 3px solid #943f32; border-radius: 50%; background: #fcfaf5; color: #943f32; font: 700 15px/1 var(--stg-sans); position: relative; z-index: 1; }
.stg-castle-reader__inner .stg-route-label { align-self: center; font-size: 16px; line-height: 1.45; overflow-wrap: anywhere; }
.stg-castle-reader__inner .stg-route-link:hover .stg-route-dot,
.stg-castle-reader__inner .stg-route-link:focus-visible .stg-route-dot { background: #943f32; color: #fff; }
.stg-castle-reader__inner .stg-route-link:hover .stg-route-label { text-decoration: underline; text-underline-offset: 4px; }
.stg-castle-reader__inner .stg-route-link:focus-visible { outline: 3px solid #943f32; outline-offset: 3px; }
.stg-castle-reader__inner .stg-route-branch { margin-left: 48px; position: relative; }
.stg-castle-reader__inner .stg-route-branch::before { content: ''; position: absolute; left: -28px; top: 29px; width: 48px; border-top: 3px dashed #943f32; pointer-events: none; }
.stg-castle-reader__inner .stg-route-branch .stg-route-dot { border-style: dashed; }
.stg-castle-reader__inner .stg-route-branch .stg-route-label { font-size: 15px; }
@media (max-width: 480px) {
    .stg-castle-reader__inner .stg-route-link { gap: 14px; }
    .stg-castle-reader__inner .stg-route-branch { margin-left: 40px; }
    .stg-castle-reader__inner .stg-route-branch::before { left: -20px; width: 40px; }
}
