:root{--color-bg:#f7f7f4;--color-white:#fff;--color-black:#111;--color-blue:#1b4079;--color-blue-muted:#4d7c8a;--color-sage:#7f9c96;--color-green:#8fad88;--color-lime:#cbdf90;--color-border:#d9d9d4;--color-muted:#5e5e5e;--font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;--mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--color-bg);color:var(--color-black);font:400 16px/1.4 var(--font);overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit}::selection{background:var(--color-lime);color:var(--color-black)}:focus-visible{outline:2px solid var(--color-blue);outline-offset:4px}
.kicker{margin:0;font:600 11px/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase}.brand{font-size:17px;font-weight:750;letter-spacing:.16em;white-space:nowrap}.brand span{font-weight:400;letter-spacing:.14em}.button{min-height:47px;display:inline-flex;align-items:center;justify-content:center;gap:26px;padding:0 18px;border:1px solid var(--color-black);border-radius:3px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;transition:background .24s,color .24s,transform .24s}.button:hover{transform:translateY(-2px)}.button--black{background:var(--color-black);color:var(--color-white)}.button--black:hover{background:var(--color-blue);border-color:var(--color-blue)}.button--outline{background:transparent;color:var(--color-black)}.button--outline:hover{background:var(--color-white)}

.hero{min-height:100svh;position:relative;isolation:isolate;display:flex;align-items:flex-end;padding:clamp(22px,5vw,76px);overflow:hidden;color:var(--color-white)}.hero__image{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;animation:hero-in 1.2s cubic-bezier(.16,.78,.25,1) both}.hero__veil{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(0,0,0,.62) 0%,rgba(0,0,0,.26) 48%,rgba(0,0,0,.04) 77%),linear-gradient(0deg,rgba(0,0,0,.42),transparent 48%)}
.nav{position:absolute;z-index:2;top:clamp(18px,2.5vw,38px);left:clamp(18px,4vw,64px);right:clamp(18px,4vw,64px);height:62px;padding:0 20px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border:1px solid rgba(17,17,17,.14);border-radius:7px;background:rgba(255,255,255,.94);color:var(--color-black);box-shadow:0 8px 28px rgba(0,0,0,.08)}.nav nav{display:flex;gap:clamp(17px,2.2vw,35px);font-size:12px;font-weight:600}.nav nav a{transition:color .2s}.nav nav a:hover{color:var(--color-blue)}.nav__contact{justify-self:end;display:inline-flex;gap:10px;align-items:center;font-size:12px;font-weight:700}.nav__contact span{color:var(--color-blue)}
.hero__content{width:min(720px,100%);padding-bottom:clamp(34px,6vh,82px)}.hero__content .kicker{margin-bottom:22px}.hero h1{margin:0;max-width:620px;font-size:clamp(76px,11.2vw,176px);font-weight:760;letter-spacing:-.09em;line-height:.79}.hero h1 span{color:var(--color-lime)}.hero__statement{margin:32px 0 0;font-size:clamp(22px,2.2vw,34px);font-weight:650;line-height:1.06;letter-spacing:-.045em}.hero__meta{margin:17px 0 0;font:500 12px var(--mono);letter-spacing:.02em}.hero__actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.hero .button--outline{border-color:rgba(255,255,255,.9);color:var(--color-white)}.hero .button--outline:hover{color:var(--color-black)}.hero__scroll{position:absolute;left:clamp(22px,5vw,76px);bottom:24px;display:flex;gap:17px;align-items:center;font:600 10px var(--mono);letter-spacing:.08em;text-transform:uppercase}.hero__scroll span{font-size:15px;color:var(--color-lime)}

.route-overview{display:grid;grid-template-columns:5fr 7fr;gap:clamp(40px,8vw,150px);padding:clamp(85px,12vw,168px) clamp(22px,6vw,96px);background:var(--color-white)}.route-overview__head h2,.details h2,.experience h2,.cta h2{margin:19px 0 0;font-size:clamp(42px,5.1vw,82px);line-height:.96;letter-spacing:-.065em}.route-overview__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0;padding:0;list-style:none;border-top:1px solid var(--color-black);counter-reset:route}.route-overview__list li{min-height:74px;display:flex;align-items:center;border-bottom:1px solid var(--color-border);font-size:clamp(19px,2vw,28px);font-weight:650;letter-spacing:-.04em;counter-increment:route}.route-overview__list li:before{content:"0" counter(route);width:45px;color:var(--color-blue);font:500 10px var(--mono);letter-spacing:.03em}

