/* Offerte crociera: identità marittima e rotta emozionale. */
.gs-cruise-commercial{
  --gs-cruise-night:#061f38;
  --gs-cruise-blue:#0d4268;
  --gs-cruise-sea:#176c94;
  --gs-cruise-gold:#d5a64c;
  --gs-cruise-cream:#fff9eb;
}
.gs-cruise-commercial .sdv-offer-hero{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 82% 18%,rgba(255,255,255,.15),transparent 28%),
    linear-gradient(132deg,var(--gs-cruise-night) 0%,#0a3456 56%,#155a7f 100%);
}
.gs-cruise-commercial .sdv-offer-hero::before,
.gs-cruise-commercial .sdv-offer-hero::after{
  content:"";
  position:absolute;
  width:620px;
  height:620px;
  right:-250px;
  bottom:-470px;
  border:1px solid rgba(255,255,255,.11);
  border-radius:50%;
  pointer-events:none;
}
.gs-cruise-commercial .sdv-offer-hero::after{right:-90px;bottom:-540px;width:760px;height:760px;opacity:.65}
.gs-cruise-commercial .sdv-offer-hero-grid{position:relative;z-index:1}
.gs-cruise-commercial .sdv-offer-hero-media{
  position:relative;
  border:1px solid rgba(213,166,76,.8);
  box-shadow:0 24px 60px rgba(1,19,35,.33),0 0 0 7px rgba(255,255,255,.035);
}
.gs-cruise-commercial .sdv-offer-hero-media::after{
  content:"Crociera selezionata";
  position:absolute;
  right:18px;
  bottom:18px;
  padding:8px 13px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:999px;
  background:rgba(5,31,54,.82);
  color:#fff;
  font-size:.72rem;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
  backdrop-filter:blur(8px);
}
.gs-cruise-commercial .sdv-offer-hero-price{
  border-color:rgba(213,166,76,.5);
  background:linear-gradient(145deg,rgba(255,255,255,.12),rgba(255,255,255,.07));
}
.gs-cruise-commercial .sdv-offer-hero-price>strong{color:#fff9e6}
.gs-cruise-commercial .sdv-offer-booking-price>strong{color:#0b3152!important}
.gs-cruise-commercial .gs-cruise-total-note{
  display:block;
  margin-top:8px;
  color:rgba(255,255,255,.77);
  font-size:.78rem;
  font-style:normal;
  font-weight:650;
  line-height:1.35;
}
.gs-cruise-commercial .sdv-offer-booking-price .gs-cruise-total-note{color:#667b8b}
.gs-cruise-commercial .gs-cruise-fare-note{
  display:inline-flex;
  width:fit-content;
  max-width:100%;
  margin-top:9px;
  padding:6px 10px;
  border:1px solid rgba(255,255,255,.3);
  border-radius:999px;
  background:rgba(255,255,255,.12);
  color:#fff;
  font-size:.72rem;
  font-style:normal;
  font-weight:850;
  line-height:1.2;
}
.gs-cruise-commercial .sdv-offer-booking-price .gs-cruise-fare-note{
  border-color:#add5ca;
  background:#edf8f6;
  color:#0b6266;
}
.gs-cruise-commercial .sdv-offer-trust-strip{border-bottom:1px solid #dfeaf0;background:linear-gradient(90deg,#f8fbfd,#fff8e9,#f8fbfd)}
.gs-cruise-commercial .sdv-offer-facts>div{border-top-color:rgba(23,108,148,.2)}
.gs-cruise-flight-included{
  position:relative;
  margin:28px 0!important;
  padding:22px 24px 22px 72px!important;
  overflow:hidden;
  border:1px solid rgba(23,108,148,.28);
  border-radius:20px;
  background:linear-gradient(135deg,#eef9fd 0%,#fff9eb 100%);
  box-shadow:0 12px 30px rgba(11,66,100,.09);
}
.gs-cruise-flight-included::before{
  content:"✈";
  position:absolute;
  left:20px;
  top:22px;
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border-radius:50%;
  background:#0d4268;
  color:#fff;
  font-size:1.05rem;
  box-shadow:0 6px 16px rgba(11,66,104,.2);
}
.gs-cruise-flight-included h2{margin:0 0 5px!important;color:#0b3152;font-size:clamp(1.25rem,2vw,1.65rem)!important;line-height:1.15}
.gs-cruise-flight-included p{margin:0!important;color:#35586d;line-height:1.55}

.gs-cruise-route-map{
  margin-top:32px!important;
  margin-bottom:36px!important;
  padding:20px!important;
  overflow:hidden;
  border:1px solid #dce5e9;
  border-radius:24px;
  background:#fff;
  color:#102f43;
  box-shadow:0 16px 42px rgba(20,56,74,.11);
}
.gs-cruise-route-head{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:14px}
.gs-cruise-route-eyebrow{display:block;margin-bottom:5px;color:#b78320;font-size:.67rem;font-weight:900;letter-spacing:.15em;text-transform:uppercase}
.gs-cruise-route-head h2{margin:0;color:#092f4a;font-size:clamp(1.35rem,2.45vw,1.9rem);line-height:1.08}
.gs-cruise-route-head p{margin:7px 0 0;color:#557181;font-size:.88rem;line-height:1.4}
.gs-cruise-route-control{
  flex:0 0 auto;
  min-height:38px;
  padding:8px 14px;
  border:1px solid #bfd0d8;
  border-radius:999px;
  background:#f6fafb;
  color:#0b496c;
  font:inherit;
  font-size:.78rem;
  font-weight:850;
  cursor:pointer;
  transition:background .18s ease,color .18s ease,transform .18s ease;
}
.gs-cruise-route-control:hover,.gs-cruise-route-control:focus-visible{border-color:#d2a33b;background:#f8c34b;color:#092f4a;transform:translateY(-1px)}
.gs-cruise-route-control:focus-visible{outline:3px solid rgba(210,163,59,.28);outline-offset:3px}
.gs-cruise-route-canvas{
  position:relative;
  height:clamp(275px,29vw,335px);
  overflow:hidden;
  border:1px solid #cbdde5;
  border-radius:17px;
  background:#cfe8f3;
  isolation:isolate;
}
.gs-cruise-route-canvas svg{position:absolute;inset:0;z-index:0;width:100%;height:100%;overflow:hidden}
.gs-cruise-route-land{
  fill:#f7f5ef;
  stroke:#c8c9c4;
  stroke-width:.9;
  vector-effect:non-scaling-stroke;
}
.gs-cruise-route-borders{
  fill:none;
  stroke:#d7d5cf;
  stroke-width:.72;
  vector-effect:non-scaling-stroke;
}
.gs-cruise-route-base,.gs-cruise-route-progress{
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
}
.gs-cruise-route-base{stroke:rgba(7,76,111,.5);stroke-width:3}
.gs-cruise-route-progress{stroke-width:4;stroke-dasharray:1;stroke-dashoffset:1;filter:drop-shadow(0 0 4px rgba(210,163,59,.5))}
.gs-cruise-route-node{opacity:.58;transition:opacity .28s ease,filter .28s ease}
.gs-cruise-route-halo{fill:rgba(210,163,59,.08);stroke:rgba(177,126,26,.32);stroke-width:1;vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:center}
.gs-cruise-route-dot{fill:#d4a02e;stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke}
.gs-cruise-route-node.is-sea .gs-cruise-route-dot{fill:#fff;stroke:#1676a2;stroke-width:1.6}
.gs-cruise-route-spark{fill:none;stroke:#d29c26;stroke-linecap:round;stroke-width:2;opacity:0;filter:drop-shadow(0 0 5px rgba(255,255,255,.9));vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:center}
.gs-cruise-route-node.is-arrived{opacity:1}
.gs-cruise-route-node.is-active{opacity:1;filter:drop-shadow(0 0 8px rgba(255,196,55,.92))}
.gs-cruise-route-node.is-active .gs-cruise-route-halo{animation:gs-cruise-zone-glow 1.2s ease-out 2}
.gs-cruise-route-node.is-active .gs-cruise-route-spark{animation:gs-cruise-spark .92s ease both}
.gs-cruise-route-ship{
  position:absolute;
  z-index:3;
  display:block;
  width:clamp(68px,6.2vw,82px);
  height:auto;
  aspect-ratio:4/3;
  pointer-events:none;
  user-select:none;
  transform-origin:center;
  will-change:left,top,transform;
  backface-visibility:hidden;
  transform-style:preserve-3d;
  filter:drop-shadow(0 5px 7px rgba(20,55,72,.4));
}
.gs-cruise-route-ship img{display:block;width:100%;height:100%;object-fit:contain}
.gs-cruise-route-ship-fallback{display:none;font-size:42px;line-height:1}
.gs-cruise-route-ship.is-fallback img{display:none}
.gs-cruise-route-ship.is-fallback .gs-cruise-route-ship-fallback{display:block}
.gs-cruise-route-current{
  position:absolute;
  z-index:5;
  width:max-content;
  max-width:min(230px,72%);
  padding:5px 9px;
  border:1px solid rgba(166,186,196,.86);
  border-radius:9px;
  background:rgba(255,255,255,.96);
  color:#12384d;
  font-size:.7rem;
  font-weight:850;
  line-height:1.18;
  text-align:center;
  box-shadow:0 5px 15px rgba(28,62,80,.17),0 0 0 3px rgba(255,196,55,.13);
  pointer-events:none;
  backdrop-filter:blur(5px);
}
.gs-cruise-route-current[hidden],.gs-cruise-sea-popover[hidden]{display:none}
.gs-cruise-route-current.is-north{transform:translate(-50%,calc(-100% - 20px))}
.gs-cruise-route-current.is-south{transform:translate(-50%,20px)}
.gs-cruise-route-current.is-east{transform:translate(20px,-50%);text-align:left}
.gs-cruise-route-current.is-west{transform:translate(calc(-100% - 20px),-50%);text-align:right}
.gs-cruise-route-current.is-appearing{animation:gs-cruise-name-arrive .42s ease both}
.gs-cruise-sea-hotspot{
  position:absolute;
  z-index:4;
  width:36px;
  height:36px;
  padding:0;
  border:0;
  border-radius:50%;
  background:transparent;
  transform:translate(-50%,-50%);
  cursor:pointer;
}
.gs-cruise-sea-hotspot::after{
  content:"";
  position:absolute;
  inset:10px;
  border:1px solid transparent;
  border-radius:50%;
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.gs-cruise-sea-hotspot:hover::after,.gs-cruise-sea-hotspot:focus-visible::after,.gs-cruise-sea-hotspot[aria-expanded="true"]::after{
  border-color:#fff;
  box-shadow:0 0 0 4px rgba(20,119,161,.22),0 0 10px rgba(255,255,255,.9);
  transform:scale(1.14);
}
.gs-cruise-sea-hotspot:focus-visible{outline:3px solid rgba(10,100,141,.28);outline-offset:1px}
.gs-cruise-sea-popover{
  position:absolute;
  z-index:7;
  width:min(280px,80%);
  padding:12px 14px;
  border:1px solid rgba(172,190,199,.9);
  border-radius:13px;
  background:rgba(255,255,255,.97);
  color:#294b5d;
  font-size:.76rem;
  line-height:1.42;
  box-shadow:0 14px 34px rgba(18,55,74,.24);
  backdrop-filter:blur(8px);
}
.gs-cruise-sea-popover small{display:block;margin-bottom:3px;color:#b78320;font-size:.58rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.gs-cruise-sea-popover strong{display:block;margin-bottom:5px;color:#0b3b57;font-size:.86rem;line-height:1.18}
.gs-cruise-sea-popover span{display:block}
.gs-cruise-sea-popover.is-north{transform:translate(-50%,calc(-100% - 23px))}
.gs-cruise-sea-popover.is-south{transform:translate(-50%,23px)}
.gs-cruise-sea-popover.is-east{transform:translate(23px,-50%)}
.gs-cruise-sea-popover.is-west{transform:translate(calc(-100% - 23px),-50%)}
.gs-cruise-route-map.is-complete .gs-cruise-route-progress,.gs-cruise-route-map.is-reduced-motion .gs-cruise-route-progress{stroke-dashoffset:0}
.gs-cruise-route-map.is-paused .gs-cruise-route-progress,
.gs-cruise-route-map.is-paused .gs-cruise-route-node.is-active .gs-cruise-route-halo,
.gs-cruise-route-map.is-paused .gs-cruise-route-node.is-active .gs-cruise-route-spark{animation-play-state:paused}
.gs-cruise-itinerary-list{
  display:grid;
  gap:0;
  margin:22px 0 8px!important;
  padding:0!important;
  list-style:none!important;
}
.gs-cruise-itinerary-day{
  position:relative;
  display:grid;
  grid-template-columns:54px minmax(0,1fr);
  gap:16px;
  margin:0!important;
  padding:0 0 20px!important;
  list-style:none!important;
}
.gs-cruise-itinerary-day:not(:last-child)::before{
  content:"";
  position:absolute;
  z-index:0;
  left:26px;
  top:49px;
  bottom:0;
  width:2px;
  background:linear-gradient(180deg,#d6a33d 0%,#c6dce6 72%,#dbe8ed 100%);
}
.gs-cruise-itinerary-day-marker{
  position:relative;
  z-index:1;
  display:grid;
  place-items:center;
  align-self:start;
  width:48px;
  height:48px;
  border:3px solid #fff;
  border-radius:50%;
  background:linear-gradient(145deg,#f4c963,#d59f2f);
  color:#082f4d;
  box-shadow:0 5px 15px rgba(84,62,16,.2),0 0 0 1px rgba(181,128,25,.24);
}
.gs-cruise-itinerary-day-marker small{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
}
.gs-cruise-itinerary-day-marker strong{font-size:1rem;line-height:1}
.gs-cruise-itinerary-day-body{min-width:0}
.gs-cruise-itinerary-day-head{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:32px;
  margin:0 0 7px;
  color:#667f8f;
}
.gs-cruise-itinerary-day-head>strong{
  color:#0b3152;
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.gs-cruise-itinerary-day-head time{
  padding-left:10px;
  border-left:1px solid #cedde4;
  font-size:.8rem;
  font-weight:750;
}
.gs-cruise-itinerary-events{display:grid;gap:9px}
.gs-cruise-itinerary-event{
  position:relative;
  min-width:0;
  padding:15px 16px;
  border:1px solid #d9e4e9;
  border-left:4px solid #176c94;
  border-radius:16px;
  background:#fff;
  color:#294b5d;
  box-shadow:0 8px 22px rgba(18,55,74,.07);
  transition:background .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.gs-cruise-itinerary-event.is-sea_destination{
  border-color:#bcdde9;
  border-left-color:#1685ad;
  background:linear-gradient(145deg,#f2fbff,#fff);
}
.gs-cruise-itinerary-event.is-navigation{
  border-color:#d7e4e9;
  border-left-color:#7898a8;
  background:linear-gradient(145deg,#f5f8fa,#fff);
}
.gs-cruise-itinerary-event-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.gs-cruise-itinerary-kind{
  display:block;
  margin-bottom:4px;
  color:#a36f12;
  font-size:.62rem;
  font-weight:900;
  letter-spacing:.11em;
  line-height:1.25;
  text-transform:uppercase;
}
.gs-cruise-itinerary-event.is-sea_destination .gs-cruise-itinerary-kind{color:#0f7098}
.gs-cruise-itinerary-event.is-navigation .gs-cruise-itinerary-kind{color:#5d7785}
.gs-cruise-itinerary-event h3{margin:0!important;color:#0b3152;font-size:1.08rem!important;line-height:1.2}
.gs-cruise-itinerary-times{display:flex;flex:0 0 auto;gap:7px}
.gs-cruise-itinerary-time{
  display:grid;
  min-width:67px;
  padding:6px 9px;
  border:1px solid #d9e5ea;
  border-radius:11px;
  background:#f7fafb;
  text-align:center;
}
.gs-cruise-itinerary-time small{color:#6a8190;font-size:.58rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase}
.gs-cruise-itinerary-time strong{color:#0b4264;font-size:.86rem;line-height:1.2}
.gs-cruise-itinerary-event-description{margin:9px 0 0!important;color:#587181;font-size:.88rem;line-height:1.48}
.gs-cruise-itinerary-highlight{
  border-color:#d9aa45!important;
  background:#fff8e5!important;
  box-shadow:0 0 0 4px rgba(238,190,80,.18),0 12px 28px rgba(18,55,74,.12)!important;
  transform:translateY(-1px);
}
.gs-cruise-itinerary-sea{color:#172033}
.gs-cruise-itinerary-sea-trigger{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:38px;
  max-width:100%;
  margin:11px 0 0;
  padding:7px 12px;
  border:1px solid #abd5e5;
  border-radius:999px;
  background:#e9f7fc;
  color:#0b5d82;
  font:inherit;
  font-size:.74rem;
  font-weight:900;
  line-height:1.2;
  text-align:left;
  cursor:pointer;
  transition:background .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.gs-cruise-itinerary-sea-trigger:hover,
.gs-cruise-itinerary-sea-trigger:focus-visible,
.gs-cruise-itinerary-sea-trigger[aria-expanded="true"]{
  border-color:#7ebed6;
  background:#dff3fb;
  color:#0b4f71;
  box-shadow:0 0 0 2px rgba(24,112,154,.14);
  transform:translateY(-1px);
}
.gs-cruise-itinerary-sea-trigger:focus-visible{outline:3px solid rgba(213,166,76,.34);outline-offset:2px}
.gs-cruise-itinerary-sea-icon{
  flex:0 0 auto;
  width:22px;
  height:22px;
  display:inline-grid;
  place-items:center;
  border-radius:50%;
  background:#14769f;
  color:#fff;
  font-size:.7rem;
  font-weight:900;
  line-height:1;
}
.gs-cruise-itinerary-sea-hint{flex:0 0 auto;color:inherit;font-size:.72rem;font-weight:900;letter-spacing:.01em}
.gs-cruise-itinerary-sea-info{
  position:relative;
  width:100%;
  margin-top:11px;
  padding:17px 18px;
  border:1px solid #c9dfe9;
  border-radius:15px;
  background:linear-gradient(145deg,#fff,#f5fbfe);
  color:#294b5d;
  font-size:.88rem;
  line-height:1.58;
  box-shadow:0 10px 26px rgba(18,55,74,.1);
}
.gs-cruise-itinerary-sea-info[hidden]{display:none}
.gs-cruise-itinerary-sea-info small{display:block;color:#0f7098;font-size:.62rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.gs-cruise-itinerary-sea-info strong{display:block;margin:4px 0 2px;color:#0b3152;font-size:1.12rem;line-height:1.25}
.gs-cruise-itinerary-sea-info p{margin:10px 0 0}
.gs-cruise-itinerary-sea-name{display:block;color:#587181;font-size:.78rem;font-weight:800}
.gs-cruise-itinerary-sea-facts{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:12px 0 0!important;
  padding:0!important;
  list-style:none!important;
}
.gs-cruise-itinerary-sea-facts li{
  margin:0!important;
  padding:5px 9px!important;
  border:1px solid #c9e3ed;
  border-radius:999px;
  background:#eaf7fb;
  color:#175b78;
  font-size:.69rem;
  font-weight:800;
  line-height:1.25;
  list-style:none!important;
}
.gs-cruise-itinerary-sea-schedule{margin-top:8px!important;padding-top:8px;border-top:1px solid #e2ebef;color:#557181;font-size:.8rem}
.gs-cruise-itinerary-sea-source{
  display:inline-flex;
  margin-top:10px;
  color:#0b668d;
  font-size:.78rem;
  font-weight:900;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
}
.gs-cruise-itinerary-sea-source:hover,.gs-cruise-itinerary-sea-source:focus-visible{color:#084664}

.gs-offer-date-choice{display:grid;gap:14px;margin-top:4px}
.gs-offer-date-summary{
  display:grid;
  gap:4px;
  padding:15px 17px;
  border:1px solid #d7e3ea;
  border-radius:17px;
  background:linear-gradient(145deg,#f8fbfd,#fff8e9);
  color:#0b3152;
}
.gs-offer-date-summary small{color:#9b6d19;font-size:.7rem;font-weight:900;letter-spacing:.11em;text-transform:uppercase}
.gs-offer-date-summary strong{font-size:1.05rem;line-height:1.25}
.gs-offer-date-modes,.gs-offer-range-kind,.gs-offer-flexibility-options{display:grid;gap:9px}
.gs-offer-date-option,.gs-offer-range-option,.gs-offer-flex-option{
  display:grid;
  grid-template-columns:22px minmax(0,1fr);
  gap:2px 10px;
  align-items:start;
  min-height:48px;
  padding:12px 14px;
  border:1px solid #d7e0e7;
  border-radius:14px;
  background:#fff;
  color:#17324a;
  cursor:pointer;
  transition:border-color .18s ease,background .18s ease,box-shadow .18s ease;
}
.gs-offer-date-option:has(input:checked),.gs-offer-range-option:has(input:checked),.gs-offer-flex-option:has(input:checked){border-color:#cb9a3d;background:#fff8e8;box-shadow:0 0 0 3px rgba(203,154,61,.13)}
.gs-offer-date-option input,.gs-offer-range-option input,.gs-offer-flex-option input{width:19px;height:19px;margin:2px 0 0;accent-color:#0b3152}
.gs-offer-date-option span,.gs-offer-range-option span{display:grid;gap:3px}
.gs-offer-date-option strong,.gs-offer-range-option strong{font-size:.95rem}
.gs-offer-date-option small,.gs-offer-range-option small{color:#617586;font-size:.78rem;line-height:1.35}
.gs-offer-date-alternative{display:grid;gap:14px;padding:14px;border:1px solid #dce6eb;border-radius:17px;background:#f8fbfd}
.gs-offer-date-alternative[hidden],.gs-offer-flexibility[hidden]{display:none}
.gs-offer-date-alternative h4,.gs-offer-flexibility legend{margin:0;color:#0b3152;font-size:.94rem;font-weight:850}
.gs-offer-date-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.gs-offer-date-grid label{display:grid;gap:6px;color:#314d62;font-size:.78rem;font-weight:800}
.gs-offer-date-grid input[type="date"]{
  width:100%;
  min-height:48px;
  padding:9px 11px;
  border:1px solid #bbcbd6;
  border-radius:12px;
  background:#fff;
  color:#142f46;
  font:inherit;
}
.gs-offer-flexibility{display:grid;gap:9px;padding:0;border:0;margin:0}
.gs-offer-date-error{margin:0;color:#a12c2c;font-size:.8rem;font-weight:800}
.gs-offer-date-error[hidden]{display:none}

/* Globo 3D mondiale: MapLibre locale + cartografia OpenFreeMap. */
.gs-cruise-globe{overflow:visible}
.gs-cruise-globe-head{align-items:flex-end}
.gs-cruise-globe-actions{display:flex;flex:0 0 auto;gap:9px;align-items:center}
.gs-cruise-globe-focus{
  min-height:38px;
  padding:8px 14px;
  border:1px solid #bfd0d8;
  border-radius:999px;
  background:#fff;
  color:#0b496c;
  font:inherit;
  font-size:.78rem;
  font-weight:850;
  cursor:pointer;
  transition:background .18s ease,color .18s ease,transform .18s ease,border-color .18s ease;
}
.gs-cruise-globe-focus:hover,.gs-cruise-globe-focus:focus-visible{border-color:#0c6d97;background:#eaf7fc;color:#083f60;transform:translateY(-1px)}
.gs-cruise-globe-focus:focus-visible{outline:3px solid rgba(12,109,151,.23);outline-offset:3px}
.gs-cruise-globe-canvas{
  height:clamp(370px,43vw,505px);
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 46%,rgba(44,110,151,.42),transparent 43%),
    linear-gradient(145deg,#061b32,#092f4f 58%,#071c32);
  box-shadow:inset 0 0 70px rgba(2,18,33,.32);
}
.gs-cruise-globe-host{position:absolute;inset:0;z-index:1;width:100%;height:100%}
.gs-cruise-globe-loading{
  position:absolute;
  z-index:8;
  inset:0;
  display:grid;
  place-items:center;
  padding:28px;
  background:linear-gradient(145deg,rgba(5,29,49,.96),rgba(11,64,94,.94));
  color:#fff;
  font-size:.88rem;
  font-weight:800;
  text-align:center;
}
.gs-cruise-globe-loading::before{
  content:"";
  position:absolute;
  width:54px;
  height:54px;
  margin-bottom:72px;
  border:3px solid rgba(255,255,255,.18);
  border-top-color:#f3c352;
  border-radius:50%;
  animation:gs-cruise-globe-loading 1s linear infinite;
}
.gs-cruise-globe-loading[hidden]{display:none}
.gs-cruise-globe-loading.is-error::before{display:none}
.gs-cruise-globe-hint{
  position:absolute;
  z-index:5;
  left:12px;
  bottom:12px;
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.34);
  border-radius:999px;
  background:rgba(4,36,59,.78);
  color:#fff;
  font-size:.68rem;
  font-weight:800;
  line-height:1;
  box-shadow:0 5px 16px rgba(0,20,35,.24);
  pointer-events:none;
  backdrop-filter:blur(7px);
  transition:opacity .3s ease;
}
.gs-cruise-globe.is-ready .gs-cruise-globe-hint{opacity:.88}
.gs-cruise-globe-canvas .maplibregl-canvas{cursor:grab}
.gs-cruise-globe-canvas .maplibregl-canvas:active{cursor:grabbing}
.gs-cruise-globe-canvas .maplibregl-canvas:focus-visible{outline:4px solid rgba(245,195,77,.72);outline-offset:-4px}
.gs-cruise-globe-canvas .maplibregl-ctrl-top-right{top:10px;right:10px}
.gs-cruise-globe-canvas .maplibregl-ctrl-group{
  overflow:hidden;
  border:1px solid rgba(12,60,83,.18);
  border-radius:12px;
  box-shadow:0 7px 22px rgba(3,34,53,.22);
}
.gs-cruise-globe-canvas .maplibregl-ctrl-group button{width:42px;height:42px;background-color:rgba(255,255,255,.97)}
.gs-cruise-globe-canvas .maplibregl-ctrl-group button:hover{background-color:#fff4d5}
.gs-cruise-globe-canvas .maplibregl-ctrl-attrib{margin:0 5px 5px 0;border-radius:8px 0 0 0;background:rgba(255,255,255,.88);font-size:9px;line-height:13px}
.gs-cruise-globe-canvas .maplibregl-ctrl-attrib a{color:#174b67;text-decoration:none}
.gs-cruise-globe-canvas .maplibregl-cooperative-gesture-screen{background:rgba(3,28,47,.77);color:#fff;font-weight:800}
.gs-cruise-globe-ship-marker{display:grid;place-items:center;width:82px;height:62px;pointer-events:none;filter:drop-shadow(0 7px 7px rgba(0,27,44,.5));will-change:transform;backface-visibility:hidden;transform-style:preserve-3d}
.gs-cruise-globe-ship-marker .gs-cruise-route-ship{
  position:relative;
  inset:auto;
  z-index:auto;
  width:82px;
  height:62px;
  aspect-ratio:auto;
  filter:none;
  transform-origin:center;
  will-change:transform;
}
.gs-cruise-traveler[hidden]{display:none!important}
.gs-cruise-traveler{position:relative;width:96px;height:92px;z-index:9;pointer-events:none;color:#0b3152;filter:drop-shadow(0 9px 12px rgba(4,38,61,.2))}
.gs-cruise-route-canvas:not(.is-globe)>.gs-cruise-traveler{position:absolute;transform:translate(-50%,-92%)}
.gs-cruise-traveler-character{position:absolute;left:5px;bottom:0;width:86px;height:86px;display:block;transform-origin:50% 88%}
.gs-cruise-traveler-mascot{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom}
.gs-cruise-traveler-bubble{position:absolute;left:50%;bottom:78px;width:min(284px,76vw);padding:12px;border:2px solid #0b3152;border-radius:22px;background:#fffdf8;box-shadow:0 14px 34px rgba(0,38,64,.22);transform:translateX(-50%);font-style:normal}
.gs-cruise-traveler-bubble::before,.gs-cruise-traveler-bubble::after{content:"";position:absolute;border:2px solid #0b3152;background:#fffdf8;border-radius:50%}
.gs-cruise-traveler-bubble::before{left:50%;bottom:-13px;width:15px;height:15px;transform:translateX(-50%)}
.gs-cruise-traveler-bubble::after{left:53%;bottom:-25px;width:8px;height:8px}
.gs-cruise-traveler-stage-icon{position:absolute;right:-9px;top:-12px;display:grid;place-items:center;width:34px;height:34px;border:2px solid #0b3152;border-radius:50%;background:#ffd65f;font-size:18px;box-shadow:0 4px 10px rgba(11,49,82,.18)}
.gs-cruise-traveler-copy{display:block;padding:0 24px 0 3px;line-height:1.18}
.gs-cruise-traveler-copy strong{display:block;color:#b43d35;font-size:.94rem;font-weight:900}
.gs-cruise-traveler-copy>span{display:block;margin-top:3px;color:#0b3152;font-size:.8rem;font-weight:800}
.gs-cruise-traveler-photo{margin:9px 0 0;overflow:hidden;border:1px solid rgba(11,49,82,.18);border-radius:13px;background:#eaf2f5}
.gs-cruise-traveler-photo img{display:block;width:100%;height:116px;object-fit:cover}
.gs-cruise-traveler-photo figcaption{display:grid;gap:2px;padding:7px 9px;background:#fff;color:#35566d;font-size:.62rem;line-height:1.25}
.gs-cruise-traveler-photo figcaption strong{color:#0b3152;font-size:.71rem}
.gs-cruise-traveler-photo figcaption a{color:#256b91;text-decoration:underline;text-underline-offset:2px;pointer-events:auto}
.gs-cruise-traveler-photo figcaption a{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.gs-cruise-traveler-photo.is-changing{animation:gs-traveler-photo .42s ease both}
.gs-cruise-traveler[data-stage="0"] .gs-cruise-traveler-character{animation:gs-traveler-arrive .65s cubic-bezier(.22,.9,.36,1) both}
.gs-cruise-traveler[data-stage="1"] .gs-cruise-traveler-character{animation:gs-traveler-look 1.05s ease-in-out infinite alternate}
.gs-cruise-traveler[data-stage="2"] .gs-cruise-traveler-character{animation:gs-traveler-explore .8s ease-in-out infinite alternate}
.gs-cruise-traveler[data-stage="3"] .gs-cruise-traveler-character{animation:gs-traveler-wonder .72s ease-in-out infinite alternate}
.gs-cruise-traveler[data-stage="4"] .gs-cruise-traveler-character{animation:gs-traveler-depart .58s ease-in both}
.gs-cruise-traveler.is-sea-story .gs-cruise-traveler-bubble{background:#f4fbff}
.gs-cruise-route-map.is-paused .gs-cruise-traveler *{animation-play-state:paused!important}
@keyframes gs-traveler-arrive{0%{opacity:0;transform:translateY(34px) scale(.7) rotate(-7deg)}70%{opacity:1;transform:translateY(-6px) scale(1.04) rotate(2deg)}100%{opacity:1;transform:none}}
@keyframes gs-traveler-look{from{transform:rotate(-4deg) translateX(-2px)}to{transform:rotate(4deg) translateX(2px)}}
@keyframes gs-traveler-explore{from{transform:translateX(-5px) rotate(-2deg)}to{transform:translateX(5px) rotate(2deg)}}
@keyframes gs-traveler-wonder{from{transform:translateY(0) scale(1)}to{transform:translateY(-7px) scale(1.055)}}
@keyframes gs-traveler-depart{0%{opacity:1;transform:none}35%{transform:translateY(-7px) rotate(5deg)}100%{opacity:0;transform:translate(28px,16px) scale(.72) rotate(9deg)}}
@keyframes gs-traveler-photo{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
.gs-cruise-globe-sea-marker{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  padding:0;
  border:0;
  border-radius:50%;
  background:transparent;
  cursor:pointer;
}
.gs-cruise-globe-sea-marker span{
  width:11px;
  height:11px;
  border:2px solid #0d749d;
  border-radius:50%;
  background:#fff;
  box-shadow:0 0 0 5px rgba(255,255,255,.32),0 0 12px rgba(5,83,119,.58);
  transition:transform .18s ease,box-shadow .18s ease;
}
.gs-cruise-globe-sea-marker:hover span,.gs-cruise-globe-sea-marker:focus-visible span,.gs-cruise-globe-sea-marker[aria-expanded="true"] span{transform:scale(1.34);box-shadow:0 0 0 7px rgba(255,209,82,.34),0 0 18px rgba(255,255,255,.95)}
.gs-cruise-globe-sea-marker:focus-visible{outline:3px solid rgba(255,210,82,.72);outline-offset:0}
.gs-cruise-globe-canvas .maplibregl-popup{z-index:7}
.gs-cruise-globe-canvas .maplibregl-popup-content{border:1px solid rgba(172,190,199,.92);border-radius:14px;background:rgba(255,255,255,.98);color:#294b5d;box-shadow:0 14px 34px rgba(3,35,54,.28);font-family:inherit;backdrop-filter:blur(9px)}
.gs-cruise-globe-canvas .maplibregl-popup-close-button{width:34px;height:34px;color:#0c4767;font-size:20px;border-radius:50%}
.gs-cruise-globe-sea-popup .maplibregl-popup-content{padding:14px 16px}
.gs-cruise-globe-sea-content{display:grid;gap:5px;padding-right:16px;font-size:.78rem;line-height:1.42}
.gs-cruise-globe-sea-content small{color:#a87316;font-size:.61rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.gs-cruise-globe-sea-content strong{color:#0b3b57;font-size:.94rem;line-height:1.18}
.gs-cruise-globe-sea-content p{margin:0}
.gs-cruise-globe-sea-schedule{margin-top:5px!important;padding-top:8px;border-top:1px solid #e1e9ed;color:#607686;font-size:.72rem}
.gs-cruise-globe-active-popup{pointer-events:none}
.gs-cruise-globe-active-popup .maplibregl-popup-content{padding:7px 11px;border-color:rgba(210,163,59,.62);color:#0a3753;font-size:.72rem;font-weight:900;line-height:1.1;box-shadow:0 7px 21px rgba(3,35,54,.24),0 0 0 4px rgba(255,210,82,.18)}
.gs-cruise-globe-active-popup .maplibregl-popup-tip{border-top-color:rgba(255,255,255,.98)!important}
@keyframes gs-cruise-globe-loading{to{transform:rotate(360deg)}}
@keyframes gs-cruise-zone-glow{0%{opacity:.34;transform:scale(.65)}55%{opacity:1;transform:scale(1.65)}100%{opacity:.48;transform:scale(1)}}
@keyframes gs-cruise-spark{0%{opacity:0;transform:scale(.4);transform-origin:center}45%{opacity:1;transform:scale(1.25);transform-origin:center}100%{opacity:.52;transform:scale(1);transform-origin:center}}
@keyframes gs-cruise-name-arrive{0%{opacity:0;filter:blur(3px)}100%{opacity:1;filter:blur(0)}}

@media(max-width:760px){
  .gs-cruise-commercial .sdv-offer-hero-media::after{right:12px;bottom:12px;font-size:.64rem}
  .gs-cruise-route-map{margin-top:26px!important;margin-bottom:28px!important;padding:15px 11px 13px!important;border-radius:20px}
  .gs-cruise-route-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;margin-bottom:13px}
  .gs-cruise-route-head p{font-size:.82rem}
  .gs-cruise-route-control{min-height:36px;padding:7px 12px;align-self:center}
  .gs-cruise-route-canvas{height:clamp(250px,70vw,292px);border-radius:15px}
  .gs-cruise-globe-head{grid-template-columns:minmax(0,1fr);align-items:start}
  .gs-cruise-globe-actions{justify-content:flex-start;flex-wrap:wrap}
  .gs-cruise-globe-focus,.gs-cruise-globe .gs-cruise-route-control{min-height:42px;padding:8px 13px}
  .gs-cruise-globe-canvas{height:clamp(340px,96vw,430px)}
  .gs-cruise-globe-hint{left:9px;bottom:9px;font-size:.61rem}
  .gs-cruise-globe-canvas .maplibregl-ctrl-top-right{top:8px;right:8px}
  .gs-cruise-globe-canvas .maplibregl-ctrl-group button{width:44px;height:44px}
  .gs-cruise-globe-ship-marker,.gs-cruise-globe-ship-marker .gs-cruise-route-ship{width:68px;height:52px}
  .gs-cruise-traveler{width:76px;height:74px}
  .gs-cruise-traveler-character{width:70px;height:70px;left:3px}
  .gs-cruise-traveler-bubble{bottom:64px;width:min(224px,72vw);padding:10px;border-radius:18px}
  .gs-cruise-traveler-photo img{height:88px}
  .gs-cruise-traveler-copy strong{font-size:.82rem}
  .gs-cruise-traveler-copy>span{font-size:.72rem}
  .gs-cruise-route-current{max-width:min(190px,68%);font-size:.64rem}
  .gs-cruise-sea-popover{width:min(250px,78%);padding:10px 12px;font-size:.7rem}
  .gs-cruise-route-ship{width:64px}
  .gs-cruise-itinerary-list{margin-top:18px!important}
  .gs-cruise-itinerary-day{grid-template-columns:42px minmax(0,1fr);gap:10px;padding-bottom:16px!important}
  .gs-cruise-itinerary-day:not(:last-child)::before{left:20px;top:41px}
  .gs-cruise-itinerary-day-marker{width:40px;height:40px;border-width:2px}
  .gs-cruise-itinerary-day-marker strong{font-size:.9rem}
  .gs-cruise-itinerary-day-head{min-height:27px;margin-bottom:6px;gap:7px;flex-wrap:wrap}
  .gs-cruise-itinerary-day-head time{padding-left:7px;font-size:.72rem}
  .gs-cruise-itinerary-event{padding:13px 12px;border-radius:14px}
  .gs-cruise-itinerary-event-head{display:grid;gap:9px}
  .gs-cruise-itinerary-event h3{font-size:1rem!important}
  .gs-cruise-itinerary-times{justify-content:flex-start}
  .gs-cruise-itinerary-time{min-width:64px;padding:5px 8px}
  .gs-cruise-itinerary-event-description{font-size:.82rem}
  .gs-cruise-itinerary-sea-trigger{display:flex;width:100%;min-height:44px;padding:7px 10px}
  .gs-cruise-itinerary-sea-hint{margin-left:auto}
  .gs-cruise-itinerary-sea-info{width:100%;margin:9px 0 12px;padding:14px;font-size:.84rem}
  .gs-cruise-itinerary-sea-facts{display:grid}
  .gs-offer-date-grid{grid-template-columns:1fr}
}
@media(max-width:420px){
  .gs-cruise-flight-included{padding:18px 17px 18px 61px!important;border-radius:16px}
  .gs-cruise-flight-included::before{left:14px;top:18px;width:34px;height:34px}
  .gs-cruise-route-head{grid-template-columns:1fr;gap:9px}
  .gs-cruise-route-control{justify-self:start;min-height:34px}
  .gs-cruise-route-head h2{font-size:1.34rem}
  .gs-cruise-route-head p{font-size:.78rem}
  .gs-cruise-route-current{max-width:170px;font-size:.61rem}
  .gs-cruise-sea-popover{width:min(225px,76%)}
  .gs-cruise-globe-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .gs-cruise-globe-focus,.gs-cruise-globe .gs-cruise-route-control{width:100%;justify-self:stretch;text-align:center}
  .gs-cruise-globe-canvas{height:350px}
  .gs-cruise-globe-hint{max-width:160px;line-height:1.18}
}
@media(prefers-reduced-motion:reduce){
  .gs-cruise-route-control{display:none}
  .gs-cruise-route-progress,.gs-cruise-route-node,.gs-cruise-route-halo,.gs-cruise-route-spark,.gs-cruise-route-current{animation:none!important}
  .gs-cruise-route-progress{stroke-dashoffset:0}
  .gs-cruise-route-spark{opacity:0}
  .gs-cruise-sea-hotspot,.gs-cruise-itinerary-list li,.gs-cruise-itinerary-sea-trigger,.gs-offer-date-option,.gs-offer-range-option,.gs-offer-flex-option{scroll-behavior:auto;transition:none}
  .gs-cruise-globe-loading::before{animation:none}
  .gs-cruise-traveler{display:none!important}
}
