/* =========================================================
   Cheap Cruise Deals — shared styles (header, footer, content pages)
   Palette synced with the cruise page: ink #16323A · teal #0F8A8C · coral #F0714F · sand #FBF8F3 · footer #EAF5F3
   ========================================================= */
:root{
  /* Synced with the cruise page theme */
  --sh-ink:#16323A;      /* primary text / logo */
  --sh-ink-2:#4B636B;    /* body text */
  --sh-muted:#8A9CA1;
  --sh-bg:#FBF8F3;       /* warm sand page */
  --sh-sand-2:#F3EEE5;
  --sh-line:#E6DED1;
  --sh-teal:#0F8A8C;     /* primary */
  --sh-teal-600:#0B7274;
  --sh-teal-50:#E4F4F2;
  --sh-coral:#F0714F;    /* calls to action */
  --sh-coral-600:#DB5C3A;
  --sh-footer:#EAF5F3;   /* light footer */
  --sh-footer-line:#CFE6E2;
  --sh-font:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  /* legacy names used below */
  --sh-navy:var(--sh-ink);
  --sh-blue:var(--sh-teal);
  --sh-blue-2:var(--sh-coral);
  --sh-soft:var(--sh-teal-50);
}
.sh-wrap{width:100%;max-width:1140px;margin:0 auto;padding:0 16px}
@media(min-width:768px){.sh-wrap{padding:0 24px}}

/* ---------------- Header ---------------- */
.sh-header{position:sticky;top:0;z-index:50;background:#fff;box-shadow:0 1px 0 var(--sh-line);font-family:var(--sh-font);transition:box-shadow .3s}
.sh-header.is-scrolled{box-shadow:0 1px 0 var(--sh-line),0 10px 28px rgba(22,50,58,.10)}
.sh-header .sh-wrap{display:flex;align-items:center;height:76px;gap:14px}

/* scroll progress */
.sh-progress{position:absolute;left:0;right:0;bottom:-1px;height:3px;overflow:hidden;pointer-events:none}
.sh-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--sh-teal),#35B3A8,var(--sh-coral));transform-origin:0 50%;transform:scaleX(0)}

/* logo */
.sh-logo{display:inline-flex;align-items:center;gap:6px;color:var(--sh-navy);line-height:1;flex:none;text-decoration:none;transition:transform .3s}
.sh-header.is-scrolled .sh-logo{transform:scale(.94);transform-origin:left center}
.sh-plane-wrap{position:relative;display:inline-block}
.sh-plane{width:52px;height:40px;fill:var(--sh-teal);transform:rotate(-8deg);transition:transform .45s cubic-bezier(.3,1.4,.5,1);animation:sh-takeoff .9s cubic-bezier(.2,.8,.2,1) both}
.sh-plane-wrap::before{content:"";position:absolute;right:62%;top:62%;width:34px;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,rgba(240,113,79,.7));transform:rotate(-24deg);transform-origin:right center;opacity:0;animation:sh-trail .9s ease-out .15s both}
.sh-logo:hover .sh-plane{transform:translate(5px,-4px) rotate(-16deg)}
.sh-logo:hover .sh-plane-wrap::before{animation:sh-trail .7s ease-out both}
@keyframes sh-takeoff{from{opacity:0;transform:translate(-22px,14px) rotate(-8deg) scale(.8)}to{opacity:1;transform:rotate(-8deg)}}
@keyframes sh-trail{0%{opacity:0;width:0}40%{opacity:1}100%{opacity:0;width:40px}}
.sh-word{display:flex;flex-direction:column;gap:4px}
.sh-name{font-family:var(--sh-font);font-weight:800;font-style:italic;font-size:26px;letter-spacing:-.02em;color:var(--sh-navy)}
.sh-name em{color:var(--sh-blue-2)}
.sh-tag{font-weight:700;font-size:10.5px;letter-spacing:.2em;color:var(--sh-ink-2)}
.sh-logo-light{color:var(--sh-ink)}
.sh-logo-sm .sh-plane{width:40px;height:30px}.sh-logo-sm .sh-name{font-size:20px}.sh-logo-sm .sh-tag{font-size:8.5px}