.route-map-section{padding:clamp(30px,5vw,72px) clamp(0px,4vw,64px) clamp(34px,5vw,72px);background:var(--color-black);color:var(--color-white);overflow:hidden}.route-map-section__head{width:min(1536px,100%);margin:0 auto 21px;display:flex;align-items:baseline;justify-content:space-between;gap:20px}.route-map-section__head p:last-child{margin:0;color:#cfcfc9;font-size:12px}.journey-map{position:relative;width:min(100%,calc(150svh - 138px),1536px);margin:0 auto;line-height:0;isolation:isolate;transform-origin:var(--focus-x,50%) var(--focus-y,50%);transition:transform .9s cubic-bezier(.16,.78,.25,1),transform-origin .9s cubic-bezier(.16,.78,.25,1)}.journey-map.is-focused{transform:scale(1.016)}.journey-map:before{content:"";position:absolute;z-index:1;inset:0 0 auto;height:38%;background:linear-gradient(180deg,rgba(0,0,0,.34),rgba(0,0,0,0));pointer-events:none}.journey-map__base{display:block;width:100%;height:auto}.journey-map__connection{position:absolute;inset:0;z-index:2;width:100%;height:100%;overflow:visible;pointer-events:none}.journey-map__connection path{fill:none;stroke:rgba(255,255,255,.46);stroke-width:.12;stroke-dasharray:.6 1.5;stroke-linecap:round;opacity:0;transition:opacity .55s ease}.journey-map__connection path.is-visible{opacity:.7}.journey-map__routes{position:absolute;inset:0;z-index:3;width:100%;height:100%;overflow:visible;pointer-events:none}.journey-map__route{fill:none;stroke:rgba(255,255,255,.92);stroke-width:.27;stroke-linecap:round;filter:drop-shadow(0 1px 1px rgba(0,0,0,.6))}.journey-map__plane-position{position:absolute;z-index:5;width:clamp(19px,2.05vw,31px);aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none;will-change:left,top}.journey-map__plane{display:block;width:100%;height:100%;fill:var(--color-black);stroke:var(--color-white);stroke-width:1.2;filter:drop-shadow(0 1px 1px rgba(0,0,0,.5));transform-origin:center;will-change:transform}.journey-map__pulse{position:absolute;z-index:4;width:clamp(17px,1.8vw,27px);aspect-ratio:1;border:1px solid var(--color-lime);border-radius:50%;transform:translate(-50%,-50%) scale(.35);opacity:0;pointer-events:none}.journey-map__pulse.is-pulsing{animation:map-pulse .7s cubic-bezier(.16,.78,.25,1) both}.journey-map__destination-art{position:absolute;z-index:6;display:block;height:auto;max-width:24%;pointer-events:none;opacity:0;transform:translate(-50%,-100%) translateY(12px) scale(.45);transform-origin:50% 100%;will-change:opacity,transform}.journey-map__destination-art.is-visible{opacity:1;transform:translate(-50%,-100%) translateY(0) scale(1);transition:opacity .42s ease,transform .45s cubic-bezier(.16,.78,.25,1)}.journey-map__destination-art.is-hiding{opacity:0;transform:translate(-50%,-100%) translateY(7px) scale(.85);transition:opacity .3s ease,transform .3s ease}.journey-map__hotspots{position:absolute;inset:0;z-index:7;pointer-events:none}.journey-map__hotspot{position:absolute;width:4%;min-width:26px;aspect-ratio:1;transform:translate(-50%,-50%);border:0;border-radius:50%;background:transparent;cursor:pointer;pointer-events:auto}.journey-map__hotspot:focus-visible{outline:1px solid var(--color-lime);outline-offset:3px}

.destination-carousel{position:absolute;z-index:8;top:5%;left:18%;width:64%;height:clamp(128px,13.5vw,184px);opacity:1;transform:translateY(0);transition:opacity .34s ease,transform .42s cubic-bezier(.16,.78,.25,1);touch-action:pan-y;user-select:none;outline:none}.destination-carousel.is-changing{opacity:0;transform:translateY(-11px);pointer-events:none}.destination-carousel.is-entering{opacity:0;transform:translateY(10px)}.destination-carousel.is-travelling{opacity:.65}.destination-carousel__stage{position:relative;height:100%;overflow:visible}.destination-carousel__slide{position:absolute;top:0;left:50%;width:38%;height:100%;margin:0;overflow:hidden;border:1px solid rgba(255,255,255,.28);border-radius:1px;background:transparent;box-shadow:0 5px 18px rgba(0,0,0,.1);transform:translateX(-50%) scale(.7);transform-origin:center;opacity:0;filter:brightness(.67) saturate(.65);transition:left .62s cubic-bezier(.16,.78,.25,1),transform .62s cubic-bezier(.16,.78,.25,1),opacity .5s ease,filter .5s ease;will-change:left,transform,opacity}.destination-carousel__slide img{display:block;width:100%;height:100%;object-fit:cover}.destination-carousel__slide[data-distance="0"]{left:50%;z-index:5;border-color:rgba(255,255,255,.82);opacity:1;transform:translateX(-50%) scale(1);filter:brightness(1) saturate(1)}.destination-carousel__slide[data-distance="-1"]{left:23%;z-index:4;opacity:.52;transform:translateX(-50%) scale(.76)}.destination-carousel__slide[data-distance="1"]{left:77%;z-index:4;opacity:.52;transform:translateX(-50%) scale(.76)}.destination-carousel__slide[data-distance="-2"]{left:3%;z-index:3;opacity:.22;transform:translateX(-50%) scale(.61)}.destination-carousel__slide[data-distance="2"]{left:97%;z-index:3;opacity:.22;transform:translateX(-50%) scale(.61)}.destination-carousel__arrow{position:absolute;z-index:8;top:47%;display:grid;place-items:center;width:26px;height:30px;padding:0;border:0;background:transparent;color:rgba(255,255,255,.75);font-size:17px;font-weight:400;opacity:.72;cursor:pointer;transition:opacity .2s,transform .2s}.destination-carousel__arrow:hover{opacity:1;transform:translateY(-2px)}.destination-carousel__arrow--prev{left:-8%}.destination-carousel__arrow--next{right:-8%}.destination-carousel__counter{position:absolute;z-index:8;left:50%;bottom:-16px;margin:0;transform:translateX(-50%);color:rgba(255,255,255,.7);font:600 8px var(--mono);letter-spacing:.12em;line-height:1}

.details{padding:clamp(86px,12vw,168px) clamp(22px,6vw,96px);background:var(--color-bg)}.details__head{display:grid;grid-template-columns:5fr 7fr;gap:clamp(40px,8vw,150px);align-items:start}.details__head h2{margin-top:0}.facts{display:grid;grid-template-columns:repeat(4,1fr);margin-top:clamp(65px,9vw,120px);border-top:1px solid var(--color-black);border-bottom:1px solid var(--color-black)}.facts>div{min-height:156px;display:flex;flex-direction:column;justify-content:space-between;padding:20px;border-right:1px solid var(--color-border)}.facts>div:first-child{padding-left:0}.facts>div:last-child{border:0}.facts b{font-size:clamp(28px,3vw,48px);line-height:1;letter-spacing:-.06em}.facts span{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted)}.included{display:grid;grid-template-columns:5fr 7fr;gap:clamp(40px,8vw,150px);margin-top:clamp(58px,8vw,110px)}.included ul{margin:0;padding:0;list-style:none;border-top:1px solid var(--color-black)}.included li{min-height:52px;display:flex;align-items:center;border-bottom:1px solid var(--color-border);font-size:16px;font-weight:550}.included li:before{content:"+";width:32px;color:var(--color-blue);font-size:18px;font-weight:400}
.experience{display:grid;grid-template-columns:5fr 7fr;gap:clamp(40px,8vw,150px);padding:clamp(76px,10vw,140px) clamp(22px,6vw,96px);background:var(--color-lime)}.experience p{margin:0;font-size:clamp(31px,4vw,60px);font-weight:700;letter-spacing:-.06em}.experience h2{margin:0;max-width:760px;font-size:clamp(36px,4.5vw,70px)}
.cta{min-height:76svh;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:clamp(70px,10vw,140px) clamp(22px,6vw,96px);background:var(--color-black);color:var(--color-white)}.cta h2{margin:20px 0 38px;font-size:clamp(62px,9vw,150px);line-height:.84}.button--lime{border-color:var(--color-lime);background:var(--color-lime);color:var(--color-black)}.button--lime:hover{background:var(--color-white);border-color:var(--color-white)}
.footer{min-height:112px;padding:28px clamp(22px,6vw,96px);display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:28px;background:var(--color-white);color:var(--color-black);border-top:1px solid var(--color-border)}.footer>div{display:flex;gap:20px;font-size:12px;font-weight:600}.footer small{font-size:11px;color:var(--color-muted)}.whatsapp-float{position:fixed;right:18px;bottom:18px;z-index:20;display:inline-flex;gap:12px;align-items:center;min-height:42px;padding:0 15px;border:1px solid var(--color-black);border-radius:3px;background:var(--color-black);color:var(--color-white);font:700 10px var(--font);letter-spacing:.07em;text-transform:uppercase;transition:transform .2s,background .2s}.whatsapp-float:hover{background:var(--color-blue);border-color:var(--color-blue);transform:translateY(-2px)}
@keyframes hero-in{from{opacity:.72;transform:scale(1.035)}to{opacity:1;transform:scale(1)}}@keyframes map-pulse{0%{opacity:0;transform:translate(-50%,-50%) scale(.35)}25%{opacity:.95}100%{opacity:0;transform:translate(-50%,-50%) scale(1.75)}}
@media (max-width:900px){.nav{grid-template-columns:auto 1fr auto}.nav nav{justify-self:end}.nav__contact{display:none}.hero h1{font-size:clamp(72px,14vw,125px)}.route-overview,.details__head,.included,.experience{grid-template-columns:1fr;gap:34px}.details__head h2{margin-top:0}.facts{grid-template-columns:repeat(2,1fr)}.facts>div:nth-child(2){border-right:0}.facts>div:nth-child(n+3){border-top:1px solid var(--color-border)}.facts>div:nth-child(3){padding-left:0}.route-map-section{padding-left:0;padding-right:0}.route-map-section__head{padding:0 20px}.journey-map{width:100%;max-width:none}.destination-carousel{left:12%;width:76%;top:4%;height:clamp(118px,17vw,150px)}.destination-carousel__stage{overflow:hidden}.destination-carousel__slide{width:42%}.destination-carousel__slide[data-distance="-1"]{left:20%;opacity:.48}.destination-carousel__slide[data-distance="1"]{left:80%;opacity:.48}.destination-carousel__slide[data-distance="-2"],.destination-carousel__slide[data-distance="2"]{opacity:0}.destination-carousel__arrow--prev{left:-6%}.destination-carousel__arrow--next{right:-6%}.footer{grid-template-columns:1fr auto}.footer small{grid-column:1/-1}.journey-map__destination-art{max-width:none}}
@media (max-width:620px){.hero{min-height:720px;padding:22px}.nav{top:14px;left:14px;right:14px;height:54px;padding:0 14px}.brand{font-size:14px}.nav nav{display:none}.hero__content{padding-bottom:55px}.hero__statement{font-size:25px}.hero__actions{align-items:stretch;display:grid;grid-template-columns:1fr}.hero__scroll{left:22px;bottom:18px}.route-overview{padding:72px 22px}.route-overview__list{grid-template-columns:1fr}.route-overview__list li{min-height:58px}.route-map-section{padding-top:26px}.route-map-section__head{display:block}.route-map-section__head p:last-child{margin-top:8px}.journey-map{min-width:0}.destination-carousel{left:5%;width:90%;top:2%;height:clamp(108px,20vw,132px)}.destination-carousel__slide{width:67%;border-radius:1px}.destination-carousel__slide[data-distance="-1"]{left:3%;opacity:.38;transform:translateX(-50%) scale(.7)}.destination-carousel__slide[data-distance="1"]{left:97%;opacity:.38;transform:translateX(-50%) scale(.7)}.destination-carousel__arrow{top:47%;width:22px;font-size:19px}.destination-carousel__arrow--prev{left:0}.destination-carousel__arrow--next{right:0}.destination-carousel__counter{bottom:-15px;font-size:8px}.journey-map__hotspot{min-width:22px}.details{padding:72px 22px}.facts>div{min-height:118px;padding:17px 10px}.facts b{font-size:28px}.included{margin-top:58px}.experience{padding:70px 22px}.cta{min-height:590px;padding:70px 22px}.cta h2{font-size:66px}.footer{padding:26px 22px;display:block}.footer>div{margin:22px 0}.footer small{display:block}.whatsapp-float{right:12px;bottom:12px}.journey-map__plane-position{width:26px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.journey-map__pulse.is-pulsing{opacity:.6;transform:translate(-50%,-50%) scale(1)}}

/* Refined journey presentation: the map sits on a clean white canvas rather than a black block. */
.route-overview{padding-block:clamp(64px,8vw,118px)}
.route-map-section{padding:clamp(32px,4vw,58px) clamp(18px,4vw,64px) clamp(40px,5vw,68px);background:var(--color-white);color:var(--color-black)}
.route-map-section__head{margin-bottom:clamp(22px,3vw,42px);align-items:center}
.route-map-section__head .kicker{color:var(--color-blue)}
.route-map-section__prompt{max-width:670px;margin:0!important;color:var(--color-black)!important;font-size:clamp(23px,2.65vw,48px)!important;font-weight:760;line-height:.95;letter-spacing:-.065em;text-align:right}
.route-map-section__prompt span{display:block;margin-top:7px;color:var(--color-blue);font:600 clamp(12px,1vw,17px)/1.2 var(--mono);letter-spacing:.025em}
.journey-map{box-shadow:0 24px 58px rgba(20,35,52,.16);border-radius:4px;overflow:hidden}
.destination-carousel__slide{box-shadow:0 14px 34px rgba(0,0,0,.34)}

/* Combine the trip facts and Luna Tours experience into one compact green-and-white section. */
.trip-info{display:grid;grid-template-columns:minmax(0,1.78fr) minmax(330px,.82fr);background:var(--color-white)}
.details{padding:clamp(64px,7vw,102px) clamp(22px,5vw,82px);background:var(--color-white)}
.details__head{grid-template-columns:3fr 5fr;gap:clamp(32px,5vw,86px)}
.facts{margin-top:clamp(40px,5vw,72px)}
.facts>div{min-height:128px}
.included{margin-top:clamp(38px,5vw,66px);grid-template-columns:3fr 5fr;gap:clamp(32px,5vw,86px)}
.experience{display:flex;flex-direction:column;justify-content:space-between;gap:clamp(42px,6vw,100px);padding:clamp(64px,7vw,102px) clamp(28px,4vw,66px);background:var(--color-lime)}
.experience p{max-width:160px;font-size:clamp(39px,4.5vw,68px)}
.experience h2{max-width:510px;font-size:clamp(34px,3.7vw,58px);line-height:.97}

.cta{min-height:64svh;padding:clamp(58px,7vw,102px) clamp(22px,6vw,96px)}
.cta h2{margin:18px 0 30px;font-size:clamp(58px,8.2vw,132px)}
.button--cta{min-height:58px;padding-inline:23px;gap:18px;background:var(--color-lime)}
.button--cta span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--color-black);color:var(--color-lime);font-size:14px;transition:transform .25s ease}
.button--cta:hover span{transform:translate(3px,-3px) rotate(10deg)}
.whatsapp-float{right:24px;bottom:24px;min-height:58px;padding:0 22px;gap:15px;border-radius:5px;font-size:11px;box-shadow:0 10px 24px rgba(0,0,0,.2)}
.whatsapp-float span{font-size:17px;transition:transform .25s ease}.whatsapp-float:hover span{transform:translate(3px,-3px)}

