.portal-search {
  padding-top: 140px;
}

.portal-detail { max-width: 1600px; margin: 0 auto; padding: 92px 20px 24px; }
.portal-detail__bar { display: flex; align-items: center; gap: 22px; min-height: 58px; margin-bottom: 10px; padding: 9px 14px; border: 1px solid #dce4e0; border-radius: 10px; background: #fff; box-shadow: 0 5px 18px rgb(35 55 47 / 7%); }
.portal-detail__bar > div { min-width: 0; }
.portal-detail__bar .eyebrow { display: block; margin-bottom: 2px; color: #7a351f; font-size: .65rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.portal-detail__bar h1 { margin: 0; font-size: clamp(1.2rem,2vw,1.65rem); line-height: 1.1; }
.portal-detail__back { flex: 0 0 auto; min-height: 40px; padding: 9px 13px; border: 1px solid #d1dcd7; border-radius: 7px; background: #f6f3ed; color: #73311f; font: 700 .8rem/1.2 inherit; cursor: pointer; }
.portal-detail__back:hover { border-color: #b9c9c1; background: #efe9df; }
#rio-detail-status { margin: 0; padding: 14px 16px; border-radius: 8px; background: #f6f3ed; color: #53635d; font-size: .9rem; }

.portal-search { max-width: 1320px; }
.portal-search > h1 { margin-bottom: 10px; font-size: clamp(2.6rem, 5vw, 4.8rem); line-height: .98; }
.portal-search > h1::after {
  content: "Finden Sie aus dem aktuellen Angebot die Reise, die zu Ihren Plänen passt.";
  display: block;
  max-width: 720px;
  margin-top: 18px;
  font-family: Arial, sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.55;
  color: #53635d;
}

.portal-offers__grid,
.portal-search-results {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  align-items: start;
}

.portal-offer-card {
  background: #fff;
  border: 1px solid #d8e1dd;
  border-radius: 12px;
  box-shadow: 0 12px 32px rgb(0 0 0 / 8%);
  overflow: hidden;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.portal-search-results .portal-offer-card:hover {
  transform: translateY(-4px);
  border-color: #bdc9c3;
  box-shadow: 0 18px 42px rgb(34 52 45 / 14%);
}

.portal-offer-card__image {
  margin: 0;
  position: relative;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  background: #e8eeeb;
}

.portal-offer-card__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.portal-offer-card__body {
  padding: 22px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 300px;
}

.portal-offer-card h2,
.portal-offer-card h3 { margin: 0; font-size: clamp(1.35rem, 2vw, 1.75rem); line-height: 1.15; }
.portal-offer-card p { margin: 0; }
.portal-offer-card__provider { font-weight: 700; color: #7a351f; }
.portal-offer-card__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.portal-offer-card__flight { display: inline-flex; align-items: center; gap: 6px; flex: 0 0 auto; width: fit-content; padding: 5px 9px; border: 1px solid transparent; border-radius: 999px; font-size: .72rem; font-weight: 700; line-height: 1.1; }
.portal-offer-card__flight svg { display: block; width: 15px !important; height: 15px !important; min-width: 15px; max-width: 15px; flex: 0 0 15px; fill: currentColor; }
.portal-offer-card__flight--included { border-color: #bdd8ca; background: #e9f5ee; color: #17623e; }
.portal-offer-card__flight--included::after { content: "✓"; font-size: .8rem; font-weight: 900; }
.portal-offer-card__flight--excluded { border-color: #dfd5ce; background: #f5f1ee; color: #79523e; }
.portal-offer-card__flight--excluded svg { opacity: .7; }
.portal-offer-card__flight--excluded::after { content: "–"; font-size: .9rem; font-weight: 900; }
.portal-offer-card__flight--unknown { border-color: #d8c992; background: #fff8df; color: #68551a; }
.portal-offer-card__flight--unknown::after { content: "?"; display: grid; place-items: center; width: 15px; height: 15px; border: 1px solid currentColor; border-radius: 50%; font-size: .65rem; }
.portal-offer-card__facts { display: flex; flex-wrap: wrap; gap: 7px; }
.portal-offer-card__facts span { padding: 5px 9px; border: 1px solid #d8e1dd; border-radius: 999px; color: #45564f; font-size: .78rem; }
.portal-offer-card__places { color: #687770; font-size: .86rem; line-height: 1.45; }
.portal-offer-card__footer { display: flex; align-items: end; justify-content: space-between; gap: 14px; margin-top: auto; padding-top: 12px; border-top: 1px solid #e4e9e6; }
.portal-offer-card__price { margin-top: auto !important; }
.portal-offer-card__price > span { font-size: .8rem; color: #66756e; }
.portal-offer-card__price strong { display: block; font-size: 1.45rem; line-height: 1.1; }
.portal-offer-card__price small { display: block; }
.portal-offer-card .button { min-height: 44px; padding: 11px 14px; white-space: nowrap; }

.portal-search form {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin: 30px 0 20px;
  padding: 24px;
  border: 1px solid #dce4e0;
  border-radius: 18px;
  background: linear-gradient(145deg, #fff, #f4f7f5);
  box-shadow: 0 16px 42px rgb(35 55 47 / 8%);
}

.portal-search label { display: grid; gap: 7px; color: #32463e; font-size: .84rem; font-weight: 700; }
.portal-search input,
.portal-search select { min-height: 48px; width: 100%; padding-inline: 12px; border: 1px solid #ccd8d2; border-radius: 8px; background-color: #fff; font: inherit; font-weight: 400; }
.portal-search form > .button { align-self: end; min-height: 48px; }
#rio-result-count { margin: 28px 0 16px; color: #32463e; font-weight: 700; }
.portal-detail iframe { display: block; width: 100%; min-height: 700px; border: 0; background: #fff; }

.portal-offers__featured {
  display: grid;
  grid-template-columns: minmax(220px,.65fr) minmax(420px,1.35fr);
  gap: clamp(24px,4vw,60px);
  align-items: center;
  margin: 26px 0 32px;
  padding: clamp(24px,4vw,48px);
  border-radius: 22px;
  background: linear-gradient(135deg,#0b443a,#12332e);
  color: #fff;
}
.portal-offers__featured > div:first-child h3 { margin: .4rem 0; color: inherit; font-size: clamp(1.8rem,3vw,3rem); line-height: 1.04; }
.portal-offers__featured .rio-context-card { box-shadow: 0 18px 54px rgb(0 0 0 / 24%); }

.rio-home-offers { background: linear-gradient(180deg,#f3f0e9,#fff); }
.rio-home-offers > .wrap { padding-block: clamp(54px,8vw,96px); }
.rio-home-offers__grid,
.rio-context__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.rio-home-offers__grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.rio-context__head { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 24px; }
.rio-context__head h2 { margin: .25rem 0 0; }
.rio-context__head > a { flex: 0 0 auto; font-weight: 700; }

.rio-context {
  margin: clamp(36px,6vw,72px) 0;
  padding: clamp(24px,4vw,42px);
  border: 1px solid #d8e1dd;
  border-radius: 22px;
  background: linear-gradient(145deg,#f7f4ed,#eef4f0);
  box-shadow: 0 18px 48px rgb(34 52 45 / 8%);
}
.rio-context-card { display: grid; grid-template-columns: minmax(130px,.85fr) minmax(0,1.15fr); min-width: 0; overflow: hidden; border: 1px solid #d8e1dd; border-radius: 14px; background: #fff; color: #263b34; box-shadow: 0 10px 28px rgb(34 52 45 / 9%); }
.rio-context-card .portal-offer-card__image { height: 100%; min-height: 220px; aspect-ratio: auto; }
.rio-context-card > div { align-self: center; padding: 22px; }
.rio-context-card h3 { margin: .35rem 0 .65rem; font-size: clamp(1.2rem,2vw,1.65rem); line-height: 1.12; }
.rio-context-card p { margin: .45rem 0; }
.rio-context-card__price { color: #7a351f; }
.rio-context-card > div > a { display: inline-block; margin-top: .55rem; font-weight: 750; }
.rio-context__note { margin: 18px 0 0; color: #596a63; font-size: .84rem; }

@media (max-width: 900px) {
  .portal-offers__grid,
  .portal-search-results,
  .portal-search form { grid-template-columns: 1fr 1fr; }
  .portal-offers__featured { grid-template-columns: 1fr; }
  .rio-home-offers__grid { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  .portal-search { padding-top: 120px; }
  .portal-detail { padding: 78px 10px 14px; }
  .portal-detail__bar { align-items: flex-start; flex-direction: column-reverse; gap: 8px; margin-bottom: 7px; padding: 10px 12px; }
  .portal-detail__bar h1 { font-size: 1.2rem; }
  .portal-detail__back { min-height: 36px; padding-block: 7px; }
  .portal-offers__grid,
  .portal-search-results,
  .portal-search form { grid-template-columns: 1fr; }
  .portal-search form { padding: 18px; }
  .portal-offer-card__footer { align-items: stretch; flex-direction: column; }
  .portal-offer-card .button { text-align: center; }
  .rio-context__grid { grid-template-columns: 1fr; }
  .rio-context__head { align-items: start; flex-direction: column; }
  .rio-context-card { grid-template-columns: 1fr; }
  .rio-context-card .portal-offer-card__image { min-height: 190px; aspect-ratio: 16 / 9; }
}

@media (prefers-reduced-motion: reduce) {
  .portal-offer-card * { scroll-behavior: auto !important; transition: none !important; }
}
