/* Cruise Booking Engine – front end. Everything is scoped to .crbk so it sits inside any theme. */
.crbk{
	--crbk-accent:#D45A22; --crbk-accent-ink:#FFFFFF; --crbk-deep:#0C3743; --crbk-on-deep:#E8F2F1; --crbk-on-deep-muted:#A3C3C6;
	--crbk-bg:#EDF3F2; --crbk-surface:#FFFFFF; --crbk-sunk:#E2EBE9; --crbk-ink:#0D2A33; --crbk-muted:#4F6D77; --crbk-line:#CEDCDA;
	--crbk-ok:#1C7752; --crbk-bad:#B3261E; --crbk-taken:#D3DEDC;
	--crbk-f-display:"Young Serif", Georgia, "Times New Roman", serif;
	--crbk-f-body:"Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;
	--crbk-f-mono:"IBM Plex Mono", ui-monospace, Consolas, monospace;
	--crbk-r:10px;
	color:var(--crbk-ink); font-family:var(--crbk-f-body); font-size:15px; line-height:1.55;
}
.crbk *,.crbk *::before,.crbk *::after{box-sizing:border-box}
.crbk p{margin:0}
.crbk [hidden]{display:none!important}
.crbk .crbk-h1,.crbk .crbk-h2,.crbk .crbk-h3{font-family:var(--crbk-f-display);font-weight:400;line-height:1.15;margin:0;text-wrap:balance;color:inherit;letter-spacing:0;text-transform:none}
.crbk .crbk-h1{font-size:clamp(26px,4vw,42px)}
.crbk .crbk-h2{font-size:24px;margin:32px 0 10px}
.crbk .crbk-h3{font-size:19px}
.crbk .crbk-h3 a{color:inherit;text-decoration:none}
.crbk .crbk-h3 a:hover{text-decoration:underline}
.crbk .crbk-mono{font-family:var(--crbk-f-mono);font-variant-numeric:tabular-nums;font-size:.92em}
.crbk .crbk-small{font-size:13px;color:var(--crbk-muted)}
.crbk .crbk-eyebrow{font-size:12px;letter-spacing:.09em;text-transform:uppercase;font-weight:600;color:var(--crbk-muted)}
.crbk .crbk-ok{color:var(--crbk-ok)}
.crbk .crbk-route{color:var(--crbk-muted);font-weight:500}
.crbk .crbk-panel{background:var(--crbk-surface);border:1px solid var(--crbk-line);border-radius:var(--crbk-r)}
.crbk .crbk-pad{padding:18px 20px}
.crbk :focus-visible{outline:2px solid var(--crbk-accent);outline-offset:2px}

.crbk .crbk-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--crbk-accent);color:var(--crbk-accent-ink);border:0;border-radius:999px;padding:11px 22px;font:600 15px/1.2 var(--crbk-f-body);cursor:pointer;white-space:nowrap;text-decoration:none;box-shadow:none;text-transform:none;letter-spacing:0;min-height:0;width:auto}
.crbk .crbk-btn:hover{filter:brightness(1.07);color:var(--crbk-accent-ink)}
.crbk .crbk-btn[disabled]{opacity:.6;cursor:progress}
.crbk .crbk-btn.crbk-ghost{background:transparent;color:var(--crbk-ink);border:1px solid var(--crbk-line)}
.crbk .crbk-btn.crbk-wide{width:100%}
.crbk .crbk-link{background:none;border:0;padding:0;color:var(--crbk-accent);font:600 14px/1.4 var(--crbk-f-body);cursor:pointer;text-decoration:underline;text-underline-offset:3px;box-shadow:none;min-height:0}

