/* Shared decision cues for the search → options → booking journey. */
.hotel-category { display:inline-block; white-space:nowrap; color:#996000; font-size:16px; line-height:1.3; font-style:normal; letter-spacing:1px; vertical-align:baseline; }
.hotel-category__half { display:inline-block; width:.5em; overflow:hidden; vertical-align:bottom; }
.trip-content .block h2,.preview-pane .block h2 { flex-wrap:wrap; overflow-wrap:anywhere; }
.customer-reviews { container-type:inline-size; padding:clamp(16px,2.6vw,28px); margin:24px 0; background:#f3f6f7; border:1px solid #dce5e9; border-radius:18px; color:#162f42; }
.customer-reviews__eyebrow { display:block; margin-bottom:6px; font-size:12px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; color:#596975; }
.customer-reviews .customer-reviews__intro h2 { margin:0; font-size:clamp(20px,2.2vw,28px); line-height:1.25; color:#162f42; }
.customer-reviews__intro p { margin:6px 0 16px; font-size:15px; line-height:1.55; color:#4c5f6b; }
.customer-reviews__links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
/* The score reads as a badge on the left; source, stars, count and link stack
   beside it, so each profile stays one compact row instead of a tall column. */
.customer-reviews .customer-reviews__card { display:grid; grid-template-columns:auto minmax(0,1fr); grid-template-areas:"rating source" "rating stars" "rating count" "rating action"; align-items:center; gap:4px 16px; min-width:0; padding:16px 18px; border:1px solid #dce5e9; border-radius:14px; background:#fff; color:#162f42; text-decoration:none; transition:border-color .15s ease,box-shadow .15s ease; }
.customer-reviews__card:hover { border-color:#b98229; box-shadow:0 5px 18px #1733470a; }
.customer-reviews__card:focus-visible { outline:3px solid #173347; outline-offset:3px; }
.customer-reviews__source { grid-area:source; display:flex; justify-content:space-between; align-items:center; gap:12px; width:100%; font-size:16px; font-weight:800; }
.customer-reviews__source svg { width:16px; height:16px; color:#677b88; }
.customer-reviews__rating { grid-area:rating; align-self:stretch; display:flex; flex-direction:column; justify-content:center; align-items:center; min-width:76px; padding-right:16px; border-right:1px solid #e3eaee; }
.customer-reviews__rating strong { font-size:36px; line-height:1; letter-spacing:-.04em; color:#162f42; }
.customer-reviews__rating > span { margin-top:4px; font-size:12px; color:#536774; white-space:nowrap; }
.customer-reviews__stars { grid-area:stars; display:inline-flex; gap:3px; }
.customer-reviews__star { position:relative; display:block; width:18px; height:18px; color:#dce3e7; }
.customer-reviews__star svg { display:block; width:18px; height:18px; fill:currentColor; stroke:none; }
.customer-reviews__star > span { position:absolute; inset:0 auto 0 0; overflow:hidden; color:#b77806; }
.customer-reviews__count { grid-area:count; font-size:13px; color:#526571; }
.customer-reviews__action { grid-area:action; margin-top:2px; font-size:13px; font-weight:750; text-decoration:underline; text-underline-offset:3px; }
.customer-reviews__action > span[aria-hidden] { white-space:nowrap; }
.customer-reviews .customer-reviews__note { margin:12px 0 0; font-size:12px; line-height:1.5; color:#566a77; }
@container (max-width:520px) {
  .customer-reviews__links { grid-template-columns:1fr; gap:8px; }
  .customer-reviews .customer-reviews__card { gap:2px 14px; padding:12px 14px; }
  .customer-reviews__rating { min-width:64px; padding-right:14px; }
  .customer-reviews__rating strong { font-size:30px; }
  .customer-reviews .customer-reviews__intro h2 { font-size:20px; }
  .customer-reviews__intro p { margin:4px 0 12px; font-size:14px; }
  .customer-reviews .customer-reviews__note { margin-top:10px; font-size:11.5px; }
}
/* Inside the booking summary card the card is already the frame: a second
   tinted box with its own padding only squeezed the ratings on phones. */
.booking .customer-reviews { margin:16px 0 0; padding:16px 0 0; background:none; border:0; border-top:1px dashed var(--line,#dce5e9); border-radius:0; }
/* Checkout sidebar: the eyebrow names the box and the scores do the talking.
   A list of one-line rows in a narrow column, two cards side by side once
   each gets ~200px. The "von 5" and link text stay for screen readers. */
.customer-reviews--compact { margin:0; padding:16px 18px; border-radius:var(--radius-md,20px); }
.customer-reviews--compact .customer-reviews__eyebrow { margin-bottom:10px; font-size:11px; letter-spacing:.08em; }
.customer-reviews--compact .customer-reviews__intro h2,
.customer-reviews--compact .customer-reviews__intro p { display:none; }
.customer-reviews--compact .customer-reviews__links { grid-template-columns:1fr; gap:8px; }
.customer-reviews--compact .customer-reviews__card { position:relative; grid-template-columns:auto minmax(0,1fr); grid-template-areas:"rating source" "stars count"; gap:4px 14px; padding:10px 14px; border-radius:12px; }
.customer-reviews--compact .customer-reviews__rating { display:block; min-width:0; padding:0; border:0; }
.customer-reviews--compact .customer-reviews__rating strong { font-size:24px; }
.customer-reviews--compact .customer-reviews__rating > span,
.customer-reviews--compact .customer-reviews__action { position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.customer-reviews--compact .customer-reviews__source { font-size:15px; }
.customer-reviews--compact .customer-reviews__stars { gap:2px; }
.customer-reviews--compact .customer-reviews__star,
.customer-reviews--compact .customer-reviews__star svg { width:13px; height:13px; }
.customer-reviews--compact .customer-reviews__count { font-size:12.5px; }
.customer-reviews--compact .customer-reviews__note { margin-top:10px; font-size:11.5px; }
@container (min-width:400px) {
  .customer-reviews--compact .customer-reviews__links { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .customer-reviews--compact .customer-reviews__card { grid-template-areas:"source source" "rating stars" "count count"; gap:4px 10px; }
}
.flow-guide { display:flex; gap:12px; flex-wrap:wrap; padding:14px 0; color:#425463; font-size:14px; }
.flow-guide span { display:inline-flex; align-items:center; gap:6px; }
.flow-guide b { width:24px; height:24px; display:inline-grid; place-items:center; border:1px solid #b4c0c9; border-radius:50%; }
.flow-guide [aria-current] { color:#132c3e; font-weight:800; }
.flow-guide [aria-current] b { background:#132c3e; color:#fff; }
.trip-card .trip-desc { font-size:18px; color:#10293d; font-weight:800; line-height:1.45; }
.trip-card .trip-desc .hotel-category { margin-left:8px; }
.trip-hotel-stay { border-left:3px solid #eba018; padding:8px 12px; margin:12px 0; background:#fff8e9; font-size:14px; line-height:1.6; color:#203242; }
.trip-hotel-stay strong { display:block; font-size:12px; color:#59636c; }
.trip-foot .trip-price .pp { color:#4c5a66; }
.trip-next-note { display:block; margin-top:4px; font-size:12px; color:#526271; }
.flow-next-note { font-size:13px; line-height:1.5; color:#4d606d; margin-top:10px; }
.booking-entry__name { margin:6px 0; color:#122c3e; font-size:19px; font-weight:800; }
.booking-entry__actions { display:flex; flex-direction:column; gap:8px; align-items:stretch; }
.booking-entry__options { padding:12px 16px; border:1px solid #bccbd3; border-radius:8px; font-size:14px; font-weight:700; text-align:center; }
.booking-services { min-width:0; padding:24px; border:1px solid #dce8ed; border-radius:16px; background:#f2f8fa; }
.booking-services .api-card { overflow-x:auto; }
.booking-services__flights { margin-top:24px; }
.booking-services__flight-note { margin:10px 0 0; color:#526775; font-size:13px; line-height:1.5; }
#bookingUpgrades,#bookerDetails,#reiseSuche { scroll-margin-top:100px; }
@media(max-width:1060px) {
  .trip-main .grid-2 { display:flex; flex-direction:column; }
  .trip-main .grid-2>.side { order:-1; width:100%; }
  .trip-main .grid-2>.trip-content { width:100%; }
  .trip-main .side-contact { display:none; }
  .trip-main .booking { max-width:none; }
  .flow-guide { font-size:12px; gap:8px; }
  .booking-entry__actions { width:100%; }
}
@media(max-width:600px) {
  .trip-card .trip-desc { font-size:18px; }
  .customer-reviews { padding:14px; border-radius:16px; }
  .booking-services { padding:16px; }
}
@media(max-width:640px) {
  /* Results on a phone: the step guide as one row of three (like the booking
     strip), read-only summary pills at text height, and the price on one line
     so each offer card needs less scrolling before its CTA. */
  .flow-guide { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; padding:10px 0 12px; font-size:12px; line-height:1.25; }
  .flow-guide b { flex:0 0 auto; width:22px; height:22px; font-size:11px; }
  .active-pills { margin-bottom:12px; }
  .active-pills .active-pill:not(button) { min-height:32px; padding:4px 12px; }
  .trip-foot .trip-price { display:flex; flex-wrap:wrap; align-items:baseline; column-gap:6px; }
  .trip-foot .trip-price .amt,
  .trip-foot .trip-price .pp { margin-top:0; }
  .trip-foot .trip-next-note { flex-basis:100%; margin-top:2px; }
}
/* A priced card has two ways on (offer-card.php): the card and "Reise ansehen"
   open the detail page, "Zur Buchung" goes straight to room selection. Hovering
   the card lights the way the card itself goes, not the booking button. */
.trip-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:8px; }
.trip-detail-link { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:10px 16px; border:1px solid #c3ced6; border-radius:999px; background:#fff; color:var(--ink,#10293d); font-size:13.5px; font-weight:700; line-height:1.1; white-space:nowrap; transition:border-color .15s ease; }
.trip-card:hover .trip-detail-link { border-color:var(--ink,#10293d); }
.trip-card:hover .trip-actions .trip-cta-btn { background:var(--ink); }
.trip-card:hover .trip-actions .trip-cta-btn .arrow-chip { transform:none; }
.trip-card .trip-actions .trip-cta-btn:hover { background:#1d2734; }
.trip-card .trip-actions .trip-cta-btn:hover .arrow-chip { transform:translateX(2px); }
@media(max-width:640px) {
  .trip-actions { flex:1 1 100%; }
  .trip-actions .trip-detail-link { flex:1 1 auto; min-height:50px; }
  .trip-actions .trip-cta-btn { flex:1 1 auto; }
}
@media(min-width:1061px) {
  .trip-main .grid-2>.side { grid-column:2; grid-row:1; }
  .trip-main .grid-2>.trip-content { grid-column:1; grid-row:1; }
}
@media print {
  .customer-reviews,.flow-guide { display:none!important; }
  .trip-main .grid-2 { display:block; }
}
/* Names are already in the heading; keep the package recap focused on duration and flights. */
.trip-card .trip-package__leg:nth-child(-n+2) .trip-package__what { display:none; }
.trip-grid.list-view .trip-package { display:grid; grid-template-columns:1fr 1fr; gap:10px 16px; padding:12px; }
.trip-grid.list-view .trip-package__leg--flight { grid-column:1/-1; }
.trip-package__leg--flight>span { align-items:flex-start; text-align:left; }
@media(min-width:1060px) {
  .trip-grid.list-view .trip-media { flex-basis:250px; }
  .trip-grid.list-view .trip-body { padding:20px; gap:8px; }
  .trip-grid.list-view .trip-title { font-size:20px; }
}
@media(max-width:600px) {
  .trip-grid.list-view .trip-media { aspect-ratio:16/9; }
  /* Content-width legs keep "3 Tage Rundreise" on one line on phones. */
  .trip-grid.list-view .trip-package { grid-template-columns:repeat(2,auto); justify-content:start; column-gap:20px; }
}

.booking-copy-name { min-height:44px;padding:10px 14px;border:1px solid #a8bbc9;border-radius:7px;background:#f0f5f8;color:#173d57;font:inherit;font-weight:700;cursor:pointer;text-align:left; }
.booking-copy-name:focus-visible { outline:3px solid #173d57;outline-offset:2px; }
.stack-section.booking-remarks h2 { display:block; }
.booking-remarks h2 small { display:inline; margin-left:6px; white-space:nowrap; }
.occasion-links { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 24px; padding: 24px 0; }
.occasion-links strong { flex-basis: 100%; }
.occasion-links a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; text-underline-offset: 3px; }
.booking-copy-name { -webkit-tap-highlight-color: transparent; }
.booking-copy-name:active { background: #dce9f0; }

/* A departure that dropped out of the operator's date list: detail sidebar and result list. */
.departure-unavailable{padding:16px;margin:0 0 16px;background:#fff4dd;border:1px solid #c49c49;border-radius:10px;line-height:1.5}

/* "Inklusive" / "Optional" from the operator's services table, as on the legacy list. */
.trip-services { display:grid; gap:6px; margin:4px 0; font-size:13.5px; line-height:1.5; color:#203242; }
/* The card body is a flex column with its own gap: no second margin under the hotel note. */
.trip-hotel-stay + .trip-services { margin-top:0; }
.trip-services__row { display:grid; grid-template-columns:78px minmax(0,1fr); gap:10px; }
.trip-services dt { font-size:12px; font-weight:700; color:#59636c; padding-top:1px; }
.trip-services dd { margin:0; min-width:0; overflow-wrap:anywhere; }
.trip-services__row--optional dd { color:#7a4a00; }
