/* KAPICO Arctic Journey Builder v0.3.0 */
#kajb-app, #kajb-app * { box-sizing: border-box; }
#kajb-app {
  --k-navy:#0F1E36; --k-gold:#96762D; --k-ivory:#FFFDF9; --k-sand:#F7F4EF;
  --k-ice:#EAF1F4; --k-blue:#6D8FA0; --k-ink:#1C1B1A; --k-muted:#6F6A63;
  --k-line:rgba(15,30,54,.11); --k-shadow:0 22px 70px rgba(15,30,54,.10);
  width:100%; padding:60px 22px; background:
    radial-gradient(circle at 90% 0%, rgba(109,143,160,.13), transparent 30%),
    radial-gradient(circle at 5% 92%, rgba(150,118,45,.08), transparent 25%), var(--k-sand);
  color:var(--k-ink); font-family:"Montserrat",Arial,sans-serif;
}
#kajb-app button, #kajb-app input, #kajb-app select { font-family:inherit; }
.kajb-topline { width:min(1380px,100%); margin:0 auto 26px; display:grid; grid-template-columns:1.35fr .65fr; gap:28px; align-items:end; }
.kajb-eyebrow { color:var(--k-gold); font-size:8px; font-weight:700; letter-spacing:2.1px; text-transform:uppercase; margin-bottom:8px; }
.kajb-topline h2 { margin:0; color:var(--k-navy); font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(39px,4.4vw,58px); font-weight:400; line-height:.98; }
.kajb-topline p { max-width:760px; margin:14px 0 0; color:var(--k-muted); font-size:11px; line-height:1.8; }
.kajb-status-card { display:flex; gap:11px; padding:17px 18px; border:1px solid rgba(109,143,160,.25); background:rgba(255,255,255,.72); align-items:flex-start; }
.kajb-status-dot { width:8px; height:8px; margin-top:4px; border-radius:50%; background:#65A56F; box-shadow:0 0 0 5px rgba(101,165,111,.10); flex:0 0 auto; }
.kajb-status-card strong { display:block; color:var(--k-navy); font-size:9px; letter-spacing:.35px; }
.kajb-status-card small { display:block; margin-top:4px; color:var(--k-muted); font-size:8px; line-height:1.55; }
.kajb-layout { width:min(1380px,100%); margin:0 auto; display:grid; grid-template-columns:minmax(0,1fr) 355px; gap:18px; align-items:start; }
.kajb-builder { display:grid; gap:14px; }
.kajb-step { padding:28px; border:1px solid var(--k-line); background:rgba(255,253,249,.96); box-shadow:0 12px 34px rgba(15,30,54,.045); }
.kajb-step-head { display:flex; align-items:center; gap:13px; margin-bottom:23px; }
.kajb-step-head > span { display:grid; place-items:center; width:40px; height:40px; border:1px solid rgba(150,118,45,.38); border-radius:50%; color:var(--k-gold); font-family:"Cormorant Garamond",Georgia,serif; font-size:17px; }
.kajb-step-head small { display:block; color:var(--k-gold); font-size:6.8px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; margin-bottom:3px; }
.kajb-step-head h3 { margin:0; color:var(--k-navy); font-family:"Cormorant Garamond",Georgia,serif; font-size:26px; font-weight:500; line-height:1; }
.kajb-grid { display:grid; gap:10px; }.kajb-grid-4{grid-template-columns:repeat(4,1fr)}.kajb-grid-2{grid-template-columns:repeat(2,1fr)}
.kajb-field { display:block; }
.kajb-field > span { display:block; margin-bottom:7px; color:#777067; font-size:6.8px; font-weight:700; letter-spacing:1px; text-transform:uppercase; }
.kajb-field input, .kajb-field select {
  width:100% !important; min-height:46px !important; padding:10px 12px !important; border:1px solid rgba(15,30,54,.16) !important;
  border-radius:0 !important; background:#FFF !important; color:var(--k-navy) !important; -webkit-text-fill-color:var(--k-navy) !important;
  font-size:10px !important; box-shadow:none !important; outline:none !important;
}
.kajb-field input:focus, .kajb-field select:focus { border-color:var(--k-gold) !important; }
.kajb-child-ages { display:grid; grid-template-columns:repeat(4,1fr); gap:9px; margin-top:12px; }
.kajb-inline-note { margin-top:12px; padding:11px 13px; border-left:2px solid var(--k-blue); background:var(--k-ice); color:#5E6770; font-size:8.5px; line-height:1.55; }
.kajb-stay-style { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:18px; }
.kajb-choice-card { position:relative; min-height:118px; padding:18px; border:1px solid var(--k-line); background:#FFF; cursor:pointer; transition:.25s ease; }
.kajb-choice-card input { position:absolute; opacity:0; pointer-events:none; }
.kajb-choice-card.is-selected { border-color:rgba(109,143,160,.55); background:linear-gradient(135deg,#FFF,var(--k-ice)); box-shadow:inset 0 0 0 1px rgba(109,143,160,.10); }
.kajb-choice-icon { display:inline-grid; place-items:center; width:28px; height:28px; margin-bottom:11px; border-radius:50%; background:var(--k-navy); color:#FFF; font-family:"Cormorant Garamond",Georgia,serif; font-size:13px; }
.kajb-choice-card strong { display:block; color:var(--k-navy); font-family:"Cormorant Garamond",Georgia,serif; font-size:20px; font-weight:600; margin-bottom:4px; }
.kajb-choice-card small { color:var(--k-muted); font-size:8.3px; line-height:1.55; }
.kajb-room-info { min-height:0; margin-top:10px; padding:15px 16px; border:1px solid rgba(150,118,45,.14); background:#FBF9F5; }
.kajb-room-info:empty { display:none; }
.kajb-room-info strong { display:block; color:var(--k-navy); font-family:"Cormorant Garamond",Georgia,serif; font-size:18px; font-weight:600; margin-bottom:5px; }
.kajb-room-info p { margin:0; color:var(--k-muted); font-size:8.5px; line-height:1.6; }
.kajb-room-tags { display:flex; flex-wrap:wrap; gap:5px; margin-top:9px; }.kajb-room-tags span{padding:5px 7px;background:#FFF;border:1px solid var(--k-line);color:#777067;font-size:6.4px;font-weight:700;letter-spacing:.6px;text-transform:uppercase}
.kajb-split-summary { display:flex; align-items:center; justify-content:center; min-height:46px; padding:10px 12px; border:1px dashed rgba(150,118,45,.28); color:var(--k-gold); font-size:8px; font-weight:700; text-transform:uppercase; letter-spacing:.8px; }
.kajb-service-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:9px; margin-top:14px; }
.kajb-service { position:relative; min-height:92px; padding:14px; border:1px solid var(--k-line); background:#FFF; cursor:pointer; }
.kajb-service.is-selected { border-color:rgba(150,118,45,.42); background:linear-gradient(135deg,#FFF,#FBF6EA); }
.kajb-service input { position:absolute; top:12px; right:12px; accent-color:var(--k-gold); }
.kajb-service > span { display:block; padding-right:24px; color:var(--k-navy); font-size:8px; font-weight:700; line-height:1.35; }
.kajb-service small { display:block; margin-top:7px; color:var(--k-muted); font-size:7.4px; line-height:1.45; }
.kajb-planner-note { margin-bottom:14px; color:var(--k-muted); font-size:8.5px; line-height:1.6; }
.kajb-mandatory-progress { margin-bottom:13px; padding:11px 13px; border:1px solid var(--k-line); background:#FFF; font-size:8px; color:var(--k-navy); }
.kajb-mandatory-progress strong{color:var(--k-gold)}
.kajb-days { display:grid; gap:10px; }
.kajb-day { border:1px solid var(--k-line); background:#FFF; overflow:hidden; }
.kajb-day-head { display:grid; grid-template-columns:auto 1fr auto; gap:12px; align-items:center; padding:13px 15px; background:linear-gradient(90deg,rgba(109,143,160,.09),rgba(150,118,45,.04)); border-bottom:1px solid var(--k-line); }
.kajb-day-no { color:var(--k-blue); font-family:"Cormorant Garamond",Georgia,serif; font-size:18px; }.kajb-day-head strong{display:block;color:var(--k-navy);font-size:9px}.kajb-day-head small{display:block;color:var(--k-muted);font-size:7px;margin-top:2px}.kajb-day-badge{color:var(--k-gold);font-size:6.5px;font-weight:700;letter-spacing:.9px;text-transform:uppercase;text-align:right}
.kajb-slot-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0; }
.kajb-slot { min-height:115px; padding:12px; border-right:1px solid var(--k-line); }.kajb-slot:last-child{border-right:0}.kajb-slot.is-blocked{opacity:.46;background:#F2F2F2}.kajb-slot-title{display:flex;justify-content:space-between;gap:8px;margin-bottom:8px}.kajb-slot-title strong{color:var(--k-navy);font-size:7px;text-transform:uppercase;letter-spacing:.9px}.kajb-slot-title span{color:#8A837A;font-size:6.5px}
.kajb-activity-select { width:100% !important; min-height:42px !important; padding:8px 9px !important; border:1px solid rgba(15,30,54,.14) !important; border-radius:0 !important; background:#FFF !important; color:var(--k-navy) !important; -webkit-text-fill-color:var(--k-navy) !important; font-size:8px !important; box-shadow:none !important; }
.kajb-slot-detail { margin-top:7px; color:var(--k-muted); font-size:6.9px; line-height:1.5; }.kajb-meal-chip{display:inline-block;margin-top:5px;padding:4px 6px;background:#EDF4EA;color:#56724E;font-size:6.2px;font-weight:700;text-transform:uppercase;letter-spacing:.6px}.kajb-conflict{margin-top:5px;color:#9A5749;font-size:6.8px;font-weight:700}
.kajb-arrival-day, .kajb-departure-day { padding:14px 15px; color:var(--k-muted); font-size:8.3px; line-height:1.6; }
.kajb-notes-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:9px; }.kajb-notes-grid>div{padding:15px;border:1px solid var(--k-line);background:#FFF}.kajb-notes-grid strong{display:block;color:var(--k-navy);font-size:8px;margin-bottom:5px}.kajb-notes-grid p{margin:0;color:var(--k-muted);font-size:7.7px;line-height:1.55}
.kajb-basket { min-width:0; }.kajb-basket-sticky { position:sticky; top:105px; padding:24px; border:1px solid rgba(15,30,54,.13); background:var(--k-navy); color:#FFF; box-shadow:var(--k-shadow); }
.kajb-basket-kicker { color:#D6BC79; font-size:7px; font-weight:700; letter-spacing:1.7px; text-transform:uppercase; }.kajb-basket h3{margin:7px 0 3px;color:#FFF;font-family:"Cormorant Garamond",Georgia,serif;font-size:29px;font-weight:500}.kajb-basket-party{color:rgba(255,255,255,.65);font-size:8px;margin-bottom:18px}
.kajb-basket-lines { max-height:360px; overflow:auto; padding-right:4px; }.kajb-empty{padding:15px 0;color:rgba(255,255,255,.48);font-size:8px;line-height:1.55}.kajb-line-group{margin:15px 0 7px;color:#D6BC79;font-size:6.4px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase}.kajb-line{display:grid;grid-template-columns:1fr auto;gap:10px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.08)}.kajb-line strong{display:block;color:#FFF;font-size:7.8px;line-height:1.35}.kajb-line small{display:block;color:rgba(255,255,255,.48);font-size:6.5px;line-height:1.4;margin-top:2px}.kajb-line-price{color:#FFF;font-size:8px;font-weight:700;white-space:nowrap}.kajb-line-price.included{color:#96C59A;text-transform:uppercase;font-size:6.5px;letter-spacing:.7px}
.kajb-total-card{margin-top:18px;padding:17px 0;border-top:1px solid rgba(214,188,121,.45);border-bottom:1px solid rgba(214,188,121,.25)}.kajb-total-card>small{color:rgba(255,255,255,.52);font-size:6.7px;text-transform:uppercase;letter-spacing:1px}.kajb-total-row{display:flex;align-items:baseline;gap:8px;margin-top:4px}.kajb-total-row span{color:#D6BC79;font-size:8px;font-weight:700}.kajb-total-row strong{color:#FFF;font-family:"Cormorant Garamond",Georgia,serif;font-size:42px;font-weight:500;line-height:1}.kajb-per-person{margin-top:5px;color:rgba(255,255,255,.58);font-size:7px;text-transform:uppercase;letter-spacing:.8px}
.kajb-fx-row{display:flex;gap:8px;align-items:center;margin:13px 0;color:rgba(255,255,255,.58);font-size:6.8px;line-height:1.4}.kajb-fx-row .kajb-status-dot{width:6px;height:6px;margin:0;box-shadow:none}.kajb-calc-message{margin:8px 0;color:#F0C7B9;font-size:7px;line-height:1.5}.kajb-calc-message:empty{display:none}
.kajb-primary-btn,.kajb-secondary-btn{width:100%!important;min-height:46px!important;margin:8px 0 0!important;padding:12px 14px!important;border-radius:0!important;font-size:7px!important;font-weight:700!important;letter-spacing:1.15px!important;text-transform:uppercase!important;box-shadow:none!important;cursor:pointer!important}.kajb-primary-btn{border:1px solid #D6BC79!important;background:#D6BC79!important;color:#0F1E36!important}.kajb-primary-btn:hover,.kajb-primary-btn:focus{background:#FFF!important;border-color:#FFF!important;color:#0F1E36!important}.kajb-primary-btn:disabled{opacity:.45!important;cursor:not-allowed!important}.kajb-secondary-btn{border:1px solid rgba(255,255,255,.25)!important;background:transparent!important;color:#FFF!important}.kajb-secondary-btn:hover,.kajb-secondary-btn:focus{border-color:#FFF!important;background:rgba(255,255,255,.05)!important;color:#FFF!important}.kajb-secondary-btn:disabled{opacity:.35!important;cursor:not-allowed!important}.kajb-basket-footnote{display:block;margin-top:11px;color:rgba(255,255,255,.42);font-size:6.4px;line-height:1.45}
@media(max-width:1100px){.kajb-layout{grid-template-columns:1fr}.kajb-basket-sticky{position:relative;top:auto}.kajb-grid-4,.kajb-service-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){#kajb-app{padding:44px 14px}.kajb-topline{grid-template-columns:1fr}.kajb-step{padding:21px 16px}.kajb-grid-4,.kajb-grid-2,.kajb-child-ages,.kajb-stay-style,.kajb-service-grid,.kajb-notes-grid{grid-template-columns:1fr}.kajb-slot-grid{grid-template-columns:1fr}.kajb-slot{border-right:0;border-bottom:1px solid var(--k-line)}.kajb-slot:last-child{border-bottom:0}.kajb-day-head{grid-template-columns:auto 1fr}.kajb-day-badge{grid-column:2;text-align:left}.kajb-basket-sticky{padding:21px}.kajb-topline h2{font-size:40px}}

/* ==========================================================
   KAPICO Arctic Journey Builder v0.1.1
   READABILITY PASS — larger client-facing typography
   ========================================================== */
#kajb-app .kajb-eyebrow { font-size:10px; }
#kajb-app .kajb-topline p { font-size:13px; line-height:1.75; }
#kajb-app .kajb-status-card strong { font-size:11px; }
#kajb-app .kajb-status-card small { font-size:9.5px; line-height:1.5; }

#kajb-app .kajb-step-head small { font-size:8.5px; }
#kajb-app .kajb-step-head h3 { font-size:28px; }
#kajb-app .kajb-field > span { font-size:8.5px; margin-bottom:8px; }
#kajb-app .kajb-field input,
#kajb-app .kajb-field select { font-size:12px !important; min-height:48px !important; }
#kajb-app .kajb-inline-note { font-size:10.5px; line-height:1.6; padding:13px 15px; }

#kajb-app .kajb-choice-card strong { font-size:22px; }
#kajb-app .kajb-choice-card small { font-size:10px; line-height:1.55; }
#kajb-app .kajb-room-info strong { font-size:20px; }
#kajb-app .kajb-room-info p { font-size:10.5px; line-height:1.6; }
#kajb-app .kajb-room-tags span { font-size:7.8px; padding:6px 8px; }
#kajb-app .kajb-split-summary { font-size:9.5px; }

#kajb-app .kajb-service > span { font-size:10px; line-height:1.4; }
#kajb-app .kajb-service small { font-size:9px; line-height:1.5; }
#kajb-app .kajb-planner-note { font-size:10.5px; line-height:1.65; }
#kajb-app .kajb-mandatory-progress { font-size:10px; line-height:1.5; }

#kajb-app .kajb-day-no { font-size:20px; }
#kajb-app .kajb-day-head strong { font-size:11px; }
#kajb-app .kajb-day-head small { font-size:9px; }
#kajb-app .kajb-day-badge { font-size:8px; }
#kajb-app .kajb-slot-title strong { font-size:9px; }
#kajb-app .kajb-slot-title span { font-size:8px; }
#kajb-app .kajb-activity-select { font-size:10.5px !important; min-height:44px !important; }
#kajb-app .kajb-slot-detail { font-size:9px; line-height:1.55; }
#kajb-app .kajb-meal-chip { font-size:7.6px; padding:5px 7px; }
#kajb-app .kajb-conflict { font-size:9px; line-height:1.45; }
#kajb-app .kajb-arrival-day,
#kajb-app .kajb-departure-day { font-size:10.5px; line-height:1.6; }
#kajb-app .kajb-notes-grid strong { font-size:10px; }
#kajb-app .kajb-notes-grid p { font-size:9.5px; line-height:1.6; }

/* Basket is intentionally more readable because clients refer to it continuously. */
#kajb-app .kajb-layout { grid-template-columns:minmax(0,1fr) 385px; }
#kajb-app .kajb-basket-kicker { font-size:8.5px; }
#kajb-app .kajb-basket h3 { font-size:31px; }
#kajb-app .kajb-basket-party { font-size:10px; }
#kajb-app .kajb-empty { font-size:9.5px; }
#kajb-app .kajb-line-group { font-size:8px; margin-top:17px; }
#kajb-app .kajb-line { padding:10px 0; gap:12px; }
#kajb-app .kajb-line strong { font-size:9.5px; line-height:1.4; }
#kajb-app .kajb-line small { font-size:8px; line-height:1.45; }
#kajb-app .kajb-line-price { font-size:9.5px; }
#kajb-app .kajb-line-price.included { font-size:8px; }
#kajb-app .kajb-total-card > small { font-size:8px; }
#kajb-app .kajb-total-row span { font-size:9.5px; }
#kajb-app .kajb-total-row strong { font-size:44px; }
#kajb-app .kajb-per-person { font-size:8.5px; line-height:1.45; }
#kajb-app .kajb-fx-row { font-size:8.2px; line-height:1.5; }
#kajb-app .kajb-calc-message { font-size:8.5px; line-height:1.5; }
#kajb-app .kajb-primary-btn,
#kajb-app .kajb-secondary-btn { font-size:9px !important; min-height:48px !important; }
#kajb-app .kajb-basket-footnote { font-size:8px; line-height:1.5; }

@media(max-width:1100px){
  #kajb-app .kajb-layout { grid-template-columns:1fr; }
}

@media(max-width:700px){
  #kajb-app .kajb-topline p { font-size:12px; }
  #kajb-app .kajb-field > span { font-size:8px; }
  #kajb-app .kajb-field input,
  #kajb-app .kajb-field select { font-size:12px !important; }
  #kajb-app .kajb-choice-card small,
  #kajb-app .kajb-room-info p,
  #kajb-app .kajb-planner-note,
  #kajb-app .kajb-arrival-day,
  #kajb-app .kajb-departure-day { font-size:10px; }
}


/* ==========================================================
   KAPICO Arctic Journey Builder v0.2.0
   SECTION CLARITY + OPTIONAL FLOATING CALCULATOR + BOOKING MODAL
   ========================================================== */

/* Clear visual chaptering: same KAPICO typography, different section moods. */
#kajb-app .kajb-step { position:relative; overflow:hidden; border-top-width:4px; }
#kajb-app .kajb-step[data-step="1"] { --step-accent:#648FA1; border-top-color:#648FA1; background:linear-gradient(180deg,#EDF6F9 0,#FFFDF9 132px); }
#kajb-app .kajb-step[data-step="2"] { --step-accent:#A67A2E; border-top-color:#C5A45D; background:linear-gradient(180deg,#FBF4E5 0,#FFFDF9 132px); }
#kajb-app .kajb-step[data-step="3"] { --step-accent:#4F847A; border-top-color:#6FA095; background:linear-gradient(180deg,#EDF6F2 0,#FFFDF9 132px); }
#kajb-app .kajb-step[data-step="4"] { --step-accent:#6B6F9A; border-top-color:#878CB5; background:linear-gradient(180deg,#F0F1F8 0,#FFFDF9 132px); }
#kajb-app .kajb-step[data-step="5"] { --step-accent:#A66558; border-top-color:#C58978; background:linear-gradient(180deg,#F8EFEB 0,#FFFDF9 132px); }
#kajb-app .kajb-step[data-step] .kajb-step-head > span { color:var(--step-accent); border-color:color-mix(in srgb,var(--step-accent) 55%,white); background:rgba(255,255,255,.58); }
#kajb-app .kajb-step[data-step] .kajb-step-head small { color:var(--step-accent); }
#kajb-app .kajb-builder { gap:20px; }
#kajb-app .kajb-step-head { position:relative; z-index:1; }

/* Calculator is docked by default. It floats only when the client asks for it. */
#kajb-app .kajb-basket-sticky { position:relative; top:auto; }
#kajb-app .kajb-basket-control-row { display:flex; align-items:center; justify-content:space-between; gap:10px; }
#kajb-app .kajb-basket-controls { display:flex; align-items:center; gap:6px; }
#kajb-app .kajb-basket-tool,
#kajb-app .kajb-basket-close { appearance:none!important; margin:0!important; box-shadow:none!important; cursor:pointer!important; }
#kajb-app .kajb-basket-tool { min-height:30px!important; padding:7px 9px!important; border:1px solid rgba(255,255,255,.22)!important; border-radius:0!important; background:transparent!important; color:#FFF!important; font-size:7.5px!important; font-weight:700!important; letter-spacing:.75px!important; text-transform:uppercase!important; }
#kajb-app .kajb-basket-tool:hover,#kajb-app .kajb-basket-tool:focus { border-color:#D6BC79!important; color:#D6BC79!important; background:rgba(255,255,255,.04)!important; }
#kajb-app .kajb-basket-close { position:relative!important; width:31px!important; min-width:31px!important; height:31px!important; min-height:31px!important; padding:0!important; border:1px solid rgba(255,255,255,.25)!important; border-radius:50%!important; background:transparent!important; color:#FFF!important; font-size:18px!important; line-height:1!important; }
#kajb-app .kajb-basket-close:hover,#kajb-app .kajb-basket-close:focus { border-color:#D6BC79!important; color:#D6BC79!important; }
#kajb-app .kajb-basket-sticky.is-floating { position:fixed!important; z-index:2147482000!important; top:88px!important; right:22px!important; width:min(405px,calc(100vw - 36px))!important; max-height:calc(100dvh - 110px)!important; overflow:auto!important; box-shadow:0 30px 100px rgba(4,12,25,.34)!important; }
#kajb-app .kajb-basket.has-floating-panel { min-height:180px; }
#kajb-app .kajb-basket-sticky.is-floating .kajb-basket-lines { max-height:32vh; }

/* Request modal is body-mounted, so it carries its own variables. */
html.kajb-modal-locked, body.kajb-modal-locked { overflow:hidden!important; overscroll-behavior:none!important; }
body.kajb-modal-locked { position:fixed!important; left:0!important; right:0!important; width:100%!important; }
.kajb-request-modal, .kajb-request-modal * { box-sizing:border-box; }

/* v0.3.1 anti-flash protection:
   The booking form does not participate in layout/painting at all until JS
   deliberately removes the hidden attribute after a trusted user action. */
.kajb-request-modal[hidden] {
  display:none!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

.kajb-request-modal:not(.is-open) {
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

.kajb-request-modal {
  --k-navy:#0F1E36; --k-gold:#96762D; --k-ivory:#FFFDF9; --k-sand:#F7F4EF; --k-muted:#6F6A63; --k-line:rgba(15,30,54,.12);
  position:fixed!important; inset:0!important; z-index:2147483000!important; display:flex; align-items:center; justify-content:center; padding:24px; background:rgba(7,14,25,.76); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); opacity:0; visibility:hidden; pointer-events:none; transition:opacity .26s ease,visibility 0s linear .26s; font-family:"Montserrat",Arial,sans-serif!important;
}
.kajb-request-modal.is-open { opacity:1; visibility:visible; pointer-events:auto; transition-delay:0s; }
.kajb-request-dialog { width:min(960px,100%); max-height:calc(100dvh - 48px); overflow:auto; background:var(--k-ivory); border:1px solid rgba(150,118,45,.36); box-shadow:0 38px 110px rgba(0,0,0,.38); }
.kajb-request-top { position:sticky; top:0; z-index:10; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:20px 24px; background:rgba(255,253,249,.97); border-bottom:1px solid var(--k-line); backdrop-filter:blur(12px); }
.kajb-request-top small { display:block; margin-bottom:3px; color:var(--k-gold); font-size:8px; font-weight:700; letter-spacing:1.4px; text-transform:uppercase; }
.kajb-request-top h3 { margin:0; color:var(--k-navy); font-family:"Cormorant Garamond",Georgia,serif; font-size:29px; font-weight:600; }
.kajb-request-close,.kajb-request-close:hover,.kajb-request-close:focus { appearance:none!important; width:40px!important; min-width:40px!important; height:40px!important; min-height:40px!important; padding:0!important; margin:0!important; border:1px solid rgba(150,118,45,.42)!important; border-radius:50%!important; background:var(--k-navy)!important; color:#FFF!important; font-size:22px!important; line-height:1!important; box-shadow:none!important; cursor:pointer!important; }
.kajb-booking-form { padding:25px; }
.kajb-request-intro { margin:0 0 22px; color:var(--k-muted); font-size:11px; line-height:1.7; }
.kajb-request-section { margin-top:18px; padding:19px; border:1px solid var(--k-line); background:#FFF; }
.kajb-request-section-title { margin-bottom:13px; color:var(--k-navy); font-family:"Cormorant Garamond",Georgia,serif; font-size:20px; font-weight:600; }
.kajb-request-grid { display:grid; gap:10px; }.kajb-request-grid-2{grid-template-columns:1fr 1fr;}
.kajb-booking-form label>span,.kajb-traveller-row label>span { display:block; margin-bottom:6px; color:#766F67; font-size:8px; font-weight:700; letter-spacing:.8px; text-transform:uppercase; }
.kajb-booking-form input,.kajb-booking-form select,.kajb-booking-form textarea { width:100%!important; min-height:45px!important; padding:10px 11px!important; border:1px solid rgba(15,30,54,.16)!important; border-radius:0!important; background:#FFF!important; color:var(--k-navy)!important; -webkit-text-fill-color:var(--k-navy)!important; font-family:"Montserrat",Arial,sans-serif!important; font-size:11px!important; box-shadow:none!important; outline:none!important; }
.kajb-booking-form textarea { min-height:96px!important; resize:vertical; }
.kajb-request-wide { display:block; margin-top:11px; }
.kajb-booking-travellers { display:grid; gap:9px; }
.kajb-traveller-row { display:grid; grid-template-columns:155px 1.4fr .55fr 1fr; gap:9px; align-items:end; padding:11px; background:var(--k-sand); border:1px solid rgba(150,118,45,.14); }
.kajb-traveller-label { align-self:center; color:var(--k-gold); font-size:8px; font-weight:700; letter-spacing:.9px; text-transform:uppercase; }
.kajb-travel-warning { margin-top:18px; padding:17px 18px; border-left:4px solid #B77A55; background:#FBF1E9; color:#5F554D; }
.kajb-travel-warning strong { display:block; margin-bottom:7px; color:var(--k-navy); font-family:"Cormorant Garamond",Georgia,serif; font-size:20px; }
.kajb-travel-warning p { margin:6px 0; font-size:9.5px; line-height:1.6; }
.kajb-travel-warning .kajb-warning-small { color:#80766E; font-size:8.5px; }
.kajb-ack { display:flex!important; gap:9px; align-items:flex-start; margin-top:10px; color:#5F5A54; font-size:9.5px; line-height:1.5; text-transform:none!important; }
.kajb-ack input { width:16px!important; min-width:16px!important; height:16px!important; min-height:16px!important; margin-top:1px!important; padding:0!important; accent-color:var(--k-gold); }
.kajb-ack span { margin:0!important; color:#5F5A54!important; font-size:9.5px!important; font-weight:500!important; letter-spacing:0!important; text-transform:none!important; }
.kajb-honeypot { position:absolute!important; left:-9999px!important; width:1px!important; height:1px!important; opacity:0!important; }
.kajb-request-feedback { margin-top:14px; min-height:0; font-size:10px; line-height:1.55; }.kajb-request-feedback.is-success{padding:11px 12px;background:#EDF5ED;color:#456749}.kajb-request-feedback.is-error{padding:11px 12px;background:#FAECE8;color:#914F43}
.kajb-request-submit,.kajb-request-submit:hover,.kajb-request-submit:focus { width:100%!important; min-height:50px!important; margin-top:14px!important; padding:12px 15px!important; border:1px solid var(--k-navy)!important; border-radius:0!important; background:var(--k-navy)!important; color:#FFF!important; font-size:9px!important; font-weight:700!important; letter-spacing:1.1px!important; text-transform:uppercase!important; box-shadow:none!important; cursor:pointer!important; }.kajb-request-submit:hover,.kajb-request-submit:focus{background:var(--k-gold)!important;border-color:var(--k-gold)!important;}

@media(max-width:1100px){
  #kajb-app .kajb-basket-sticky.is-floating { top:76px!important; right:16px!important; }
}
@media(max-width:700px){
  #kajb-app .kajb-step { padding-top:24px; }
  #kajb-app .kajb-basket-sticky.is-floating { top:66px!important; left:12px!important; right:12px!important; width:auto!important; max-height:calc(100dvh - 82px)!important; }
  .kajb-request-modal { align-items:flex-end; padding:0; }
  .kajb-request-dialog { width:100%; height:100dvh; max-height:100dvh; border:0; }
  .kajb-booking-form { padding:20px 15px 28px; }
  .kajb-request-grid-2,.kajb-traveller-row { grid-template-columns:1fr; }
  .kajb-traveller-label { padding-top:5px; }
}


/* ==========================================================
   v0.2.1 · EDITABLE ACTIVITY BASKET
   ========================================================== */
#kajb-app .kajb-line-activity {
  grid-template-columns:minmax(0,1fr) auto;
  align-items:start;
  position:relative;
  padding:12px 0;
}

#kajb-app .kajb-line-activity .kajb-line-main {
  min-width:0;
}

#kajb-app .kajb-activity-basket-meta {
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin-bottom:7px;
}

#kajb-app .kajb-activity-basket-meta span {
  display:inline-flex;
  align-items:center;
  min-height:21px;
  padding:4px 6px;
  border:1px solid rgba(214,188,121,.34);
  background:rgba(214,188,121,.09);
  color:#E4CC8F;
  font-size:7px;
  font-weight:700;
  line-height:1;
  letter-spacing:.65px;
  text-transform:uppercase;
}

#kajb-app .kajb-line-activity strong {
  font-size:10px;
  line-height:1.42;
}

#kajb-app .kajb-line-activity small {
  margin-top:4px;
  color:rgba(255,255,255,.58);
  font-size:8px;
}

#kajb-app .kajb-line-action {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  padding-top:1px;
}

#kajb-app .kajb-remove-activity,
#kajb-app .kajb-remove-activity:hover,
#kajb-app .kajb-remove-activity:focus,
#kajb-app .kajb-remove-activity:active {
  appearance:none!important;
  -webkit-appearance:none!important;
  display:grid!important;
  place-items:center!important;
  flex:0 0 auto!important;
  width:26px!important;
  min-width:26px!important;
  height:26px!important;
  min-height:26px!important;
  margin:0!important;
  padding:0!important;
  border:1px solid rgba(255,255,255,.28)!important;
  border-radius:50%!important;
  background:rgba(255,255,255,.04)!important;
  color:#FFF!important;
  -webkit-text-fill-color:#FFF!important;
  font-family:Arial,sans-serif!important;
  font-size:16px!important;
  font-weight:400!important;
  line-height:1!important;
  box-shadow:none!important;
  text-shadow:none!important;
  cursor:pointer!important;
}

#kajb-app .kajb-remove-activity:hover,
#kajb-app .kajb-remove-activity:focus {
  border-color:#D6BC79!important;
  background:#D6BC79!important;
  color:#0F1E36!important;
  -webkit-text-fill-color:#0F1E36!important;
}

#kajb-app .kajb-remove-activity:disabled {
  opacity:.42!important;
  cursor:wait!important;
}

#kajb-app .kajb-line.is-removing {
  opacity:.42;
  transition:opacity .16s ease;
}

@media(max-width:700px){
  #kajb-app .kajb-line-action {
    gap:7px;
  }

  #kajb-app .kajb-activity-basket-meta span {
    font-size:6.8px;
  }
}


/* ==========================================================
   v0.3.0 · ARCTIC WINTER EXPERIENCE · STATIC / NO FALLING SNOW
   ========================================================== */
#kajb-app {
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(ellipse at 82% -8%, rgba(94,180,174,.18) 0%, rgba(116,127,190,.10) 20%, transparent 44%),
    radial-gradient(ellipse at 8% 12%, rgba(193,225,238,.42) 0%, transparent 34%),
    linear-gradient(180deg,#EDF5F8 0%,#F7F4EF 23%,#F7F4EF 100%);
}
#kajb-app::before {
  content:"";
  position:absolute;
  z-index:0;
  top:-120px; left:-7%; right:-7%;
  height:340px;
  pointer-events:none;
  background:
    linear-gradient(112deg,transparent 12%,rgba(117,205,191,.13) 31%,rgba(129,151,201,.12) 48%,rgba(189,143,195,.08) 63%,transparent 81%);
  filter:blur(20px);
  transform:skewY(-3deg);
}
#kajb-app::after {
  content:"";
  position:absolute;
  z-index:0;
  inset:0;
  pointer-events:none;
  opacity:.20;
  background-image:
    linear-gradient(60deg, transparent 47%, rgba(255,255,255,.85) 48%, rgba(255,255,255,.85) 49%, transparent 50%),
    linear-gradient(120deg, transparent 47%, rgba(174,207,220,.55) 48%, rgba(174,207,220,.55) 49%, transparent 50%);
  background-size:110px 110px;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.75),transparent 34%);
}
#kajb-app > * { position:relative; z-index:1; }
#kajb-app .kajb-topline {
  padding:24px 26px;
  border:1px solid rgba(113,157,176,.22);
  background:linear-gradient(115deg,rgba(255,255,255,.82),rgba(235,246,249,.66));
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  box-shadow:0 18px 55px rgba(15,30,54,.07);
}
#kajb-app .kajb-step {
  position:relative;
  overflow:hidden;
  background:linear-gradient(135deg,rgba(255,255,255,.97),rgba(247,251,252,.91));
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  box-shadow:0 14px 44px rgba(40,75,93,.065);
}
#kajb-app .kajb-step::after {
  content:"";
  position:absolute;
  top:0; right:0;
  width:150px; height:150px;
  pointer-events:none;
  background:radial-gradient(circle at 100% 0%,rgba(176,215,227,.16),transparent 65%);
}
#kajb-app .kajb-step[data-step="1"] { border-top:4px solid #A8C9D8; }
#kajb-app .kajb-step[data-step="2"] { border-top:4px solid #C8AF72; }
#kajb-app .kajb-step[data-step="3"] { border-top:4px solid #8EAFA9; }
#kajb-app .kajb-step[data-step="4"] { border-top:4px solid #879DBE; }
#kajb-app .kajb-step[data-step="5"] { border-top:4px solid #B79BBA; }
#kajb-app .kajb-step[data-step="6"] { border-top:4px solid #C5967E; }
#kajb-app .kajb-step-head > span {
  background:linear-gradient(145deg,#FFFFFF,#EAF4F7);
  box-shadow:0 0 0 5px rgba(177,210,222,.16);
}
#kajb-app .kajb-day {
  border-color:rgba(100,143,160,.19);
  box-shadow:0 8px 24px rgba(48,83,99,.045);
}
#kajb-app .kajb-day-head {
  background:linear-gradient(90deg,rgba(207,229,237,.44),rgba(245,239,221,.32));
}
#kajb-app .kajb-basket-sticky {
  background:
    radial-gradient(circle at 100% 0%,rgba(117,176,184,.18),transparent 35%),
    linear-gradient(160deg,#0F1E36 0%,#10243D 58%,#0A172A 100%);
  border-color:rgba(188,218,226,.18);
}
#kajb-app .kajb-basket-party { letter-spacing:.25px; }
#kajb-app .kajb-mandatory-progress {
  border-left:3px solid #8DAEBB;
  background:linear-gradient(90deg,#F3F9FB,#FFF);
}
#kajb-app .kajb-status-card {
  background:linear-gradient(135deg,rgba(255,255,255,.88),rgba(232,244,248,.76));
}


/* ==========================================================
   v0.3.1 · MODAL COMPOSITOR / FLICKER GUARD
   ========================================================== */
body > .kajb-request-modal[hidden],
#kajb-app .kajb-request-modal[hidden] {
  display:none!important;
}

body > .kajb-request-modal:not(.is-open) {
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

body > .kajb-request-modal.is-open {
  display:flex!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}

/* v0.4.0 · Luxury itinerary action */
#kajb-app .kajb-ai-itinerary-btn{border-color:#D6BC79!important;background:linear-gradient(135deg,#96762D,#B69A58)!important;color:#fff!important}
#kajb-app .kajb-ai-itinerary-btn:hover,#kajb-app .kajb-ai-itinerary-btn:focus{background:#0F1E36!important;border-color:#0F1E36!important}
#kajb-app .kajb-ai-note{display:block;margin:-2px 0 10px;color:rgba(255,255,255,.62);font-size:7.5px;line-height:1.5}