/* search */
.crbk-search-wrap{display:grid;gap:16px}
.crbk .crbk-hero{background:var(--crbk-deep);color:var(--crbk-on-deep);border-radius:14px;overflow:hidden}
.crbk .crbk-hero-in{padding:36px clamp(16px,4vw,40px) 32px;display:grid;gap:20px}
.crbk .crbk-search{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;background:var(--crbk-surface);color:var(--crbk-ink);padding:10px;border-radius:12px;margin:0}
.crbk .crbk-search label{display:grid;gap:2px;padding:6px 10px;border-radius:8px;background:var(--crbk-sunk);min-width:0;margin:0}
.crbk .crbk-search label span{font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;font-weight:600;color:var(--crbk-muted)}
.crbk .crbk-search select{border:0;background:transparent;padding:2px 0;font:600 15px var(--crbk-f-body);color:var(--crbk-ink);width:100%;min-width:0;height:auto;box-shadow:none}
.crbk .crbk-res-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.crbk .crbk-res-head select{border:1px solid var(--crbk-line);background:var(--crbk-surface);border-radius:8px;padding:6px 8px;margin-left:6px;font:inherit;color:var(--crbk-ink)}
.crbk .crbk-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.crbk .crbk-card{display:flex;flex-direction:column;background:var(--crbk-surface);border:1px solid var(--crbk-line);border-radius:var(--crbk-r);overflow:hidden;transition:box-shadow .15s}
.crbk .crbk-card:hover{box-shadow:0 6px 20px rgba(13,42,51,.10)}
.crbk .crbk-pc{display:block;background:var(--crbk-sunk);aspect-ratio:16/10;max-width:100%;overflow:hidden}
.crbk .crbk-pc img,.crbk .crbk-pc svg{display:block;width:100%;height:100%;object-fit:cover;margin:0;max-width:100%}
.crbk .crbk-pc span{display:block;height:100%}
.crbk .crbk-card-body{padding:14px 16px 6px;display:grid;gap:4px;align-content:start;min-width:0;flex:1}
.crbk .crbk-card-body .crbk-h3{font-size:18px}
.crbk .crbk-when{font-weight:600;font-size:14px}
.crbk .crbk-card-price{padding:10px 16px 16px;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;border-top:1px dashed var(--crbk-line);margin:8px 16px 0;padding-left:0;padding-right:0}
.crbk .crbk-card-price strong{font-family:var(--crbk-f-display);font-weight:400;font-size:26px;font-variant-numeric:tabular-nums;line-height:1.1}
.crbk .crbk-more-wrap{text-align:center;margin-top:8px}
.crbk .crbk-empty{padding:28px;text-align:center;background:var(--crbk-surface);border:1px dashed var(--crbk-line);border-radius:var(--crbk-r)}

/* cruise detail */
.crbk-detail{margin-top:8px;container-type:inline-size}
.crbk .crbk-lead-route{font-size:16px;margin-bottom:6px}
.crbk .crbk-tbl-wrap{overflow-x:auto;border:1px solid var(--crbk-line);border-radius:var(--crbk-r);background:var(--crbk-surface);margin-top:10px}
.crbk table.crbk-itin{border-collapse:collapse;width:100%;min-width:440px;margin:0;border:0}
.crbk .crbk-itin th,.crbk .crbk-itin td{text-align:left;padding:9px 14px;border:0;border-bottom:1px solid var(--crbk-line);background:transparent}
.crbk .crbk-itin th{font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--crbk-muted);font-weight:600;background:var(--crbk-sunk)}
.crbk .crbk-itin tr:last-child td{border-bottom:0}
.crbk .crbk-t{font-family:var(--crbk-f-mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.crbk .crbk-itin tr.is-sea td{color:var(--crbk-muted);font-style:italic}
.crbk .crbk-ship{padding:18px 20px;display:grid;gap:10px}
.crbk .crbk-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin:0}
.crbk .crbk-facts div{display:grid}
.crbk .crbk-facts dt,.crbk .crbk-grid dt{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--crbk-muted);font-weight:600;margin:0}
.crbk .crbk-facts dd{margin:0;font-family:var(--crbk-f-mono);font-variant-numeric:tabular-nums}