@media (max-width:900px){
  .route-map-section{padding-inline:20px}.route-map-section__head{display:block}.route-map-section__prompt{margin-top:13px!important;text-align:left}
  .trip-info{grid-template-columns:1fr}.experience{min-height:360px}.details__head,.included{grid-template-columns:1fr;gap:28px}
}
@media (max-width:620px){
  .route-map-section{padding:30px 12px 40px}.route-map-section__head{padding:0 10px}.route-map-section__prompt{font-size:clamp(26px,9vw,39px)!important}.route-map-section__prompt span{font-size:11px}
  .details{padding:58px 22px}.experience{padding:54px 22px;min-height:310px}.facts{margin-top:36px}.included{margin-top:42px}.cta{min-height:500px;padding:58px 22px}.cta h2{font-size:clamp(58px,17vw,80px)}
  .whatsapp-float{right:14px;bottom:14px;min-height:54px;padding:0 18px}
}

/* The transparent Europe PNG belongs to the page, rather than to a framed map card. */
.route-map-section{background:var(--color-bg)}
.journey-map{overflow:visible;border-radius:0;box-shadow:none}
.journey-map:before{display:none}
.journey-map__base{border-radius:0}
.journey-map__connection path{stroke:rgba(27,64,121,.58)}
.journey-map__route{stroke:var(--color-blue);filter:drop-shadow(0 1px 1px rgba(255,255,255,.85))}
.journey-map__plane{fill:var(--color-black);stroke:var(--color-white);filter:drop-shadow(0 2px 2px rgba(27,64,121,.24))}
.journey-map__pulse{border-color:var(--color-blue)}