/* nav */
.sh-nav{display:none;margin-left:auto;gap:26px}
.sh-nav a{position:relative;font-size:16px;font-weight:500;color:var(--sh-ink);white-space:nowrap;text-decoration:none;padding:6px 0;transition:color .2s}
.sh-nav a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;border-radius:2px;background:var(--sh-blue);transform:scaleX(0);transition:transform .3s cubic-bezier(.2,.8,.2,1)}
.sh-nav a:hover{color:var(--sh-blue)}
.sh-nav a:hover::after,.sh-nav a[aria-current="page"]::after{transform:scaleX(1)}
.sh-nav a[aria-current="page"]{color:var(--sh-blue)}

/* language */
.sh-lang{position:relative;display:block;margin-left:auto}
.sh-lang-btn{display:flex;align-items:center;gap:6px;background:var(--sh-sand-2);border:0;border-radius:999px;padding-left:10px!important;padding-right:10px!important;padding:6px 8px;cursor:pointer;font-family:var(--sh-font);font-size:17px;color:var(--sh-blue);transition:background .2s,box-shadow .2s}
.sh-lang-btn:hover{background:var(--sh-teal-50);box-shadow:0 0 0 3px rgba(15,138,140,.10)}
.sh-flag{width:28px;height:19px;border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.08);flex:none}
.sh-flag-slot{display:inline-flex;flex:none}.sh-lang-btn{flex:none;white-space:nowrap}
.sh-caret{width:10px;height:6px;fill:var(--sh-blue);transition:transform .25s}
.sh-lang-btn[aria-expanded="true"] .sh-caret{transform:rotate(180deg)}
.sh-lang-menu{position:absolute;right:0;top:calc(100% + 8px);list-style:none;margin:0;background:#fff;border:1px solid var(--sh-line);border-radius:14px;box-shadow:0 14px 30px rgba(22,50,58,.14);padding:6px;min-width:170px;z-index:5;opacity:0;visibility:hidden;transform:translateY(-6px) scale(.98);transform-origin:top right;transition:opacity .2s,transform .2s,visibility .2s}
.sh-lang-menu.open{opacity:1;visibility:visible;transform:none}
.sh-lang-menu button{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:0;background:none;border-radius:7px;font:15px var(--sh-font);color:var(--sh-ink);cursor:pointer;text-align:left}
.sh-lang-menu button:hover,.sh-lang-menu button[aria-selected="true"]{background:var(--sh-soft);color:var(--sh-blue)}

/* quote block */
.sh-quote{display:none;align-items:center;gap:10px;flex:none;text-decoration:none;border-radius:40px;padding:4px 10px 4px 4px;transition:background .25s,transform .25s}
.sh-quote:hover{background:var(--sh-soft);transform:translateY(-1px)}
.sh-avatar{position:relative;width:44px;height:44px;flex:none}
.sh-avatar::before{content:"";position:absolute;inset:-3px;border-radius:50%;border:2px solid rgba(15,138,140,.55);animation:sh-ring 2.4s ease-out infinite}
.sh-agent{width:44px;height:44px;border-radius:50%;display:block}
.sh-online{position:absolute;right:0;bottom:1px;width:11px;height:11px;border-radius:50%;background:#22C55E;border:2px solid #fff}
@keyframes sh-ring{0%{transform:scale(.95);opacity:.9}80%,100%{transform:scale(1.35);opacity:0}}
.sh-rot{display:block;height:14px;overflow:hidden}
.sh-rotator{display:block;font-size:11px;letter-spacing:.02em;color:var(--sh-ink-2);font-weight:600;white-space:nowrap;transition:transform .3s ease,opacity .3s ease}
.sh-rotator.out{transform:translateY(-100%);opacity:0}
.sh-rotator.in{transform:translateY(100%);opacity:0;transition:none}
.sh-num{display:block;font-size:21px;font-weight:800;letter-spacing:-.01em;white-space:nowrap;line-height:1.15;color:var(--sh-coral);background:linear-gradient(100deg,var(--sh-coral) 0 42%,#FFC2AE 50%,var(--sh-coral) 58% 100%);background-size:260% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:sh-shine 4.5s ease-in-out 1.2s infinite}
@keyframes sh-shine{0%,55%{background-position:100% 0}85%,100%{background-position:0 0}}

/* mobile controls */
.sh-mcall{position:relative;flex:none;width:42px;height:42px;border-radius:50%;background:var(--sh-coral);color:#fff;display:grid;place-items:center}
.sh-mcall::after{content:"";position:absolute;inset:0;border-radius:50%;box-shadow:0 0 0 0 rgba(240,113,79,.5);animation:sh-pulse 2.2s infinite}
.sh-mcall svg{animation:sh-wiggle 2.2s ease-in-out infinite}
@keyframes sh-pulse{0%{box-shadow:0 0 0 0 rgba(240,113,79,.5)}70%,100%{box-shadow:0 0 0 12px rgba(240,113,79,0)}}
@keyframes sh-wiggle{0%,60%,100%{transform:rotate(0)}65%,75%{transform:rotate(-14deg)}70%,80%{transform:rotate(14deg)}}
.sh-burger{flex:none;width:42px;height:42px;border-radius:12px;border:0;background:var(--sh-teal);cursor:pointer;display:grid;place-items:center;padding:0}
.sh-burger span{display:block;width:20px;height:2.4px;border-radius:2px;background:#fff;transition:transform .3s,opacity .2s}
.sh-burger .b{position:relative;display:grid;gap:4.5px}
.sh-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.9px) rotate(45deg)}
.sh-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.sh-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.9px) rotate(-45deg)}
@media(max-width:1099px){.sh-header .sh-wrap{gap:10px}.sh-lang-btn{font-size:15px;padding:5px 6px}.sh-flag{width:24px;height:16px}}
@media(max-width:440px){.sh-name{font-size:19px}.sh-tag{font-size:7.6px;letter-spacing:.16em}.sh-plane{width:38px;height:30px}.sh-header .sh-wrap{gap:8px}}
@media(max-width:420px){.sh-mcall{display:none}}
@media(min-width:1100px){
  .sh-nav,.sh-quote{display:flex}
  .sh-lang{display:block;margin-left:10px}
  .sh-quote{margin-left:8px}
  .sh-mcall,.sh-burger{display:none}
}
@media(min-width:1100px){.sh-nav{padding-left:20px}.sh-quote{gap:12px}}
@media(min-width:1100px) and (max-width:1299px){.sh-nav{gap:18px}.sh-nav a{font-size:15px}.sh-num{font-size:20px}}

/* drawer */
.sh-drawer{position:fixed;inset:0;z-index:80;pointer-events:none;font-family:var(--sh-font)}
.sh-scrim{position:absolute;inset:0;background:rgba(22,50,58,.4);opacity:0;transition:opacity .3s}
.sh-panel{position:absolute;right:0;top:0;bottom:0;width:min(330px,88vw);background:#fff;transform:translateX(100%);transition:transform .35s cubic-bezier(.2,.8,.2,1);padding:20px;display:flex;flex-direction:column;gap:4px;overflow:auto}
.sh-drawer.open{pointer-events:auto}
.sh-drawer.open .sh-scrim{opacity:1}
.sh-drawer.open .sh-panel{transform:none}
.sh-panel > a,.sh-panel > .sh-dl{padding:13px 14px;border-radius:10px;font-weight:500;font-size:16.5px;color:var(--sh-ink);text-decoration:none;opacity:0;transform:translateX(18px);transition:opacity .3s,transform .3s,background .2s,color .2s}
.sh-drawer.open .sh-panel > a,.sh-drawer.open .sh-panel > .sh-dl{opacity:1;transform:none}
.sh-drawer.open .sh-panel > :nth-child(2){transition-delay:.06s}.sh-drawer.open .sh-panel > :nth-child(3){transition-delay:.1s}
.sh-drawer.open .sh-panel > :nth-child(4){transition-delay:.14s}.sh-drawer.open .sh-panel > :nth-child(5){transition-delay:.18s}
.sh-drawer.open .sh-panel > :nth-child(6){transition-delay:.22s}.sh-drawer.open .sh-panel > :nth-child(7){transition-delay:.26s}
.sh-panel > a:hover,.sh-panel > a[aria-current="page"]{background:var(--sh-teal-50);color:var(--sh-teal)}
.sh-dhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.sh-close{width:40px;height:40px;border-radius:10px;border:1px solid var(--sh-line);background:#fff;cursor:pointer;display:grid;place-items:center;color:var(--sh-ink);transition:transform .3s}
.sh-close:hover{transform:rotate(90deg)}
.sh-dl{display:flex;align-items:center;gap:10px}
.sh-dcall{margin-top:14px;background:var(--sh-soft)}
.sh-dcall small{display:block;font-size:11px;color:var(--sh-ink-2);letter-spacing:.02em}
.sh-dcall strong{font-size:21px;color:var(--sh-coral)}

/* ---------------- Footer ---------------- */
.sh-footer{background:var(--sh-footer);color:var(--sh-ink);border-top:1px solid var(--sh-footer-line);font-family:var(--sh-font)}
.sh-footer a{color:var(--sh-ink);text-decoration:none}
.sh-fgrid{display:grid;gap:36px;padding-top:52px;padding-bottom:40px}
@media(min-width:768px){.sh-fgrid{grid-template-columns:1fr 1fr}}
@media(min-width:992px){.sh-fgrid{grid-template-columns:1.4fr 1fr 1fr}}
.sh-footer h4{font-size:17px;font-weight:800;color:var(--sh-ink);margin:6px 0 26px}
.sh-links{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.sh-links a{font-size:15px;color:var(--sh-ink-2)!important;transition:color .2s,padding .2s}
.sh-links a:hover{color:var(--sh-teal)!important;padding-left:4px}
.sh-contact{list-style:none;margin:30px 0 0;padding:0;display:grid;gap:22px}
.sh-contact li{display:flex;gap:12px;align-items:flex-start;font-size:16px}
.sh-contact .fi{width:17px;height:17px;color:var(--sh-coral);flex:none;margin-top:2px}
.sh-contact b{font-weight:700;display:block}
.sh-contact span{display:block;margin-top:4px;margin-left:-8px;color:var(--sh-ink-2)}
.sh-contact a:hover{color:var(--sh-teal)}
.sh-cards{display:flex;flex-wrap:wrap;gap:4px;margin-top:28px}
.cc{width:47px;height:30px;border-radius:5px;box-shadow:0 1px 3px rgba(22,50,58,.12);display:grid;place-items:center;font:900 italic 11px/1 var(--sh-font);box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.cc-visa{background:linear-gradient(#fff 60%,#F2F2F2);color:#1A1F71;font-size:14px}
.cc-mc{background:#5A6E9E;display:flex;justify-content:center;align-items:center}
.cc-mc i{width:15px;height:15px;border-radius:50%;background:#EB001B;display:block}
.cc-mc i+i{background:#F79E1B;margin-left:-6px;mix-blend-mode:screen}
.cc-disc{background:linear-gradient(90deg,#fff 55%,#F58220);color:var(--sh-ink);font-size:6.5px;font-style:normal}
.cc-amex{background:#2E77BC;color:#fff;font-size:9px}
.cc-jcb{color:#fff;font-size:10px;background:linear-gradient(90deg,#0E4C96 33%,#E21836 33% 66%,#009F3C 66%)}
.sh-fbottom{border-top:1px solid var(--sh-footer-line);padding-top:40px;padding-bottom:36px;text-align:center}
.sh-disclaimer{font-family:var(--sh-font);font-size:13.5px;line-height:1.8;color:var(--sh-ink-2);max-width:990px;margin:0 auto}
.sh-disclaimer a{color:var(--sh-teal)!important;font-weight:600}
.sh-disclaimer a:hover{text-decoration:underline}
.sh-copy{margin:26px 0 0;font-size:13px;font-weight:600;color:var(--sh-muted)}

/* ---------------- Content pages (About / Privacy) ---------------- */
.sh-page{overflow-x:hidden;background:var(--sh-bg);color:var(--sh-ink-2);-webkit-font-smoothing:antialiased;font-family:var(--sh-font)}
.pg{max-width:998px;margin:0 auto;padding:26px 24px 70px}
.pg h1{font-size:clamp(28px,4vw,38px);font-weight:800;letter-spacing:-.02em;color:var(--sh-ink);margin:0}
.crumb{display:flex;align-items:center;gap:10px;margin:12px 0 20px;font-size:15px;color:var(--sh-ink-2)}
.crumb a{color:var(--sh-teal);font-weight:600;text-decoration:none}
.crumb a:hover{color:var(--sh-teal-600);text-decoration:underline}
.crumb svg{width:10px;height:10px;color:var(--sh-coral)}
.pg-rule{border:0;border-top:1px solid var(--sh-line);margin:0 0 18px}
.prose{font-size:16px;line-height:1.9}
.prose p{margin:0 0 16px}
.prose h2{font-size:26px;font-weight:800;letter-spacing:-.01em;color:var(--sh-ink);margin:44px 0 18px;line-height:1.3;scroll-margin-top:90px}
.prose ul{margin:14px 0 18px;padding-left:45px}
.prose li{margin:0}
.prose .lead{font-weight:700;color:var(--sh-ink);margin-bottom:4px}
.prose strong{color:var(--sh-ink)}
.prose li::marker{color:var(--sh-teal)}
.prose .lead + ul{margin-top:10px}
.prose a{color:var(--sh-teal);font-weight:600}
.prose a:hover{color:var(--sh-teal-600)}
@media(max-width:600px){.pg{padding:22px 20px 56px}.prose h2{font-size:24px}.prose ul{padding-left:28px}}

/* ---------------- Contact page ---------------- */
.map{margin-top:10px;border-radius:16px;border:1px solid var(--sh-line);overflow:hidden;background:#E8EEF3;width:100%;height:300px}
@media(min-width:700px){.map{height:auto;aspect-ratio:950/455}}
.map iframe{display:block;width:100%;height:100%;border:0}
.ct-grid{display:grid;gap:28px;margin-top:46px}
@media(min-width:900px){.ct-grid{grid-template-columns:.8fr 1.14fr;gap:24px;align-items:start}}
.ct-card{background:#fff;border-radius:18px;padding:8px;box-shadow:0 0 0 1px var(--sh-line),0 4px 14px rgba(22,50,58,.07)}
.ct-inner{background:var(--sh-teal-50);border-radius:12px;padding:22px 24px 30px;height:100%}
@media(min-width:900px){.ct-card.info .ct-inner{min-height:434px}}
.ct-card h2{font-size:24px;font-weight:800;color:var(--sh-ink);margin:0 0 22px}
.ct-card h3{font-size:19px;font-weight:700;color:var(--sh-ink);margin:22px 4px 14px}
.ct-card .blk{margin:0 4px 20px;font-size:15.5px;line-height:1.75}
.ct-card .blk b{display:block;font-weight:700;color:var(--sh-ink)}
.ct-card .blk{color:var(--sh-ink-2)}
.ct-mail{display:inline-block;margin:0 4px;font-size:19px;font-weight:700;color:var(--sh-ink);text-decoration:none}
.ct-mail:hover{color:var(--sh-teal)}
.ct-form{display:grid;gap:14px}
.ct-row{display:grid;gap:14px}
@media(min-width:600px){.ct-row{grid-template-columns:1fr 1fr;gap:24px}}
.fs{margin:0;background:#fff;border:1px solid #BFD9D6;border-radius:12px;padding:4px 10px 10px;min-width:0;transition:border-color .2s,box-shadow .2s}
.fs legend{padding:0 7px;font-size:14.5px;font-weight:700;color:var(--sh-ink)}
.fs:focus-within{border-color:var(--sh-blue);box-shadow:0 0 0 3px rgba(15,138,140,.12)}
.fs:focus-within legend{color:var(--sh-blue)}
.fs input,.fs textarea{width:100%;border:0;background:#fff;border-radius:8px;padding:8px 12px;font:16px var(--sh-font);color:var(--sh-ink);outline:none}
.fs textarea{min-height:60px;resize:vertical}
.fs.bad{border-color:var(--sh-coral-600)}
.fs.bad legend{color:var(--sh-coral-600)}
.ct-agree{display:flex;gap:6px;align-items:flex-start;font-size:15.5px;line-height:1.75;color:var(--sh-ink)}
.ct-agree input{margin-top:6px}
.ct-agree a{color:var(--sh-blue);text-decoration:none}
.ct-agree.bad{color:var(--sh-coral-600)}
.ct-send{justify-self:center;background:var(--sh-coral);color:#fff;border:0;border-radius:999px;padding:14px 46px;font:800 16px var(--sh-font);letter-spacing:.04em;box-shadow:0 6px 18px rgba(240,113,79,.35);cursor:pointer;transition:background .2s,transform .15s,box-shadow .2s}
.ct-send:hover{background:var(--sh-coral-600)}
.ct-send:active{transform:translateY(1px)}
.ct-msg{text-align:center;font-size:14.5px;min-height:1em;margin:0;color:var(--sh-blue)}
.ct-msg.err{color:var(--sh-coral-600)}

@media (prefers-reduced-motion:reduce){
  .sh-header *,.sh-header *::before,.sh-header *::after,.sh-drawer *{animation:none!important;transition:none!important}
}

/* ---------------- Living content pages ---------------- */
html{scroll-behavior:smooth}
.pg.has-toc{max-width:1188px}
.doc{display:block}
@media(min-width:1100px){.doc{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:56px;align-items:start}}
.toc{display:none}
@media(min-width:1100px){.toc{display:block;position:sticky;top:92px;max-height:calc(100vh - 110px);overflow:auto;background:#fff;border:1px solid var(--sh-line);border-radius:18px;padding:18px 16px 16px;box-shadow:0 8px 24px rgba(22,50,58,.06)}}
.toc-title{margin:0 0 10px;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--sh-muted)}
.toc ol,.toc-m ol{list-style:none;margin:0;padding:0;display:grid;gap:2px;counter-reset:t}
.toc a,.toc-m a{display:block;position:relative;padding:7px 10px 7px 14px;border-radius:10px;font-size:13.5px;line-height:1.4;color:var(--sh-ink-2);text-decoration:none;transition:background .2s,color .2s}
.toc a::before,.toc-m a::before{content:"";position:absolute;left:4px;top:9px;bottom:9px;width:3px;border-radius:3px;background:var(--sh-teal);transform:scaleY(0);transition:transform .25s}
.toc a:hover,.toc-m a:hover{background:var(--sh-bg);color:var(--sh-ink)}
.toc a.on,.toc-m a.on{background:var(--sh-teal-50);color:var(--sh-teal);font-weight:700}
.toc a.on::before,.toc-m a.on::before{transform:scaleY(1)}
.toc-help{margin-top:14px;padding:12px;border-radius:12px;background:var(--sh-bg);font-size:13px;display:grid;gap:2px}
.toc-help span{color:var(--sh-ink-2)}
.toc-help a{color:var(--sh-coral);font-weight:700;text-decoration:none}
.toc-help a:hover{text-decoration:underline}
.toc-m{margin:0 0 22px;background:#fff;border:1px solid var(--sh-line);border-radius:14px;overflow:hidden}
@media(min-width:1100px){.toc-m{display:none}}
.toc-m summary{list-style:none;cursor:pointer;padding:13px 16px;font-weight:700;color:var(--sh-ink);display:flex;justify-content:space-between;align-items:center}
.toc-m summary::-webkit-details-marker{display:none}
.toc-m summary span{font-size:12.5px;font-weight:600;color:var(--sh-teal);background:var(--sh-teal-50);padding:3px 10px;border-radius:999px}
.toc-m[open] summary{border-bottom:1px solid var(--sh-line)}
.toc-m ol{padding:8px}
.pg-meta{display:flex;flex-wrap:wrap;gap:8px;margin:-4px 0 18px}
.chip{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;padding:5px 12px;border-radius:999px;background:var(--sh-coral);color:#fff}
.chip i{width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:0 0 0 0 rgba(255,255,255,.7);animation:sh-dot 2s infinite}
@keyframes sh-dot{0%{box-shadow:0 0 0 0 rgba(255,255,255,.7)}70%,100%{box-shadow:0 0 0 7px rgba(255,255,255,0)}}
.chip-soft{background:#fff;color:var(--sh-ink-2);border:1px solid var(--sh-line)}
.prose h2{position:relative}
.h-anchor{margin-left:10px;font-size:.75em;color:var(--sh-teal);text-decoration:none;opacity:0;transition:opacity .2s}
.prose h2:hover .h-anchor,.h-anchor:focus{opacity:1}
.prose h2:target{animation:sh-flash 1.6s ease}
@keyframes sh-flash{0%,30%{color:var(--sh-teal)}100%{color:var(--sh-ink)}}
.rv{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease}
.rv.in{opacity:1;transform:none}
@media print{.rv{opacity:1!important;transform:none!important}.toc,.toc-m,.to-top,.sh-header,.sh-footer{display:none!important}}
.to-top{position:fixed;right:18px;bottom:18px;z-index:40;width:50px;height:50px;border:0;border-radius:50%;background:#fff;color:var(--sh-teal);cursor:pointer;box-shadow:0 10px 26px rgba(22,50,58,.16);display:grid;place-items:center;opacity:0;transform:translateY(12px) scale(.9);pointer-events:none;transition:opacity .3s,transform .3s,background .2s,color .2s}
.to-top.show{opacity:1;transform:none;pointer-events:auto}
.to-top:hover{background:var(--sh-teal);color:#fff}
.to-top svg{width:44px;height:44px}
.to-top .trk{fill:none;stroke:var(--sh-teal-50);stroke-width:3}
.to-top .prg{fill:none;stroke:var(--sh-coral);stroke-width:3;stroke-linecap:round;transform:rotate(-90deg);transform-origin:center;transition:stroke-dashoffset .1s linear}
.sh-toast{position:fixed;left:50%;bottom:26px;z-index:90;transform:translate(-50%,20px);background:var(--sh-ink);color:#fff;font:600 14px var(--sh-font);padding:10px 18px;border-radius:999px;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}
.sh-toast.show{opacity:1;transform:translate(-50%,0)}
.sh-links a[aria-current="page"]{color:var(--sh-teal)!important;font-weight:700}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.rv{opacity:1;transform:none}.chip i{animation:none}}

/* ---------------- Cheap Cruise Deals logo ---------------- */
.sh-logo-img{display:block;height:38px;width:auto;max-width:none;animation:ccd-logo-in .8s cubic-bezier(.2,.8,.2,1) both;transition:transform .35s cubic-bezier(.3,1.4,.5,1),filter .35s}
.sh-logo:hover .sh-logo-img{transform:translateY(-2px) scale(1.02);filter:drop-shadow(0 6px 10px rgba(240,113,79,.18))}
@keyframes ccd-logo-in{from{opacity:0;transform:translateX(-14px)}to{opacity:1;transform:none}}
.sh-logo-sm .sh-logo-img{height:30px}
.sh-footer .sh-logo-img{height:40px;animation:none}
@media(max-width:1099px){.sh-header .sh-logo-img{height:32px}}
@media(max-width:440px){.sh-header .sh-logo-img{height:26px}}
@media(max-width:360px){.sh-header .sh-logo-img{height:22px}}
@media (prefers-reduced-motion:reduce){.sh-logo-img{animation:none}}


/* ---------------- Form states ---------------- */
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.ct-send.busy,.nl-row .btn.busy{position:relative;pointer-events:none;opacity:.85}
.ct-send.busy::after,.nl-row .btn.busy::after{content:"";width:16px;height:16px;margin-left:10px;border-radius:50%;border:2.5px solid rgba(255,255,255,.45);border-top-color:#fff;display:inline-block;vertical-align:-3px;animation:ccd-spin .7s linear infinite}
@keyframes ccd-spin{to{transform:rotate(360deg)}}
.ct-form.sent{display:none}
.ct-done{text-align:center;padding:18px 8px 6px;animation:ccd-pop .5s cubic-bezier(.2,.9,.3,1.2) both}
.ct-done h3{font-size:22px;font-weight:800;color:var(--sh-ink);margin:14px 0 6px}
.ct-done p{color:var(--sh-ink-2);line-height:1.7;margin:0 auto 18px;max-width:380px}
.ct-check svg{width:72px;height:72px;display:block;margin:0 auto}
.ct-check circle{fill:#fff;stroke:var(--sh-teal);stroke-width:3;stroke-dasharray:151;stroke-dashoffset:151;animation:ccd-draw .6s ease forwards}
.ct-check path{fill:none;stroke:var(--sh-coral);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:36;stroke-dashoffset:36;animation:ccd-draw .4s .45s ease forwards}
@keyframes ccd-draw{to{stroke-dashoffset:0}}
@keyframes ccd-pop{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
.ct-again{background:none;border:1.5px solid var(--sh-teal);color:var(--sh-teal);border-radius:999px;padding:10px 22px;font:700 14px var(--sh-font);cursor:pointer;transition:background .2s,color .2s}
.ct-again:hover{background:var(--sh-teal);color:#fff}

/* ---------------- Agent photo + mobile sticky call popup ---------------- */
.sh-agent{object-fit:cover;object-position:center top;background:#fff}
/* bottom popup on the cruise page: agent photo instead of the icon */
.callbar .agent{overflow:hidden;padding:0}
.callbar .agent img{width:100%;height:100%;display:block;object-fit:cover;object-position:center top;border-radius:50%}

/* top bar (phones + tablets): full-width "Phone-Only Booking Support" strip */
.sh-topbar{display:none!important}
@media(max-width:1099px){
  .sh-topbar{display:flex!important;align-items:center;justify-content:center;gap:12px;padding:8px 16px;
    background:linear-gradient(90deg,var(--sh-teal-600),var(--sh-teal) 50%,var(--sh-teal-600));color:#fff;text-decoration:none;
    box-shadow:inset 0 -3px 0 var(--sh-coral)}
  .sh-topbar-ic{position:relative;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;flex:none;
    background:rgba(255,255,255,.14);color:#fff}
  .sh-topbar-ic::after{content:"";position:absolute;inset:0;border-radius:50%;box-shadow:0 0 0 0 rgba(255,255,255,.55);animation:ccd-ring 2s infinite}
  .sh-topbar-ic svg{animation:sh-wiggle 2.2s ease-in-out infinite}
  .sh-topbar-txt{display:flex;flex-direction:column;align-items:center;line-height:1.1;min-width:0}
  .sh-topbar-txt small{font-size:11.5px;font-weight:700;letter-spacing:.02em;color:rgba(255,255,255,.88);white-space:nowrap}
  .sh-topbar-txt strong{font-size:22px;font-weight:800;letter-spacing:.01em;color:#fff;white-space:nowrap}
  .sh-topbar:active{filter:brightness(.95)}

  /* header row: logo on the left, menu button on the right (no call button) */
  .sh-header .sh-wrap{height:64px;gap:10px}
  .sh-header .sh-logo{min-width:0;flex:0 1 auto}
  .sh-header .sh-logo-img{height:34px;max-width:100%}
  .sh-mcall{display:none!important}
  .sh-burger{margin-left:auto}
}
@keyframes ccd-ring{0%{box-shadow:0 0 0 0 rgba(255,255,255,.55)}70%,100%{box-shadow:0 0 0 10px rgba(255,255,255,0)}}
@media(max-width:380px){
  .sh-topbar{padding:7px 12px;gap:10px}
  .sh-topbar-txt strong{font-size:20px}
  .sh-header .sh-logo-img{height:28px}
}
@media (prefers-reduced-motion:reduce){.sh-topbar-ic::after,.sh-topbar-ic svg{animation:none}}

/* Scroll stability: the header never changes height (height changes caused a scroll feedback loop = flicker) */
.sh-header{overflow-anchor:none;will-change:box-shadow}
/* long email addresses never overflow on small screens */
.ct-mail,.sh-contact a,.prose a[href^="mailto:"]{overflow-wrap:anywhere;word-break:break-word}
@media(max-width:480px){.ct-mail{font-size:17px}}