/* booking app */
.crbk .crbk-app{scroll-margin-top:90px}
.crbk .crbk-pick{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:14px;align-items:start}
@container (max-width:700px){.crbk .crbk-pick{grid-template-columns:1fr}}
.crbk .crbk-pick .crbk-panel{display:grid;gap:12px}
.crbk .crbk-dates{display:grid;gap:6px}
.crbk .crbk-date{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--crbk-line);border-radius:8px;cursor:pointer;margin:0}
.crbk .crbk-date input{accent-color:var(--crbk-accent);margin:0}
.crbk .crbk-date.is-on{border-color:var(--crbk-accent);background:color-mix(in srgb,var(--crbk-accent) 7%,var(--crbk-surface))}
.crbk .crbk-grow{flex:1}
.crbk .crbk-tag{display:block;font-size:11px;color:var(--crbk-ok);font-weight:600}
.crbk .crbk-catprices{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.crbk .crbk-catprices li{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px dashed var(--crbk-line);margin:0}

.crbk .crbk-steps-top{display:grid;gap:12px}
.crbk .crbk-stepper{list-style:none;margin:0;padding:0;display:flex;gap:6px;flex-wrap:wrap}
.crbk .crbk-stepper li{display:flex;align-items:center;gap:8px;padding:5px 14px 5px 5px;border-radius:999px;background:var(--crbk-surface);border:1px solid var(--crbk-line);color:var(--crbk-muted);font-weight:500;font-size:14px;margin:0}
.crbk .crbk-n{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--crbk-sunk);font-size:12px;font-weight:700}
.crbk .crbk-stepper li.is-now{color:var(--crbk-ink);border-color:var(--crbk-ink)}
.crbk .crbk-stepper li.is-now .crbk-n{background:var(--crbk-ink);color:var(--crbk-surface)}
.crbk .crbk-stepper li.is-done .crbk-n{background:var(--crbk-ok);color:#fff}
.crbk .crbk-bgrid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;margin-top:18px;align-items:start}
@container (max-width:860px){.crbk .crbk-bgrid{grid-template-columns:1fr}}
.crbk .crbk-bmain{display:grid;gap:22px;min-width:0}
.crbk .crbk-blk{display:grid;gap:12px}
.crbk .crbk-blk-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.crbk .crbk-counters{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.crbk .crbk-ctr{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;background:var(--crbk-surface);border:1px solid var(--crbk-line);border-radius:var(--crbk-r)}
.crbk .crbk-ctr>div:first-child{display:grid}
.crbk .crbk-ctr-c{display:flex;align-items:center;gap:10px}
.crbk .crbk-ctr-c button{width:34px;height:34px;padding:0;border-radius:50%;border:1px solid var(--crbk-line);background:var(--crbk-surface);color:var(--crbk-ink);cursor:pointer;font-size:18px;line-height:1;min-height:0}
.crbk .crbk-ctr-c button:disabled{opacity:.35;cursor:not-allowed}
.crbk .crbk-ctr-c output{min-width:18px;text-align:center;font-weight:700;font-variant-numeric:tabular-nums}
.crbk .crbk-cats,.crbk .crbk-payopts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@container (max-width:560px){.crbk .crbk-cats,.crbk .crbk-payopts{grid-template-columns:1fr}}
.crbk .crbk-cat{position:relative;display:grid;gap:4px;padding:14px 16px;background:var(--crbk-surface);border:1px solid var(--crbk-line);border-radius:var(--crbk-r);cursor:pointer;margin:0}
.crbk .crbk-cat input{position:absolute;opacity:0;pointer-events:none}
.crbk .crbk-cat.is-on{border-color:var(--crbk-accent);box-shadow:inset 0 0 0 1px var(--crbk-accent)}
.crbk .crbk-cat.is-disabled{opacity:.5;cursor:not-allowed}
.crbk .crbk-cat:has(input:focus-visible){outline:2px solid var(--crbk-accent);outline-offset:2px}
.crbk .crbk-cat-name{font-weight:700;font-size:16px}
.crbk .crbk-cat-price{font-family:var(--crbk-f-display);font-size:20px;margin-top:4px}
.crbk .crbk-cat-price small{font-family:var(--crbk-f-body);font-size:12px;color:var(--crbk-muted)}
.crbk .crbk-decks{display:flex;gap:6px;flex-wrap:wrap}
.crbk .crbk-deck{border:1px solid var(--crbk-line);background:var(--crbk-surface);color:var(--crbk-ink);border-radius:999px;padding:6px 14px;cursor:pointer;font:500 14px var(--crbk-f-body);min-height:0}
.crbk .crbk-deck.is-on{background:var(--crbk-ink);color:var(--crbk-surface);border-color:var(--crbk-ink)}
.crbk .crbk-mapwrap{overflow-x:auto;background:var(--crbk-surface);border:1px solid var(--crbk-line);border-radius:var(--crbk-r);padding:14px}
.crbk .crbk-map{min-width:560px;display:grid;gap:6px}
.crbk .crbk-ends{display:flex;justify-content:space-between;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--crbk-muted);font-weight:600}
.crbk .crbk-row{display:grid;gap:5px;align-items:center}
.crbk .crbk-side{font-size:12px;color:var(--crbk-muted)}
.crbk .crbk-corridor{height:14px;border-radius:4px;background:repeating-linear-gradient(90deg,var(--crbk-sunk) 0 10px,transparent 10px 16px);margin-left:85px}
.crbk .crbk-cab{font:12.5px var(--crbk-f-mono);padding:9px 0;border-radius:6px;border:1px solid var(--crbk-line);background:var(--crbk-bg);color:var(--crbk-ink);cursor:pointer;font-variant-numeric:tabular-nums;min-height:0;width:100%}
.crbk .crbk-cab:hover:not(:disabled){border-color:var(--crbk-accent)}
.crbk .crbk-cab.is-taken{background:repeating-linear-gradient(135deg,var(--crbk-taken) 0 4px,transparent 4px 8px);color:var(--crbk-muted);cursor:not-allowed;text-decoration:line-through}
.crbk .crbk-cab.is-on{background:var(--crbk-accent);color:var(--crbk-accent-ink);border-color:var(--crbk-accent);font-weight:600}
.crbk .crbk-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px;color:var(--crbk-muted)}
.crbk .crbk-legend i{display:inline-block;width:14px;height:14px;border-radius:3px;border:1px solid var(--crbk-line);vertical-align:-2px;margin-right:6px;background:var(--crbk-bg)}
.crbk .crbk-legend i.t{background:repeating-linear-gradient(135deg,var(--crbk-taken) 0 3px,transparent 3px 6px)}
.crbk .crbk-legend i.s{background:var(--crbk-accent);border-color:var(--crbk-accent)}
.crbk fieldset.crbk-guest{border:1px solid var(--crbk-line);border-radius:var(--crbk-r);background:var(--crbk-surface);padding:14px 16px 16px;margin:0}
.crbk .crbk-guest legend{font-weight:700;padding:0 6px;font-size:15px}
.crbk .crbk-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@container (max-width:560px){.crbk .crbk-fields{grid-template-columns:1fr}}
.crbk .crbk-fld{display:grid;gap:4px;min-width:0;margin:0}
.crbk .crbk-fld span{font-size:12.5px;color:var(--crbk-muted);font-weight:600}
.crbk .crbk-fld input,.crbk .crbk-fld select,.crbk .crbk-fld textarea{border:1px solid var(--crbk-line);border-radius:8px;padding:10px 12px;background:var(--crbk-bg);color:var(--crbk-ink);width:100%;min-width:0;font:15px var(--crbk-f-body);margin:0;box-shadow:none;height:auto}
.crbk .crbk-fld input.is-bad{border-color:var(--crbk-bad);box-shadow:0 0 0 1px var(--crbk-bad)}
.crbk .crbk-extra{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 16px;background:var(--crbk-surface);border:1px solid var(--crbk-line);border-radius:var(--crbk-r);cursor:pointer;margin:0}
.crbk .crbk-extra input{width:18px;height:18px;accent-color:var(--crbk-accent);margin:0}
.crbk .crbk-extra:has(input:checked){border-color:var(--crbk-accent)}
.crbk .crbk-extra b{display:block}
.crbk .crbk-extra .crbk-small{display:block}
.crbk .crbk-p{text-align:right}
.crbk .crbk-p small{display:block;font-family:var(--crbk-f-body);color:var(--crbk-muted);font-size:11.5px}
.crbk .crbk-note{font-size:14px;padding:10px 14px;border-radius:8px;background:var(--crbk-sunk)}
.crbk .crbk-terms{display:flex;gap:10px;align-items:flex-start;font-size:14px;margin:0}
.crbk .crbk-terms input{margin-top:3px;accent-color:var(--crbk-accent)}
.crbk .crbk-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.crbk .crbk-err{color:var(--crbk-bad);font-weight:600}
.crbk .crbk-err:empty{display:none}
.crbk .crbk-bnav{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.crbk .crbk-summary{padding:18px 20px;display:grid;gap:12px;position:sticky;top:90px}
.crbk .crbk-s-title{font-weight:700}
.crbk .crbk-s-dl{margin:0;display:grid;gap:6px;font-size:14px}
.crbk .crbk-s-dl div{display:flex;justify-content:space-between;gap:12px}
.crbk .crbk-s-dl dt{color:var(--crbk-muted);margin:0;font-weight:400}
.crbk .crbk-s-dl dd{margin:0;text-align:right}
.crbk .crbk-s-lines{list-style:none;margin:0;padding:12px 0 0;border-top:1px solid var(--crbk-line);display:grid;gap:6px;font-size:14px}
.crbk .crbk-s-lines li{display:flex;justify-content:space-between;gap:12px;margin:0}
.crbk .crbk-s-lines.is-busy{opacity:.55}
.crbk .crbk-s-total{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--crbk-line);padding-top:12px}
.crbk .crbk-s-total strong{font-family:var(--crbk-f-display);font-weight:400;font-size:28px;font-variant-numeric:tabular-nums}

