/* =========================================================================
   © Ultimate Travel — original work, all rights reserved.
   Hey there, thanks for your interest! Please don't copy or replicate this
   code or concept (including via AI). We'd love to chat: steven@ultimate.travel
   =========================================================================
   ULTIMATE TRAVEL — TRIP BUILDER v2 (plugin front-end)
   Everything scoped under #etb-app. Design tokens are injected from the
   plugin settings as inline CSS variables on #etb-app, and a Custom CSS box
   in the settings can override ANY selector below.
   CLASS CHEAT-SHEET (target these in Custom CSS):
     .etb-bar .etb-cur            currency toggle
     .etb-disclaimer             disclaimer strip
     .etb-hero .hero-title       hero
     .etb-step-pill              step chips
     .etb-section  > h2          section card + heading
     .etb-starts .etb-start      start-city chips
     .etb-grid .etb-card         option cards (stays/activities)
     .etb-pill                   MOST POPULAR pill (image corner)
     .etb-stops .etb-stop        stop rows   .etb-nights  per-stop nights
     .etb-boats .etb-boat        Whitsundays boat carousel
     .etb-cal .etb-day           date picker
     .etb-cart ...               floating cart
     .etb-cart-head .etb-redeem-btn  cart "Redeem quote" button (top-right, #ff9f19)
     .etb-infosec ...            feature/info section (heading, bg image, image gallery)
     .etb-locpick .etb-locchip   multi-location activity picker (e.g. "where do you skydive?")
     .etb-trav-row .etb-trav-later  extra-travellers name/email rows
     .etb-quote ...              itinerary / quote document
   VARS you can tune: --stop-name-size --stop-desc-size --stop-nights-size --stop-order-size
   ========================================================================= */
@import url('https://fonts.googleapis.com/css2?family=Raleway:wght@400;500;600;700;800;900&family=Work+Sans:wght@600;700;800;900&display=swap');

#etb-app,#etb-redeem{
  /* defaults — overridden inline from settings */
  --brand-primary:#0e7c86; --brand-primary-dark:#0a5c64;
  --brand-accent:#ff6b4a;  --brand-accent-dark:#e5502f;
  --brand-teal:#00adbc; --brand-sun:#ffb703; --brand-cta2:#ff9f19;
  --brand-quote:#00adbc; --brand-quote-text:#fff;
  /* header typography (desktop + mobile) */
  --hero-title-size:29px; --hero-title-size-m:23px; --hero-title-weight:900; --hero-title-color:#fff;
  --hero-text-size:14.5px; --hero-text-size-m:13px;
  /* step pills */
  --step-bg:#00adbc; --step-color:#fff; --step-border:#00adbc; --step-weight:700; --step-radius:999px;
  /* quote day-tile / timeline colours */
  --q-stay:#0e7c86; --q-bus:#ff6b4a; --q-boat:#3b82c4; --q-tour:#7c5cc4;
  /* stop-card (Step 2) text sizes */
  --stop-name-size:18px; --stop-desc-size:14px; --stop-nights-size:14px; --stop-order-size:12px;
  --ink:#14202b; --ink-soft:#55636e; --line:#e4e9ee;
  --surface:#fff; --surface-2:#f5f8fa; --good:#1f9d6b;
  --radius:16px; --radius-sm:10px;
  --shadow:0 6px 24px rgba(16,40,55,.10); --shadow-lg:0 18px 50px rgba(16,40,55,.18);
  --cart-w:360px;
  --font-head:'Work Sans',system-ui,sans-serif;
  --font-body:'Raleway',system-ui,sans-serif;
  font-family:var(--font-body);color:var(--ink);line-height:1.5;font-weight:500;display:block}
#etb-app *{box-sizing:border-box;margin:0;padding:0}
#etb-app button{font-family:inherit;cursor:pointer;border:none;background:none}
#etb-app img{display:block;max-width:100%}
#etb-app h2,#etb-app h3,#etb-app h4,#etb-app .hero-title{font-family:var(--font-head);line-height:1.14}
#etb-app svg{display:inline-block;vertical-align:middle}

#etb-app .etb-bar{display:flex;justify-content:flex-start;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px}
#etb-app .etb-cur{display:flex;background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px}
#etb-app .etb-cur button{font-family:var(--font-head);font-weight:800;font-size:12.5px;padding:6px 14px;border-radius:999px;color:var(--ink-soft)}
#etb-app .etb-cur button.active{background:var(--brand-primary);color:#fff}

#etb-app .etb-shell{display:grid;grid-template-columns:1fr var(--cart-w);gap:28px;align-items:start}
#etb-app .etb-main{min-width:0}

#etb-app .etb-hero{border-radius:var(--radius);overflow:hidden;position:relative;margin-bottom:16px;color:#fff;padding:40px 32px 34px;box-shadow:var(--shadow);isolation:isolate}
#etb-app .etb-hero .hero-bg{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center}
/* overlay tint — colour + opacity set from plugin settings */
#etb-app .etb-hero .hero-tint{position:absolute;inset:0;z-index:-1}
/* header typography — all controllable in settings (desktop values here, mobile below) */
#etb-app .etb-hero .hero-title{font-size:var(--hero-title-size);font-weight:var(--hero-title-weight);margin-bottom:9px;max-width:640px;color:var(--hero-title-color) !important;line-height:1.1}
#etb-app .etb-hero p{max-width:560px;font-size:var(--hero-text-size);color:#fff !important;display:inline-block}

/* // CSS NAME: HEADER STYLE B — SPLIT (text left, photo right) // */
#etb-app .etb-hero--split{display:grid;grid-template-columns:1.05fr .95fr;padding:0;color:var(--ink);min-height:290px;background:#f4fbfc;box-shadow:var(--shadow)}
#etb-app .etb-hero--split .etb-hero-text{padding:34px 32px;display:flex;flex-direction:column;justify-content:center;border-left:6px solid var(--brand-teal)}
#etb-app .etb-hero--split .hero-bg{position:relative;inset:auto;z-index:0;min-height:240px;background-color:#bfeef2;display:grid;place-items:center}
#etb-app .etb-hero--split .hero-bg.has-img .etb-hero-noimg{display:none}
#etb-app .etb-hero--split .etb-hero-noimg{color:#0b6b74;font-family:var(--font-head);font-weight:800;font-size:12px;letter-spacing:1px;text-transform:uppercase;opacity:.6}
#etb-app .etb-hero--split .hero-title{color:var(--ink) !important;max-width:none}
#etb-app .etb-hero--split #utbIntro{color:var(--ink-soft) !important;display:block;margin-bottom:0}
#etb-app .etb-eyebrow{font-family:var(--font-head);font-weight:800;font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--brand-primary);margin-bottom:8px}
#etb-app .etb-hero-start{align-self:flex-start;margin-top:18px;background:var(--brand-teal,#00adbc);color:#fff;font-family:var(--font-head);font-weight:800;font-size:14px;border:none;border-radius:999px;padding:12px 22px;cursor:pointer;transition:filter .12s}
#etb-app .etb-hero-start:hover{filter:brightness(.95)}

/* // CSS NAME: ETB-MHERO — mobile-only welcome hero (image + controllable overlay) // */
#etb-app .etb-mhero{display:none}
#etb-app .etb-mhero .etb-mhero-in{position:relative;z-index:2}
#etb-app .etb-mhero-eyebrow{font-family:var(--font-head);font-weight:800;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--mh-eyebrow,#9ff3f9);display:block;margin-bottom:8px}
#etb-app .etb-mhero-title{font-family:var(--font-head);font-weight:900;font-size:29px;line-height:1.03;letter-spacing:.01em;text-transform:uppercase;color:#fff !important;margin:0 0 8px;text-shadow:0 2px 18px rgba(0,0,0,.28)}
#etb-app .etb-mhero-sub{font-size:14px;line-height:1.5;color:#eef8f9 !important;margin:0 0 16px;max-width:92%}
#etb-app .etb-mhero-cta{display:block;width:100%;text-align:center;background:#00adbc;color:#fff;font-family:var(--font-head);font-weight:900;font-size:15px;letter-spacing:.02em;border:0;border-radius:14px;padding:15px;cursor:pointer}
#etb-app .etb-mhero-trust{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:13px}
#etb-app .etb-mhero-trust span{font-size:11.5px;font-weight:700;color:#d6f2f4}
#etb-app .etb-mhero-trust span:before{content:"\2605 ";color:var(--mh-star,#ff9f19)}

/* // CSS NAME: UTB-MOBBAR — mobile floating price bar // */
#utbMobBar{position:fixed;left:0;right:0;bottom:0;z-index:9998;display:none;align-items:center;gap:12px;padding:11px 14px calc(11px + env(safe-area-inset-bottom,0px));background:#fff;border-top:1px solid #e4e9ee;box-shadow:0 -8px 22px rgba(20,32,43,.12);font-family:var(--font-body,'Raleway',sans-serif)}
#utbMobBar.show{display:flex}
#utbMobBar .l{display:flex;flex-direction:column;line-height:1.1}
#utbMobBar .k{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#55636e;font-weight:800}
#utbMobBar .v{font-family:var(--font-head,'Work Sans',sans-serif);font-weight:900;font-size:20px;color:#14202b}
#utbMobBar .b{background:var(--brand-cta2,#ff9f19);color:#3a1e00;font-family:var(--font-head,'Work Sans',sans-serif);font-weight:900;font-size:14px;border:0;border-radius:11px;padding:12px 20px;cursor:pointer}

