/* Cinematic globe, scoped to the map module. */
.has-globe-journey .sat-shell { border-radius:24px; border:1px solid #c2d2c9; box-shadow:0 20px 60px #0b342514; background:#031219; }
.has-globe-journey .sat-toolbar { padding:4px 2px 6px; }
.has-globe-journey .sat-actions { flex-wrap:wrap; }
.has-globe-journey .globe-replay { background:#0b352d; border-color:#0b352d; color:#f0faf4; }
.has-globe-journey .globe-replay:hover { background:#14523e; color:white; }
.globe-replay span { font-size:17px; display:inline-block; vertical-align:middle; margin-inline-end:5px; }
.globe-intro { position:absolute; inset:0; z-index:1000; color:#f3f7ef; background:#031219; opacity:1; transition:opacity .55s ease; font-family:var(--sans); text-align:start; overflow:hidden; }
.globe-intro[hidden] { display:none; }
.globe-intro.is-leaving { opacity:0; }
.globe-render { position:absolute; inset:0; width:100%; height:100%; display:block; }
.globe-vignette { position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,#031219a8 0%,#03121930 30%,transparent 52%),linear-gradient(0deg,#031219ef 0%,transparent 24%,transparent 83%,#031219a0 100%); }
[dir="rtl"] .globe-vignette { background:linear-gradient(270deg,#031219a8 0%,#03121930 30%,transparent 52%),linear-gradient(0deg,#031219ef 0%,transparent 24%,transparent 83%,#031219a0 100%); }
.globe-topline { position:absolute; top:26px; inset-inline:32px; display:flex; align-items:center; justify-content:space-between; gap:18px; }
.globe-brand { color:#c3d6c8; font-size:10px; font-weight:600; letter-spacing:.19em; }
.globe-intro-actions { display:flex; align-items:center; gap:8px; }
.globe-intro button { min-height:44px; border:1px solid #c6e6d135; border-radius:30px; background:#071d22ae; color:#eef8f1; font:500 11px/1.4 var(--sans); cursor:pointer; }
.globe-intro button:hover { border-color:#9bdab4; background:#16372f; }
.globe-intro button:focus-visible, .globe-replay:focus-visible { outline:3px solid #c6e7a9; outline-offset:3px; }
.globe-skip { padding:10px 17px; }
.globe-skip span { margin-inline-start:12px; font-size:17px; }
.globe-pause { width:44px; padding:8px; font-size:16px !important; }
.globe-copy { position:absolute; top:26%; inset-inline-start:42px; width:35%; max-width:380px; pointer-events:none; }
.globe-pretitle { display:block; font-size:10px; text-transform:uppercase; letter-spacing:.15em; color:#86b499; margin-bottom:20px; }
.globe-copy h3 { margin:0; color:#f4f5ec; font:400 clamp(34px,3.3vw,51px)/1.08 'Instrument Serif',serif; text-wrap:balance; }
.globe-copy h3 em { display:block; font-weight:400; color:#b8dabf; }
.globe-copy p { color:#a4b8b4; font-size:12px; line-height:1.8; max-width:245px; margin:19px 0 23px; }
.globe-numbers { display:flex; align-items:center; gap:22px; color:#90aca3; font-size:10px; }
.globe-numbers span { display:flex; gap:9px; align-items:center; }
.globe-numbers b { color:#e8f2e6; font:400 27px/1 'Instrument Serif',serif; }
.globe-numbers i { height:22px; width:1px; background:#bad7c331; }
.globe-target { position:absolute; left:50%; top:50%; pointer-events:none; opacity:0; transition:opacity .25s ease; }
.globe-target-ring { position:absolute; width:20px; height:20px; left:-10px; top:-10px; border:1px solid #c7f2ad; border-radius:50%; box-shadow:0 0 0 7px #b7e9b520,0 0 24px #91eabd80; }
.globe-target-ring::after { content:''; position:absolute; width:4px; height:4px; background:#e2ffb9; border-radius:50%; left:7px; top:7px; }
.globe-target-text { position:absolute; top:27px; left:0; transform:translateX(-50%); width:max-content; text-align:center; color:#effee2; font-size:10px; font-weight:600; letter-spacing:.1em; padding:9px 14px; border:1px solid #bbe4c835; background:#061c24c9; border-radius:8px; }
.globe-target-text small { display:block; color:#b2c9bb; font:9px/1.6 var(--mono,monospace); margin-top:3px; letter-spacing:.06em; }
.globe-bottom { position:absolute; bottom:26px; inset-inline:38px; }
.globe-chapters { display:flex; gap:34px; margin-bottom:15px; color:#77938c; font-size:10px; }
.globe-chapters span { display:flex; align-items:center; gap:8px; }
.globe-chapters b { border:1px solid #82aa9433; width:23px; height:23px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-size:8px; font-weight:500; }
.globe-chapters .is-current { color:#d8efc3; }
.globe-chapters .is-current b { border-color:#a7dcb7; background:#a7dcb710; }
.globe-chapters .is-complete b { background:#92c5a1; color:#082921; border-color:#92c5a1; }
.globe-progress { height:1px; background:#bce0bf26; overflow:hidden; }
.globe-progress span { display:block; height:100%; width:100%; transform:scaleX(0); transform-origin:left center; background:#badca4; box-shadow:0 0 7px #c5eda7; }
[dir="rtl"] .globe-progress span { transform-origin:right center; }
.globe-bottom-line { display:flex; justify-content:space-between; align-items:center; gap:18px; margin-top:12px; color:#8fa9a0; font-size:9px; letter-spacing:.04em; }
.globe-coordinate { font:9px/1.4 var(--mono,monospace); letter-spacing:.12em; }
.has-globe-journey .sat-canvas { transition:opacity .55s ease; }
.globe-active .sat-canvas { opacity:0; pointer-events:none; }
.globe-arrived .sat-flag-svg { animation:globe-flag-reveal .6s both; }
@keyframes globe-flag-reveal { from { opacity:0; transform:translateY(9px) scale(.85); } to { opacity:1; transform:translateY(0) scale(1); } }
[dir="rtl"] .globe-intro, [dir="rtl"] .globe-intro button { font-family:var(--sans-ar); }
[dir="rtl"] .globe-copy h3 { font-family:var(--sans-ar); font-size:clamp(28px,2.75vw,40px); line-height:1.55; font-weight:500; }
[dir="rtl"] .globe-copy h3 em { font-style:normal; }
[dir="rtl"] .globe-brand, [dir="rtl"] .globe-pretitle, [dir="rtl"] .globe-target-text, [dir="rtl"] .globe-bottom-line { letter-spacing:0; }
@media(max-width:1050px) and (min-width:651px) { .globe-copy { width:32%; inset-inline-start:28px; } .globe-copy h3 { font-size:35px; } [dir="rtl"] .globe-copy h3 { font-size:29px; } .globe-copy p { font-size:11px; } }
@media(max-width:650px) {
 .has-globe-journey .sat-shell { border-radius:19px; }
 .globe-topline { top:14px; inset-inline:16px; gap:7px; }
 .globe-brand { font-size:8px; max-width:105px; line-height:1.65; }
 .globe-intro-actions { gap:5px; }
 .globe-intro button { font-size:10px; }
 .globe-skip { padding:8px 11px; }
 .globe-skip span { margin-inline-start:5px; }
 .globe-copy { top:83px; inset-inline:22px; width:auto; max-width:none; text-align:center; }
 .globe-pretitle { display:none; }
 .globe-copy h3 { font-size:30px; line-height:1.06; }
 .globe-copy p { display:none; }
 .globe-numbers { justify-content:center; gap:15px; margin-top:11px; font-size:9px; }
 .globe-numbers b { font-size:19px; }
 .globe-numbers i { height:14px; }
 .globe-bottom { bottom:20px; inset-inline:19px; }
 .globe-chapters { gap:0; justify-content:space-between; font-size:9px; margin-bottom:12px; }
 .globe-chapters span { gap:5px; }
 .globe-chapters b { width:20px; height:20px; font-size:7px; }
 .globe-bottom-line { margin-top:10px; font-size:8px; }
 .globe-coordinate { font-size:7px; }
 .globe-vignette, [dir="rtl"] .globe-vignette { background:linear-gradient(0deg,#031219f5 0%,transparent 20%,transparent 64%,#0312196b 100%); }
 [dir="rtl"] .globe-copy h3 { font-size:25px; line-height:1.4; }
 [dir="rtl"] .globe-numbers { margin-top:5px; }
 [dir="rtl"] .globe-chapters { font-size:9px; }
}
@media(prefers-reduced-motion:reduce) { .globe-intro, .has-globe-journey .sat-canvas { transition:none; } .globe-arrived .sat-flag-svg { animation:none; } }
/* Give the brief globe journey a clear stage; the contact button returns with the map. */
body.salco-globe-playing .voice-btn { opacity:0; visibility:hidden; pointer-events:none; }