/* confirmation & manage */
.crbk .crbk-done{padding:24px;display:grid;gap:14px}
.crbk .crbk-ref{font-size:18px;font-weight:500;padding:3px 10px;background:var(--crbk-sunk);border-radius:6px;letter-spacing:.06em}
.crbk .crbk-callout{padding:14px 16px;border-radius:8px;background:color-mix(in srgb,var(--crbk-accent) 9%,var(--crbk-surface));border:1px solid color-mix(in srgb,var(--crbk-accent) 30%,var(--crbk-surface));display:grid;gap:6px}
.crbk .crbk-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin:0}
.crbk .crbk-grid div{padding:10px 12px;background:var(--crbk-sunk);border-radius:8px}
.crbk .crbk-grid dd{margin:2px 0 0;font-weight:600}
.crbk .crbk-actions{display:flex;gap:10px;flex-wrap:wrap}
.crbk-manage{display:grid;gap:14px;container-type:inline-size}
.crbk .crbk-lookup{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:10px;align-items:end;padding:16px}
@container (max-width:600px){.crbk .crbk-lookup{grid-template-columns:1fr}}
.crbk .crbk-pill{font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px}
.crbk .crbk-pill.is-ok{background:color-mix(in srgb,var(--crbk-ok) 16%,transparent);color:var(--crbk-ok)}
.crbk .crbk-pill.is-due{background:color-mix(in srgb,var(--crbk-accent) 16%,transparent);color:var(--crbk-accent)}
.crbk .crbk-pill.is-off{background:var(--crbk-sunk);color:var(--crbk-muted)}
@media (prefers-reduced-motion:no-preference){.crbk .crbk-cat,.crbk .crbk-date,.crbk .crbk-cab{transition:border-color .15s,background-color .15s}}

.crbk .crbk-search .crbk-go{align-self:stretch;min-height:48px}