/* Distinct carousel controls: the photos retain the existing composition. */
.destination-carousel__arrow{top:50%;width:52px;height:52px;border:1px solid rgba(17,17,17,.68);border-radius:50%;background:rgba(255,255,255,.9);box-shadow:0 8px 22px rgba(20,35,52,.18);color:var(--color-black);font-size:28px;line-height:1;opacity:1}
.destination-carousel__arrow:hover{background:var(--color-black);color:var(--color-white);transform:translateY(-2px)}
.destination-carousel__arrow--prev{left:-10%}.destination-carousel__arrow--next{right:-10%}

/* Large hit areas for destination navigation, separate from photo navigation. */
.journey-map__destination-control{position:absolute;z-index:10;top:50%;display:grid;place-items:center;width:clamp(60px,5.4vw,92px);height:43%;padding:0;border:1px solid rgba(27,64,121,.1);border-radius:3px;background:rgba(27,64,121,.035);color:var(--color-blue);font-size:clamp(31px,3vw,46px);line-height:1;cursor:pointer;opacity:.92;backdrop-filter:blur(4px);transition:background .22s ease,color .22s ease,opacity .22s ease,transform .22s ease}
.journey-map__destination-control:hover{background:rgba(27,64,121,.92);color:var(--color-white);transform:translateY(-50%)}
.journey-map__destination-control:focus-visible{outline:2px solid var(--color-blue);outline-offset:4px}
.journey-map__destination-control:disabled{cursor:wait;opacity:.35}
.journey-map__destination-control--previous{left:clamp(4px,1.2vw,18px);transform:translateY(-50%)}
.journey-map__destination-control--next{right:clamp(4px,1.2vw,18px);transform:translateY(-50%)}

