/*
 * Core Cruises | Startseiten-Suche v1.2.0
 * Eigenständige Vorauswahl. Alle Regeln bleiben im Namensraum .ccq.
 * Keine Abhängigkeit von Bootstrap, CruiseCompass oder einer Kalenderbibliothek.
 * Die vorhandenen IBE- und Startseiten-Stylesheets werden NICHT ersetzt.
 */
.ccq {
  --ccq-navy:#0A1A2F; --ccq-blue:#003366; --ccq-gold:#D4AF37;
  --ccq-gold-hover:#E5C665; --ccq-white:#fff; --ccq-bg:#F4F7F9;
  --ccq-line:#D9E3EA; --ccq-muted:#53677A; --ccq-error:#A92532;
  box-sizing:border-box; max-width:1140px; margin:0 auto; padding:26px 20px;
  font-family:Figtree,"Segoe UI",system-ui,-apple-system,sans-serif;
  color:var(--ccq-navy); line-height:1.5; font-size:16px;
}
.ccq *, .ccq *::before, .ccq *::after { box-sizing:border-box; }
.ccq [hidden] { display:none !important; }
.ccq button, .ccq input, .ccq select { font:inherit; letter-spacing:normal; text-transform:none; }
.ccq button { cursor:pointer; }
.ccq button:disabled { cursor:default; }
.ccq .ccq-box {
  padding:26px; border:1px solid rgba(255,255,255,.12); border-radius:22px;
  background:radial-gradient(ellipse at 95% 0%,rgba(63,169,174,.16),transparent 60%),
    linear-gradient(115deg,#0A1A2F,#003366);
  box-shadow:0 12px 32px rgba(10,26,47,.12);
}
.ccq .ccq-heading { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:12px; margin-bottom:22px; }
.ccq .ccq-kicker { display:block; margin:0 0 6px; color:var(--ccq-gold); font-size:11px; font-weight:750; letter-spacing:.13em; text-transform:uppercase; }
.ccq .ccq-title { margin:0; color:#fff; font-size:clamp(23px,2.3vw,29px); font-weight:750; line-height:1.18; letter-spacing:-.025em; }
.ccq .ccq-intro { margin:0; color:#CDDEEA; font-size:13px; }
.ccq .ccq-grid { display:grid; grid-template-columns:1.05fr 1.05fr 1.35fr 1fr 176px; gap:10px; align-items:stretch; }
.ccq .ccq-field { min-width:0; position:relative; }
.ccq .ccq-trigger {
  width:100%; min-height:78px; display:grid; grid-template-columns:21px minmax(0,1fr) 14px;
  align-items:center; column-gap:10px; padding:14px 12px;
  border:1px solid rgba(255,255,255,.7); border-radius:12px;
  background:#fff; color:var(--ccq-navy); box-shadow:none; text-align:left;
  transition:border-color .15s,box-shadow .15s;
}
.ccq .ccq-trigger:hover { border-color:var(--ccq-gold); box-shadow:0 0 0 2px rgba(212,175,55,.16); }
.ccq .ccq-trigger[aria-expanded="true"] { border-color:var(--ccq-gold); box-shadow:0 0 0 3px rgba(212,175,55,.22); }
.ccq .ccq-trigger[data-ccq-invalid="true"] { border-color:#C83948; }
.ccq .ccq-trigger-copy { min-width:0; display:block; }
.ccq .ccq-label { display:block; color:var(--ccq-muted); font-size:11px; font-weight:650; line-height:1.3; margin-bottom:4px; }
.ccq .ccq-value { display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--ccq-navy); font-size:14px; font-weight:700; line-height:1.4; }
.ccq .ccq-value--small { font-size:12px; }
.ccq .ccq-icon { display:block; flex:0 0 auto; width:21px; height:21px; color:currentColor; }
.ccq .ccq-chevron { width:14px; height:14px; color:#6C8194; }
.ccq .ccq-submit {
  display:flex; justify-content:center; align-items:center; gap:9px; width:100%; min-height:78px;
  padding:13px 14px; border:1px solid var(--ccq-gold); border-radius:12px;
  background:var(--ccq-gold); color:var(--ccq-navy); font-size:15px; line-height:1.35;
  font-weight:800; box-shadow:0 5px 14px rgba(0,0,0,.12); text-align:left;
  transition:background .15s,box-shadow .15s;
}
.ccq .ccq-submit:hover { background:var(--ccq-gold-hover); border-color:var(--ccq-gold-hover); box-shadow:0 7px 18px rgba(0,0,0,.18); }
.ccq .ccq-bottom { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:9px 18px; margin-top:15px; }
.ccq .ccq-advanced { margin-top:15px; border:1px solid rgba(255,255,255,.2); border-radius:12px; color:#fff; }
.ccq .ccq-advanced > summary { display:flex; align-items:center; flex-wrap:wrap; gap:5px 10px; padding:12px 15px; cursor:pointer; font-size:14px; font-weight:750; list-style:none; }
.ccq .ccq-advanced > summary::-webkit-details-marker { display:none; }
.ccq .ccq-advanced > summary::before { content:'+'; display:inline-grid; place-items:center; width:21px; height:21px; border:1px solid rgba(255,255,255,.6); border-radius:50%; font-size:17px; line-height:1; }
.ccq .ccq-advanced[open] > summary::before { content:'−'; }
.ccq .ccq-advanced > summary span { margin-left:auto; color:#D1DFEA; font-size:12px; font-weight:500; }
.ccq .ccq-advanced-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; padding:0 15px 13px; }
.ccq .ccq-advanced-grid .ccq-trigger { min-height:73px; }
.ccq .ccq-advanced-control { min-width:0; padding:8px 12px; border:1px solid rgba(255,255,255,.7); border-radius:12px; background:#fff; color:var(--ccq-navy); }
.ccq .ccq-advanced-control label { display:block; margin-bottom:4px; color:var(--ccq-muted); font-size:11px; font-weight:650; }
.ccq .ccq-advanced-control select, .ccq .ccq-advanced-control input { width:100%; min-height:32px; padding:3px 5px; border:1px solid transparent; border-radius:6px; background:#fff; color:var(--ccq-navy); font-size:14px; font-weight:700; }
.ccq .ccq-advanced-control select:focus, .ccq .ccq-advanced-control input:focus { outline:2px solid var(--ccq-blue); outline-offset:1px; }
.ccq .ccq-price-wrap { display:flex; align-items:center; }
.ccq .ccq-price-wrap span { color:var(--ccq-muted); font-weight:750; }
.ccq .ccq-advanced-note { margin:0; padding:0 15px 13px; color:#D1DFEA; font-size:12px; }
.ccq .ccq-note { margin:0; color:#D1DFEA; font-size:12px; line-height:1.5; }
.ccq .ccq-reset { display:inline-flex; align-items:center; gap:6px; padding:5px 0; border:0; background:none; color:#EAF2F7; font-size:12px; font-weight:650; }
.ccq .ccq-reset .ccq-icon { width:15px; height:15px; }
.ccq .ccq-reset:hover { color:var(--ccq-gold); }
.ccq .ccq-error { margin:14px 0 0; padding:11px 13px; border:1px solid #F0B6BD; border-radius:10px; background:#FFF0F2; color:#861F2A; font-size:14px; }
.ccq .ccq-sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
/* Native Popover API: echte oberste Ebene, kein z-index-Wettbewerb mit der Website. */
.ccq .ccq-panel {
  position:fixed; inset:auto; margin:0; padding:0; width:350px; max-width:calc(100vw - 24px);
  max-height:calc(100dvh - 24px); overflow:auto; overscroll-behavior:contain;
  border:1px solid var(--ccq-line); border-radius:17px; background:#fff; color:var(--ccq-navy);
  box-shadow:0 18px 52px rgba(10,26,47,.22); text-align:left;
  font-family:Figtree,"Segoe UI",system-ui,-apple-system,sans-serif; line-height:1.5;
}
.ccq .ccq-panel::backdrop { background:transparent; }
.ccq .ccq-panel-head { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; padding:19px 18px 12px; }
.ccq .ccq-panel-title { margin:0; color:var(--ccq-navy); font-size:18px; font-weight:750; line-height:1.3; }
.ccq .ccq-hint { margin:5px 0 0; color:var(--ccq-muted); font-size:12px; font-weight:400; line-height:1.45; }
.ccq .ccq-close { display:grid; place-items:center; flex:0 0 auto; width:32px; height:32px; padding:0; border:1px solid var(--ccq-line); border-radius:50%; background:#fff; color:var(--ccq-navy); }
.ccq .ccq-close .ccq-icon { width:16px; height:16px; }
.ccq .ccq-close:hover { background:var(--ccq-bg); }
.ccq .ccq-panel-tools { display:flex; justify-content:space-between; gap:12px; align-items:center; margin:0 18px 9px; }
.ccq .ccq-text-button { border:0; background:none; padding:4px 0; color:var(--ccq-blue); font-size:13px; font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.ccq .ccq-count { color:var(--ccq-muted); font-size:12px; }
.ccq .ccq-filter { margin:0 18px 10px; }
.ccq .ccq-filter input { width:100%; min-height:43px; padding:9px 12px; color:var(--ccq-navy); border:1px solid var(--ccq-line); border-radius:10px; background:#F8FAFC; font-size:16px; }
.ccq .ccq-options { display:block; min-width:0; padding:0 9px; margin:0; border:0; max-height:min(300px,42dvh); overflow-y:auto; overscroll-behavior:contain; }
.ccq [data-ccq-panel="hmi"] .ccq-options { max-height:min(180px,28dvh); }
.ccq .ccq-choice-group + .ccq-choice-group { margin-top:8px; }
.ccq .ccq-choice-group-title { position:sticky; top:0; z-index:1; margin:0 0 3px; padding:7px 10px; border-radius:7px; background:#EAF1F5; color:var(--ccq-blue); font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.ccq .ccq-option { display:flex; gap:11px; align-items:center; min-height:43px; margin:2px 0; padding:10px; border-radius:9px; cursor:pointer; }
.ccq .ccq-option:hover { background:#F3F6F9; }
.ccq .ccq-option:has(input:checked) { background:#F7F0DD; }
.ccq .ccq-option input { flex:0 0 18px; width:18px; height:18px; margin:0; accent-color:var(--ccq-blue); cursor:pointer; }
.ccq .ccq-option span { min-width:0; font-size:14px; color:var(--ccq-navy); font-weight:550; }
.ccq .ccq-option small { color:var(--ccq-muted); font-size:12px; font-weight:400; }
.ccq .ccq-empty { margin:10px 18px; color:var(--ccq-muted); font-size:14px; }
.ccq .ccq-panel-foot { position:sticky; bottom:0; display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:12px; padding:13px 18px; border-top:1px solid var(--ccq-line); background:#FBFCFE; border-radius:0 0 16px 16px; }
.ccq .ccq-apply { min-height:42px; margin-left:auto; padding:9px 19px; border:1px solid var(--ccq-gold); border-radius:10px; background:var(--ccq-gold); color:var(--ccq-navy); font-weight:750; font-size:14px; }
.ccq .ccq-apply:hover { background:var(--ccq-gold-hover); }
.ccq .ccq-panel-error { margin:10px 18px 0; padding:10px 12px; background:#FFF0F2; border:1px solid #F0B6BD; border-radius:9px; color:#861F2A; font-size:13px; }
.ccq .ccq-panel-body { padding:2px 18px 7px; }
.ccq .ccq-dates { display:grid; grid-template-columns:1fr; gap:14px; }
.ccq .ccq-date-label, .ccq .ccq-age-label { display:block; margin:0 0 6px; color:var(--ccq-navy); font-size:13px; font-weight:700; }
.ccq .ccq-date, .ccq .ccq-age-select { display:block; width:100%; min-height:47px; margin:0; padding:10px 12px; border:1px solid var(--ccq-line); border-radius:10px; background:#fff; color:var(--ccq-navy); font-size:16px; color-scheme:light; }
.ccq .ccq-date { min-width:0; }
.ccq .ccq-date::-webkit-date-and-time-value { text-align:left; }
.ccq .ccq-date:focus, .ccq .ccq-age-select:focus, .ccq .ccq-filter input:focus { outline:2px solid var(--ccq-blue); outline-offset:2px; }
.ccq [aria-invalid="true"] { border-color:var(--ccq-error); }
.ccq .ccq-date-note { margin:12px 0 0; color:var(--ccq-muted); font-size:12px; }
.ccq .ccq-step-row { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 0; border-bottom:1px solid #EDF1F5; }
.ccq .ccq-step-label { margin:0; color:var(--ccq-navy); font-size:15px; font-weight:700; }
.ccq .ccq-stepper { display:flex; align-items:center; gap:9px; flex:0 0 auto; }
.ccq .ccq-step { display:grid; place-items:center; width:38px; height:38px; padding:0; border:1px solid var(--ccq-line); border-radius:50%; background:#fff; color:var(--ccq-navy); }
.ccq .ccq-step:hover:not(:disabled) { background:#F7F0DD; border-color:var(--ccq-gold); }
.ccq .ccq-step:disabled { opacity:.35; }
.ccq .ccq-step .ccq-icon { width:16px; height:16px; }
.ccq .ccq-number { display:inline-block; min-width:22px; color:var(--ccq-navy); font-weight:750; font-size:17px; text-align:center; }
.ccq .ccq-ages { display:grid; gap:13px; margin-top:15px; }
.ccq .ccq-family-note { margin:13px 0 0; padding:10px 12px; background:var(--ccq-bg); border-radius:9px; color:var(--ccq-muted); font-size:12px; }
.ccq .ccq-family-note a { color:var(--ccq-blue); text-decoration:underline; text-underline-offset:2px; }
.ccq .ccq-fallback { margin:0; padding:18px; border:1px solid var(--ccq-line); border-radius:12px; background:var(--ccq-bg); color:var(--ccq-navy); font-size:14px; }
.ccq .ccq-fallback a { color:var(--ccq-blue); text-decoration:underline; }
.ccq button:focus-visible, .ccq a:focus-visible { outline:3px solid var(--ccq-gold-hover); outline-offset:3px; }
/* Ohne Popover-Unterstützung: aufklappbare Panels im normalen Seitenfluss. */
.ccq.ccq-inline .ccq-grid { grid-template-columns:1fr 1fr; }
.ccq.ccq-inline .ccq-panel { position:static; width:100%; max-width:none; margin-top:8px; max-height:none; box-shadow:none; }
.ccq.ccq-inline .ccq-submit { grid-column:1/-1; min-height:54px; text-align:center; }
@media (max-width:1079px) {
  .ccq .ccq-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .ccq .ccq-submit { grid-column:1/-1; min-height:51px; text-align:center; }
  .ccq .ccq-submit br { display:none; }
  .ccq .ccq-submit span { display:inline-flex; gap:4px; }
}
@media (max-width:760px) {
  .ccq { padding:20px 16px; }
  .ccq .ccq-box { padding:22px 18px; border-radius:18px; }
  .ccq .ccq-heading { margin-bottom:18px; }
  .ccq .ccq-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ccq .ccq-trigger { min-height:76px; grid-template-columns:19px minmax(0,1fr) 12px; gap:8px; padding:12px 10px; }
  .ccq .ccq-value { font-size:13px; }
  .ccq .ccq-value--small { font-size:11px; }
  .ccq .ccq-intro { font-size:12px; }
  .ccq .ccq-bottom { margin-top:13px; }
  .ccq .ccq-advanced-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:540px) {
  .ccq .ccq-grid, .ccq.ccq-inline .ccq-grid { grid-template-columns:1fr; }
  .ccq .ccq-trigger { min-height:67px; padding:12px 14px; grid-template-columns:21px minmax(0,1fr) 14px; gap:12px; }
  .ccq .ccq-label { font-size:11px; }
  .ccq .ccq-value { font-size:15px; }
  .ccq .ccq-value--small { font-size:13px; }
  .ccq .ccq-title { font-size:24px; }
  .ccq .ccq-intro { margin-top:2px; }
  .ccq .ccq-submit { min-height:54px; margin-top:2px; font-size:15px; }
  .ccq .ccq-note { font-size:11px; }
  .ccq .ccq-advanced-grid { grid-template-columns:1fr; }
  .ccq .ccq-advanced > summary span { width:100%; margin-left:31px; }
}
@media (prefers-reduced-motion:reduce) {
  .ccq *, .ccq *::before, .ccq *::after { transition:none!important; animation:none!important; scroll-behavior:auto!important; }
}

/* Mobile date-anchor hotfix 2026-10-05
 * Der sichtbare Enddatum-Wert bleibt unverändert. Auf Touch-Geräten öffnet ein
 * transparenter nativer date-Picker, dessen Monat am gewählten Startdatum
 * geankert wird. Desktop bleibt vollständig beim bisherigen Input.
 */
.ccq .ccq-date-input-wrap { display:block; position:relative; }
.ccq .ccq-date-proxy { display:none; }
@media (max-width:600px) and (pointer:coarse) {
  .ccq .ccq-date-input-wrap > [data-ccq-until] { pointer-events:none; }
  .ccq .ccq-date-input-wrap > .ccq-date-proxy {
    display:block;
    position:absolute;
    inset:0;
    z-index:2;
    width:100%;
    height:100%;
    margin:0;
    opacity:.001;
    cursor:pointer;
  }
}

.ccq-travel-options .ccq-date-label{margin-top:18px}.ccq-travel-options small{font-size:12px;font-weight:400}.ccq [data-ccq-custom-dates][hidden]{display:none!important}
