/* Brand tokens: supplied Imperia guidelines. Motion is progressive enhancement. */
:root { --action:#00a071; --action-ink:#071f19; --action-hover:#008d64; }
body { font-family:Manrope,sans-serif; font-synthesis:none; }
h1,h2,h3,h4 { font-family:Poppins,sans-serif; text-wrap:balance; }
.button,.button.gold { background:var(--action); color:var(--action-ink); box-shadow:0 5px 0 #007653,0 12px 25px #00a07118; border-color:transparent; }
.button:hover,.button.gold:hover { background:var(--action-hover); color:#fff!important; box-shadow:0 7px 0 #006b4b,0 18px 32px #00a07126; }
.button:active { transform:translateY(2px); box-shadow:0 1px 0 #007653; }
.button.outline { background:transparent; color:#007553; border:1px solid #008a61; box-shadow:none; }
.button.outline:hover { background:#e5f6ef; color:#005e43!important; box-shadow:0 8px 20px #00a07112; }
.cta .button.outline { color:#fff; border-color:#83e8c6; }
.quick-contact > span { background:var(--action); color:var(--action-ink); }
.footer-top img { width:220px; height:auto; max-height:96px; filter:brightness(0) invert(1); }
.destination-switcher a { display:inline-flex; gap:10px; align-items:center; border:1px solid var(--line); border-radius:24px; padding:11px 15px; font-size:11px; font-weight:700; transition:background .2s,transform .2s; }
.destination-switcher a:hover,.destination-switcher a:focus-visible { background:#e3f6ee; border-color:var(--action); color:#006b4b; transform:translateY(-3px); }
.destination-editorial,.destination-card,.service-card,.resource-guides article { perspective:1000px; transition:transform .35s,box-shadow .35s; }
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
 body:not(.motion-paused) .destination-editorial:hover,body:not(.motion-paused) .service-card:hover,body:not(.motion-paused) .resource-guides article:hover { transform:perspective(1100px) rotateX(2deg) translateY(-8px); box-shadow:0 24px 48px #0b164018; }
 .country-hero > img { transform:scale(1.06); animation:destination-arrival 1.2s ease-out both; }
}
@keyframes destination-arrival { from { transform:scale(1.14); opacity:.5; } to { transform:scale(1.06); opacity:1; } }
.journey-overlay { border:0; padding:0; margin:auto; width:100vw; max-width:none; height:100dvh; max-height:none; background:#081a30; color:white; overflow:hidden; }
.journey-overlay::backdrop { background:#081a30; }
.journey-overlay .journey-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.18; transform:scale(1.1); }
.journey-overlay::after { content:''; position:absolute; inset:0; pointer-events:none; background:radial-gradient(ellipse at 50% 40%,transparent,#081a30 85%); }
.journey-inner { position:relative; z-index:1; width:min(900px,88%); height:100%; margin:auto; display:flex; flex-direction:column; justify-content:center; align-items:center; }
.journey-label { color:#70e6bf; font:700 10px Manrope,sans-serif; letter-spacing:.25em; text-transform:uppercase; }
.journey-inner h2 { color:white; font-size:clamp(30px,6vw,68px); margin:12px 0 0; text-align:center; }
.flight-stage { width:100%; height:260px; position:relative; perspective:900px; }
.flight-world { position:absolute; left:20%; top:0; width:60%; height:100%; border:1px solid #7debc239; border-radius:50%; background:radial-gradient(circle at 35% 30%,#36be9520,#002c4520 60%,#0004); box-shadow:inset -25px -15px 50px #0003,0 0 60px #00a07112; transform:rotate(-16deg); }
.flight-world i { position:absolute; inset:0 25%; border:1px solid #7debc226; border-radius:50%; }
.flight-world i:nth-child(2) { inset:25% 0; }
.flight-world i:nth-child(3) { inset:42% 0; }
.flight-route { position:absolute; width:100%; height:100%; overflow:visible; }
.flight-route path { fill:none; stroke:#63dfb9; stroke-width:2; stroke-dasharray:6 8; }
.flight-route circle { fill:#a3f8db; }
.flight-plane { position:absolute; top:0; left:0; width:90px; height:90px; }
/* The route uses percentages so the aircraft stays aligned on mobile. */
.flight-plane { offset-path:none; animation:fly-to-destination 1.15s cubic-bezier(.3,.1,.2,1) both; filter:drop-shadow(0 20px 10px #0008); }
@keyframes fly-to-destination { 0% { left:4%; top:65%; transform:translate(-50%,-50%) rotate(-30deg) rotateY(-20deg) scale(.55); } 50% { left:48%; top:19%; transform:translate(-50%,-50%) rotate(-4deg) rotateY(0deg) scale(1.3); } 100% { left:92%; top:37%; transform:translate(-50%,-50%) rotate(16deg) rotateY(20deg) scale(.65); } }
.flight-endpoints { display:flex; justify-content:space-between; width:100%; color:#d7e5ef; font-size:12px; }
.flight-endpoints strong { display:block; font-family:Poppins,sans-serif; color:#fff; font-size:22px; }
.flight-endpoints > :last-child { text-align:right; }
.journey-skip { margin-top:38px; padding:12px 20px; color:#fff; background:transparent; border:1px solid #ffffff60; border-radius:24px; font:700 12px Manrope,sans-serif; cursor:pointer; }
body.page-leaving main { animation:page-departure .2s ease-in both; }
@keyframes page-departure { to { opacity:.35; transform:translateY(-8px); } }
@media(max-width:600px) { .flight-stage { height:220px; } .flight-plane { width:64px; height:64px; } .journey-label { font-size:9px; } .footer-top img { width:200px; } }
.motion-paused *, .motion-paused *::before,.motion-paused *::after { animation:none!important; }
@media(prefers-reduced-motion:reduce) { .country-hero > img { animation:none; } .journey-overlay { display:none; } }

.country-hero { overflow:hidden; }

/* Quick destination-specific route reveal: 950 ms total. */
.journey-overlay[open] .journey-inner{animation:journey-reveal .22s ease-out both}
.journey-overlay .map-card{transform-origin:var(--arrival-x) var(--arrival-y);animation:map-focus .95s cubic-bezier(.22,.68,.25,1) both;overflow:hidden}
.journey-overlay .map-card>span{display:none}
.journey-overlay .map-routes .selected-route{fill:none;stroke:#00a071;stroke-width:4;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:route-reveal .65s .08s ease-in-out forwards;filter:drop-shadow(0 0 4px #00a07166)}
.journey-overlay .map-routes .route-start,.journey-overlay .map-routes .route-arrival{fill:#00a071;animation:none}
.journey-overlay .map-routes .arrival-halo{fill:#00a07122;stroke:#00a071;stroke-width:2;transform-box:fill-box;transform-origin:center;animation:arrival-pulse .5s .4s both}
.journey-overlay .map-flight{margin:24px 0;overflow:hidden;border-radius:24px}
.journey-overlay .journey-photo{animation:photo-drift .95s ease-out both}
.journey-overlay .journey-label{color:#00a071}
@keyframes route-reveal{to{stroke-dashoffset:0}}
@keyframes map-focus{from{transform:perspective(1000px) rotateX(12deg) scale(.92);opacity:.25}to{transform:perspective(1000px) rotateX(0deg) scale(1.13);opacity:1}}
@keyframes arrival-pulse{from{transform:scale(.2);opacity:0}60%{opacity:1}to{transform:scale(1.5);opacity:.35}}
@keyframes journey-reveal{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes photo-drift{from{transform:scale(1.12)}to{transform:scale(1.03)}}
.office-map-panel{overflow:hidden;border:1px solid #dce8e3;border-radius:22px;background:#fff}
.office-map-label{padding:18px 22px;border-bottom:3px solid #00a071;display:flex;flex-direction:column;gap:4px}
.office-map-label strong{font-family:Poppins,sans-serif;color:#081a30}
.office-map-label span{font-size:12px;color:#556374}
.office-map-panel iframe{display:block;width:100%;border:0;border-radius:0}