@media (max-width:900px){
  .destination-carousel__arrow--prev{left:-4%}.destination-carousel__arrow--next{right:-4%}
  .journey-map__destination-control{width:58px;height:40%;font-size:36px}
}
@media (max-width:620px){
  .destination-carousel__arrow{width:46px;height:46px;font-size:25px}.destination-carousel__arrow--prev{left:1%}.destination-carousel__arrow--next{right:1%}
  .journey-map__destination-control{top:auto;bottom:10px;width:52px;height:52px;border-radius:50%;font-size:31px;transform:none}.journey-map__destination-control:hover{transform:translateY(-2px)}
  .journey-map__destination-control--previous{left:10px;transform:none}.journey-map__destination-control--next{right:10px;transform:none}
}

/* Destination map with the supplied, geographically labelled background. */
.route-map-section{background:#11100e;color:var(--color-white)}
.route-map-section__head .kicker{color:#e7a90b}
.route-map-section__prompt{color:var(--color-white)!important}
.route-map-section__prompt span{color:#f0c45e}
.journey-map__connection path{stroke:rgba(244,202,96,.7)}
.journey-map__route{stroke:#f0bd45;filter:drop-shadow(0 1px 2px rgba(0,0,0,.72))}
.journey-map__plane{fill:#15120c;stroke:#fff8e8;filter:drop-shadow(0 2px 3px rgba(0,0,0,.75))}
.journey-map__pulse{border-color:#f0bd45}

/* Transparent, oversized directional buttons modelled on the supplied reference. */
.journey-map__destination-control{width:clamp(78px,7vw,112px);height:clamp(78px,7vw,112px);border:4px solid rgba(255,255,255,.84);border-radius:50%;background:transparent;color:var(--color-white);font-size:clamp(58px,5.5vw,84px);font-family:Arial,sans-serif;font-weight:300;line-height:.72;opacity:1;backdrop-filter:none;box-shadow:none}
.journey-map__destination-control:hover{background:transparent;border-color:#f0bd45;color:#f0bd45;transform:translateY(-50%) scale(1.06)}
.journey-map__destination-control.is-busy{opacity:1;cursor:pointer}
.journey-map__destination-control--previous{left:clamp(14px,2vw,30px)}
.journey-map__destination-control--next{right:clamp(14px,2vw,30px)}
@media (max-width:900px){.journey-map__destination-control{width:72px;height:72px;font-size:58px}}
@media (max-width:620px){.journey-map__destination-control{bottom:12px;width:62px;height:62px;border-width:3px;font-size:50px}.journey-map__destination-control:hover{transform:translateY(-2px) scale(1.04)}.journey-map__destination-control--previous{left:12px}.journey-map__destination-control--next{right:12px}}

/* Compact rhythm for the overview and trip details. */
.route-overview{gap:clamp(28px,4vw,64px);padding:clamp(42px,5vw,68px) clamp(22px,6vw,96px)}
.route-overview__head h2{margin-top:13px;font-size:clamp(38px,4vw,64px)}
.route-overview__list li{min-height:46px;font-size:clamp(16px,1.55vw,22px)}
.route-overview__list li:before{width:38px}
.details{padding:clamp(40px,4.5vw,62px) clamp(22px,5vw,82px)}
.details h2{font-size:clamp(38px,4vw,58px)}
.facts{margin-top:clamp(24px,3vw,38px)}
.facts>div{min-height:88px;padding:14px}
.included{margin-top:clamp(25px,3vw,38px)}
.included li{min-height:39px;font-size:14px}

/* Contact actions use compact message symbols instead of repeated text labels. */
.nav__contact--icon{display:grid;place-items:center;width:36px;height:36px;border:1px solid rgba(17,17,17,.22);border-radius:50%}
.nav__contact--icon svg,.button--contact-icon svg,.whatsapp-float svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.button--contact-icon{width:50px;min-height:50px;padding:0;border-radius:50%}
.whatsapp-float{display:grid;place-items:center;width:58px;height:58px;min-height:0;padding:0;border-radius:50%}
.whatsapp-float svg{width:25px;height:25px;stroke-width:1.75}

/* One-time reveals keep the long page lively without continuous visual noise. */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.16,.78,.25,1) var(--reveal-delay,0ms),transform .7s cubic-bezier(.16,.78,.25,1) var(--reveal-delay,0ms)}
.reveal.is-visible{opacity:1;transform:translateY(0)}
.route-overview__list li.reveal{transform:translateX(-18px)}
.route-overview__list li.reveal.is-visible{transform:translateX(0)}
@media (max-width:620px){
  .route-overview{padding:38px 22px}.route-overview__list{grid-template-columns:repeat(2,minmax(0,1fr))}.route-overview__list li{min-height:42px;font-size:15px}.route-overview__list li:before{width:28px;font-size:9px}
  .details{padding:38px 22px}.facts>div{min-height:78px;padding:12px 9px}.facts b{font-size:25px}.included{margin-top:25px}.included li{min-height:38px;font-size:13px}.included li:before{width:25px}
  .button--contact-icon{width:48px;min-height:48px}.whatsapp-float{width:54px;height:54px}
}

/* Keep the desktop layout concise, but restore an editorial type scale. */
@media (min-width:621px){
  .route-overview__head h2{font-size:clamp(46px,4.8vw,76px)}
  .route-overview__list li{min-height:54px;font-size:clamp(18px,1.75vw,26px)}
  .details h2{font-size:clamp(46px,4.5vw,68px)}
  .facts>div{min-height:104px;padding:17px}
  .facts b{font-size:clamp(34px,3.2vw,52px)}
  .facts span{font-size:11px}
  .included li{min-height:45px;font-size:16px}
  .included li:before{width:31px;font-size:18px}
}

/* Larger photographic focus: the carousel now owns more of the map scene. */
.destination-carousel{top:3%;left:15%;width:70%;height:clamp(155px,15.2vw,222px)}
.destination-carousel__slide{width:41%}
.destination-carousel__slide[data-distance="-1"]{left:19%;transform:translateX(-50%) scale(.75)}
.destination-carousel__slide[data-distance="1"]{left:81%;transform:translateX(-50%) scale(.75)}
.destination-carousel__arrow{background:rgba(255,255,255,.48);border-color:rgba(255,255,255,.72);box-shadow:0 7px 28px rgba(0,0,0,.28);backdrop-filter:blur(9px)}
.destination-carousel__arrow:hover{background:rgba(17,17,17,.8)}

/* Match both columns' real content height, avoiding a long empty desktop panel. */
.details{padding-block:clamp(38px,3.8vw,56px)}
.experience{justify-content:flex-start;gap:clamp(34px,3.5vw,54px);min-height:0;padding-block:clamp(42px,4vw,58px)}
.experience h2{font-size:clamp(32px,3.25vw,52px);line-height:.98}
.experience p{font-size:clamp(36px,3.5vw,54px)}

/* Subtle frosted halos retain the map detail behind each directional control. */
.journey-map__destination-control{width:clamp(68px,5.6vw,92px);height:clamp(68px,5.6vw,92px);border:1px solid rgba(255,255,255,.45);background:rgba(255,255,255,.12);box-shadow:0 0 30px rgba(255,255,255,.12),0 8px 24px rgba(0,0,0,.25);backdrop-filter:blur(8px);font-size:clamp(50px,4.5vw,68px)}
.journey-map__destination-control:hover{background:rgba(240,189,69,.19);border-color:#f0bd45;box-shadow:0 0 38px rgba(240,189,69,.22),0 8px 24px rgba(0,0,0,.25)}

@media (max-width:900px){
  .destination-carousel{top:2.5%;left:10%;width:80%;height:clamp(138px,20vw,190px)}
  .destination-carousel__slide{width:45%}
  .journey-map__destination-control{width:66px;height:66px;font-size:51px}
}
@media (max-width:620px){
  /* Preserve the photo scale while keeping it in the dark header lane, above Europe itself. */
  .destination-carousel{top:clamp(-30px,-5vw,-18px);left:4.5%;width:91%;height:clamp(122px,29vw,150px)}
  .destination-carousel__slide{width:69%}
  .destination-carousel__slide[data-distance="-1"]{left:2%;transform:translateX(-50%) scale(.68)}
  .destination-carousel__slide[data-distance="1"]{left:98%;transform:translateX(-50%) scale(.68)}
  .journey-map__destination-control{width:60px;height:60px;font-size:47px;background:rgba(255,255,255,.15)}
}

/* A single, high-impact editorial entrance for the landing, then vivid one-time text reveals. */
.hero__veil{animation:hero-veil-in 1.25s cubic-bezier(.16,.78,.25,1) both}
.nav{animation:hero-nav-in .78s cubic-bezier(.16,.78,.25,1) .12s both}
.hero__content .kicker{animation:hero-copy-in .62s cubic-bezier(.16,.78,.25,1) .42s both}
.hero h1 span{color:var(--color-white)}
.hero h1 .hero__title-line{display:block;transform-origin:left bottom;animation:hero-title-in .92s cubic-bezier(.16,.78,.25,1) both}
.hero h1 .hero__title-line:first-child{animation-delay:.54s}
.hero h1 .hero__title-year{color:var(--color-lime);animation-delay:.67s}
.hero__statement{animation:hero-copy-in .72s cubic-bezier(.16,.78,.25,1) 1s both}
.hero__meta{animation:hero-copy-in .62s cubic-bezier(.16,.78,.25,1) 1.13s both}
.hero__actions{animation:hero-actions-in .72s cubic-bezier(.16,.78,.25,1) 1.26s both}
.hero__scroll{animation:hero-scroll-in .72s cubic-bezier(.16,.78,.25,1) 1.48s both}

@keyframes hero-veil-in{from{opacity:0}to{opacity:1}}
@keyframes hero-nav-in{from{opacity:0;transform:translateY(-20px) scale(.96);filter:blur(7px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}
@keyframes hero-title-in{from{opacity:0;transform:translateY(105%) skewY(7deg);filter:blur(12px)}to{opacity:1;transform:translateY(0) skewY(0);filter:blur(0)}}
@keyframes hero-copy-in{from{opacity:0;transform:translateY(18px);filter:blur(7px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes hero-actions-in{from{opacity:0;transform:translateY(22px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes hero-scroll-in{from{opacity:0;transform:translateX(-15px)}to{opacity:1;transform:translateX(0)}}

.reveal--kicker{transform:translateY(14px);filter:blur(5px);letter-spacing:.2em}
.reveal--kicker.is-visible{transform:translateY(0);filter:blur(0);letter-spacing:.08em}
.reveal--heading{transform:translateY(36px) skewY(2deg) scale(.97);filter:blur(10px);transform-origin:left bottom}
.reveal--heading.is-visible{transform:translateY(0) skewY(0) scale(1);filter:blur(0)}
.reveal--route-item{transform:translateX(-30px) scale(.98);filter:blur(5px)}
.reveal--route-item.is-visible{transform:translateX(0) scale(1);filter:blur(0)}
.reveal--fact{transform:translateY(30px) scale(.92);filter:blur(7px)}
.reveal--fact.is-visible{transform:translateY(0) scale(1);filter:blur(0)}
.reveal--line{transform:translateX(24px) scale(.985);filter:blur(5px)}
.reveal--line.is-visible{transform:translateX(0) scale(1);filter:blur(0)}
.reveal--stat{transform:translateY(30px) scale(.88);filter:blur(8px)}
.reveal--stat.is-visible{transform:translateY(0) scale(1);filter:blur(0)}
.reveal--button{transform:translateY(20px) scale(.9);filter:blur(5px)}
.reveal--button.is-visible{transform:translateY(0) scale(1);filter:blur(0)}
.reveal--footer{transform:translateY(18px);filter:blur(4px)}
.reveal--footer.is-visible{transform:translateY(0);filter:blur(0)}
.reveal{will-change:opacity,transform,filter;transition:opacity .7s cubic-bezier(.16,.78,.25,1) var(--reveal-delay,0ms),transform .7s cubic-bezier(.16,.78,.25,1) var(--reveal-delay,0ms),filter .7s cubic-bezier(.16,.78,.25,1) var(--reveal-delay,0ms),letter-spacing .7s cubic-bezier(.16,.78,.25,1) var(--reveal-delay,0ms)}

@media (max-width:620px){
  .hero h1 .hero__title-line{line-height:.82}
  .reveal--heading{transform:translateY(24px) skewY(1deg)}
  .reveal--route-item{transform:translateX(-18px)}
}
