/* ============================================================
   Ultimate Christmas — front-end styles  (v1.0.0)
   Every block is labelled  // CSS NAME: ... //  so Steve can find it.
   Everything is scoped under .uxm so it cannot leak into Enfold.
   ============================================================ */

/* // CSS NAME: uxm-tokens // */
.uxm{
  --ult-teal-500:#00ADBC; --ult-teal-600:#008F9C; --ult-teal-700:#00747F;
  --ult-teal-50:#F2FBFC; --ult-teal-100:#E0F5F7; --ult-teal-200:#BDEAEE; --ult-teal-300:#8CDAE1;
  --ult-teal-800:#005961; --ult-teal-900:#004047; --ult-teal-950:#003036;
  --ult-ink:#0E1417; --ult-ink-80:#43484A; --ult-ink-60:#737778; --ult-ink-40:#A3A6A7;
  --ult-ink-20:#CFD0D1; --ult-ink-10:#E7E8E8; --ult-ink-05:#F4F4F5; --ult-paper:#FFFFFF;
  --ult-amber:#FF9F19; --ult-amber-600:#E88D0E;
  --xmas-red:var(--uxm-red,#C8102E); --xmas-red-dark:#9E0B23; --xmas-red-100:#FBE3E7;
  --ult-radius:4px; --ult-radius-lg:12px; --ult-ease:cubic-bezier(.2,.7,.3,1); --ult-dur:220ms;
  --display:var(--uxm-display,"Work Sans","Arial Black",sans-serif);
  --text:var(--uxm-text,"Raleway",Arial,sans-serif);
  --script:var(--uxm-script,"Yellowtail",cursive);
}

/* // CSS NAME: uxm-base // */
.uxm{font-family:var(--text);font-size:17px;line-height:1.6;color:var(--ult-ink);background:#fff;-webkit-font-smoothing:antialiased}
.uxm *,.uxm *::before,.uxm *::after{box-sizing:border-box}
.uxm h1,.uxm h2,.uxm h3,.uxm h4{font-family:var(--display);font-weight:900;text-transform:uppercase;line-height:1;letter-spacing:.005em;margin:0;text-wrap:balance;color:inherit}
.uxm p{margin:0}
.uxm ul{margin:0;padding:0}
.uxm img{max-width:100%;height:auto}
.uxm-wrap{max-width:1200px;margin:0 auto;padding-inline:20px}
.uxm-section{padding-block:64px}
.uxm-bg-white{background:#fff}
.uxm-bg-grey{background:var(--ult-ink-05)}
.uxm-bg-teal{background:var(--ult-teal-100)}
.uxm-section-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:16px;margin-bottom:28px}
.uxm-section-head h2{font-size:clamp(28px,4vw,42px)}
.uxm-section-head p{max-width:60ch;color:var(--ult-ink-60)}
.uxm-lede{font-size:19px;max-width:62ch}
.uxm-eyebrow{display:inline-block;font-family:var(--display);font-weight:900;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:var(--ult-teal-500);padding:5px 12px;border-radius:20px;margin-bottom:10px}
.uxm-eyebrow-ink{background:var(--ult-ink)}
.uxm-eyebrow-amber{background:var(--ult-amber)}
.uxm-tag{display:inline-block;font-family:var(--display);font-weight:900;font-size:12px;letter-spacing:.08em;text-transform:uppercase;padding:4px 9px;border-radius:3px;line-height:1.3}
.uxm-tag-red{background:var(--xmas-red);color:#fff}
.uxm-tag-teal{background:var(--ult-teal-100);color:var(--ult-teal-700)}
.uxm-tag-amber{background:var(--ult-amber);color:#fff}
.uxm-tag-ink{background:var(--ult-ink);color:#fff}
.uxm-hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}
.uxm [hidden]{display:none!important}

/* // CSS NAME: uxm-buttons // */
/* White text on teal and amber is forced — Steve's rule, no exceptions. */
.uxm .uxm-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:.05em;font-size:14px;padding:14px 22px;border-radius:var(--ult-radius);border:0;cursor:pointer;text-decoration:none;transition:background var(--ult-dur) var(--ult-ease),transform var(--ult-dur) var(--ult-ease);line-height:1;box-shadow:none;margin:0}
.uxm .uxm-btn:focus-visible{outline:3px solid var(--ult-teal-700);outline-offset:3px}
.uxm .uxm-btn-primary,.uxm .uxm-btn-primary:hover,.uxm .uxm-btn-primary:focus,.uxm .uxm-btn-primary:visited{background:var(--ult-teal-500);color:#fff!important;text-decoration:none}
.uxm .uxm-btn-primary:hover{background:var(--ult-teal-600)}
.uxm .uxm-btn-accent,.uxm .uxm-btn-accent:hover,.uxm .uxm-btn-accent:focus,.uxm .uxm-btn-accent:visited{background:var(--ult-amber);color:#fff!important;text-decoration:none}
.uxm .uxm-btn-accent:hover{background:var(--ult-amber-600)}
.uxm .uxm-btn-ghost{background:transparent;color:var(--ult-ink);border:2px solid var(--ult-ink-10)}
.uxm .uxm-btn-ghost:hover{border-color:var(--ult-teal-500);color:var(--ult-ink)}
.uxm .uxm-btn-ghost-light{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.7)}
.uxm .uxm-btn-ghost-light:hover{background:rgba(255,255,255,.12);color:#fff}
.uxm .uxm-btn-ink,.uxm .uxm-btn-ink:hover{background:var(--ult-ink);color:#fff!important}
.uxm .uxm-btn-link{background:none;color:var(--ult-teal-700);font-family:var(--text);font-weight:700;text-transform:none;letter-spacing:0;font-size:15px;padding:13px 6px;text-decoration:underline;text-underline-offset:3px}
.uxm .uxm-btn-link:hover{color:var(--ult-teal-800)}
.uxm .uxm-btn-sm{font-size:12px;padding:10px 14px}

/* // CSS NAME: uxm-hero // */
/* Enfold caption classes are kept on the h1/h3 so the theme's slider styling applies too. */
.uxm-hero{position:relative;overflow:hidden;background:var(--ult-teal-100) center/cover no-repeat;color:var(--ult-ink)}
.uxm-hero::before{content:"";position:absolute;inset:0;pointer-events:none}
.uxm-hero .uxm-wrap{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:40px;align-items:center;padding-block:56px}
.uxm-hero-copy{min-width:0}
.uxm-ribbon{display:inline-block;background:var(--xmas-red);color:#fff;font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:.06em;font-size:13px;padding:6px 14px;border-radius:3px;transform:rotate(-2deg);margin-bottom:16px}
.uxm-script{display:block;font-family:var(--script);font-weight:400;text-transform:none;font-size:clamp(64px,8vw,110px);line-height:.9;letter-spacing:.01em;transform:rotate(-5deg);transform-origin:left bottom;margin:0 0 -6px 6px;position:relative;z-index:2;color:#fff;-webkit-text-stroke:1.5px var(--ult-ink);paint-order:stroke fill;text-shadow:3px 4px 0 var(--ult-ink),0 10px 24px rgba(0,0,0,.35)}
.uxm .uxm-title.avia-caption-title{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:clamp(72px,9.5vw,132px);line-height:.88;letter-spacing:-.01em;color:var(--ult-teal-500);-webkit-text-stroke:3px #fff;paint-order:stroke fill;text-shadow:4px 5px 0 var(--ult-ink),0 14px 30px rgba(0,0,0,.35);margin:0}
.uxm .uxm-cta.avia-caption-subheading-custom{display:inline-block;white-space:nowrap;font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:clamp(13px,1.45vw,19px);letter-spacing:.06em;margin:18px 0 0;color:#fff;background:var(--xmas-red);padding:9px 16px;transform:rotate(-2deg);max-width:100%;line-height:1.2}
.uxm-hero.cta-teal .uxm-cta{background:var(--ult-teal-500)}
.uxm-hero.cta-ink .uxm-cta{background:var(--ult-ink)}
.uxm-sub{font-size:18px;margin:16px 0 8px;max-width:44ch;font-weight:500}
.uxm-hero-cta{margin-top:26px;display:flex;gap:12px;flex-wrap:wrap}
.uxm .uxm-btn-ghost-hero{background:rgba(255,255,255,.7);color:var(--ult-ink);border:2px solid var(--ult-ink)}
.uxm-hero.is-light{color:#fff}
.uxm-hero.is-light::before{background:linear-gradient(90deg,rgba(14,20,23,.78) 0%,rgba(14,20,23,.45) 50%,rgba(14,20,23,.55) 100%)}
.uxm-hero.is-light .uxm-btn-ghost-hero{background:transparent;color:#fff;border-color:rgba(255,255,255,.75)}

/* // CSS NAME: uxm-hero-promo // */
.uxm-hero-promo .uxm-ribbon{transform:none}
.uxm-hero-promo .uxm-title.avia-caption-title{font-size:clamp(52px,6.4vw,88px);line-height:.96;-webkit-text-stroke:0;text-shadow:3px 4px 0 var(--ult-ink);letter-spacing:0}
.uxm-hero-promo .uxm-cta.avia-caption-subheading-custom{transform:none;margin-top:16px}
.uxm-hero-promo .uxm-sub{margin-top:28px}
.uxm-hero-cta-3 .uxm-btn{min-width:180px}
.uxm-promo{position:relative;max-width:440px;width:100%;justify-self:end}
.uxm-promo-track{position:relative}
.uxm-promo-card{background:#fff;border-radius:var(--ult-radius-lg);overflow:hidden;box-shadow:0 20px 50px rgba(0,48,54,.3);color:var(--ult-ink);display:none}
.uxm-promo-card.is-on{display:block;animation:uxm-fade .35s var(--ult-ease)}
@keyframes uxm-fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.uxm-promo-card .uxm-tile-media{aspect-ratio:16/10}
.uxm-promo-card .uxm-tile-body{padding:18px 20px 20px;gap:10px}
.uxm-promo-card h3{font-size:22px}
.uxm-promo-card .uxm-tile-meta{font-size:13px}
.uxm-promo-card .uxm-price{font-size:24px;margin-top:4px}
.uxm .uxm-promo-arrow{position:absolute;top:38%;width:40px;height:40px;border-radius:50%;border:0;background:#fff;color:var(--ult-ink);font-size:26px;line-height:1;cursor:pointer;box-shadow:0 6px 16px rgba(0,0,0,.25);z-index:2;display:flex;align-items:center;justify-content:center;padding:0 0 3px;margin:0}
.uxm .uxm-promo-arrow.prev{left:-18px}
.uxm .uxm-promo-arrow.next{right:-18px}
.uxm-promo-dots{display:flex;justify-content:center;gap:6px;margin-top:10px}
.uxm-promo-dots i{width:8px;height:8px;border-radius:50%;background:rgba(14,20,23,.3);display:block;cursor:pointer;transition:width .2s}
.uxm-promo-dots i.on{background:var(--xmas-red);width:22px;border-radius:4px}
.uxm-hero.is-light .uxm-promo-dots i{background:rgba(255,255,255,.5)}
.uxm-hero.is-light .uxm-promo-dots i.on{background:#fff}
@media(max-width:900px){.uxm-promo{justify-self:stretch;max-width:none}.uxm-hero-cta-3 .uxm-btn{min-width:0}.uxm .uxm-promo-arrow.prev{left:6px}.uxm .uxm-promo-arrow.next{right:6px}}

/* // CSS NAME: uxm-advent-calendar // */
.uxm-advent{background:var(--ult-teal-500);border:3px solid #fff;border-radius:14px;padding:22px 18px 18px;position:relative;box-shadow:0 20px 50px rgba(0,48,54,.35)}
.uxm-advent-title{position:absolute;top:-16px;left:50%;transform:translateX(-50%);background:var(--xmas-red);color:#fff;font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:.06em;font-size:13px;padding:7px 18px;border-radius:3px;white-space:nowrap;box-shadow:0 6px 14px rgba(0,0,0,.3);max-width:calc(100% - 20px);overflow:hidden;text-overflow:ellipsis}
.uxm-advent-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:8px}
.uxm .uxm-door{aspect-ratio:1/1.15;border-radius:6px;border:2px solid rgba(255,255,255,.6);background:rgba(0,116,127,.45);color:#fff;font-family:var(--display);font-weight:900;font-size:clamp(18px,2.4vw,30px);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;position:relative;transition:transform var(--ult-dur) var(--ult-ease);padding:4px;text-align:center;margin:0;line-height:1;box-shadow:none}
.uxm .uxm-door:hover{transform:translateY(-2px);background:rgba(0,116,127,.6)}
.uxm .uxm-door:focus-visible{outline:3px solid #fff;outline-offset:2px}
.uxm-door .n{text-shadow:0 2px 6px rgba(0,0,0,.3)}
.uxm-door .lbl{font-family:var(--text);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;line-height:1.15;margin-top:3px;display:none}
.uxm .uxm-door.is-open{background:var(--xmas-red);border-color:#fff}
.uxm-door.is-open .n{font-size:.75em}
.uxm-door.is-open .lbl{display:block}
.uxm .uxm-door.is-today{box-shadow:0 0 0 3px var(--ult-amber),0 0 24px rgba(255,159,25,.7)}
.uxm .uxm-door.is-locked{opacity:.85;cursor:not-allowed}
.uxm .uxm-door.is-final{background:rgba(255,255,255,.22);border-style:solid;grid-column:span 2;aspect-ratio:2/1.15}
.uxm-door.is-final .lbl{display:block}
.uxm-advent-foot{display:flex;justify-content:space-between;align-items:center;margin-top:12px;font-size:13px;color:#fff;gap:10px;flex-wrap:wrap}
.uxm-advent-foot b{color:#fff;background:var(--xmas-red);padding:1px 7px;border-radius:3px}
.uxm-door.shake{animation:uxm-shake .24s}
@keyframes uxm-shake{0%,100%{transform:translateX(0)}30%{transform:translateX(-4px)}60%{transform:translateX(4px)}}

/* // CSS NAME: uxm-band // */
.uxm-band{position:relative;min-height:260px;display:flex;align-items:end;color:#fff;background:var(--ult-ink) center 30%/cover no-repeat}
.uxm-band::before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(14,20,23,.6) 0%,rgba(14,20,23,.15) 60%,rgba(14,20,23,0) 100%)}
.uxm-band .uxm-wrap{position:relative;padding-block:32px;width:100%}
.uxm-panel{display:inline-block;background:var(--ult-teal-500);padding:22px 26px;border-radius:var(--ult-radius-lg);max-width:640px;box-shadow:0 14px 34px rgba(0,0,0,.25)}
.uxm-panel h2{font-size:clamp(28px,4.4vw,48px);max-width:18ch;color:#fff}
.uxm-panel p{max-width:60ch;margin-top:10px;font-size:16px;color:#fff;font-weight:500}
.uxm-section.has-band{padding-top:36px}
.uxm-band-teal{min-height:0;background:var(--ult-teal-500);color:#fff;display:block}
.uxm-band-teal::before{display:none}
.uxm-band-teal .uxm-wrap{padding-block:40px}
.uxm-band-teal h2{font-size:clamp(30px,4.6vw,52px);color:#fff;max-width:22ch}
.uxm-band-teal p{max-width:64ch;margin-top:12px;font-size:17px;color:#fff;font-weight:500}
/* // CSS NAME: uxm-band-split // */
.uxm-band-split{display:grid;grid-template-columns:minmax(340px,44%) 1fr;align-items:stretch;min-height:380px;background:var(--ult-teal-500);color:#fff}
.uxm-band-split::before{display:none}
.uxm-band-split .blk{padding:48px 44px 48px max(44px,calc((100vw - 1200px) / 2 + 20px));display:flex;flex-direction:column;justify-content:center}
.uxm-band-split h2{font-size:clamp(32px,4.6vw,56px);color:#fff;margin:6px 0 12px}
.uxm-band-split p{color:#fff;font-size:17px;max-width:48ch;font-weight:500}
.uxm-band-split .pic{background:var(--ult-teal-800) center 60%/cover no-repeat;min-height:260px;align-self:stretch}
/* // CSS NAME: uxm-band-strip // */
.uxm-band-strip{min-height:460px;display:flex;align-items:flex-end;background-position:center 55%}
.uxm-band-strip::before{display:none}
.uxm-band-strip .strip{width:100%;background:linear-gradient(0deg,rgba(0,48,54,.92) 0%,rgba(0,48,54,.75) 70%,rgba(0,48,54,0) 100%);padding:70px 0 34px}
.uxm-band-strip .in{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;flex-wrap:wrap;padding-block:0}
.uxm-band-strip h2{font-size:clamp(36px,5.5vw,68px);color:#fff}
.uxm-band-strip p{max-width:52ch;font-size:16px;font-weight:500;color:#fff;margin:0}
@media(max-width:900px){.uxm-band-split{grid-template-columns:1fr}.uxm-band-split .pic{order:-1;min-height:220px}.uxm-band-split .blk{padding:32px 20px;text-align:center}.uxm-band-split p{margin-inline:auto}.uxm-band-strip{min-height:360px}.uxm-band-strip .in{text-align:center;justify-content:center}}

/* // CSS NAME: uxm-section-head-strong // */
.uxm-section-head h2{font-size:clamp(32px,4.6vw,52px)}
.uxm-section-head p{color:var(--ult-ink);font-size:17px;font-weight:500;max-width:56ch}

/* // CSS NAME: uxm-tiles // */
.uxm-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}
.uxm-tile{background:#fff;border:1px solid var(--ult-ink-10);border-radius:var(--ult-radius-lg);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow var(--ult-dur) var(--ult-ease),transform var(--ult-dur) var(--ult-ease)}
.uxm-tile:hover{box-shadow:0 14px 34px rgba(14,20,23,.14);transform:translateY(-2px)}
.uxm-tile-media{aspect-ratio:16/10;position:relative;display:flex;align-items:end;padding:14px;color:#fff;background:var(--ult-teal-800) center/cover no-repeat}
.uxm-tile-media::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(14,20,23,.7),rgba(14,20,23,0) 55%)}
.uxm-tile-media > *{position:relative;z-index:1}
.uxm-tagrow{display:flex;gap:6px;flex-wrap:wrap}
.uxm-tile-body{padding:20px 20px 18px;display:flex;flex-direction:column;gap:12px;flex:1}
.uxm-tile-body h3{font-size:21px}
.uxm-tile-meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:14px;color:var(--ult-ink-60)}
.uxm-tile-meta b{color:var(--ult-ink)}
.uxm-tile-body p{font-size:15px}
.uxm-price{font-family:var(--display);font-weight:900;font-size:26px;line-height:1;margin-top:auto}
.uxm-price small{font-family:var(--text);font-weight:600;font-size:12px;color:var(--ult-ink-60);letter-spacing:.04em;text-transform:uppercase;display:block;margin-bottom:5px}
.uxm-tile-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:6px}
.uxm-tile-actions .uxm-btn-link{grid-column:1/-1;justify-content:start;padding-left:0}
.uxm-tile-actions .uxm-btn{font-size:12px;padding:13px 10px}
.uxm-tile-actions .uxm-btn-link{font-size:15px}

/* // CSS NAME: uxm-desktop-slider // */
.uxm-slider-wrap{position:relative}
@media(min-width:901px){
  .uxm-tiles.is-slider{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:20px;padding:6px 4px 16px;scrollbar-width:none;scroll-behavior:smooth}
  .uxm-tiles.is-slider::-webkit-scrollbar{display:none}
  .uxm-tiles.is-slider>.uxm-tile{flex:0 0 calc((100% - 40px) / 3);scroll-snap-align:start}
  .uxm .uxm-slide-arrow{position:absolute;top:calc(50% - 24px);width:48px;height:48px;border-radius:50%;border:0;background:#fff;color:var(--ult-ink);font-size:30px;line-height:1;cursor:pointer;box-shadow:0 8px 20px rgba(0,0,0,.22);z-index:2;display:flex;align-items:center;justify-content:center;padding:0 0 4px;margin:0}
  .uxm .uxm-slide-arrow.prev{left:-22px}
  .uxm .uxm-slide-arrow.next{right:-22px}
  .uxm .uxm-slide-arrow[disabled]{opacity:.3;cursor:default}
  .uxm-slider-count{text-align:center;font-size:13px;color:var(--ult-ink-60);font-weight:600;margin-top:4px}
}
@media(max-width:900px){.uxm .uxm-slide-arrow,.uxm-slider-count{display:none}}

/* // CSS NAME: uxm-departures // */
.uxm-dep-panel{margin-top:20px;background:var(--ult-teal-100);border:2px solid var(--ult-teal-500);border-radius:var(--ult-radius-lg);padding:0;overflow:hidden}
.uxm-dep-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;background:var(--ult-teal-500);color:#fff;padding:14px 20px}
.uxm-dep-head h3{font-size:18px;color:#fff}
.uxm-dep-list{display:grid;gap:12px;padding:18px 20px}
.uxm-dep{display:grid;grid-template-columns:165px 1.5fr 1.5fr .8fr auto;gap:12px;align-items:center;background:#fff;border:1px solid var(--ult-ink-10);border-radius:8px;padding:12px 16px;font-size:14px;position:relative}
.uxm-dep .k{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ult-ink-60);display:block;font-weight:700;white-space:nowrap}
.uxm-dep .v{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.uxm-dep .v.big{font-family:var(--display);font-weight:900;font-size:18px;letter-spacing:.01em;font-variant-numeric:tabular-nums}
.uxm-code{display:inline-block;font-family:var(--text);font-size:10px;font-weight:700;background:var(--ult-ink-05);color:var(--ult-ink-80);padding:1px 5px;border-radius:3px;margin-left:4px;letter-spacing:0}
.uxm-dep .flag{display:inline-block;margin-right:6px}
.uxm-dep .acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:end;align-items:center}
.uxm-dep .acts .uxm-btn{padding:10px 12px;font-size:11px}
.uxm-dep .acts .uxm-btn-link{padding:10px 4px;font-size:13px}
.uxm-dep.is-hot{border-color:var(--xmas-red)}
.uxm-pick{display:inline-block;font-family:var(--display);font-weight:900;font-size:10px;letter-spacing:.08em;text-transform:uppercase;background:var(--xmas-red);color:#fff;padding:3px 8px;border-radius:3px;position:absolute;top:-10px;left:14px}
.uxm-dep .avail{font-size:12px;font-weight:700;color:var(--ult-teal-700);text-transform:uppercase;letter-spacing:.06em}
.uxm-dep .soon{color:var(--xmas-red-dark);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.06em}

/* // CSS NAME: uxm-feature // */
.uxm-feature{position:relative;color:#fff;background:var(--ult-ink) center/cover no-repeat;overflow:hidden}
.uxm-feature::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,20,23,.88) 0%,rgba(14,20,23,.7) 50%,rgba(14,20,23,.35) 100%)}
.uxm-feature .uxm-wrap{position:relative;display:grid;grid-template-columns:1.15fr 1fr;gap:40px;align-items:center}
.uxm-feature h2{font-size:clamp(38px,5.5vw,68px);line-height:.92;color:#fff}
.uxm-feature .uxm-lede{color:rgba(255,255,255,.92);margin-top:16px;font-size:18px}
.uxm-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:24px}
.uxm-fact{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);padding:14px;border-radius:8px}
.uxm-fact b{font-family:var(--display);font-weight:900;font-size:24px;display:block}
.uxm-fact span{font-size:13px;opacity:.85}
.uxm-inc{columns:2;column-gap:24px;font-size:14px;margin-top:20px;padding-left:18px;color:rgba(255,255,255,.9);list-style:disc}
.uxm-inc li{break-inside:avoid;margin-bottom:4px}
.uxm-feature-card{background:#fff;color:var(--ult-ink);border-radius:var(--ult-radius-lg);padding:24px;box-shadow:0 30px 60px rgba(0,0,0,.4)}
.uxm-feature-card h3{font-size:22px;margin:10px 0 6px}
.uxm-feature-card .uxm-row{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--ult-ink-10);padding:9px 0;font-size:15px}
.uxm-feature-card .uxm-row b{font-variant-numeric:tabular-nums;text-align:right}
.uxm-spots{display:flex;align-items:center;gap:10px;margin-top:14px;font-size:14px;font-weight:700;color:var(--xmas-red-dark)}
.uxm-bar{flex:1;height:8px;background:var(--ult-ink-10);border-radius:4px;overflow:hidden}
.uxm-bar i{display:block;height:100%;background:var(--xmas-red)}
.uxm-feature-actions{display:grid;gap:8px;margin-top:16px}

/* // CSS NAME: uxm-gift // */
.uxm-gift{background:var(--ult-teal-500);color:#fff}
.uxm-gift .uxm-wrap{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.uxm-gift h2{font-size:clamp(34px,5vw,58px);color:#fff}
.uxm-gift .uxm-lede{color:#fff;margin-top:12px}
.uxm-gift ul{padding-left:20px;margin:14px 0;display:grid;gap:4px;max-width:56ch;font-size:15px;list-style:disc}
.uxm-gift-amounts{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}
.uxm .uxm-gift-amounts button{font-family:var(--display);font-weight:900;font-size:16px;padding:10px 16px;border-radius:6px;border:2px solid rgba(255,255,255,.7);background:transparent;color:#fff;cursor:pointer;margin:0;box-shadow:none}
.uxm .uxm-gift-amounts button.on{background:#fff;color:var(--ult-teal-700);border-color:#fff}
.uxm-gift-actions{display:flex;gap:10px;flex-wrap:wrap}
.uxm-gift-card{position:relative;overflow:hidden;color:#fff;border-radius:20px;aspect-ratio:1.6;padding:28px 30px 26px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 30px 60px rgba(0,48,54,.5),0 0 0 1px rgba(255,255,255,.25);transform:rotate(-3deg);max-width:470px;margin:0 auto;width:100%;background:var(--ult-teal-800) center/cover no-repeat}
.uxm-gift-card-photo::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,20,23,.05) 0%,rgba(14,20,23,.25) 45%,rgba(14,20,23,.78) 100%)}
.uxm-gift-card-animated{background:var(--ult-gradient,linear-gradient(45deg,#00ADBC 0%,#00ADBC 38%,#67CED7 74%,#BCE9EE 100%));background-size:200% 200%;animation:uxm-gift-bg 10s ease-in-out infinite}
.uxm-gift-card-animated::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,48,54,0) 40%,rgba(0,48,54,.55) 100%)}
@keyframes uxm-gift-bg{0%,100%{background-position:0% 0%}50%{background-position:100% 100%}}
.uxm-gift-card>*{position:relative;z-index:1}
.uxm-gift-card-top{display:flex;justify-content:space-between;align-items:flex-start}
.uxm-gift-card img{width:130px;filter:drop-shadow(0 2px 6px rgba(0,0,0,.35))}
.uxm-gift-card .lbl{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:12px;letter-spacing:.14em;color:#fff;border:1.5px solid rgba(255,255,255,.8);padding:5px 10px;border-radius:4px}
.uxm-gift-card-bottom{display:flex;flex-direction:column;gap:6px}
.uxm-gift-card .amt{font-family:var(--display);font-weight:900;font-size:clamp(48px,5.5vw,64px);line-height:.95;color:#fff;letter-spacing:-.01em;text-shadow:0 3px 12px rgba(0,0,0,.35)}
.uxm-gift-card .to{font-size:14px;font-weight:600;color:#fff;letter-spacing:.02em;text-shadow:0 1px 4px rgba(0,0,0,.4)}
.uxm-gift-strip{position:absolute;left:0;right:0;bottom:0;height:8px;background:var(--ult-teal-500);z-index:1}
.uxm-gift-card-image{padding:0;background:transparent;box-shadow:0 30px 60px rgba(0,64,71,.45);aspect-ratio:auto;display:block}
.uxm-gift-card-image::before{display:none}
.uxm-gift-card-image img{width:100%;height:auto;display:block;border-radius:20px;filter:none}
@media(prefers-reduced-motion:reduce){.uxm-gift-card-animated{animation:none}}

/* // CSS NAME: uxm-deals // */
.uxm-deals{background:var(--ult-teal-100) center/cover no-repeat;position:relative}
.uxm-deals::before{content:"";position:absolute;inset:0;background:rgba(224,245,247,.78)}
.uxm-deals .uxm-wrap{position:relative}
.uxm-deals-head{background:var(--ult-teal-500);color:#fff;padding:22px 26px;border-radius:var(--ult-radius-lg)}
.uxm-deals-head p{color:#fff}
.uxm-deals-head h2{color:#fff}
.uxm-how{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:28px 0 36px}
.uxm-how div{background:#fff;border:1px solid var(--ult-ink-10);border-radius:var(--ult-radius-lg);padding:20px}
.uxm-how b{font-family:var(--display);font-weight:900;font-size:34px;display:block;color:var(--ult-teal-500);line-height:1;margin-bottom:8px}
.uxm-how h4{font-size:16px;margin-bottom:6px}
.uxm-how p{font-size:15px}
.uxm-deals-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.uxm-deal{background:#fff;border:1px solid var(--ult-ink-10);border-radius:8px;padding:14px;display:flex;gap:12px;align-items:flex-start}
.uxm-deal .d{font-family:var(--display);font-weight:900;font-size:26px;line-height:1;color:var(--ult-teal-700);min-width:2.2ch;font-variant-numeric:tabular-nums}
.uxm-deal .t{font-weight:700;font-size:15px;line-height:1.3}
.uxm-deal .s{font-size:13px;color:var(--ult-ink-60);margin-top:3px}
.uxm-deal.is-open{border-color:var(--xmas-red);background:var(--xmas-red-100)}
.uxm-deal.is-open .d{color:var(--xmas-red-dark)}
.uxm-deal .code{display:inline-block;margin-top:6px;font-family:ui-monospace,monospace;font-size:12px;background:var(--ult-ink);color:#fff;padding:2px 7px;border-radius:3px}
.uxm-deal .lock{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ult-ink-60);margin-top:6px;font-weight:700}
.uxm-deal .uxm-btn-link{padding:6px 0}

/* // CSS NAME: uxm-modal // */
.uxm-modal{position:fixed;inset:0;background:rgba(14,20,23,.7);display:flex;align-items:center;justify-content:center;padding:20px;z-index:99999}
.uxm-modal-box{background:#fff;color:var(--ult-ink);border-radius:var(--ult-radius-lg);max-width:520px;width:100%;padding:28px;position:relative;max-height:92vh;overflow:auto}
.uxm-modal-box h3{font-size:24px;margin-bottom:6px}
.uxm .uxm-modal-box .x{position:absolute;top:10px;right:12px;border:0;background:none;font-size:26px;cursor:pointer;color:var(--ult-ink-60);line-height:1;padding:4px 8px;margin:0;box-shadow:none}
.uxm-modal-box > p{color:var(--ult-ink-60);font-size:15px}
.uxm-form{display:grid;gap:12px;margin-top:18px}
.uxm-form label{font-size:13px;font-weight:700;display:grid;gap:5px;color:var(--ult-ink)}
.uxm .uxm-form input,.uxm .uxm-form select,.uxm .uxm-form textarea{font:inherit;font-size:16px;padding:11px 12px;border:1.5px solid var(--ult-ink-10);border-radius:6px;background:#fff;color:var(--ult-ink);width:100%;margin:0;box-shadow:none}
.uxm .uxm-form input:focus,.uxm .uxm-form textarea:focus,.uxm .uxm-form select:focus{outline:2px solid var(--ult-teal-500);border-color:var(--ult-teal-500)}
.uxm-form .two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.uxm-form .fine{font-size:12px;color:var(--ult-ink-60)}
.uxm-error{font-size:13px;color:var(--xmas-red-dark);font-weight:700}
.uxm-modal-deal{background:var(--xmas-red);color:#fff;border-radius:8px;padding:16px;margin:14px 0 4px}
.uxm-modal-deal .dn{font-size:12px;letter-spacing:.1em;text-transform:uppercase;opacity:.9;font-weight:700}
.uxm-modal-deal .dt{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:24px;line-height:1.05;margin:4px 0}
.uxm-modal-deal .dsub{font-size:14px;opacity:.95}
.uxm-code-reveal{margin-top:16px;border:2px dashed var(--ult-teal-500);border-radius:8px;padding:18px;text-align:center}
.uxm-code-reveal .c{font-family:ui-monospace,monospace;font-size:30px;letter-spacing:.12em;font-weight:700;color:var(--ult-teal-700);user-select:all}
.uxm-code-reveal small{display:block;color:var(--ult-ink-60);font-size:13px;margin-top:4px}
.uxm-code-actions{margin-top:12px;display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.uxm-sent{text-align:center;padding:20px 0}
.uxm-sent b{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:28px;display:block;color:var(--ult-teal-700)}
.uxm .uxm-btn.is-busy{opacity:.6;pointer-events:none}

/* // CSS NAME: uxm-sticky-mobile // */
.uxm-sticky{display:none;position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--ult-ink-10);padding:10px 16px;gap:8px;z-index:9999;transform:translateY(110%);transition:transform .25s var(--ult-ease)}
.uxm-sticky.is-on{transform:none}
.uxm-sticky .uxm-btn{flex:1;padding:13px;font-size:12px}

/* // CSS NAME: uxm-mobile-sliders // */
.uxm-slider-dots,.uxm-swipe-hint{display:none}
@media(max-width:900px){
  .uxm.has-sliders .uxm-tiles{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;margin-inline:-20px;padding:4px 20px 14px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .uxm.has-sliders .uxm-tiles::-webkit-scrollbar{display:none}
  .uxm.has-sliders .uxm-tiles>.uxm-tile{flex:0 0 min(82%,320px);scroll-snap-align:start}
  .uxm.has-sliders .uxm-tile-media{aspect-ratio:16/9;padding:12px 12px 12px 16px}
  .uxm.has-sliders .uxm-tagrow .uxm-tag-amber{display:none}
  .uxm.has-sliders .uxm-tile-body{padding:14px 16px 14px 18px;gap:8px}
  .uxm.has-sliders .uxm-tile-body p{display:none}
  .uxm.has-sliders .uxm-tile-body h3{font-size:19px}
  .uxm.has-sliders .uxm-tile-meta{font-size:13px;gap:4px 10px}
  .uxm.has-sliders .uxm-price{font-size:24px}
  .uxm.has-sliders .uxm-tile-actions .uxm-btn-link{padding:6px 0}
  .uxm-slider-dots{display:flex;justify-content:center;gap:6px;margin-top:2px}
  .uxm-slider-dots i{width:7px;height:7px;border-radius:50%;background:var(--ult-ink-20);display:block;transition:width .2s}
  .uxm-slider-dots i.on{background:var(--ult-teal-500);width:18px;border-radius:4px}
  .uxm-swipe-hint{display:block;text-align:center;font-size:12px;color:var(--ult-ink-60);margin-top:6px;font-weight:600}
}

/* // CSS NAME: uxm-responsive // */
@media(max-width:960px){
  .uxm-dep{grid-template-columns:1fr 1fr}
  .uxm-dep .acts{grid-column:1/-1;justify-content:start}
  .uxm-dep-list{padding:14px}
}
@media(max-width:600px){
  /* // CSS NAME: uxm-departures-mobile // */
  .uxm-dep{grid-template-columns:1fr;gap:8px;padding:16px 14px 14px}
  .uxm-dep .v{white-space:normal;overflow:visible}
  .uxm-dep .v.big{font-size:22px}
  .uxm-dep .acts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px}
  .uxm-dep .acts .avail,.uxm-dep .acts .soon,.uxm-dep .acts .uxm-btn-link{grid-column:1/-1;justify-content:start;padding-left:0}
  .uxm-dep .acts .uxm-btn{padding:12px 10px;font-size:12px}
  .uxm-dep-head{padding:12px 14px}
  .uxm-dep-head h3{font-size:16px}
  .uxm-dep-head .uxm-tag{display:none}
  .uxm-dep-panel{margin-inline:0}
}
@media(max-width:900px){
  .uxm-hero .uxm-wrap{grid-template-columns:1fr;gap:28px}
  .uxm-advent-grid{grid-template-columns:repeat(5,1fr)}
  .uxm-feature .uxm-wrap,.uxm-gift .uxm-wrap{grid-template-columns:1fr}
  .uxm-how{grid-template-columns:1fr}
  .uxm-inc{columns:1}
  /* // CSS NAME: uxm-mobile-centre // */
  .uxm-hero-copy{text-align:center}
  .uxm-script{transform-origin:center bottom;margin-left:0}
  .uxm-hero-cta{justify-content:center}
  .uxm-hero-cta .uxm-btn{width:100%;max-width:340px}
  .uxm-section-head{justify-content:center;text-align:center}
  .uxm-section-head h2,.uxm-section-head p{text-align:center;margin-inline:auto}
  .uxm-band .uxm-wrap{text-align:center}
  .uxm-panel{display:block;margin-inline:auto}
  .uxm-panel h2,.uxm-panel p{margin-inline:auto}
  .uxm-feature .uxm-wrap>div:first-child,.uxm-gift .uxm-wrap>div:first-child{text-align:center}
  .uxm-feature .uxm-lede,.uxm-gift .uxm-lede,.uxm-gift ul{margin-inline:auto;text-align:left}
  .uxm-gift-amounts,.uxm-gift-actions{justify-content:center}
  .uxm-inc{text-align:left;max-width:320px;margin-inline:auto}
  .uxm-deals-head{text-align:center}
  .uxm-how div{text-align:center}
}
@media(max-width:560px){
  .uxm-section{padding-block:44px}
  .uxm-advent-grid{grid-template-columns:repeat(4,1fr);gap:6px}
  .uxm .uxm-door.is-final{grid-column:span 2}
  .uxm-facts{grid-template-columns:1fr}
  .uxm-form .two{grid-template-columns:1fr}
  .uxm-sticky{display:flex}
  .uxm.has-sticky{padding-bottom:64px}
  .uxm-gift-card{transform:none}
  .uxm-script{font-size:clamp(56px,17vw,72px);margin:0 0 -14px 4px}
  .uxm .uxm-title.avia-caption-title{font-size:clamp(56px,19vw,88px)}
  .uxm .uxm-cta.avia-caption-subheading-custom{font-size:clamp(10px,3.05vw,13px);padding:8px 10px;letter-spacing:.03em}
  .uxm-band{min-height:200px}
  .uxm-modal{padding:12px}
  .uxm-modal-box{padding:22px 18px}
}
@media(prefers-reduced-motion:reduce){.uxm *{transition:none!important;animation:none!important}}

/* // CSS NAME: uxm-enfold-overrides // */
/* Enfold prefixes everything with #top and sets its own heading/border colours,
   so these win with the same prefix. Do not remove. */
#top .uxm{width:var(--uxm-vw,100vw);max-width:none;margin-left:calc(50% - var(--uxm-vw,100vw) / 2);margin-right:calc(50% - var(--uxm-vw,100vw) / 2)}   /* full-bleed out of the content column; --uxm-vw is set by JS to the real viewport width (no scrollbar) */
#top .uxm.uxm-contained,#top .uxm.uxm-portal{width:auto;max-width:none;margin-left:0;margin-right:0}
.uxm-portal{position:static;background:transparent}
#top .uxm .uxm-tile,#top .uxm .uxm-dep,#top .uxm .uxm-deal,#top .uxm .uxm-how div{border-color:#E7E8E8!important}
#top .uxm .uxm-dep.is-hot{border-color:#C8102E!important}
#top .uxm .uxm-dep-panel{border-color:#00ADBC!important}
#top .uxm .uxm-form input,#top .uxm .uxm-form select,#top .uxm .uxm-form textarea{border:1.5px solid #E7E8E8!important;background:#fff!important;color:#0E1417!important;box-shadow:none!important}
#top .uxm .uxm-btn-ghost{border-color:#E7E8E8!important;color:#0E1417!important;background:transparent!important}
#top .uxm .uxm-btn-ghost:hover{border-color:#00ADBC!important}
/* white type on teal / dark blocks — forced */
#top .uxm .uxm-dep-head h3,#top .uxm .uxm-feature h2,#top .uxm .uxm-feature .uxm-lede,#top .uxm .uxm-feature .uxm-inc,#top .uxm .uxm-feature .uxm-fact b,#top .uxm .uxm-feature .uxm-fact span,
#top .uxm .uxm-panel h2,#top .uxm .uxm-panel p,#top .uxm .uxm-gift h2,#top .uxm .uxm-gift .uxm-lede,#top .uxm .uxm-gift ul,#top .uxm .uxm-gift li,#top .uxm .uxm-deals-head h2,#top .uxm .uxm-deals-head p,
#top .uxm .uxm-hero.is-light .uxm-sub,#top .uxm .uxm-advent-foot,#top .uxm .uxm-advent-foot b{color:#fff!important}
#top .uxm .uxm-script{color:#fff!important}
#top .uxm .uxm-title.avia-caption-title{color:#00ADBC!important}
#top .uxm .uxm-cta.avia-caption-subheading-custom{color:#fff!important}
/* ink type on white cards — forced (Enfold colours b/strong and headings) */
#top .uxm .uxm-tile h3,#top .uxm .uxm-tile p,#top .uxm .uxm-tile .uxm-price,#top .uxm .uxm-tile-meta b,#top .uxm .uxm-feature-card h3,#top .uxm .uxm-feature-card .uxm-row b,#top .uxm .uxm-feature-card .uxm-row span,
#top .uxm .uxm-dep .v,#top .uxm .uxm-modal-box h3,#top .uxm .uxm-modal-box label,#top .uxm .uxm-deal .t,#top .uxm .uxm-how h4,#top .uxm .uxm-how p,#top .uxm .uxm-section-head h2{color:#0E1417!important}
#top .uxm .uxm-tile-meta,#top .uxm .uxm-dep .k,#top .uxm .uxm-deal .s,#top .uxm .uxm-section-head p{color:#737778!important}
#top .uxm .uxm-eyebrow,#top .uxm .uxm-tag-red,#top .uxm .uxm-tag-amber,#top .uxm .uxm-tag-ink,#top .uxm .uxm-ribbon,#top .uxm .uxm-advent-title,#top .uxm .uxm-pick,#top .uxm .uxm-modal-deal,#top .uxm .uxm-modal-deal *{color:#fff!important}
/* modal always on top of the Enfold header, and never cut off at the top */
#top .uxm .uxm-modal{z-index:2147483000!important;align-items:flex-start;overflow-y:auto;padding:40px 16px}
#top .uxm .uxm-modal-box{margin:auto;max-height:none}
#top .uxm .uxm-sticky{z-index:2147482000!important}
/* Enfold adds margins to headings and lists — reset inside the plugin */
#top .uxm h1,#top .uxm h2,#top .uxm h3,#top .uxm h4{margin:0;padding:0}
#top .uxm ul{margin:0;list-style-position:outside}
#top .uxm .uxm-tile-body h3,#top .uxm .uxm-feature-card h3{margin-bottom:0}
#top .uxm .uxm-feature-card h3{margin-top:10px}
#top .uxm .uxm-door,#top .uxm .uxm-btn{text-shadow:none}
#top .uxm .uxm-door .n{text-shadow:0 2px 6px rgba(0,0,0,.3)}

/* // CSS NAME: uxm-deals-mobile // */
@media(max-width:600px){
  .uxm-deals-grid{grid-template-columns:1fr 1fr;gap:8px}
  .uxm-deal{flex-direction:column;align-items:flex-start;gap:4px;padding:10px 12px;min-height:88px}
  .uxm-deal .d{font-size:22px;min-width:0}
  .uxm-deal .t{font-size:13px;line-height:1.25}
  .uxm-deal .s{display:none}
  .uxm-deal .lock{font-size:10px;margin-top:auto}
  .uxm-deal .uxm-btn-link{font-size:12px;padding:2px 0;margin-top:auto}
  .uxm-deal .code{font-size:11px;margin-top:auto}
  .uxm-deals-head{padding:18px}
  .uxm-how{gap:8px;margin:18px 0 22px}
  .uxm-how div{display:grid;grid-template-columns:36px 1fr;gap:4px 12px;padding:12px 14px;text-align:left}
  .uxm-how b{font-size:26px;grid-row:1/3;margin:0;line-height:1.1}
  .uxm-how h4{font-size:14px;margin:0}
  .uxm-how p{font-size:13px;line-height:1.4}
}

#top .uxm .uxm-band-teal h2,#top .uxm .uxm-band-teal p,#top .uxm .uxm-gift-card .amt,#top .uxm .uxm-gift-card .to,#top .uxm .uxm-gift-card .lbl{color:#fff!important}
#top .uxm .uxm-promo-card h3,#top .uxm .uxm-promo-card .uxm-price{color:#0E1417!important}
#top .uxm .uxm-hero-promo .uxm-title.avia-caption-title{color:#00ADBC!important}
#top .uxm .uxm-band-split h2,#top .uxm .uxm-band-split p,#top .uxm .uxm-band-strip h2,#top .uxm .uxm-band-strip p{color:#fff!important}