@media (max-width:600px){
  /* full-bleed edge-to-edge on phones (breaks out of the builder's side padding) */
  #etb-app .etb-mhero{display:block;position:relative;width:auto;transform:none;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);margin-top:-4px;margin-bottom:18px;border-radius:0;overflow:hidden;padding:120px 22px 24px;background-size:cover;background-position:center}
  #etb-app .etb-shell{grid-template-columns:1fr}
  #etb-app .etb-cart{position:static !important;max-height:none;width:auto !important}
  /* the mobile hero replaces the desktop one on phones — hide every desktop hero variant */
  #etb-app .etb-hero,#etb-app .etb-hero--split,#etb-app .etb-hero--band{display:none !important}
}
@media (min-width:601px){ #utbMobBar{display:none !important} }

/* // CSS NAME: HEADER STYLE C — COMPACT BAND (slim bar + step chips) // */
#etb-app .etb-hero--band{background:linear-gradient(120deg,var(--brand-teal) 0%,var(--brand-primary) 100%);color:#fff;padding:24px 28px;position:relative;overflow:hidden}
#etb-app .etb-hero--band:after{content:"";position:absolute;inset:0;background:radial-gradient(90% 140% at 100% 0%,rgba(255,255,255,.16),rgba(255,255,255,0) 55%);pointer-events:none}
#etb-app .etb-hero--band .etb-hero-text{position:relative}
#etb-app .etb-hero--band .hero-title{color:#fff !important;max-width:none;margin-bottom:5px}
#etb-app .etb-hero--band #utbIntro{color:#eaf7f9 !important;display:block;max-width:560px}
#etb-app .etb-hero-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px;position:relative}
#etb-app .etb-hchip{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.16);color:#fff;font-family:var(--font-head);font-weight:700;font-size:13px;border:none;border-radius:999px;padding:8px 14px;cursor:pointer;transition:background .12s}
#etb-app .etb-hchip:hover{background:rgba(255,255,255,.30)}
#etb-app .etb-hchip i{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#fff;color:var(--brand-primary);font-size:11px;font-weight:900;font-style:normal}

#etb-app .etb-disclaimer{background:#fff;border:1px solid var(--line);border-left:4px solid var(--brand-teal);border-radius:var(--radius-sm);padding:11px 14px;font-size:12px;color:var(--ink-soft);margin-bottom:18px}
#etb-app .etb-disclaimer a{color:var(--brand-primary);font-weight:700}

/* // CSS NAME: top row — steps (left) + currency switcher (right) // */
#etb-app .etb-toprow{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:18px}
#etb-app .etb-toprow .etb-steps{margin-bottom:0;flex:1 1 auto}
#etb-app .etb-toprow .etb-bar{margin-bottom:0;flex:0 0 auto}
#etb-app .etb-steps{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
/* step pills — colour, border, weight, radius all controllable in settings/Custom CSS */
#etb-app .etb-step-pill{display:flex;align-items:center;gap:8px;background:var(--step-bg);border:1px solid var(--step-border);border-radius:var(--step-radius);padding:7px 14px 7px 8px;font-size:12.5px;font-weight:var(--step-weight);color:var(--step-color)}
#etb-app .etb-step-pill .num{width:23px;height:23px;border-radius:50%;background:var(--step-num-bg,#fff);color:var(--step-num-color,#00adbc);display:grid;place-items:center;font-size:11.5px;font-weight:800;font-family:var(--font-head)}
#etb-app .etb-step-pill.done{background:var(--good);border-color:var(--good);color:#fff}
#etb-app .etb-step-pill.done .num{background:#fff;color:var(--good)}

#etb-app .etb-section{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px 22px 24px;margin-bottom:18px;box-shadow:var(--shadow)}
#etb-app .etb-section h2{font-size:23px;font-weight:800;margin:0;line-height:1.15}
/* // CSS NAME: Section STEP badge // */
#etb-app .etb-section .badge{font-size:var(--step-badge-size,11px);font-weight:800;font-family:var(--font-head);background:var(--step-bg);color:var(--step-color);border-radius:999px;padding:var(--step-badge-pad,3px 9px);white-space:nowrap;flex:none}
/* // CSS NAME: Section header — STEP pill LEFT, heading right next to it // */
#etb-app .etb-sechead{display:flex;flex-direction:row;align-items:center;gap:12px;margin-bottom:2px}
#etb-app .etb-section .sub{color:var(--ink-soft);font-size:15px;margin:5px 0 16px}

#etb-app .etb-starts{display:flex;flex-wrap:wrap;gap:8px}
/* // CSS NAME: Step 1 two-column — start city (left) + calendar (right) // */
#etb-app .etb-whenwrap{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}
#etb-app .etb-when-lbl{font-family:var(--font-head);font-weight:800;font-size:var(--start-label-size,14px);margin-bottom:9px;color:var(--ink)}
#etb-app .etb-when-sub{font-weight:600;font-size:calc(var(--start-label-size,14px) - 2px);color:var(--ink-soft)}
/* start cities stacked one per row */
#etb-app .etb-starts--col{flex-direction:column;flex-wrap:nowrap;gap:8px}
#etb-app .etb-starts--col .etb-start{width:100%;text-align:left;justify-content:flex-start}
@media (max-width:720px){ #etb-app .etb-whenwrap{grid-template-columns:1fr} }
#etb-app .etb-start{position:relative;border:1.5px solid var(--start-border,var(--line));border-radius:999px;padding:10px 18px;font-family:var(--font-head);font-weight:700;font-size:var(--start-city-size,16px);color:var(--start-color,var(--ink));background:var(--start-bg,#fff);transition:.12s}
#etb-app .etb-start:hover{border-color:var(--brand-primary)}
#etb-app .etb-start.selected{border-color:var(--start-sel-border,var(--brand-accent));background:var(--start-sel-bg,#fff7f4);color:var(--start-sel-color,var(--brand-accent-dark))}
/* // CSS NAME: "Most popular" tag on a start-city pill // */
#etb-app .etb-start .etb-startpop{display:inline-block;margin-left:6px;background:var(--brand-teal);color:#fff;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.3px;padding:2px 5px;border-radius:5px;vertical-align:middle}

#etb-app .etb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}
#etb-app .etb-card{border:2px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;background:#fff;position:relative;text-align:left;transition:transform .12s,border-color .12s,box-shadow .12s}
#etb-app .etb-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
#etb-app .etb-card.selected{border-color:var(--brand-accent);box-shadow:0 0 0 3px rgba(255,107,74,.15)}
#etb-app .etb-card .thumb{height:128px;background:var(--brand-primary);background-size:cover;background-position:center;position:relative}
#etb-app .etb-card .thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
#etb-app .etb-card .thumb .chk{position:absolute;top:8px;left:8px;width:26px;height:26px;border-radius:50%;background:#fff;color:var(--brand-accent);display:none;place-items:center;font-weight:900;box-shadow:var(--shadow);z-index:3}
#etb-app .etb-card.selected .thumb .chk{display:grid}
#etb-app .etb-card .thumb .cap{position:absolute;left:10px;bottom:8px;color:#fff;font-family:var(--font-head);font-weight:900;font-size:18px;text-shadow:0 1px 6px rgba(0,0,0,.45);z-index:2}
#etb-app .etb-pill{position:absolute;top:8px;right:8px;background:var(--brand-teal);color:#fff;font-family:var(--font-head);font-weight:800;font-size:10px;letter-spacing:.5px;text-transform:uppercase;padding:4px 9px;border-radius:6px;z-index:3;box-shadow:var(--shadow)}
#etb-app .etb-card .body{padding:12px 13px 14px}
#etb-app .etb-card .body h3{font-size:16.5px;font-weight:700;margin-bottom:3px}
#etb-app .etb-card .body p{font-size:12.5px;color:var(--ink-soft)}
#etb-app .etb-card .body .meta{margin-top:8px;font-size:11px;font-weight:800;font-family:var(--font-head);color:var(--brand-primary);text-transform:uppercase;letter-spacing:.4px}
#etb-app .etb-card .body .depart{margin-top:6px;font-size:11.5px;color:var(--ink-soft);font-weight:600}
/* inline MOST POPULAR pill — sits next to the title text, not on the image */
#etb-app .etb-ipill{display:inline-block;background:var(--brand-teal);color:#fff;font-family:var(--font-head);font-weight:800;font-size:9px;letter-spacing:.4px;text-transform:uppercase;padding:2px 6px;border-radius:5px;margin-left:7px;vertical-align:middle;white-space:nowrap}
#etb-app .etb-card.locked{opacity:.5;filter:grayscale(.35)}

/* stays tighter — and no label caption on the image (label shows below) */
#etb-app .etb-sec--stay .etb-grid{grid-template-columns:repeat(auto-fill,minmax(168px,1fr))}
#etb-app .etb-sec--stay .etb-card .thumb{height:92px}
#etb-app .etb-sec--stay .etb-card .thumb .cap{display:none}
#etb-app .etb-sec--stay .etb-card .body{padding:9px 12px 12px}

/* start-city chips: the "other location" contact chip */
#etb-app .etb-start.etb-start-other{border-style:dashed;border-color:var(--brand-primary);color:var(--brand-primary)}
#etb-app .etb-start.locked{opacity:.45}

#etb-app .etb-stops{display:grid;grid-template-columns:1fr 1fr;gap:8px}
#etb-app .etb-stop{display:flex;align-items:center;gap:11px;border:1.5px solid var(--line);border-radius:var(--radius-sm);padding:8px 12px 8px 8px;background:#fff;text-align:left;position:relative;transition:border-color .12s}
#etb-app .etb-stop:hover{border-color:var(--brand-primary)}
#etb-app .etb-stop.selected{border-color:var(--brand-accent);background:#fff7f4}
#etb-app .etb-stop .stop-thumb{width:52px;height:52px;border-radius:8px;flex:none;background:var(--surface-2) center/cover;position:relative}
#etb-app .etb-stop .stop-pill{position:absolute;top:-6px;right:-6px;background:var(--brand-teal);color:#fff;font-family:var(--font-head);font-weight:800;font-size:8px;letter-spacing:.3px;text-transform:uppercase;padding:2px 5px;border-radius:5px}
/* only show the "Most popular" pill when the stop is NOT selected (keeps the selected card clean) */
#etb-app .etb-stop.selected .etb-ipill{display:none}
/* // CSS NAME: "More info" (i) icon on cards + its popup // */
#etb-app .etb-card,#etb-app .etb-stop{position:relative}
#etb-app .etb-infobtn{position:absolute;top:8px;right:8px;z-index:3;width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,.92);color:var(--brand-primary);border:1.5px solid var(--brand-primary);font-family:var(--font-head);font-weight:900;font-size:12px;font-style:italic;display:grid;place-items:center;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.14)}
#etb-app .etb-infobtn:hover{background:var(--brand-primary);color:#fff}
.etb-infopop-wrap{position:fixed;inset:0;z-index:2147483020;display:flex;align-items:center;justify-content:center;background:rgba(16,32,43,.5);padding:20px}
.etb-infopop{background:#fff;border-radius:14px;box-shadow:0 24px 70px rgba(16,40,55,.4);padding:22px 24px;width:min(90vw,380px);font-family:var(--font-body);font-size:14px;line-height:1.6;color:var(--ink,#14202b);max-height:80vh;overflow:auto}
.etb-infopop-lbl{color:var(--brand-teal,#00adbc);font-family:var(--font-head);font-weight:800;font-size:13px;margin-bottom:6px}
#etb-app .etb-stop .name{font-family:var(--font-head);font-weight:700;font-size:var(--stop-name-size,18px) !important}
#etb-app .etb-stop .name .startflag{font-size:10px;color:var(--brand-primary);font-weight:800;text-transform:uppercase;margin-left:5px}
#etb-app .etb-stop .desc{font-size:var(--stop-desc-size,14px) !important;color:var(--ink-soft)}
#etb-app .etb-stop .order{margin-left:auto;font-size:var(--stop-order-size,11px);font-weight:800;font-family:var(--font-head);color:#fff;background:var(--brand-primary);border-radius:999px;padding:2px 8px;display:none}
#etb-app .etb-stop.selected .order{display:inline-block}
#etb-app .etb-nights{display:none;align-items:center;gap:7px;margin-left:10px}
#etb-app .etb-stop.selected .etb-nights{display:flex}
#etb-app .etb-nights button{width:26px;height:26px;border-radius:7px;border:1px solid var(--line);background:var(--surface-2);font-weight:800;font-size:15px}
#etb-app .etb-nights .val{min-width:56px;text-align:center;font-size:var(--stop-nights-size,12px);font-weight:700}

#etb-app .etb-boats{margin-top:14px;border-top:1px dashed var(--line);padding-top:14px;display:none}
#etb-app .etb-boats.show{display:block}
#etb-app .etb-boats .lbl{font-family:var(--font-head);font-weight:800;font-size:13px;margin-bottom:9px;display:flex;align-items:center;justify-content:space-between}
#etb-app .etb-boats .arrows button{width:30px;height:30px;border:1px solid var(--line);border-radius:8px;font-weight:800;margin-left:6px}
#etb-app .etb-carousel{display:flex;gap:12px;overflow-x:auto;scroll-behavior:smooth;padding-bottom:6px;scroll-snap-type:x mandatory}
#etb-app .etb-carousel::-webkit-scrollbar{height:7px}
#etb-app .etb-carousel::-webkit-scrollbar-thumb{background:#cdd8de;border-radius:9px}
#etb-app .etb-boat{flex:0 0 210px;scroll-snap-align:start;border:2px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;background:#fff;text-align:left}
#etb-app .etb-boat.selected{border-color:var(--brand-accent);box-shadow:0 0 0 3px rgba(255,107,74,.15)}
#etb-app .etb-boat .bthumb{height:104px;background:var(--surface-2) center/cover;position:relative}
#etb-app .etb-boat .bchk{position:absolute;top:6px;left:6px;width:22px;height:22px;border-radius:50%;background:#fff;color:var(--brand-accent);display:none;place-items:center;font-weight:900}
#etb-app .etb-boat.selected .bchk{display:grid}
#etb-app .etb-boat .bbody{padding:9px 11px 11px}
#etb-app .etb-boat .bbody h4{font-size:13.5px;font-weight:800}
#etb-app .etb-boat .bbody .dur{font-size:10.5px;font-weight:800;color:var(--brand-primary);text-transform:uppercase;letter-spacing:.3px;margin:2px 0 3px}
#etb-app .etb-boat .bbody p{font-size:11.5px;color:var(--ink-soft)}

#etb-app .etb-cal{max-width:360px}
#etb-app .etb-cal-head{display:flex;align-items:stretch;gap:10px;margin-bottom:12px}
#etb-app .etb-cal-head .mlabel{font-family:var(--font-head);font-weight:800;font-size:var(--cal-month-size,16px)}
#etb-app .etb-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
#etb-app .etb-cal-grid .dow{font-size:11px;font-weight:800;color:var(--ink-soft);text-align:center;padding-bottom:3px}
#etb-app .etb-day{aspect-ratio:1;border-radius:9px;border:1px solid transparent;display:grid;place-items:center;font-size:var(--cal-day-size,14px);font-weight:600;background:var(--cal-avail-bg,var(--surface-2));color:var(--cal-avail-text,var(--ink))}
#etb-app .etb-day.empty{background:transparent}
#etb-app .etb-day.disabled{color:#c3ccd3;background:transparent;cursor:not-allowed;text-decoration:line-through}
#etb-app .etb-day.blackout{color:#c96;background:repeating-linear-gradient(45deg,#fff8f2,#fff8f2 4px,var(--cal-blackout,#ffe3cc) 4px,var(--cal-blackout,#ffe3cc) 8px);cursor:not-allowed}
#etb-app .etb-day.available:hover{border-color:var(--brand-primary)}
#etb-app .etb-day.selected{background:var(--cal-sel-bg,var(--brand-accent));color:var(--cal-sel-text,#fff)}
#etb-app .etb-cal-legend{display:flex;gap:15px;margin-top:12px;font-size:var(--cal-legend-size,12px);color:var(--ink-soft);flex-wrap:wrap;font-weight:600}
#etb-app .etb-cal-legend i{width:14px;height:14px;border-radius:4px;display:inline-block;margin-right:5px;vertical-align:-2px}

#etb-app .etb-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}
#etb-app .etb-field{display:flex;flex-direction:column;gap:5px}
#etb-app .etb-field.full{grid-column:1/-1}
#etb-app .etb-field label{font-size:12.5px;font-weight:700}
#etb-app .etb-field input,#etb-app .etb-field select,#etb-app .etb-field textarea{border:1.5px solid var(--line);border-radius:var(--radius-sm);padding:11px 12px;font-size:14px;font-family:var(--font-body);font-weight:500;width:100%;background:#fff;color:var(--ink)}
#etb-app .etb-field input:focus,#etb-app .etb-field select:focus,#etb-app .etb-field textarea:focus{outline:none;border-color:var(--brand-primary)}

/* floating cart */
#etb-app .etb-cart-wrap{position:relative}
/* // CSS NAME: Promo / CTA card under the floating cart (image or text) // */
#etb-app .etb-promo{display:block;margin-top:14px;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);text-decoration:none;font-family:var(--font-body)}
#etb-app .etb-promo--img img{display:block;width:100%;height:auto}
#etb-app .etb-promo:not(.etb-promo--img){padding:18px}
#etb-app .etb-promo-h{font-family:var(--font-head);font-weight:800;font-size:15px;line-height:1.25;margin-bottom:6px}
#etb-app .etb-promo-t{font-size:12.5px;opacity:.92;line-height:1.5;margin-bottom:12px}
#etb-app .etb-promo-btn{display:inline-block;background:var(--brand-cta2,#ff9f19);color:#fff;font-family:var(--font-head);font-weight:800;font-size:12.5px;padding:9px 16px;border-radius:999px;text-decoration:none}
#etb-app .etb-promo-btn:hover{filter:brightness(.94)}
#etb-app .etb-cart{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);overflow:hidden;display:flex;flex-direction:column;max-height:calc(100vh - 30px)}
#etb-app .etb-cart.is-fixed{position:fixed;top:15px;width:var(--cart-w)}
#etb-app .etb-cart.is-bottom{position:absolute;bottom:0}
#etb-app .etb-cart-head{background:var(--brand-primary);color:#fff;padding:15px 18px;flex:none;position:relative}
/* // CSS NAME: Cart "Redeem quote" button (top-right of the floating cart) // */
/* currency switcher + redeem button share one neat row */
#etb-app .etb-cart-headrow{display:flex;align-items:center;gap:10px;margin-top:10px}
#etb-app .etb-cart-head .etb-redeem-btn{margin-left:auto;background:#fff;color:var(--brand-teal,#00adbc);font-family:var(--font-head);font-weight:800;font-size:11px;letter-spacing:.2px;text-decoration:none;padding:7px 12px;border-radius:999px;line-height:1;white-space:nowrap;box-shadow:0 2px 6px rgba(0,0,0,.18);flex:none}
#etb-app .etb-cart-head .etb-redeem-btn:hover{background:#f2fbfc}
#etb-app .etb-cart-head h3{font-family:var(--font-head);font-weight:800;font-size:16px;display:flex;align-items:center;gap:8px;color:#fff !important}
#etb-app .etb-cart-head h3 svg{width:18px;height:18px}
#etb-app .etb-cart-head .count{font-size:12px;opacity:.9;margin-top:2px;color:#fff !important}
/* mini currency switcher inside the cart header (synced with the top one) */
#etb-app .etb-cart-head .etb-cur{margin-top:0;padding:3px;flex:0 0 auto;width:auto}
#etb-app .etb-cart-head .etb-cur button{font-size:11px;padding:4px 11px}
/* always-visible departure line */
/* // CSS NAME: Trip starts / Trip ends lines in the cart // */
#etb-app .etb-depart{padding:10px 16px 0;display:none}
#etb-app .etb-depart.show{display:block}
#etb-app .etb-tripdate{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--font-head);padding:3px 0}
#etb-app .etb-tripdate span{font-size:11.5px;font-weight:700;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.3px}
#etb-app .etb-tripdate b{font-size:13px;font-weight:800;color:var(--brand-primary)}
#etb-app .etb-cart-body{padding:10px 14px;overflow:auto;flex:1 1 auto;min-height:50px}
#etb-app .etb-cart-empty{color:var(--ink-soft);font-size:13px;text-align:center;padding:22px 8px}
/* compact rows: thumb + name (left) with nights pinned right, all vertically centred */
/* // CSS NAME: compact cart list (layout A) + remove-× on activities // */
#etb-app .etb-cart-item{display:flex;gap:9px;align-items:center;padding:5px 0;border-bottom:1px solid #f0f3f5}
#etb-app .etb-cart-item:last-child{border-bottom:none}
#etb-app .etb-cart-item .ic{width:32px;height:32px;border-radius:7px;background:var(--surface-2);display:grid;place-items:center;flex:none;color:var(--brand-primary);overflow:hidden}
#etb-app .etb-cart-item .ic svg{width:15px;height:15px}
#etb-app .etb-cart-item .ic img{width:100%;height:100%;object-fit:cover}
#etb-app .etb-cart-item .txt{flex:1;min-width:0}
#etb-app .etb-cart-item .txt b{font-size:12.5px;display:block;font-weight:800;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#etb-app .etb-cart-item .txt small{font-size:11px;color:var(--ink-soft)}
#etb-app .etb-cart-item .right{font-size:11px;font-weight:700;color:var(--ink-soft);white-space:nowrap;flex:none;text-align:right}
#etb-app .etb-cart-x{flex:none;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--line);background:#fff;color:var(--ink-soft);font-size:10px;line-height:1;cursor:pointer;display:grid;place-items:center;margin-left:4px;padding:0;transition:.12s}
#etb-app .etb-cart-x:hover{border-color:var(--brand-teal,#00adbc);color:var(--brand-teal,#00adbc)}
#etb-app .etb-unlock{padding:13px 16px;border-top:1px solid var(--line);background:var(--surface-2);flex:none}
#etb-app .etb-progresswrap{height:9px;background:#e7edf1;border-radius:999px;overflow:hidden}
#etb-app .etb-progressbar{height:100%;width:0;background:linear-gradient(90deg,var(--brand-sun),var(--brand-accent));transition:width .35s}
#etb-app .etb-unlock .msg{font-size:12px;font-weight:700;color:var(--ink-soft);margin-top:8px;text-align:center}
/* // CSS NAME: cart footer A — price (left) + promo (right) // */
#etb-app .etb-total{padding:14px 16px;border-top:1px solid var(--line);display:none;flex:none}
#etb-app .etb-total.show{display:flex;gap:14px;align-items:flex-start}
#etb-app .etb-price-l{flex:1;min-width:0}
#etb-app .etb-price-l .lbl{font-size:12.5px;font-weight:700;color:var(--ink-soft);display:block}
#etb-app .etb-price-l .amt{font-family:var(--font-head);font-size:26px;font-weight:900;color:var(--brand-primary);display:block;line-height:1.05;margin-top:1px}
#etb-app .etb-price-r{flex:0 0 46%;min-width:0;align-self:flex-start;margin-top:2px}
#etb-app .etb-total .row{display:flex;justify-content:space-between;align-items:baseline}
#etb-app .etb-total .row .lbl{font-size:12.5px;font-weight:700}
#etb-app .etb-total .conv{font-size:11.5px;color:var(--ink-soft);margin-top:3px;font-weight:600}
/* // CSS NAME: Group "trip total" row (per-person x travellers) // */
#etb-app .etb-total .row.grand{margin-top:9px;padding-top:9px;border-top:1px dashed var(--line)}
#etb-app .etb-total .row.grand .lbl{font-size:13.5px;font-weight:800;color:var(--ink)}
#etb-app .etb-total .row.grand .amt{font-size:24px;color:var(--brand-accent)}
#etb-app .etb-total .fine{font-size:11px;color:var(--ink-soft);margin-top:4px}
/* // CSS NAME: cart date strip (one line) // */
#etb-app .etb-depart{display:none;margin:11px 16px 0;padding:8px 12px;background:var(--surface-2);border-radius:9px;font-family:var(--font-head);font-size:11.5px;font-weight:700;color:var(--ink);align-items:center;flex-wrap:nowrap;white-space:nowrap;gap:5px;overflow-x:auto}
#etb-app .etb-depart.show{display:flex}
#etb-app .etb-depart b{color:var(--brand-primary)}
#etb-app .etb-depart .sep{color:#c4d2d6}
/* // CSS NAME: cart buttons — itinerary / SAVE / BOOK, save+book share a row // */
#etb-app .etb-cart-cta{padding:12px 16px 16px;flex:none;display:flex;flex-direction:column;gap:8px}
#etb-app .etb-btnrow{display:flex;gap:8px}
#etb-app .etb-btnrow .etb-btn{flex:1}
#etb-app .etb-btn{width:100%;background:var(--brand-accent);color:#fff;font-family:var(--font-head);font-weight:800;font-size:14px;padding:11px;border-radius:var(--radius-sm);transition:background .12s,transform .08s;display:flex;align-items:center;justify-content:center;gap:7px}
#etb-app .etb-btn.itin{background:var(--brand-quote,#0e7c86);color:var(--brand-quote-text,#fff)}
#etb-app .etb-btn.itin:hover:not(:disabled){filter:brightness(.94)}
#etb-app .etb-btn.itin:disabled{background:#c9d2d8;color:#fff}
#etb-app .etb-btn.save{background:var(--brand-cta2,#ff9f19);color:#fff;text-transform:uppercase;letter-spacing:.2px}
#etb-app .etb-btn.save:hover:not(:disabled){filter:brightness(.95)}
#etb-app .etb-btn.save:disabled{background:#c9d2d8;color:#fff}
#etb-app .etb-btn.book{text-transform:uppercase;letter-spacing:.2px}
#etb-app .etb-btn svg{width:17px;height:17px;flex:none}
#etb-app .etb-btn:hover{background:var(--brand-accent-dark)}
#etb-app .etb-btn:active{transform:scale(.99)}
#etb-app .etb-btn:disabled{background:#c9d2d8;cursor:not-allowed}
#etb-app .etb-btn.ghost{background:#fff;color:var(--brand-primary);border:1.5px solid var(--brand-primary)}
#etb-app .etb-btn.ghost:disabled{color:#bbb;border-color:#ddd}
/* "See my itinerary" button — colour + text controllable (default #00adbc / white).
   To restyle in Custom CSS target:  #etb-app .etb-btn.cta2 { ... } */
#etb-app .etb-btn.cta2{background:var(--brand-quote);color:var(--brand-quote-text);border:none}
#etb-app .etb-btn.cta2:hover{filter:brightness(.94)}
#etb-app .etb-btn.cta2:disabled{background:#c9d2d8;color:#fff;filter:none}

@media (max-width:960px){
  #etb-app .etb-shell{grid-template-columns:1fr}
  #etb-app .etb-cart{position:static !important;max-height:none;width:auto !important}
  #etb-app .etb-stops{grid-template-columns:1fr}
  /* the cart's own currency switcher is redundant once it's not floating */
  #etb-app .etb-cart-head .etb-cur{display:none}
}
/* ---- Step 2 stop rows: keep the nights stepper + order badge tidy on narrow screens ---- */
@media (max-width:560px){
  #etb-app .etb-stop{flex-wrap:wrap;row-gap:9px}
  #etb-app .etb-stop>span:nth-of-type(2){flex:1 1 60%;min-width:0}
  #etb-app .etb-stop .order{margin-left:auto}
  #etb-app .etb-stop.selected .etb-nights{margin-left:63px;margin-top:2px}
  #etb-app .etb-nights .val{min-width:64px}
}
/* ---- mobile typography + optional centred layout ---- */
@media (max-width:600px){
  #etb-app .etb-hero .hero-title{font-size:var(--hero-title-size-m)}
  #etb-app .etb-hero p{font-size:var(--hero-text-size-m)}
  /* Split stacks: text on top, photo below */
  #etb-app .etb-hero--split{grid-template-columns:1fr}
  #etb-app .etb-hero--split .etb-hero-text{padding:26px 22px}
  #etb-app .etb-hero--split .hero-bg{min-height:170px}
  /* Band on mobile: chips WRAP (no sideways scroll), smaller, with even padding all round */
  #etb-app .etb-hero--band{padding:18px}
  #etb-app .etb-hero-chips{flex-wrap:wrap;overflow:visible;gap:7px;margin-top:14px}
  #etb-app .etb-hchip{flex:none;font-size:11.5px;padding:6px 11px;gap:6px}
  #etb-app .etb-hchip i{width:17px;height:17px;font-size:10px}
  #etb-app.mobile-center .etb-hero{text-align:center}
  #etb-app.mobile-center .etb-hero p{display:block;margin-left:auto;margin-right:auto}
  #etb-app.mobile-center .etb-bar,#etb-app.mobile-center .etb-steps,#etb-app.mobile-center .etb-starts{justify-content:center}
  #etb-app.mobile-center .etb-sechead{align-items:center}
  #etb-app.mobile-center .etb-section h2,#etb-app.mobile-center .etb-section .sub{justify-content:center;text-align:center}
  /* headings shrink a touch */
  #etb-app .etb-section h2{flex-wrap:wrap;row-gap:4px;font-size:19px;line-height:1.15}
  /* keep the top step-nav pills tidy and on one line each */
  #etb-app .etb-steps{gap:6px}
  #etb-app .etb-step-pill{font-size:11.5px;padding:6px 11px 6px 6px;white-space:nowrap}
  /* // MOBILE: STEP badge centred, heading centred underneath // */
  #etb-app .etb-sechead{flex-direction:column;align-items:center;gap:7px}
  #etb-app .etb-sechead .badge{align-self:center;font-size:var(--step-badge-size-m,15px)}
  #etb-app .etb-section h2{text-align:center;justify-content:center;width:100%}
  #etb-app .etb-section .sub{text-align:center}
  /* // MOBILE: top step-nav starts LEFT and scrolls right; currency centred on its own row // */
  #etb-app .etb-toprow{justify-content:flex-start}
  #etb-app .etb-toprow .etb-steps{justify-content:flex-start}
  #etb-app .etb-toprow .etb-bar{flex:1 1 100%}
  #etb-app .etb-bar{justify-content:center}
  #etb-app .etb-bar .etb-cur{margin-left:auto;margin-right:auto}
  /* // MOBILE: centre the Split "Start building" button // */
  #etb-app .etb-hero-start{align-self:center}
  /* Feature/info ("Included Travel Pass") section — stack cleanly on mobile */
  #etb-app .etb-infosec-head{flex-direction:column;align-items:flex-start;gap:10px}
  #etb-app .etb-infosec-headbtns{width:100%}
  #etb-app .etb-infosec-headbtns>*{flex:1 1 auto;text-align:center}
  #etb-app .etb-infosec-in h3{font-size:16px}
  #etb-app .etb-infosec-txt{font-size:13px}
  #etb-app .etb-infosec-img{width:70%;max-width:230px;height:130px}
  #etb-app .etb-infosec-in{padding:16px !important}
}

#etb-app .etb-toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(30px);background:var(--ink);color:#fff;padding:12px 20px;border-radius:999px;font-size:13.5px;font-weight:700;opacity:0;pointer-events:none;transition:.25s;z-index:2147483000;box-shadow:var(--shadow-lg)}
#etb-app .etb-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
#etb-app .etb-note{font-size:13px;color:var(--ink-soft);margin-top:10px}
/* // CSS NAME: activities wrapper — must be block, NOT a grid (fixes cards crammed into one column) // */
#etb-app .etb-actswrap{display:block;width:100%}
/* card body copy + card meta a touch bigger (main column only; cart untouched) */
#etb-app .etb-card .body p{font-size:13px}
#etb-app .etb-card .body .depart{font-size:12px}
#etb-app .etb-card .body .meta{font-size:12.5px}

/* ===================== QUOTE / ITINERARY OVERLAY ===================== */
#etb-quote-overlay{position:fixed;inset:0;background:rgba(16,32,43,.55);z-index:2147483001;display:none;overflow:auto;padding:26px 16px}
#etb-quote-overlay.show{display:block}
/* // CSS NAME: Quote card — fixed height so the header stays put and the body scrolls inside // */
.etb-quote{max-width:900px;margin:0 auto;background:#fff;border-radius:14px;box-shadow:var(--shadow-lg);overflow:hidden;font-family:var(--font-body);color:var(--ink);display:flex;flex-direction:column;max-height:calc(100vh - 52px)}
/* // CSS NAME: Quote header — pinned; the itinerary scrolls underneath it // */
.etb-quote-top{flex:none;border-radius:14px 14px 0 0;background:linear-gradient(115deg,var(--brand-primary),#12a0ad);color:#fff;padding:24px 30px;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;box-shadow:0 4px 14px rgba(16,40,55,.12)}
.etb-quote-top .brand{font-family:var(--font-head);font-weight:900;font-size:22px;letter-spacing:.4px}
.etb-quote-top .brand img{max-height:52px;width:auto;margin-bottom:2px}
.etb-quote-top .brand small{display:block;font-weight:600;font-size:12px;opacity:.9;letter-spacing:0}
/* // CSS NAME: quote header — big quote number + traveller name (left) // */
.etb-quote-top .etb-qhead{margin-top:16px;letter-spacing:0}
.etb-quote-top .etb-qhead .lbl{display:block;font-size:12px;font-weight:800;opacity:.8;letter-spacing:.1em}
.etb-quote-top .etb-qhead .num{display:block;font-family:var(--font-head);font-size:26px;font-weight:900;line-height:1.05}
.etb-quote-top .etb-qhead .nm{display:block;font-family:var(--font-head);font-size:19px;font-weight:800;margin-top:1px}
.etb-quote-top .meta{text-align:right;font-size:12.5px;line-height:1.7;padding-right:22px}
.etb-quote-top .meta b{font-size:15px;font-family:var(--font-head)}
.etb-quote-body{padding:24px 30px 28px;flex:1 1 auto;overflow:auto;min-height:0}
.etb-quote h3{font-family:var(--font-head);font-weight:800;font-size:16px;margin:22px 0 12px;color:var(--brand-primary);display:flex;align-items:center;gap:8px}
.etb-quote h3:first-child{margin-top:0}
.etb-quote h3 svg{width:18px;height:18px;flex:none}
.etb-itin-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.etb-itin-day{border:1px solid var(--line);border-radius:9px;padding:8px;min-height:78px;font-size:11px;position:relative;background:#fff;display:flex;flex-direction:column;gap:3px}
/* // CSS NAME: Itinerary calendar box — actual date line (e.g. "Wed 18th Nov 2026") // */
.etb-itin-day .dt{display:block;font-family:var(--font-head);font-weight:700;font-size:9px;letter-spacing:.2px;color:var(--brand-primary);margin-bottom:1px}
.etb-itin-day .dn{display:block;font-family:var(--font-head);font-weight:800;font-size:10px;letter-spacing:.3px;text-transform:uppercase;color:var(--ink-soft)}
.etb-itin-day .loc{display:block;font-family:var(--font-head);font-weight:700;font-size:12px;line-height:1.2;color:var(--ink)}
.etb-itin-day.stay{background:#f2fbfc;border-color:#bfe7ec}
.etb-itin-day.bus{background:#fff3ee;border-color:#ffd6c6}
.etb-itin-day.boat{background:#eef6ff;border-color:#cfe4fb}
.etb-itin-day.tour{background:#f4f0ff;border-color:#ddd2f7}
.etb-itin-day .tag{display:inline-block;align-self:flex-start;margin-top:auto;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.3px;padding:2px 6px;border-radius:4px;color:#fff}
.etb-itin-day.bus .tag{background:var(--q-bus)}
.etb-itin-day.boat .tag{background:var(--q-boat)}
.etb-itin-day.tour .tag{background:var(--q-tour)}
.etb-itin-day.stay .tag{background:var(--q-stay)}
.etb-itin-day .dact{margin-top:3px;font-size:9.5px;color:var(--brand-primary);font-weight:700}
/* type icon — only used on the compact mobile calendar */
.etb-itin-day .ic{display:none}
.etb-itin-day .ic svg{width:20px;height:20px}
.etb-itin-day.stay .ic{color:var(--q-stay)}.etb-itin-day.bus .ic{color:var(--q-bus)}.etb-itin-day.boat .ic{color:var(--q-boat)}.etb-itin-day.tour .ic{color:var(--q-tour)}
/* // CSS NAME: trip-end / checkout day tile // */
.etb-itin-day.end{background:#e8fbf3;border-color:#b6ebd6;border-style:dashed}
.etb-itin-day.end .tag{background:var(--good,#1f9d6b)}
.etb-itin-day.end .ic{color:var(--good,#1f9d6b)}
.etb-itin-day.end .dt,.etb-itin-day.end .dn{color:var(--good,#1f9d6b)}
/* // CSS NAME: Tap-a-day details popup (mobile itinerary) // */
.etb-daypop{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2147483010;background:#fff;border-radius:14px;box-shadow:0 20px 60px rgba(16,40,55,.34);padding:20px 22px;width:min(88vw,340px);text-align:center;font-family:var(--font-body)}
.etb-daypop-h{font-family:var(--font-head);font-weight:800;font-size:13px;color:var(--ink-soft)}
.etb-daypop-loc{font-family:var(--font-head);font-weight:900;font-size:20px;margin:4px 0 8px;color:var(--ink)}
.etb-daypop-tag{display:inline-block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:#fff;padding:4px 12px;border-radius:999px}
.etb-daypop-tag.stay{background:var(--q-stay)}.etb-daypop-tag.bus{background:var(--q-bus)}.etb-daypop-tag.boat{background:var(--q-boat)}.etb-daypop-tag.tour{background:var(--q-tour)}.etb-daypop-tag.end{background:var(--good,#1f9d6b)}
.etb-daypop-d{font-size:12.5px;color:var(--ink-soft);margin-top:10px;line-height:1.5}
.etb-daypop-act{font-size:12.5px;color:var(--brand-primary);font-weight:700;margin-top:6px}
/* mobile: compact tap-able itinerary calendar — day number + type icon, tap for details */
@media (max-width:600px){
  .etb-itin-cal{gap:4px}
  .etb-itin-day{min-height:52px;padding:5px 2px;align-items:center;justify-content:center;text-align:center;gap:2px;cursor:pointer}
  .etb-itin-day .dt,.etb-itin-day .loc,.etb-itin-day .tag,.etb-itin-day .dact{display:none}
  .etb-itin-day .ic{display:block}
  .etb-itin-day .ic svg{width:18px;height:18px}
  .etb-itin-day .dn{font-size:8.5px}
  .etb-quote-body{padding:16px 14px 20px}
  .etb-quote-top{padding:18px 18px}
}
.etb-itin-list{list-style:none;border-left:2px solid var(--line);margin-left:8px}
.etb-itin-list li{position:relative;padding:0 0 16px 22px}
.etb-itin-list li::before{content:'';position:absolute;left:-7px;top:2px;width:12px;height:12px;border-radius:50%;background:var(--q-stay);border:2px solid #fff;box-shadow:0 0 0 2px var(--q-stay)}
.etb-itin-list li.bus::before{background:var(--q-bus);box-shadow:0 0 0 2px var(--q-bus)}
.etb-itin-list li.boat::before{background:var(--q-boat);box-shadow:0 0 0 2px var(--q-boat)}
.etb-itin-list li.tour::before{background:var(--q-tour);box-shadow:0 0 0 2px var(--q-tour)}
.etb-itin-list li.end::before{background:var(--good,#1f9d6b);box-shadow:0 0 0 2px var(--good,#1f9d6b)}
.etb-itin-list li b{font-family:var(--font-head);font-size:13.5px}
.etb-itin-list li .d{font-size:12px;color:var(--ink-soft)}
.etb-itin-list li .act{font-size:12px;color:var(--brand-primary);font-weight:700;margin-top:2px}
.etb-qprice{background:var(--surface-2);border-radius:12px;padding:16px 18px;margin-top:6px}
.etb-qprice .tot{display:flex;justify-content:space-between;align-items:baseline}
.etb-qprice .tot .amt{font-family:var(--font-head);font-weight:900;font-size:26px;color:var(--brand-primary)}
/* // CSS NAME: Quote group total (per-person x travellers) // */
.etb-qprice .tot.grand{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}
.etb-qprice .tot.grand span:first-child{font-weight:800}
.etb-qprice .tot.grand .amt{color:var(--brand-accent)}
.etb-qprice .conv{text-align:right;font-size:12px;color:var(--ink-soft);margin-top:2px}
/* // CSS NAME: Price guarantee block (quote popup + redeem view) // */
.etb-guarantee{margin-top:18px;padding:18px 20px;border-radius:12px}
.etb-guarantee h4{font-family:var(--font-head);font-weight:900;font-size:15px;letter-spacing:.6px;text-transform:uppercase;margin:0 0 7px}
.etb-guarantee .gtxt{font-size:12.5px;line-height:1.6}
.etb-guarantee .gtxt a{color:inherit;text-decoration:underline;font-weight:700}
/* // CSS NAME: Recommended extra-night note (cart + quote) // */
#etb-app .etb-recnight,.etb-recnight{margin:12px 4px 2px;background:#fff7ec;border:1px solid #ffd9a6;border-left:3px solid var(--brand-cta2,#ff9f19);border-radius:8px;padding:10px 12px;font-size:12px;line-height:1.5;color:var(--ink,#14202b)}
/* // CSS NAME: Route rule warning (impossible hop — required transit stop) // */
#etb-app .etb-routewarn{margin:0 4px 12px;background:#fdecec;border:1px solid #f5b5b5;border-left:4px solid #d63638;border-radius:8px;padding:10px 12px;font-size:12.5px;font-weight:600;line-height:1.45;color:#8a1f1f}
/* // CSS NAME: "Message our team" mini form (over the quote) // */
.etb-msgform{position:fixed;inset:0;z-index:2147483012;display:flex;align-items:center;justify-content:center;background:rgba(16,32,43,.5);padding:16px}
.etb-msgcard{position:relative;background:#fff;border-radius:16px;box-shadow:0 24px 70px rgba(16,40,55,.38);padding:24px 22px;width:min(92vw,420px);font-family:var(--font-body);color:var(--ink);max-height:90vh;overflow:auto}
.etb-msgclose{position:absolute;top:12px;right:12px;width:28px;height:28px;border-radius:50%;border:none;background:var(--surface-2);color:var(--ink);font-size:14px;cursor:pointer;line-height:1}
.etb-msgcard h3{font-family:var(--font-head);font-weight:900;font-size:19px;margin:0 30px 6px 0}
.etb-msgintro{font-size:12.5px;color:var(--ink-soft);line-height:1.5;margin-bottom:12px}
.etb-msgcard label{display:block;font-family:var(--font-head);font-weight:700;font-size:12.5px;margin-bottom:10px;color:var(--ink)}
.etb-msgcard label input[type=text],.etb-msgcard label input[type=email],.etb-msgcard label input[type=tel],.etb-msgcard label textarea{display:block;width:100%;margin-top:5px;border:1.5px solid var(--line);border-radius:var(--radius-sm);padding:11px 12px;font-size:14px;font-family:var(--font-body);font-weight:500;background:#fff;color:var(--ink)}
.etb-msgcard label input:focus,.etb-msgcard label textarea:focus{outline:none;border-color:var(--brand-primary)}
.etb-msgoptin{display:flex !important;align-items:flex-start;gap:8px;font-weight:600 !important;font-size:12px !important;line-height:1.4}
.etb-msgoptin input{width:16px;height:16px;margin-top:1px;flex:none}
.etb-msgcard .etb-btn{width:100%;background:var(--brand-teal,#00adbc);color:#fff;font-family:var(--font-head);font-weight:800;font-size:15px;padding:13px;border-radius:var(--radius-sm);border:none;cursor:pointer;margin-top:4px}
.etb-msgcard .etb-btn:hover{filter:brightness(.94)}
.etb-msgmsg{font-size:12.5px;color:var(--brand-accent-dark);margin-top:9px;text-align:center;font-weight:600}
.etb-msgdone{text-align:center;font-family:var(--font-head);font-weight:800;color:var(--good);font-size:16px;line-height:1.5;padding:14px 0}
.etb-msgdone span{color:var(--ink-soft);font-weight:500;font-size:12.5px}
/* // CSS NAME: Pay now / deposit block on the redeem page // */
.etb-pay{margin-top:18px;text-align:center}
.etb-pay-btn{display:inline-block;background:var(--brand-cta2,#ff9f19);color:#fff;font-family:var(--font-head);font-weight:900;font-size:16px;letter-spacing:.3px;text-decoration:none;padding:15px 30px;border-radius:999px;box-shadow:0 4px 14px rgba(0,0,0,.16);transition:filter .12s}
.etb-pay-btn:hover{filter:brightness(.95)}
.etb-pay-note{font-size:11.5px;color:var(--ink-soft);margin-top:9px}
/* // CSS NAME: Acknowledgement of Country (foot of quote) // */
.etb-acknowledgement{margin-top:16px;font-size:11px;font-style:italic;color:var(--ink-soft);line-height:1.6;text-align:center}
.etb-quote-contact{margin-top:20px;border-top:1px solid var(--line);padding-top:14px;font-size:12px;color:var(--ink-soft);display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}
.etb-quote-contact b{font-family:var(--font-head);color:var(--ink)}
.etb-quote-actions{display:flex;gap:10px;justify-content:flex-end;padding:14px 30px 26px;flex-wrap:wrap}
/* // CSS NAME: Quote popup footer buttons (Download PDF + Request this trip) //
   The quote sits on <body> (above the site menu), so it can't use the #etb-app
   button styles — these branded versions read the same colour variables. */
.etb-quote-actions .etb-btn{width:auto;font-family:var(--font-head);font-weight:800;font-size:15px;padding:12px 20px;border-radius:var(--radius-sm,10px);border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:filter .12s,background .12s,transform .08s;line-height:1}
.etb-quote-actions .etb-btn:active{transform:scale(.99)}
/* // CSS NAME: Quote "Request this trip" primary button (brand teal) // */
.etb-quote-actions #utbQuoteReq{background:var(--brand-quote,#00adbc);color:var(--brand-quote-text,#fff)}
.etb-quote-actions #utbQuoteReq:hover{filter:brightness(.94)}
/* // CSS NAME: Quote "Download PDF" secondary button (outline in brand teal) // */
.etb-quote-actions .etb-btn.ghost,.etb-quote-actions #utbPrint{background:#fff;color:var(--brand-teal,#00adbc);border:1.5px solid var(--brand-teal,#00adbc)}
.etb-quote-actions .etb-btn.ghost:hover,.etb-quote-actions #utbPrint:hover{background:var(--surface-2,#f2fbfc)}
/* white circular ✕ close icon, pinned in the header band */
.etb-quote{position:relative}
.etb-quote-x{position:absolute;top:16px;right:16px;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.18);border:1.5px solid rgba(255,255,255,.85);color:#fff;font-size:15px;line-height:1;font-weight:700;cursor:pointer;z-index:3;display:grid;place-items:center;transition:.12s}
.etb-quote-x:hover{background:rgba(255,255,255,.32)}
@media print{
  body.etb-printing *{visibility:hidden}
  body.etb-printing #etb-quote-overlay,body.etb-printing #etb-quote-overlay *{visibility:visible}
  body.etb-printing #etb-quote-overlay{position:absolute;inset:auto;background:#fff;padding:0}
  body.etb-printing .etb-quote{box-shadow:none;max-width:none}
  body.etb-printing .etb-quote-actions,body.etb-printing .etb-quote-close{display:none}
}

/* ===================== REDEEM QUOTE PAGE ===================== */
#etb-redeem{font-family:var(--font-body);color:var(--ink);line-height:1.5;font-weight:500;display:block}
#etb-redeem *{box-sizing:border-box}
#etb-redeem .etb-redeem-card{max-width:520px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}
#etb-redeem h3{font-family:var(--font-head);font-weight:800;font-size:18px;margin:0 0 6px}
#etb-redeem .etb-redeem-sub{font-size:13px;color:var(--ink-soft);margin-bottom:14px}
/* stacked, one field per line with the label on top */
#etb-redeem .etb-redeem-form{display:flex;flex-direction:column;gap:12px}
#etb-redeem .etb-rf{display:flex;flex-direction:column;gap:5px}
#etb-redeem .etb-rf label{font-family:var(--font-head);font-weight:700;font-size:12.5px;color:var(--ink)}
#etb-redeem .etb-redeem-form input{width:100%;border:1.5px solid var(--line);border-radius:var(--radius-sm);padding:12px 13px;font-size:14px;font-family:var(--font-body);background:#fff;color:var(--ink)}
#etb-redeem .etb-redeem-form input:focus{outline:none;border-color:var(--brand-primary)}
/* // CSS NAME: Redeem "View my itinerary" button (colour via --redeem-btn / settings) // */
#etb-redeem .etb-redeem-btn{width:100%;background:var(--redeem-btn,#00adbc);color:#fff;font-family:var(--font-head);font-weight:800;font-size:15px;padding:14px;border-radius:var(--radius-sm);border:none;cursor:pointer;margin-top:4px}
#etb-redeem .etb-redeem-btn:hover{filter:brightness(.94)}
/* // CSS NAME: Redeem — Contact team row under the lookup // */
#etb-redeem .etb-redeem-contact{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);text-align:center}
#etb-redeem .etb-redeem-contact span{display:block;font-size:12.5px;color:var(--ink-soft);margin-bottom:9px}
#etb-redeem .etb-redeem-contactbtn{background:#fff;color:var(--brand-primary,#0e7c86);border:1.5px solid var(--brand-primary,#0e7c86);font-family:var(--font-head);font-weight:800;font-size:13.5px;padding:10px 20px;border-radius:999px;cursor:pointer}
#etb-redeem .etb-redeem-contactbtn:hover{background:var(--brand-primary,#0e7c86);color:#fff}
#etb-redeem .etb-redeem-btn:disabled{background:#c9d2d8;filter:none}
#etb-redeem .etb-redeem-msg{font-size:13px;color:var(--brand-accent-dark);margin-top:10px;font-weight:600;text-align:center}
#etb-redeem-result .etb-quote{box-shadow:var(--shadow);border:1px solid var(--line)}
#etb-redeem-result .etb-btn{background:var(--brand-accent);color:#fff;font-family:var(--font-head);font-weight:800;font-size:15px;padding:13px;border-radius:var(--radius-sm);border:none;cursor:pointer;display:inline-flex;align-items:center;gap:7px}
#etb-redeem-result .etb-btn:hover{background:var(--brand-accent-dark)}
#etb-redeem-result .etb-btn.cta2{background:var(--brand-cta2)}

/* ---- optional info banner + travel-sooner callout ---- */
#etb-app .etb-infobar{font-size:13px;margin-bottom:16px;line-height:1.5}
#etb-app .etb-infobar a{color:var(--brand-primary);font-weight:700}
#etb-app .etb-sooner{margin-top:12px;font-size:var(--sooner-size,15px);background:var(--sooner-bg,var(--surface-2));border:1.5px dashed var(--sooner-border,var(--brand-primary));border-radius:var(--radius-sm);padding:12px 15px;color:var(--sooner-color,var(--ink));line-height:1.5}
#etb-app .etb-sooner a{color:var(--sooner-link,var(--brand-accent-dark));font-weight:800;white-space:nowrap}

/* ===================== FEATURE / INFO SECTION ("how the bus works") ===================== */
/* // CSS NAME: Info feature section wrapper // */
#etb-app .etb-infosec{position:relative;overflow:hidden;margin:0 0 18px;border-radius:14px}
/* // CSS NAME: Info section background image + readability tint // */
#etb-app .etb-infosec-bg{position:absolute;inset:0;background:center/cover no-repeat;z-index:0}
#etb-app .etb-infosec-tint{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,32,43,.30),rgba(10,32,43,.62));z-index:0}
/* // CSS NAME: Info section inner (padding/colour set inline from admin) // */
#etb-app .etb-infosec-in{position:relative;z-index:1}
/* // CSS NAME: Info section head row (heading + Learn more button) // */
#etb-app .etb-infosec-head{display:flex;align-items:center;justify-content:space-between;gap:14px}
/* // CSS NAME: Info section heading (LEFT aligned) // */
#etb-app .etb-infosec-in h3{font-family:var(--font-head);font-weight:800;font-size:19px;text-align:left;margin:0 0 6px}
#etb-app .etb-infosec-head h3{margin:0}
/* // CSS NAME: Header button group (OK PROCEED + LEARN MORE) // */
#etb-app .etb-infosec-headbtns{display:flex;gap:8px;align-items:center;flex:none}
/* OK PROCEED shown in the header stays compact like the Learn more pill */
#etb-app .etb-infosec-head .etb-infosec-proceed{padding:7px 14px;font-size:11px;letter-spacing:.5px;text-transform:uppercase;border-radius:999px}
/* // CSS NAME: "LEARN MORE" / CLOSE toggle button // */
#etb-app .etb-infosec-more{flex:none;background:transparent;border:1.5px solid currentColor;color:inherit;font-family:var(--font-head);font-weight:800;font-size:11px;letter-spacing:.5px;text-transform:uppercase;padding:7px 14px;border-radius:999px;cursor:pointer;transition:.15s;opacity:.95}
#etb-app .etb-infosec-more:hover{background:rgba(255,255,255,.16)}
/* // CSS NAME: Info section action buttons (OK PROCEED + MESSAGE TRAVEL TEAM) // */
#etb-app .etb-infosec-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
#etb-app .etb-infosec-proceed,#etb-app .etb-infosec-contact{font-family:var(--font-head);font-weight:800;font-size:13px;letter-spacing:.4px;text-transform:uppercase;padding:11px 20px;border-radius:999px;cursor:pointer;border:none;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;transition:filter .12s,background .12s}
/* // CSS NAME: Info "OK PROCEED" primary (brand teal #00adbc, white text) // */
#etb-app .etb-infosec-proceed{background:var(--brand-teal,#00adbc);color:#fff}
#etb-app .etb-infosec-proceed:hover{filter:brightness(.94)}
/* // CSS NAME: Info "MESSAGE TRAVEL TEAM" secondary (brand sun #ff9f19, white text) // */
#etb-app .etb-infosec-contact{background:var(--brand-cta2,#ff9f19);color:#fff;border:none}
#etb-app .etb-infosec-contact:hover{filter:brightness(.94)}
/* // CSS NAME: Info section collapsible body (hidden when collapsed) // */
#etb-app .etb-infosec-body{max-height:1600px;overflow:hidden;transition:max-height .35s ease,opacity .25s ease,margin .25s ease;opacity:1;margin-top:6px}
#etb-app .etb-infosec.collapsed .etb-infosec-body{max-height:0;opacity:0;margin-top:0}
#etb-app .etb-infosec.collapsed .etb-infosec-in h3{margin-bottom:0}
/* // CSS NAME: Info section body text // */
#etb-app .etb-infosec-txt{font-size:13.5px;line-height:1.55;text-align:left;max-width:760px}
#etb-app .etb-infosec-txt a{color:inherit;text-decoration:underline;font-weight:700}
/* // CSS NAME: Info section image gallery (horizontal scroll carousel) // */
#etb-app .etb-infosec-gal{display:flex;gap:10px;overflow-x:auto;margin-top:14px;padding-bottom:6px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
#etb-app .etb-infosec-gal::-webkit-scrollbar{height:7px}
#etb-app .etb-infosec-gal::-webkit-scrollbar-thumb{background:rgba(0,0,0,.22);border-radius:99px}
/* // CSS NAME: Info gallery single photo // */
#etb-app .etb-infosec-img{flex:0 0 auto;width:210px;height:132px;border-radius:10px;background:var(--surface-2) center/cover no-repeat;scroll-snap-align:start;box-shadow:0 2px 8px rgba(0,0,0,.14)}

/* // CSS NAME: TRAVEL PASS — style B (two column: text+features left, photo grid right) // */
/* INCLUDED pill + heading on ONE line, pill left, heading to its right */
#etb-app .etb-infosec--split .etb-infosec-headmain{display:flex;flex-direction:row;align-items:center;gap:12px;flex-wrap:wrap}
#etb-app .etb-infosec--split .etb-infosec-headmain h3{margin:0}
#etb-app .etb-infosec-badge{display:inline-flex;align-items:center;gap:6px;background:var(--brand-teal,#00adbc);color:#fff;font-family:var(--font-head);font-weight:800;font-size:11px;letter-spacing:.5px;text-transform:uppercase;padding:5px 12px;border-radius:999px}
#etb-app .etb-infosec-cols{display:grid;grid-template-columns:1.1fr .9fr;gap:22px;align-items:start;margin-top:12px}
#etb-app .etb-infosec-coll{min-width:0}
/* // CSS NAME: TRAVEL PASS USP text (intro + feature ticks) — edit --usp-size to resize // */
#etb-app .etb-infosec--split .etb-infosec-txt{margin:0 0 4px;font-size:var(--usp-size,15px);line-height:1.5}
#etb-app .etb-infosec-feats{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:9px 16px}
#etb-app .etb-infosec-feats li{display:flex;align-items:center;gap:9px;font-family:var(--font-head);font-weight:700;font-size:var(--usp-size,15px);color:inherit;line-height:1.3}
#etb-app .etb-infosec-feats li::before{content:"✓";flex:none;display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--brand-teal,#00adbc);color:#fff;font-size:12px;font-weight:900}
#etb-app .etb-infosec-grid{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:1fr;gap:8px}
#etb-app .etb-infosec-cell{background:var(--surface-2) center/cover no-repeat;border-radius:10px;min-height:98px;box-shadow:0 2px 8px rgba(0,0,0,.14)}
@media (max-width:640px){
  #etb-app .etb-infosec-cols{grid-template-columns:1fr;gap:16px}
  #etb-app .etb-infosec-feats{grid-template-columns:1fr;gap:8px}
  #etb-app .etb-infosec-cell{min-height:120px}
}

/* ===================== SKYDIVE / MULTI-LOCATION ACTIVITY PICKER ===================== */
/* ===================== ACTIVITIES GROUPED BY LOCATION ===================== */
/* // CSS NAME: Activity location group + heading (e.g. "Byron Bay") // */
#etb-app .etb-actgroup{margin-bottom:18px}
#etb-app .etb-actgroup-h{font-family:var(--font-head);font-weight:800;font-size:15px;color:var(--brand-primary);margin:0 0 10px;padding-bottom:6px;border-bottom:2px solid var(--line);display:flex;align-items:center;gap:7px}
#etb-app .etb-actgroup-h:before{content:"";width:9px;height:9px;border-radius:50%;background:var(--brand-accent)}
/* // CSS NAME: Activity section — heading row (Back top-right) + footer (Next bottom-right) // */
#etb-app .etb-acttop{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
#etb-app .etb-acttop .etb-actgroup-h{margin:0}
#etb-app .etb-actcat{display:inline-block;margin-left:9px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:#fff;background:var(--brand-accent);border-radius:999px;padding:3px 9px;vertical-align:middle}
#etb-app .etb-actfoot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
#etb-app .etb-actnav-pos{font-family:var(--font-head);font-weight:800;font-size:12px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.3px}
#etb-app .etb-actnav-btn{font-family:var(--font-head);font-weight:800;font-size:13px;padding:9px 16px;border-radius:999px;border:1.5px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;transition:.12s;white-space:nowrap;flex:none}
#etb-app .etb-actnav-btn:hover:not(:disabled){border-color:var(--brand-primary)}
#etb-app .etb-actnav-btn.primary{background:var(--brand-teal,#00adbc);border-color:var(--brand-teal,#00adbc);color:#fff}
#etb-app .etb-actnav-btn.primary:hover{filter:brightness(.94)}
/* // CSS NAME: Equal-size activity cards // */
/* // CSS NAME: activities grid — ALWAYS 3 per row // */
#etb-app .etb-grid--acts{grid-template-columns:repeat(3,1fr);gap:12px;align-items:stretch}
#etb-app .etb-grid--acts .etb-actcell{display:flex;flex-direction:column}
#etb-app .etb-grid--acts .etb-card{height:100%;min-height:210px}
#etb-app .etb-grid--acts .etb-card .body{display:flex;flex-direction:column;flex:1}
#etb-app .etb-grid--acts .etb-card .body p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
#etb-app .etb-grid--acts .etb-card .meta{margin-top:auto}
/* // CSS NAME: standalone "choose a location" activity — card + picker sized to one card // */
#etb-app .etb-actsingle{max-width:300px}
#etb-app .etb-actsingle .etb-card{min-height:210px}
#etb-app .etb-actsingle .etb-locpick{margin-top:10px}
/* // CSS NAME: activity nav — back+next groups (top-right + bottom) // */
#etb-app .etb-actnav-top{display:flex;gap:8px;flex:none;flex-wrap:nowrap}
#etb-app .etb-actnav-foot{display:flex;gap:8px;flex:none;flex-wrap:nowrap}
/* // CSS NAME: boat carousel — full width choice // */
#etb-app .etb-boats{width:100%}
/* keep the 3-across even on phones, just tighten spacing so cards still breathe */
@media (max-width:600px){
  #etb-app .etb-grid--acts{gap:7px}
  #etb-app .etb-grid--acts .etb-card{min-height:0}
  #etb-app .etb-grid--acts .etb-card .body{padding:8px}
  #etb-app .etb-grid--acts .etb-card .body h3{font-size:12px;line-height:1.2}
  #etb-app .etb-grid--acts .etb-card .body p{font-size:10.5px;-webkit-line-clamp:2}
  #etb-app .etb-grid--acts .etb-card .depart{font-size:9.5px}
  #etb-app .etb-actsingle{max-width:100%}
}
/* // CSS NAME: "Decide later via the Ultimate app" per-activity button // */
#etb-app .etb-act-later{margin-top:6px}
#etb-app .etb-later-btn{width:100%;background:transparent;border:1.5px dashed var(--brand-primary);color:var(--brand-primary);font-family:var(--font-head);font-weight:700;font-size:12px;padding:8px 12px;border-radius:var(--radius-sm);cursor:pointer;transition:.12s}
#etb-app .etb-later-btn:hover{background:var(--surface-2)}
#etb-app .etb-later-btn.on{background:var(--brand-primary);border-style:solid;color:#fff}
/* // CSS NAME: Activity card marked "deciding later" // */
#etb-app .etb-card.later{border-color:var(--brand-primary);background:#f2fbfc}
/* // CSS NAME: "Where do you want to skydive?" location picker // */
#etb-app .etb-locpick{margin-top:10px;padding:10px 12px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm)}
#etb-app .etb-locpick .lbl{font-family:var(--font-head);font-weight:800;font-size:12.5px;margin-bottom:8px;color:var(--ink)}
/* // CSS NAME: Location chip row // */
#etb-app .etb-locchips{display:flex;flex-wrap:wrap;gap:7px}
/* // CSS NAME: Single location chip (choose which stop) // */
#etb-app .etb-locchip{font-family:var(--font-head);font-weight:700;font-size:12px;padding:7px 13px;border-radius:999px;border:1.5px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;transition:.12s}
#etb-app .etb-locchip:hover{border-color:var(--brand-primary)}
#etb-app .etb-locchip.selected{background:var(--brand-accent);border-color:var(--brand-accent);color:#fff}

/* ===================== TRAVELLERS ("who are you travelling with") ===================== */
/* // CSS NAME: Fellow-traveller name/email rows // */
#etb-app .etb-trav-rows{display:flex;flex-direction:column;gap:8px;margin-top:4px}
#etb-app .etb-trav-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
#etb-app .etb-trav-row input{border:1.5px solid var(--line);border-radius:var(--radius-sm);padding:10px 11px;font-size:13.5px;font-family:var(--font-body);font-weight:500;background:#fff;color:var(--ink);width:100%}
#etb-app .etb-trav-row input:focus{outline:none;border-color:var(--brand-primary)}
/* // CSS NAME: "provide their details later" toggle // */
#etb-app .etb-trav-later{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;margin-bottom:10px;cursor:pointer}
#etb-app .etb-trav-later input{width:16px;height:16px}
@media (max-width:600px){ #etb-app .etb-trav-row{grid-template-columns:1fr} }

/* // CSS NAME: quote validity + expired state (redeem page) // */
.etb-valid{display:inline-block;margin-top:4px;font-size:11px;font-weight:800;letter-spacing:.02em;color:#1f9d6b}
.etb-valid.expired{color:#d63638}
.etb-quote.is-expired .etb-qprice .amt{opacity:.45;text-decoration:line-through}
/* // CSS NAME: expired banner + requote CTA // */
.etb-expired-banner{background:#fff4f4;border:1px solid #f3c2c2;color:#8a2b2b;border-radius:10px;padding:12px 14px;margin:0 0 16px;font-size:13px;line-height:1.5;font-weight:600}
.etb-expired-cta{display:inline-block;margin-top:6px;background:#00ADBC;color:#fff;text-decoration:none;font-weight:800;padding:8px 14px;border-radius:8px}
.etb-expired-cta:hover{filter:brightness(.94)}

/* // CSS NAME: reprice reload banner // */
#etb-app .etb-reload-banner{background:#e8f8fa;border:1px solid #b7e6ea;color:#0b6b74;border-radius:10px;padding:11px 14px;margin:0 0 14px;font-size:13px;font-weight:700;text-align:center}
#etb-app .etb-reload-banner.err{background:#fff4f4;border-color:#f3c2c2;color:#8a2b2b}

/* // CSS NAME: supplier references block (booking/final itinerary) // */
.etb-refs{border:1px solid var(--line,#e6edf0);border-radius:10px;overflow:hidden;margin-top:6px}
.etb-ref{display:flex;align-items:center;gap:10px;padding:8px 12px;font-size:12.5px;border-top:1px solid var(--line,#eef2f4)}
.etb-ref:first-child{border-top:none}
.etb-ref .c{font-weight:800;min-width:90px;color:var(--ink,#14202b)}
.etb-ref .n{flex:1;color:var(--ink-soft,#55636e)}
.etb-ref .r{font-weight:800;font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--brand-primary,#0e7c86);white-space:nowrap}
@media (max-width:600px){ .etb-ref{flex-wrap:wrap;gap:4px} .etb-ref .c{min-width:0} .etb-ref .n{flex:1 1 100%} }

/* // CSS NAME: cart "Book now" button (instant book) // */
#etb-app .etb-cart-cta .etb-btn.book{background:var(--brand-teal,#00adbc);color:#fff}
#etb-app .etb-cart-cta .etb-btn.book:hover:not(:disabled){filter:brightness(.94)}
#etb-app .etb-cart-cta .etb-btn.book:disabled{opacity:.5;cursor:not-allowed}

/* // CSS NAME: STEP 1 REDESIGN — city cards + date row + when-to-travel panel // */
#etb-app .etb-startnote{background:#eefafb;border-left:4px solid var(--brand-teal,#00adbc);border-radius:10px;padding:12px 15px;font-size:13.5px;line-height:1.5;color:var(--ink);margin:0 0 18px}
/* // CSS NAME: Step-1 sub-step heading e.g. "PICK YOUR START DATE" — edit --substep-size to resize // */
#etb-app .etb-substep{font-family:var(--font-head);font-weight:800;font-size:var(--substep-size,15px);letter-spacing:.5px;text-transform:uppercase;color:var(--brand-primary,#0e7c86);display:flex;align-items:center;gap:9px;margin:8px 0 12px}
@media (min-width:721px){ #etb-app .etb-substep{font-size:var(--substep-size-d,17px)} }
#etb-app .etb-substep .n{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--brand-teal,#00adbc);color:#fff;font-size:12px;font-weight:900;flex:none}
#etb-app .etb-substep .etb-when-sub{font-weight:600;text-transform:none;letter-spacing:0;color:var(--ink-soft)}
/* city cards */
#etb-app .etb-starts--cards{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:24px}
#etb-app .etb-citycard{display:flex;gap:14px;align-items:center;text-align:left;border:1.5px solid var(--line);border-radius:14px;padding:13px;background:#fff;cursor:pointer;transition:.14s;width:100%}
#etb-app .etb-citycard:hover{border-color:var(--brand-teal,#00adbc)}
#etb-app .etb-citycard.selected{border-color:var(--brand-teal,#00adbc);background:#f6fdfe;box-shadow:0 6px 20px rgba(0,173,188,.13)}
#etb-app .etb-cityav{flex:none;width:70px;height:70px;border-radius:12px;background:var(--surface-2) center/cover no-repeat}
#etb-app .etb-cityav--blank{display:grid;place-items:center;background:#eefafb;color:var(--brand-teal,#00adbc)}
#etb-app .etb-cityav--blank svg{width:26px;height:26px}
#etb-app .etb-citybody{flex:1;min-width:0}
#etb-app .etb-cityhead{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
#etb-app .etb-cityname{font-family:var(--font-head);font-weight:900;font-size:var(--start-city-size,19px);letter-spacing:.01em}
#etb-app .etb-citypop{background:var(--brand-teal,#00adbc);color:#fff;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;padding:3px 8px;border-radius:999px}
#etb-app .etb-citydir{font-size:12px;font-weight:700;color:var(--ink-soft)}
#etb-app .etb-cityfacts{display:grid;grid-template-columns:1fr 1fr;gap:5px 16px;margin-top:8px}
#etb-app .etb-cityfact{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;color:var(--ink)}
#etb-app .etb-cityfact svg{flex:none;width:16px;height:16px;color:var(--brand-teal,#00adbc);margin-top:1px}
#etb-app .etb-cityfact .k{color:var(--ink-soft);font-weight:700}
#etb-app .etb-citypick{flex:none;align-self:center;border:1.5px solid var(--brand-teal,#00adbc);color:var(--brand-teal,#00adbc);background:#fff;font-family:var(--font-head);font-weight:800;font-size:12.5px;padding:8px 15px;border-radius:999px;white-space:nowrap}
#etb-app .etb-citycard.selected .etb-citypick{background:var(--brand-teal,#00adbc);color:#fff}
#etb-app .etb-citycard--other{justify-content:center;color:var(--brand-primary);font-weight:800;text-decoration:none}
/* date row + calendar nav */
/* // CSS NAME: Step 1 date row (calendar left, "When to travel" panel right) — vertically centred // */
/* CSS NAME: etb-daterow (calendar + seasons row) — top-aligned so the calendar sits up */
#etb-app .etb-daterow{display:grid;grid-template-columns:1.15fr .85fr;gap:20px;align-items:start}
#etb-app .etb-cal-nav{width:44px;height:44px;border-radius:10px;background:var(--brand-teal,#00adbc);border:none;color:#fff;font-size:18px;font-weight:800;cursor:pointer;flex:none;display:grid;place-items:center;line-height:1;padding:0}
#etb-app .etb-cal-nav:hover{background:var(--brand-primary,#0e7c86)}
#etb-app .etb-monsel{flex:1;position:relative}
#etb-app .etb-monsel select{width:100%;height:44px;appearance:none;-webkit-appearance:none;border:1.5px solid var(--line);border-radius:10px;padding:0 34px 0 14px;font-family:var(--font-head);font-weight:800;font-size:var(--cal-month-size,16px);color:var(--ink);background:#fff;cursor:pointer}
#etb-app .etb-monsel:after{content:"\25BE";position:absolute;right:13px;top:50%;transform:translateY(-50%);color:var(--brand-teal,#00adbc);font-size:12px;pointer-events:none}
/* when-to-travel panel */
#etb-app .etb-seasons{border:1.5px solid var(--line);border-radius:14px;overflow:hidden}
#etb-app .etb-seasons-h{background:linear-gradient(120deg,var(--brand-teal,#00adbc),var(--brand-primary,#0e7c86));color:#fff;padding:13px 16px;font-family:var(--font-head);font-weight:800;font-size:15px}
#etb-app .etb-seasons-b{padding:14px 16px}
#etb-app .etb-season{display:flex;gap:11px;padding:9px 0;border-bottom:1px dashed var(--line)}
#etb-app .etb-season:last-child{border-bottom:none}
#etb-app .etb-season .dot{flex:none;width:12px;height:12px;border-radius:50%;margin-top:4px}
#etb-app .etb-season h4{margin:0 0 2px;font-family:var(--font-head);font-size:13.5px;font-weight:800}
#etb-app .etb-season p{margin:0;font-size:12.5px;color:var(--ink-soft);line-height:1.45}
#etb-app .etb-seasontip{background:#eefafb;border-radius:10px;padding:11px 13px;font-size:12.5px;color:var(--ink);margin-top:12px;line-height:1.5}
#etb-app .etb-seasons .etb-sooner{margin-top:14px;background:#fff;border:1.5px solid var(--brand-teal,#00adbc);border-radius:12px;padding:13px 15px;text-align:center;display:block}
#etb-app .etb-seasons .etb-sooner span{display:block;font-weight:700;font-size:var(--sooner-size,13.5px);color:var(--ink);margin-bottom:9px}
/* CSS NAME: etb-cal-sooner (travel-sooner card, now sits under the calendar) */
#etb-app .etb-cal .etb-sooner{margin-top:16px;background:#fff;border:1.5px solid var(--brand-teal,#00adbc);border-radius:12px;padding:13px 15px;text-align:center;display:block}
#etb-app .etb-cal .etb-sooner span{display:block;font-weight:700;font-size:var(--sooner-size,13.5px);color:var(--ink);margin-bottom:9px}
#etb-app .etb-sooner-btn{display:inline-block;background:var(--brand-teal,#00adbc);color:#fff;text-decoration:none;font-family:var(--font-head);font-weight:800;font-size:13px;padding:9px 18px;border-radius:999px}
#etb-app .etb-sooner-btn:hover{filter:brightness(.94)}
@media (max-width:820px){
  #etb-app .etb-daterow{grid-template-columns:1fr}
  #etb-app .etb-cityfacts{grid-template-columns:1fr}
  #etb-app .etb-citycard{flex-wrap:wrap}
  #etb-app .etb-citypick{align-self:flex-start}
}

/* // CSS NAME: promo / discount code (cart) // */
#etb-app .etb-total .row.disc .lbl{color:var(--good,#1f9d6b);font-weight:700}
#etb-app .etb-total .row.disc .amt{color:var(--good,#1f9d6b);font-weight:800}
#etb-app .etb-promo-row{margin:9px 0 0;width:100%}
#etb-app .etb-promo-in{display:flex;align-items:stretch;gap:6px}
#etb-app .etb-promo-in input{flex:1;min-width:0;height:34px;border:1.5px solid var(--line);border-radius:8px;padding:0 11px;font-family:var(--font-body);font-size:12.5px;background:#fff;color:var(--ink)}
#etb-app .etb-promo-in input:focus{outline:none;border-color:var(--brand-teal,#00adbc)}
#etb-app .etb-promo-in button{flex:none;height:34px;background:var(--brand-teal,#00adbc);color:#fff;border:none;border-radius:8px;font-family:var(--font-head);font-weight:800;font-size:12.5px;padding:0 16px;cursor:pointer}
#etb-app .etb-promo-in button:hover{filter:brightness(.94)}
#etb-app .etb-promo-in button:disabled{opacity:.5;cursor:not-allowed}
#etb-app .etb-promo-msg{font-size:12px;margin-top:6px;line-height:1.4}
#etb-app .etb-promo-msg.ok{color:var(--good,#1f9d6b);font-weight:700}
#etb-app .etb-promo-msg.err{color:#d63638;font-weight:700}
#etb-app .etb-promo-msg a{color:var(--brand-primary,#0e7c86);font-weight:700}
/* quote/redeem promo line */
.etb-qprice .tot.promo span,.etb-qprice .tot.promo .amt{color:var(--good,#1f9d6b);font-weight:700;font-size:13px}

/* // CSS NAME: cart 4-button CTA grid (view / contact / save / book) // */
/* Per-button colours are driven by inline --bg / --tx vars set from settings.
   !important is deliberate: it beats theme button styles so the colour shows
   AT REST (fixes the "white until hover" bug). */
/* Works in the cart (#etb-app .etb-cart-cta) AND the quote overlay
   (.etb-quote-actions, which is appended to <body>). */
.etb-btn.bview,.etb-btn.bcontact,.etb-btn.bsave,.etb-btn.bbook{
  background:var(--bg,var(--brand-accent))!important;
  color:var(--tx,#fff)!important;
  text-transform:uppercase;letter-spacing:.2px;border:none!important
}
.etb-btn.bview:hover:not(:disabled),.etb-btn.bcontact:hover:not(:disabled),
.etb-btn.bsave:hover:not(:disabled),.etb-btn.bbook:hover:not(:disabled){filter:brightness(.93)}
.etb-btn.bview:disabled,.etb-btn.bcontact:disabled,
.etb-btn.bsave:disabled,.etb-btn.bbook:disabled{
  background:#c9d2d8!important;color:#fff!important;cursor:not-allowed;filter:none
}

/* // CSS NAME: cart full-width grand total (multiple travellers) // */
#etb-app .etb-grandfull{
  padding:12px 16px;border-top:1px dashed var(--line);flex:none;
  display:flex;justify-content:space-between;align-items:baseline;gap:12px
}
#etb-app .etb-grandfull .lbl{font-family:var(--font-head);font-size:14px;font-weight:800;color:var(--ink)}
#etb-app .etb-grandfull .amt{font-family:var(--font-head);font-size:25px;font-weight:900;color:var(--brand-accent);line-height:1;white-space:nowrap}
#etb-app .etb-grandfull .fine{width:100%;font-size:11px;color:var(--ink-soft);margin-top:2px;font-weight:600}

/* // CSS NAME: promo placeholder smaller so it fits the narrow field // */
#etb-app .etb-promo-in input{font-size:11.5px}
#etb-app .etb-promo-in input::placeholder{font-size:8.5px;letter-spacing:0}
/* // CSS NAME: save button — smaller label so it stays on one line // */
.etb-cart-cta .etb-btn.bsave{font-size:11.5px;letter-spacing:0;white-space:nowrap;padding-left:6px;padding-right:6px}

/* // CSS NAME: quote meta — valid-until white/bold + STATUS badge // */
.etb-quote-top .etb-valid{color:#fff!important;font-weight:800}
.etb-quote-top .etb-valid.expired{color:#ffd5d5!important}
.etb-status{display:inline-block;background:rgba(255,255,255,.22);color:#fff;font-family:var(--font-head);font-weight:800;font-size:10.5px;letter-spacing:.5px;padding:2px 8px;border-radius:999px;vertical-align:middle}
/* // CSS NAME: inclusions per-activity date disclaimer // */
#etb-quote-overlay .etb-incl-note,.etb-quote .etb-incl-note{font-size:10.5px;color:var(--ink-soft);font-style:italic;font-weight:600}

/* =========================================================================
   // MOBILE BUILD (Aug 2026): header B, hidden scrollbars, simplified arrival
   card, activity slider, travel-pass bar. Approved from mobile-mockups. //
   ========================================================================= */

/* // Hide the "Decide later via app" button everywhere (per request) // */
#etb-app .etb-act-later{display:none!important}

/* // Travel Pass: mobile-only full-width Learn more bar (hidden on desktop) // */
#etb-app .etb-infosec-morebar{display:none}

@media (max-width:600px){
  /* ---- Header B: solid teal, no photo, centred ---- */
  #etb-app .etb-hero{background:var(--brand-teal,#00adbc)!important;color:#fff;text-align:center;padding:20px 18px!important;display:block!important;min-height:0!important;border-radius:var(--radius,16px)}
  #etb-app .etb-hero .hero-bg,#etb-app .etb-hero .hero-tint,#etb-app .etb-hero-chips,#etb-app .etb-hero .etb-eyebrow,#etb-app .etb-hero-start,#etb-app .etb-hero-noimg{display:none!important}
  #etb-app .etb-hero .etb-hero-text{padding:0!important}
  #etb-app .etb-hero .hero-title{color:#fff!important;font-size:20px!important;margin:0!important;line-height:1.15}
  #etb-app .etb-hero p,#etb-app .etb-hero #utbIntro{color:#fff!important;opacity:.95;font-size:12.5px!important;margin:6px 0 0!important;max-width:none}

  /* ---- Top steps: single-row rail, no wrap ---- */
  #etb-app .etb-steps{flex-wrap:nowrap;overflow-x:auto}
  #etb-app .etb-steps .etb-step-pill{flex:none}
  /* ---- Hide the horizontal scrollbars on the rails (peek invites the swipe) ---- */
  #etb-app .etb-steps,#etb-app .etb-grid--acts{scrollbar-width:none;-ms-overflow-style:none}
  #etb-app .etb-steps::-webkit-scrollbar,#etb-app .etb-grid--acts::-webkit-scrollbar{display:none;width:0;height:0}

  /* ---- Arrival card: image LEFT, name + direction + Select button on the RIGHT ---- */
  #etb-app .etb-citycard{display:grid;grid-template-columns:88px 1fr;grid-template-rows:auto auto;column-gap:12px;row-gap:9px;align-items:center;text-align:left;padding:12px}
  #etb-app .etb-cityav{grid-column:1;grid-row:1 / span 2;width:88px;height:88px;border-radius:11px;align-self:center}
  #etb-app .etb-citybody{grid-column:2;grid-row:1;width:auto;min-width:0}
  #etb-app .etb-cityhead{flex-direction:column;align-items:flex-start;gap:4px}
  #etb-app .etb-cityfacts{display:none}         /* hide Fly into / First stay / Getting there / Vibe */
  #etb-app .etb-cityname{text-align:left;font-size:17px}
  #etb-app .etb-citydir{text-align:left}
  #etb-app .etb-citypick{grid-column:2;grid-row:2;align-self:start;justify-self:stretch;width:100%;border-radius:10px;padding:11px;font-size:13.5px}
  #etb-app .etb-citycard--other{display:block;text-align:center}

  /* ---- Activities as a horizontal snap slider (one card + peek of the next) ---- */
  #etb-app .etb-grid--acts{display:flex!important;grid-template-columns:none!important;overflow-x:auto;gap:12px;scroll-snap-type:x mandatory;padding-bottom:4px;-webkit-overflow-scrolling:touch}
  #etb-app .etb-grid--acts .etb-actcell{flex:0 0 84%;scroll-snap-align:center}
  #etb-app .etb-grid--acts .etb-card{min-height:0}
  /* ---- Multi-location activity (Skydive / Scenic Flight): stack the heading + nav, drop the pill ---- */
  #etb-app .etb-acttop{flex-direction:column;align-items:stretch;gap:10px}
  #etb-app .etb-acttop .etb-actgroup-h{white-space:normal}
  #etb-app .etb-actcat{display:none}            /* remove the redundant "Choose a location" pill on mobile */
  #etb-app .etb-actnav-top{justify-content:flex-end}

  /* ---- Travel Pass: pill on its own line (left), intro visible, Learn more as a bottom bar ---- */
  #etb-app .etb-infosec-headbtns{display:none}        /* hide the top button on mobile */
  #etb-app .etb-infosec--split .etb-infosec-head{align-items:flex-start;text-align:left}
  #etb-app .etb-infosec--split .etb-infosec-headmain{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:8px}
  #etb-app .etb-infosec--split .etb-infosec-headmain h3{font-size:18px;line-height:1.2;text-align:left}
  #etb-app .etb-infosec--split .etb-infosec-txt{text-align:left}
  /* keep the intro paragraph visible when collapsed; only the feature list + photos hide */
  #etb-app .etb-infosec.collapsed .etb-infosec-body{max-height:none;opacity:1;overflow:visible;margin-top:6px}
  #etb-app .etb-infosec.collapsed .etb-infosec-feats,
  #etb-app .etb-infosec.collapsed .etb-infosec-colr{display:none}
  /* the bar INHERITS the section's text colour (fixes white-on-light) with a neutral divider */
  #etb-app .etb-infosec-morebar{display:flex;align-items:center;justify-content:center;gap:8px;box-sizing:border-box;width:calc(100% + 32px);background:transparent;color:inherit;border:none;border-top:1px solid rgba(127,127,127,.3);padding:13px;font-family:var(--font-head);font-weight:800;font-size:13px;letter-spacing:.3px;cursor:pointer;margin:14px -16px -16px;opacity:.95}
  #etb-app .etb-infosec-morebar:hover{background:rgba(127,127,127,.1)}
  #etb-app .etb-infosec-morebar .ar{transition:transform .2s}
  #etb-app .etb-infosec-morebar.open .ar{transform:rotate(180deg)}
}

/* // CSS NAME: activity pickup / make-your-own-way tag on the itinerary // */
#etb-quote-overlay .etb-pickup,.etb-quote .etb-pickup{font-size:11px;color:var(--brand-primary,#0e7c86);font-weight:700}

/* // CSS NAME: itinerary Calendar / List tabs (view-itinerary popup) // */
/* CSS NAME: etb-itintabs (Calendar / List toggle — segmented pill) */
.etb-quote .etb-itintabs{display:inline-flex;gap:4px;margin:0 0 14px;border:none;background:#eef3f5;padding:5px;border-radius:11px}
.etb-quote .etb-itintab{background:transparent;border:none;color:var(--ink-soft);font-family:var(--font-head);font-weight:800;font-size:13px;padding:9px 20px;border-radius:8px;cursor:pointer;margin:0}
.etb-quote .etb-itintab.on{background:var(--brand-teal,#00adbc);color:#fff;box-shadow:0 2px 6px rgba(0,173,188,.35)}
.etb-quote .etb-itinview{padding-top:14px}

/* // CSS NAME: eWAY payment options (redeem / itinerary page) // */
#etb-redeem .etb-pay-eway{margin-top:18px;border:1.5px solid var(--line);border-radius:14px;padding:18px;background:#fff}
#etb-redeem .etb-pay-h{font-family:var(--font-head);font-weight:900;font-size:15px;margin:0 0 14px;text-align:center;text-transform:uppercase;letter-spacing:.05em;color:var(--brand-primary,#0e7c86)}
#etb-redeem .etb-pay-sum{font-size:13px;color:var(--ink-soft);margin-bottom:12px}
#etb-redeem .etb-payopts{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
#etb-redeem .etb-payopt{display:flex;align-items:center;gap:11px;border:2px solid var(--line);border-radius:12px;padding:14px 16px;cursor:pointer;transition:.12s}
#etb-redeem .etb-payopt.on{border-color:var(--brand-cta2,#ff9f19);background:#fff8ee;box-shadow:0 4px 14px rgba(255,159,25,.14)}
#etb-redeem .etb-payopt input{accent-color:var(--brand-cta2,#ff9f19);width:19px;height:19px;flex:none}
#etb-redeem .etb-payopt .t{flex:1;font-family:var(--font-head);font-weight:800;font-size:14.5px}
#etb-redeem .etb-payopt .a{font-family:var(--font-head);font-weight:900;font-size:15px;color:var(--ink,#14202b)}
/* CSS NAME: etb-cust-field (the "enter your own amount" box — matched to the card fields) */
#etb-redeem .etb-cust-field{display:flex;align-items:center;gap:10px;border:1.5px solid var(--line,#e4e9ee);border-radius:10px;background:#fff;height:48px;padding:0 14px;margin:6px 0 4px;transition:border-color .12s}
#etb-redeem .etb-cust-field:focus-within{border-color:var(--brand-cta2,#ff9f19)}
#etb-redeem .etb-cust-field .cur{flex:0 0 auto;font-family:var(--font-head);font-weight:900;font-size:18px;line-height:1;color:var(--ink-soft,#55636e)}
#etb-redeem .etb-cust-field input{flex:1;min-width:0;height:44px;border:0;outline:0;background:transparent;font-family:var(--font-head);font-weight:900;font-size:18px;line-height:44px;color:var(--ink,#14202b)}
#etb-redeem .etb-cust-field .aud{flex:0 0 auto;font-family:var(--font-head);font-weight:800;font-size:12px;letter-spacing:.05em;color:var(--ink-soft,#55636e)}
#etb-redeem .etb-pay-eway .etb-pay-btn{width:100%;background:var(--brand-cta2,#ff9f19);color:#fff !important;font-family:var(--font-head);font-weight:800;font-size:15px;padding:14px;border:none;border-radius:10px;cursor:pointer}
#etb-redeem .etb-pay-eway .etb-pay-btn:hover{filter:brightness(.95)}
#etb-redeem .etb-pay-eway .etb-pay-btn:disabled{opacity:.6;cursor:not-allowed}
#etb-redeem .etb-pay-note{font-size:11.5px;color:var(--ink-soft);margin-top:8px;line-height:1.5}
#etb-redeem .etb-pay-msg{font-size:12.5px;color:#d63638;font-weight:700;margin-top:8px}
#etb-redeem .etb-pay-done .etb-paybadge{display:inline-block;background:var(--good,#1f9d6b);color:#fff;font-family:var(--font-head);font-weight:800;font-size:14px;padding:8px 16px;border-radius:999px}
/* payment return banner */
#etb-redeem .etb-pay-return,.etb-pay-return{max-width:520px;margin:0 auto 16px;border-radius:12px;padding:14px 16px;font-size:14px;background:#eef7ff;border:1px solid #cfe4fb;color:#14202b}
.etb-pay-return.ok{background:#e8fbf3;border-color:#b6ebd6}
.etb-pay-return.err{background:#fff1f1;border-color:#f6c9c9;color:#8a2b2b}

/* ===================== BOOKING PORTAL (redeem page) ===================== */
/* // PORTAL-STANDALONE // */
#etb-redeem.utb-standalone{max-width:1120px;margin:0 auto;background:#fff}
/* // PORTAL-TOPBAR // */
#etb-redeem .utb-pt-topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 26px;border-bottom:1px solid var(--line,#e4e9ee);flex-wrap:wrap}
#etb-redeem .utb-pt-logo{height:44px;max-width:220px;display:block}
#etb-redeem .utb-pt-logotxt{font-family:var(--font-head);font-weight:900;font-size:28px;letter-spacing:1px;color:var(--brand-primary,#12324a)}
#etb-redeem .utb-pt-topright{display:flex;align-items:center;gap:18px;flex-wrap:wrap;justify-content:flex-end}
#etb-redeem .utb-pt-contact{text-align:right;font-size:12.5px;color:var(--ink-soft,#55636e);line-height:1.5}
#etb-redeem .utb-pt-contact b{color:var(--ink,#14202b);font-family:var(--font-head)}
#etb-redeem .utb-pt-topbtns{display:flex;gap:8px;flex-wrap:wrap}
#etb-redeem .utb-pt-btn{font-family:var(--font-head);font-weight:800;font-size:12.5px;border-radius:999px;padding:9px 15px;cursor:pointer;border:1.5px solid var(--line,#e4e9ee);background:#fff;color:var(--ink,#14202b);text-decoration:none;display:inline-block}
#etb-redeem .utb-pt-btn.ghost:hover{border-color:var(--brand-teal,#00adbc)}
#etb-redeem .utb-pt-btn.teal{background:var(--brand-cta2,#ff9f19);border-color:var(--brand-cta2,#ff9f19);color:#fff}
#etb-redeem .utb-pt-btn.blue{background:var(--brand-primary,#12324a);border-color:var(--brand-primary,#12324a);color:#fff}
#etb-redeem .utb-pt-body{padding:26px}
/* // PORTAL-HERO // */
#etb-redeem .utb-pt-hero{background:linear-gradient(135deg,var(--brand-teal,#00adbc),var(--brand-primary,#0e7c86));color:#fff;border-radius:16px;padding:22px 24px;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}
#etb-redeem .utb-pt-hero .l .lbl{font-family:var(--font-head);font-weight:800;font-size:11px;letter-spacing:1.5px;opacity:.85}
#etb-redeem .utb-pt-hero .l .num{font-family:var(--font-head);font-weight:900;font-size:30px;line-height:1.1;margin:2px 0;color:#fff}
#etb-redeem .utb-pt-hero .l .nm{font-size:14px;opacity:.95}
#etb-redeem .utb-pt-hero .r{text-align:right;font-size:13px;line-height:1.6}
#etb-redeem .utb-pt-countdown{margin-top:12px;display:inline-flex;align-items:baseline;gap:8px;background:rgba(255,255,255,.16);padding:8px 14px;border-radius:999px}
#etb-redeem .utb-pt-countdown b{font-family:var(--font-head);font-weight:900;font-size:20px}
/* // PORTAL-STATUS-TRIO // */
/* CSS NAME: utb-pt-status (booking / payment / documents status cards) */
#etb-redeem .utb-pt-status{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:18px 0}
#etb-redeem .utb-pt-stat{position:relative;background:#fff;border:1px solid #eaeef1;border-radius:16px;padding:15px 16px 16px 22px;box-shadow:0 5px 16px rgba(16,50,60,.07);overflow:hidden}
#etb-redeem .utb-pt-stat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:#9aa7b1}
#etb-redeem .utb-pt-stat.s-green:before{background:#1f9d6b}
#etb-redeem .utb-pt-stat.s-amber:before{background:#ff9f19}
#etb-redeem .utb-pt-stat.s-red:before{background:#d63638}
#etb-redeem .utb-pt-stat.s-grey:before{background:#9aa7b1}
#etb-redeem .utb-pt-stat .k{font-family:var(--font-head);font-weight:800;font-size:10.5px;letter-spacing:.8px;text-transform:uppercase;color:var(--ink-soft,#55636e)}
#etb-redeem .utb-pt-stat .v{font-family:var(--font-head);font-weight:900;font-size:15px;margin-top:10px;display:inline-flex;align-items:center;gap:8px;padding:6px 13px 6px 11px;border-radius:999px;background:#eef1f3;color:var(--ink,#14202b)}
#etb-redeem .utb-pt-stat.s-green .v{background:#e7f7f0;color:#127a51}
#etb-redeem .utb-pt-stat.s-amber .v{background:#fff3e0;color:#a56800}
#etb-redeem .utb-pt-stat.s-red .v{background:#fdecec;color:#b3282a}
#etb-redeem .utb-pt-stat.s-grey .v{background:#eef1f3;color:#5a636e}
#etb-redeem .utb-pt-stat .dot{width:8px;height:8px;border-radius:50%;display:inline-block}
#etb-redeem .utb-pt-stat .dot.green{background:#1f9d6b}#etb-redeem .utb-pt-stat .dot.amber{background:#ff9f19}#etb-redeem .utb-pt-stat .dot.red{background:#d63638}#etb-redeem .utb-pt-stat .dot.grey{background:#9aa7b1}
/* // PORTAL-ACTIONS // */
#etb-redeem .utb-pt-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:8px}
#etb-redeem .utb-pt-actions .utb-pt-btn{padding:12px 18px;font-size:13.5px}
/* // PORTAL-SECTION-TABS // */
/* CSS NAME: utb-pt-sectabs (Itinerary / Payments / Documents — segmented, bigger) */
#etb-redeem .utb-pt-sectabs{display:flex;gap:8px;background:#eef3f5;padding:7px;border-radius:16px;margin:22px 0 6px;flex-wrap:wrap}
#etb-redeem .utb-pt-sectab{flex:1 1 auto;min-width:150px;font-family:var(--font-head);font-weight:800;font-size:15.5px;padding:15px 18px;border:none;background:transparent;color:var(--ink-soft,#55636e);cursor:pointer;border-radius:11px;text-align:center}
#etb-redeem .utb-pt-sectab.on{background:#fff;color:var(--brand-primary,#0e7c86);box-shadow:0 4px 12px rgba(16,50,60,.12)}
#etb-redeem .utb-pt-sec{display:none;padding:18px 2px}
#etb-redeem .utb-pt-sec.on{display:block}
/* // PORTAL-PAYMENTS // */
#etb-redeem .utb-pt-paybar{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;background:var(--surface,#f4f7f9);border-radius:12px;padding:14px 16px;margin-bottom:14px}
#etb-redeem .utb-pt-paybar .k{font-size:11px;color:var(--ink-soft,#55636e);font-family:var(--font-head);font-weight:700;text-transform:uppercase;letter-spacing:.5px}
#etb-redeem .utb-pt-paybar .v{font-family:var(--font-head);font-weight:900;font-size:18px;margin-top:3px}

/* CSS NAME: utb-pt-pills (compact Quote / Unpaid / Not-finalised status chips) */
#etb-redeem .utb-pt-pills{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}
#etb-redeem .utb-pt-pill{font-family:var(--font-head);font-weight:800;font-size:11px;letter-spacing:.03em;text-transform:uppercase;padding:7px 13px;border-radius:999px;display:inline-flex;align-items:center;gap:7px;background:#eef1f3;color:#5a636e}
#etb-redeem .utb-pt-pill i{width:8px;height:8px;border-radius:50%;background:#9aa7b1}
#etb-redeem .utb-pt-pill.s-green{background:#e7f7f0;color:#127a51}#etb-redeem .utb-pt-pill.s-green i{background:#1f9d6b}
#etb-redeem .utb-pt-pill.s-amber{background:#fff3e0;color:#a56800}#etb-redeem .utb-pt-pill.s-amber i{background:#ff9f19}
#etb-redeem .utb-pt-pill.s-red{background:#fdecec;color:#b3282a}#etb-redeem .utb-pt-pill.s-red i{background:#d63638}
#etb-redeem .utb-pt-pill.s-grey{background:#eef1f3;color:#5a636e}#etb-redeem .utb-pt-pill.s-grey i{background:#9aa7b1}

/* CSS NAME: utb-pt-balbanner (bold "balance owing" banner — Mock B) */
#etb-redeem .utb-pt-balbanner{background:linear-gradient(135deg,#0e2a30,#0e7c86);border-radius:18px;padding:24px 26px;color:#fff;margin-bottom:16px}
#etb-redeem .utb-pt-balbanner.is-paid{background:linear-gradient(135deg,#0e2a30,#1f9d6b)}
#etb-redeem .utb-pt-balbanner .lab{font-family:var(--font-head);font-weight:800;font-size:11px;letter-spacing:.1em;text-transform:uppercase;opacity:.8}
#etb-redeem .utb-pt-balbanner .big{font-family:var(--font-head);font-weight:900;font-size:42px;line-height:1;margin:6px 0 4px}
#etb-redeem .utb-pt-balbanner .big .cur{font-size:19px;font-weight:800;opacity:.85}
#etb-redeem .utb-pt-balbanner .due{font-size:13px;opacity:.92}
#etb-redeem .utb-pt-balbanner .mini{display:flex;gap:28px;margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.18)}
#etb-redeem .utb-pt-balbanner .mini .k{font-family:var(--font-head);font-weight:800;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;opacity:.75}
#etb-redeem .utb-pt-balbanner .mini .val{font-family:var(--font-head);font-weight:900;font-size:16px;margin-top:3px}
#etb-redeem .utb-pt-balbanner .mini .val.paid{color:#8ef0c4}
#etb-redeem .utb-pt-paytable{width:100%;border-collapse:collapse;font-size:13.5px;margin-top:6px}
#etb-redeem .utb-pt-paytable th{text-align:left;font-family:var(--font-head);font-size:11px;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-soft,#55636e);padding:8px 10px;border-bottom:2px solid var(--line,#e4e9ee)}
#etb-redeem .utb-pt-paytable td{padding:11px 10px;border-bottom:1px solid var(--line,#e4e9ee)}
#etb-redeem .utb-pt-paytable .amt{font-family:var(--font-head);font-weight:800}
/* // PORTAL-DOCS // */
#etb-redeem .utb-pt-doc{display:flex;align-items:center;gap:13px;border:1.5px solid var(--line,#e4e9ee);border-radius:12px;padding:13px 15px;margin-bottom:10px}
#etb-redeem .utb-pt-doc .ic{width:38px;height:38px;border-radius:9px;background:#fdecec;color:#d63638;display:flex;align-items:center;justify-content:center;font-family:var(--font-head);font-weight:900;font-size:11px;flex:none}
#etb-redeem .utb-pt-doc .nm{font-family:var(--font-head);font-weight:800;font-size:14px}
#etb-redeem .utb-pt-doc .mt{font-size:12px;color:var(--ink-soft,#55636e)}
#etb-redeem .utb-pt-doc a{margin-left:auto;color:var(--brand-teal,#00adbc);font-weight:800;text-decoration:none;font-size:13px}
#etb-redeem .utb-pt-docnote{font-size:12.5px;color:var(--ink-soft,#55636e);background:var(--surface,#f4f7f9);border-radius:10px;padding:11px 13px;margin-top:6px}
#etb-redeem .utb-pt-empty{color:var(--ink-soft,#55636e);font-size:13.5px;padding:16px;text-align:center;border:1.5px dashed var(--line,#e4e9ee);border-radius:12px}
/* // PORTAL-FOOTER // */
#etb-redeem .utb-pt-footer{border-top:1px solid var(--line,#e4e9ee);padding:16px 26px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;color:var(--ink-soft,#55636e);font-size:12px}
#etb-redeem .utb-pt-admin{color:#9aa7b1;text-decoration:none;font-size:11.5px}
#etb-redeem .utb-pt-admin:hover{color:var(--brand-teal,#00adbc)}
@media(max-width:680px){#etb-redeem .utb-pt-status{grid-template-columns:1fr}}

/* ===================== SALES ADMIN (front-end team dashboard) ===================== */
/* // SA-APP // */
#utb-sales-app{max-width:1200px;margin:0 auto;background:#fff;border-radius:14px;overflow:hidden;font-family:var(--font-body,'Work Sans',Arial,sans-serif);color:var(--ink,#14202b)}
.utb-sa-login{max-width:460px;margin:60px auto;text-align:center}
.utb-sa-login .in{background:#fff;border-radius:14px;padding:36px 30px;box-shadow:0 10px 34px rgba(20,40,60,.12)}
.utb-sa-login p{color:var(--ink-soft,#55636e);font-size:14px;margin:14px 0 20px}
.utb-sa-login p.sm{font-size:12px;margin-top:18px}
.utb-sa-loginbtn,.utb-sa-login a.utb-sa-loginbtn{display:inline-block;background:var(--brand-teal,#00adbc);color:#fff!important;text-decoration:none;font-family:var(--font-head);font-weight:800;padding:13px 26px;border-radius:10px}
.utb-sa-loginbtn:hover,.utb-sa-loginbtn:focus{color:#fff!important;opacity:.92}
/* // SA-TOPBAR //  white bar, dark text */
.utb-sa-top{display:flex;align-items:center;justify-content:space-between;padding:12px 22px;background:#ffffff;color:#14202b;border-bottom:1px solid var(--line,#e4e9ee)}
.utb-sa-top .brand{display:flex;align-items:center;gap:12px}
.utb-sa-top .brand .lg{font-family:var(--font-head);font-weight:900;font-size:22px;letter-spacing:1px;color:var(--brand-primary,#12324a)}
.utb-sa-top .brand img{max-height:30px;display:block}
.utb-sa-top .brand .tag{font-family:var(--font-head);font-weight:800;font-size:16px;letter-spacing:1.5px;color:#14202b;border-left:1px solid var(--line,#e4e9ee);padding-left:14px}
.utb-sa-top .u{font-size:12.5px;text-align:right;line-height:1.5;color:#33424e}
.utb-sa-top .u b{color:#14202b}
.utb-sa-top .u a{color:var(--brand-primary,#12324a);text-decoration:none;font-weight:600}
.utb-sa-top .u a:hover{color:var(--brand-teal,#00adbc)}
/* pull the standalone app right up to the top */
#utb-sales-app{margin-top:0!important}
/* // SA-KPIS // */
.utb-sa-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;padding:18px 22px}
.utb-sa-kpi{border:1.5px solid var(--line,#e4e9ee);border-radius:12px;padding:13px 15px}
.utb-sa-kpi .k{font-family:var(--font-head);font-weight:800;font-size:10.5px;letter-spacing:.6px;text-transform:uppercase;color:var(--ink-soft,#55636e)}
.utb-sa-kpi .v{font-family:var(--font-head);font-weight:900;font-size:26px;margin-top:4px}
.utb-sa-kpi.warn .v{color:var(--amber,#ff9f19)}.utb-sa-kpi.good .v{color:#1f9d6b}.utb-sa-kpi.tealv .v{color:var(--brand-primary,#0e7c86)}
/* // SA-FILTERS // */
.utb-sa-filters{display:flex;gap:10px;flex-wrap:wrap;padding:0 22px 14px;align-items:center}
.utb-sa-filters input,.utb-sa-filters select{padding:9px 12px;border:1.5px solid var(--line,#e4e9ee);border-radius:9px;font-size:13px;font-family:inherit}
.utb-sa-filters input.search{flex:1;min-width:220px}
/* // SA-TABLE // */
.utb-sa-tablewrap{padding:0 22px 24px}
.utb-sa-table{width:100%;border-collapse:collapse;font-size:13.5px}
.utb-sa-table th{text-align:left;font-family:var(--font-head);font-size:11px;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-soft,#55636e);padding:10px;border-bottom:2px solid var(--line,#e4e9ee)}
.utb-sa-table td{padding:12px 10px;border-bottom:1px solid var(--line,#e4e9ee)}
.utb-sa-table tr[data-id]:hover td{background:#f8fbfc;cursor:pointer}
.utb-sa-table .q{font-family:var(--font-head);font-weight:800;color:var(--brand-primary,#0e7c86)}
.utb-sa-table .sub{color:#8a97a0;font-size:12px}
.utb-sa-pill{display:inline-block;font-family:var(--font-head);font-weight:800;font-size:10.5px;padding:3px 10px;border-radius:999px;color:#fff}
.utb-sa-pill.quote{background:#9aa7b1}.utb-sa-pill.booked{background:#1f9d6b}.utb-sa-pill.cancel{background:#d63638}
.utb-sa-pill.soft{background:rgba(255,255,255,.25)}
/* CSS NAME: utb-sa-pill-agent (internal 'assigned agent' badge in the sales portal header) */
.utb-sa-pill.agent{background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.5)}
/* CSS NAME: utb-sa-agentpill (colour-coded assigned-agent chip — colours set inline per agent) */
.utb-sa-agentpill{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.02em;border:1px solid transparent;border-radius:999px;padding:3px 11px;white-space:nowrap}
.utb-sa-table .pay{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:12.5px}
.utb-sa-table .dot,.utb-sa-dhead .dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.utb-sa-table .dot.green{background:#1f9d6b}.utb-sa-table .dot.amber{background:#ff9f19}.utb-sa-table .dot.red{background:#d63638}.utb-sa-table .dot.grey{background:#9aa7b1}
.utb-sa-open{background:var(--brand-teal,#00adbc);color:#fff;border:none;border-radius:8px;padding:7px 13px;font-family:var(--font-head);font-weight:800;font-size:12px;cursor:pointer}
/* // SA-DETAIL // */
.utb-sa-drawerwrap{padding:22px}
.utb-sa-back{background:none;border:none;color:var(--brand-primary,#0e7c86);font-family:var(--font-head);font-weight:800;font-size:13px;cursor:pointer;padding:0;margin-bottom:14px}
.utb-sa-dhead{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;background:linear-gradient(135deg,var(--brand-teal,#00adbc),var(--brand-primary,#0e7c86));color:#fff;border-radius:14px;padding:20px 22px}
.utb-sa-dhead .num{font-family:var(--font-head);font-weight:900;font-size:26px}
.utb-sa-dhead .nm{font-size:13.5px;opacity:.95}
.utb-sa-dhead .r{text-align:right;font-size:12.5px;line-height:1.7}
.utb-sa-cols{display:grid;grid-template-columns:1.3fr 1fr;gap:18px;margin-top:18px}
.utb-sa-card{border:1.5px solid var(--line,#e4e9ee);border-radius:12px;padding:16px}
.utb-sa-card h4{font-family:var(--font-head);margin:0 0 12px;font-size:14px}
.utb-sa-card .sub{color:#8a97a0;font-size:11px;font-weight:400}
.utb-sa-row{display:flex;justify-content:space-between;font-size:13px;padding:7px 0;border-bottom:1px solid var(--line,#e4e9ee)}
.utb-sa-mini{width:100%;border-collapse:collapse;font-size:12.5px;margin-top:6px}
.utb-sa-mini th{text-align:left;color:var(--ink-soft,#55636e);font-size:10px;text-transform:uppercase;padding:6px 6px;border-bottom:1.5px solid var(--line,#e4e9ee)}
.utb-sa-mini td{padding:8px 6px;border-bottom:1px solid var(--line,#e4e9ee)}
.utb-sa-mini .void{color:#d63638;text-decoration:none;font-weight:700}
.utb-sa-form label{display:block;font-family:var(--font-head);font-weight:700;font-size:11.5px;margin:8px 0 3px}
.utb-sa-form input,.utb-sa-form select,.utb-sa-form textarea{width:100%;padding:9px 11px;border:1.5px solid var(--line,#e4e9ee);border-radius:8px;font-size:13px;font-family:inherit}
.utb-sa-grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.utb-sa-card .lbl{display:block;font-family:var(--font-head);font-weight:700;font-size:11.5px;margin:2px 0 3px}
.utb-sa-btn{background:var(--brand-teal,#00adbc);color:#fff;border:none;border-radius:8px;padding:10px 16px;font-family:var(--font-head);font-weight:800;font-size:13px;cursor:pointer;margin-top:10px}
.utb-sa-btn.ghost{background:#fff;color:var(--ink,#14202b);border:1.5px solid var(--line,#e4e9ee)}
.utb-sa-msg{font-size:12px;color:#1f9d6b;font-weight:700;margin-left:8px}
.utb-sa-doc{display:flex;align-items:center;gap:10px;border:1.5px solid var(--line,#e4e9ee);border-radius:9px;padding:9px 11px;margin-bottom:8px;font-size:12.5px}
.utb-sa-doc .ic{background:#fdecec;color:#d63638;font-weight:800;border-radius:5px;padding:3px 6px;font-size:10px}
.utb-sa-doc .sub{color:#8a97a0}
.utb-sa-doc a{margin-left:auto;color:var(--brand-primary,#0e7c86);text-decoration:none;font-weight:700}
@media(max-width:900px){.utb-sa-kpis{grid-template-columns:repeat(2,1fr)}.utb-sa-cols{grid-template-columns:1fr}}

/* ===================== SALES ADMIN — v2.15 tweaks ===================== */
/* // SA-CARD-HEADER //  section headings (Payments / Status / Internal notes / Final documents).
   Edit font-weight here (600 or 700) to taste. */
#utb-sales-app .utb-sa-card h4{font-weight:700;color:var(--ink,#14202b);letter-spacing:.1px}
#utb-sales-app .utb-sa-card h4 .sub{font-weight:600;color:#8a97a0}
/* voucher/adjustment helper text + optgroups */
#utb-sales-app .utb-sa-form select optgroup{font-weight:700}
/* customer portal section headings also heavier */
#etb-redeem .utb-pt-sec h3,#etb-redeem .utb-pt-hero .lbl{font-weight:700}

/* ===================== SALES ADMIN — itinerary editor ===================== */
#utb-sales-app .itHead{display:grid;grid-template-columns:22px 90px 150px 1.3fr 1.3fr 1fr 52px 64px;gap:8px;padding:4px 6px;font-size:10px;text-transform:uppercase;letter-spacing:.4px}
#utb-sales-app .itRow{display:grid;grid-template-columns:22px 90px 150px 1.3fr 1.3fr 1fr 52px 64px;gap:8px;align-items:center;background:#fff;border:1.5px solid var(--line,#e4e9ee);border-radius:9px;padding:6px 6px;margin-bottom:6px}
#utb-sales-app .itRow.itDrag{opacity:.5;border-color:var(--brand-teal,#00adbc)}
#utb-sales-app .itHandle{cursor:grab;color:#9aa7b1;font-weight:700;text-align:center;user-select:none}
#utb-sales-app .itDate{font-size:11px;color:var(--ink-soft,#55636e);font-weight:700}
#utb-sales-app .itRow select,#utb-sales-app .itRow input{padding:7px 8px;border:1.5px solid var(--line,#e4e9ee);border-radius:7px;font-size:12.5px;font-family:inherit;width:100%}
#utb-sales-app .itRow .itDel{background:#fff;border:1.5px solid #f2c0c0;color:#d63638;border-radius:7px;padding:6px 4px;font-size:11px;font-weight:700;cursor:pointer}
@media(max-width:900px){#utb-sales-app .itHead{display:none}#utb-sales-app .itRow{grid-template-columns:1fr 1fr;gap:6px}}

/* ===================== SALES ADMIN — sortable column headers ===================== */
#utb-sales-app .utb-sa-table th.sortable{cursor:pointer;user-select:none;white-space:nowrap}
#utb-sales-app .utb-sa-table th.sortable:hover{color:var(--brand-primary,#12324a)}
#utb-sales-app .utb-sa-table th.sortable.on{color:var(--brand-teal,#00adbc)}
#utb-sales-app .utb-sa-table th.sortable.on::after{content:"";display:inline-block;margin-left:6px;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;vertical-align:middle}
#utb-sales-app .utb-sa-table th.sortable.on.asc::after{border-bottom:5px solid currentColor}
#utb-sales-app .utb-sa-table th.sortable.on.desc::after{border-top:5px solid currentColor}

/* ===================== SALES ADMIN — filters one line + clearer search ===================== */
#utb-sales-app .utb-sa-filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
/* every filter control + button is the same height so the whole row lines up */
#utb-sales-app .utb-sa-filters input,#utb-sales-app .utb-sa-filters select,#utb-sales-app .utb-sa-filters .utb-sa-btn{width:auto!important;flex:0 0 auto;height:46px;box-sizing:border-box;margin:0;line-height:normal;vertical-align:middle}
#utb-sales-app .utb-sa-filters input.search{flex:1 1 260px;min-width:220px;border:2px solid var(--brand-teal,#00adbc);background:#fff;color:#14202b;font-size:14px;padding:0 14px;font-weight:600}
#utb-sales-app .utb-sa-filters input.search::placeholder{color:#55636e;font-weight:400}
#utb-sales-app .utb-sa-filters select{padding:0 30px 0 12px;font-size:14px;border-width:2px}
/* CSS NAME: utb-sa-filters-select (match select height to the search box + buttons so the row aligns) */
#utb-sales-app .utb-sa-filters select{min-width:150px;padding:11px 14px;border-width:2px;font-size:14px}
/* extra components (portal customer view) */
#etb-redeem .utb-pt-extras{background:var(--surface,#f4f7f9);border-radius:12px;padding:12px 14px;margin:12px 0}
#etb-redeem .utb-pt-extras .k{font-family:var(--font-head);font-weight:700;font-size:11px;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-soft,#55636e);margin-bottom:6px}
#etb-redeem .utb-pt-extras .ex{display:flex;justify-content:space-between;font-size:13.5px;padding:4px 0}

/* ===================== SALES ADMIN — campaigns ===================== */
/* // SA-CAMPAIGNS — its own section, sits above the search/filter bar // */
#utb-sales-app .utb-sa-campaigns{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:2px 22px 16px;padding:12px 16px;background:#f4fafb;border:1.5px solid var(--line,#e4e9ee);border-radius:12px}
#utb-sales-app .utb-sa-campaigns .hd{font-family:var(--font-head);font-weight:800;font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--brand-primary,#12324a);margin-right:6px}
#utb-sales-app .utb-sa-cchip{display:inline-block;font-family:var(--font-head);font-weight:800;font-size:10.5px;padding:3px 10px;border-radius:999px;color:#fff}
#utb-sales-app .utb-sa-cchip.green{background:#1f9d6b}
#utb-sales-app .utb-sa-cchip.amber{background:#ff9f19}
#utb-sales-app .utb-sa-cchip.red{background:#d63638}
#utb-sales-app .utb-sa-cchip.teal{background:var(--brand-teal,#00adbc)}
#utb-sales-app .utb-sa-cchip.grey{background:#9aa7b1}
#utb-sales-app .utb-sa-mini .cvSend,#utb-sales-app .utb-sa-mini .cfSend{color:var(--brand-teal,#00adbc);font-weight:700;text-decoration:none}

/* ==========================================================================
   CSS NAME: etb-loader (Save / Book "preparing your quote" overlay)
   Full-screen loader shown while a Save or Book request is in flight.
   Colour-controllable via the brand vars below.
   ========================================================================== */
#etb-app .etb-loader-ov,
.etb-loader-ov{
  position:fixed; inset:0; z-index:2147483000;
  display:none; align-items:center; justify-content:center;
  background:var(--loader-backdrop, rgba(10,40,46,.55));
  -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
  padding:20px;
}
.etb-loader-ov.show{ display:flex; }
/* CSS NAME: etb-loader-card (the white popup box) */
.etb-loader-ov .etb-loader-card{
  background:var(--loader-bg,#fff);
  border-radius:var(--loader-radius,18px);
  box-shadow:0 24px 70px rgba(0,0,0,.28);
  padding:34px 30px 30px;
  max-width:380px; width:100%; text-align:center;
  font-family:'Raleway',var(--font-body,'Helvetica Neue'),Arial,sans-serif;
}
/* CSS NAME: etb-loader-spin (the spinning ring) */
.etb-loader-ov .etb-loader-spin{
  width:58px; height:58px; margin:0 auto 20px;
  border-radius:50%;
  border:5px solid var(--loader-ring, #e4eef0);
  border-top-color:var(--loader-accent, var(--brand-teal,#00adbc));
  animation:etbLoaderSpin .85s linear infinite;
}
@keyframes etbLoaderSpin{ to{ transform:rotate(360deg); } }
/* CSS NAME: etb-loader-title / sub / warn (the three text lines) */
.etb-loader-ov .etb-loader-title{
  font-family:'Raleway',var(--font-body,'Helvetica Neue'),Arial,sans-serif; font-weight:800;
  font-size:var(--loader-title-size,19px);
  color:var(--loader-title-color, var(--brand-primary,#0e7c86));
  margin-bottom:8px;
}
.etb-loader-ov .etb-loader-sub{
  font-size:var(--loader-sub-size,14px);
  color:var(--loader-sub-color, var(--ink-soft,#5a636e));
  line-height:1.5; margin-bottom:14px;
}
.etb-loader-ov .etb-loader-warn{
  font-size:var(--loader-warn-size,12.5px); font-weight:700;
  color:var(--loader-warn-color, var(--brand-accent-dark,#d97a00));
  background:var(--loader-warn-bg, #fff6e9);
  border-radius:10px; padding:9px 12px;
}

/* CSS NAME: etb-loader-check (success tick, replaces the spinner when the quote is ready) */
.etb-loader-ov .etb-loader-check{
  display:none; width:58px; height:58px; margin:0 auto 20px; line-height:58px;
  border-radius:50%; font-size:30px; font-weight:900;
  color:#fff; background:var(--loader-ok, var(--brand-teal,#00adbc));
}
.etb-loader-ov.done .etb-loader-spin{ display:none; }
.etb-loader-ov.done .etb-loader-check{ display:block; }
/* CSS NAME: etb-loader-quote (the quote number shown on success, e.g. UTEC482) */
.etb-loader-ov .etb-loader-quote{
  display:none; margin:2px auto 12px;
  font-family:'Work Sans','Raleway',Arial,sans-serif; font-weight:900;
  font-size:var(--loader-quote-size,26px); letter-spacing:.04em;
  color:var(--loader-quote-color, var(--brand-teal,#00adbc));
}

/* CSS NAME: utb-sa-home (Sales Admin header → back to main website button) */
#utb-sales-app .utb-sa-top .u{position:relative}
#utb-sales-app .utb-sa-top .u .utb-sa-home{display:inline-block;background:var(--brand-teal,#00adbc);color:#fff!important;font-family:var(--font-head);font-weight:800;font-size:11.5px;letter-spacing:.02em;padding:6px 13px;border-radius:999px;text-decoration:none;margin-bottom:7px}
#utb-sales-app .utb-sa-top .u .utb-sa-home:hover{background:var(--brand-primary,#0e7c86)}

/* CSS NAME: etb-sf (eWAY Secure Fields — embedded card entry boxes) */
#etb-redeem .etb-sf-wrap{margin:6px 0 14px}
#etb-redeem .etb-sf-lab{display:block;font-family:var(--font-head);font-weight:800;font-size:11.5px;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-soft,#55636e);margin:10px 0 5px}
#etb-redeem .etb-sf{border:1.5px solid var(--line,#e4e9ee);border-radius:10px;background:#fff;height:48px;padding:0;overflow:hidden;transition:border-color .12s;display:flex;align-items:center}
#etb-redeem .etb-sf:focus-within{border-color:var(--brand-cta2,#ff9f19)}
#etb-redeem .etb-sf iframe{width:100%!important;height:46px!important;border:0!important;background:transparent!important;display:block}
#etb-redeem .etb-sf-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
#etb-redeem .etb-paybadge{display:inline-block;background:#e7f7f0;color:#127a51;font-family:var(--font-head);font-weight:900;font-size:15px;padding:10px 18px;border-radius:999px;margin-bottom:8px}
