:root{
  --navy:#082f5f;
  --blue:#0868b8;
  --blue-strong:#005eb8;
  --ink:#17324a;
  --muted:#687b8c;
  --container:1160px;
  --r-sm:10px;
  --r-md:12px;
  --r-lg:14px;
  --shadow-card:0 18px 48px rgba(11,44,78,.13);
  --shadow-soft:0 8px 24px rgba(11,44,78,.08);
  font-family:"Segoe UI Variable","Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,Arial,sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:88px;scrollbar-gutter:stable}
body{margin:0;color:var(--ink);background:#fff;font-family:inherit;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
html.home-viewport-fit{overflow-y:hidden}
/* Offene Suchfelder dürfen über die Seite scrollen; der Root-Gutter bleibt stabil. */
html.home-viewport-fit:has(> body.home-page:not(.results-mode).tbe-popup-visible){overflow-y:auto}
/* Homepage als echte Seitenstruktur: der Footer bleibt bei kurzen Viewports am unteren Rand. */
body.home-page:not(.results-mode),
body.destination-page:not(.destination-results-mode){min-height:100dvh;display:flex;flex-direction:column}
body.home-page:not(.results-mode)>main,
body.destination-page:not(.destination-results-mode)>main{flex:0 0 auto}
body.home-page:not(.results-mode)>.site-footer,
body.destination-page:not(.destination-results-mode)>.site-footer{margin-top:auto}
a{color:inherit}
.container{width:min(var(--container),calc(100% - 48px));margin-inline:auto}

/* Header: reduzierter Marken-Header direkt über dem Hero. */
.site-header{
  position:fixed;
  z-index:100;
  inset:0 0 auto;
  width:auto;
  height:76px;
  background:rgba(255,255,255,.22);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border-bottom:1px solid rgba(255,255,255,.30);
  transition:background .2s ease,box-shadow .2s ease,backdrop-filter .2s ease;
}
.site-header.is-scrolled,
.results-mode .site-header{
  position:fixed;
  background:rgba(235,246,250,.90);
  backdrop-filter:blur(18px);
  box-shadow:0 8px 24px rgba(8,47,95,.06);
}
.header-inner{position:relative;z-index:103;height:100%;display:flex;align-items:center;justify-content:space-between;gap:32px}
.brand{display:flex;align-items:center;text-decoration:none;white-space:nowrap}
.brand-wordmark{font-size:24px;line-height:1;letter-spacing:-.6px;color:#0A3F78;font-weight:700}
.brand-wordmark .brand-domain{color:#169FE6;font-weight:700}
.header-actions{display:flex;align-items:center;gap:30px;color:var(--navy)}
.callback-link{font-size:14px;line-height:1;font-weight:600;text-decoration:none;white-space:nowrap;text-underline-offset:5px;text-decoration-thickness:1px}
.callback-link:hover,.callback-link:focus-visible{color:var(--blue);text-decoration:underline}
.callback-label-short{display:none}
.menu-toggle{appearance:none;display:flex;align-items:center;gap:11px;padding:10px 0;border:0;background:transparent;color:var(--navy);font:inherit;font-size:14px;line-height:1;font-weight:560;cursor:pointer}
.menu-toggle:hover,.menu-toggle:focus-visible{color:var(--blue)}
.hamburger{display:flex;width:22px;height:16px;flex-direction:column;justify-content:space-between}
.hamburger i{display:block;width:100%;height:1.5px;border-radius:2px;background:currentColor;transform-origin:center;transition:transform .18s ease,opacity .18s ease}
.menu-toggle[aria-expanded="true"] .hamburger i:nth-child(1){transform:translateY(7.25px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] .hamburger i:nth-child(2){opacity:0}
.menu-toggle[aria-expanded="true"] .hamburger i:nth-child(3){transform:translateY(-7.25px) rotate(-45deg)}
.menu-backdrop{position:fixed;z-index:101;inset:0;display:block;padding:0;border:0;background:rgba(7,31,54,.18);opacity:0;visibility:hidden;cursor:default;transition:opacity .18s ease,visibility .18s ease}
.brand-menu{position:fixed;z-index:102;top:76px;right:max(24px,calc((100vw - var(--container))/2));width:min(430px,calc(100vw - 48px));padding:10px 0 16px;border:1px solid rgba(8,47,95,.13);border-top:0;border-radius:0 0 14px 14px;background:rgba(252,254,255,.98);box-shadow:0 22px 48px rgba(8,47,95,.15);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .18s ease,transform .18s ease,visibility .18s ease}
/* V3.1.90: alle Menüpunkte auch bei geringer Viewporthöhe erreichbar halten. */
.brand-menu{max-height:calc(100vh - 76px - env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 76px - env(safe-area-inset-bottom,0px));overflow-y:auto;padding-bottom:max(16px,env(safe-area-inset-bottom,0px))}
.brand-menu-inner{display:flex;flex-direction:column;padding:13px 24px 8px}
.brand-menu-inner>a,.brand-menu-parent{padding:11px 0;border-bottom:1px solid rgba(8,47,95,.08);color:var(--navy);font-size:14px;line-height:1.3;font-weight:620;text-decoration:none}
.brand-menu-inner>a:hover,.brand-menu-parent:hover,.brand-menu-subnav a:hover{color:var(--blue)}
.brand-menu-group{padding-top:2px}
.brand-menu-parent{display:block}
.brand-menu-subnav{display:grid;grid-template-columns:repeat(3,auto);justify-content:start;gap:18px;padding:12px 0 2px}
.brand-menu-subnav a{color:#48657d;font-size:12px;font-weight:600;text-decoration:none}
.menu-open{overflow:hidden}
.menu-open .menu-backdrop,.menu-open .brand-menu{opacity:1;visibility:visible}
.menu-open .brand-menu{transform:translateY(0)}

/* Hero: feste vertikale Reihenfolge – Header > Headline > Umschalter > Suche > Luft > Bogen. */
.hero{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:72px 0 88px;
  min-height:660px;
  background:#eef7fb;
}
.hero-image{position:absolute;z-index:-3;inset:0;background:url('/assets/hero-sunrise.webp?v=bilder-v28') center 48%/cover no-repeat}
.hero-readable{position:absolute;z-index:-2;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.70) 0%,rgba(255,255,255,.48) 20%,rgba(255,255,255,.14) 37%,rgba(255,255,255,0) 56%)}
.hero-bestprice{
  position:absolute;
  z-index:2;
  top:73px;
  right:33px;
  display:flex;
  align-items:center;
  width:306px;
}
.hero-bestprice-copy{min-width:0;color:var(--navy)}
.hero-bestprice-copy h2{margin:0;font-size:25px;line-height:1.12;letter-spacing:-.55px;font-weight:720}
.hero-bestprice-copy p{margin:7px 0 9px;font-size:16px;line-height:1.3;font-weight:450}
.hero-bestprice-copy a{display:inline-flex;align-items:center;gap:7px;color:var(--blue);font-size:14px;line-height:1.2;font-weight:650;text-decoration:none;text-underline-offset:4px}
.hero-bestprice-copy a:hover,.hero-bestprice-copy a:focus-visible{text-decoration:underline}
/* Flacher, kontrollierter Übergang. Er liegt vollständig unterhalb der Search Card. */
.hero::after{
  content:"";
  position:absolute;
  z-index:-1;
  left:-7%;
  right:-7%;
  bottom:0;
  height:58px;
  background:#fff;
  border-radius:50% 50% 0 0 / 100% 100% 0 0;
}
.hero-layout{position:relative;padding-top:30px}
.hero-copy{width:520px;max-width:48%}
.hero-copy h1{position:relative;width:max-content;max-width:calc(100vw - 48px);min-height:94px;margin:0;color:#143A6F;font-family:"Satisfy","Segoe Script","Bradley Hand",cursive;font-size:48px;line-height:1.08;letter-spacing:.05px;font-weight:400;white-space:nowrap;text-shadow:none;transform:translateY(var(--claim-y-offset,0px)) rotate(-2deg);transform-origin:left top}
.hero-copy h1::after{content:"";position:absolute;top:57px;left:30%;width:48%;height:10px;border-top:3px solid currentColor;border-radius:50%;opacity:.92;transform:rotate(-2.4deg) skewX(-16deg);transform-origin:left center}
.search-mode{
  display:grid;
  grid-template-columns:1fr 1fr;
  width:344px;
  max-width:100%;
  margin-top:22px;
  padding:4px;
  border:1px solid rgba(215,226,235,.95);
  border-radius:999px;
  background:rgba(255,255,255,.95);
  box-shadow:0 8px 22px rgba(8,47,95,.09);
  backdrop-filter:blur(12px);
}
.search-mode span,.search-mode a{height:40px;display:flex;align-items:center;justify-content:center;gap:8px;padding:0 14px;border-radius:999px;font-size:14px;line-height:1;font-weight:600;text-decoration:none;white-space:nowrap}
.search-mode-active{background:var(--navy);color:#fff}
.search-mode a{color:var(--navy)}
.search-mode a:hover{background:#edf5fa}

.search-stage{margin-top:24px}
.search-card{
  padding:10px;
  background:rgba(255,255,255,.985);
  border:1px solid rgba(220,230,238,.96);
  border-radius:var(--r-lg);
  box-shadow:var(--shadow-card);
  backdrop-filter:blur(12px);
  overflow:visible;
}
.tbe-mount{min-height:236px}
tbe{display:block;min-height:232px;font:14px/1.38 inherit;color:var(--ink)}
tbe *{font-family:inherit}
tbe input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),tbe select,tbe textarea{border-radius:var(--r-sm);font-size:14px}
tbe button,tbe input[type="submit"],tbe input[type="button"]{border-radius:var(--r-sm);font-family:inherit;font-weight:650}
.site-tbe-loading{min-height:232px;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--muted);font-size:13px}
.loader{width:24px;height:24px;border:3px solid #e3ebf1;border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

tbe .tbe-loading:not(.site-tbe-loading){
  position:relative !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:12px !important;
  width:min(100%,260px) !important;
  min-height:108px !important;
  margin:48px auto !important;
  padding:8px 14px !important;
  border:0 !important;
  background:none !important;
  box-shadow:none !important;
  color:var(--navy) !important;
  font-family:inherit !important;
  font-size:13px !important;
  font-weight:600 !important;
  line-height:1.35 !important;
  text-align:center !important;
  animation:none !important;
  transform:none !important;
}
tbe .tbe-loading:not(.site-tbe-loading)::before{
  content:"" !important;
  flex:0 0 auto !important;
  box-sizing:border-box !important;
  width:42px !important;
  height:42px !important;
  border:3px solid #dce7ef !important;
  border-top-color:var(--blue-strong) !important;
  border-radius:50% !important;
  background:transparent !important;
  box-shadow:0 4px 12px rgba(8,47,95,.10) !important;
  animation:spin .75s linear infinite !important;
}
tbe .tbe-loading:not(.site-tbe-loading)::after{
  content:none !important;
}

.load-error{margin:18px;padding:18px;border-radius:12px;background:#fff5f3;border:1px solid #f0cbc3;color:#783126;line-height:1.5}

.booking-role-notice{margin:0 0 16px;padding:12px 16px;border:1px solid #dbe7ef;border-radius:10px;background:#f6f9fb;color:#34566f;font-size:13px;line-height:1.55}
.booking-role-notice[hidden]{display:none}

/* Inspiration: beginnt direkt nach dem kontrollierten Hero-Abschluss. */
.destinations{padding:18px 0 24px;background:#fff}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:14px}
.section-heading h2{margin:0;color:var(--navy);font-size:28px;line-height:1.1;letter-spacing:-.55px;font-weight:600}
.section-heading a{font-size:13px;font-weight:600;color:var(--blue);text-decoration:none;padding-bottom:3px}
.destination-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
.destination-grid.destination-grid--transition .destination-card img,
.destination-grid.destination-grid--transition .destination-card .destination-weather,
.destination-grid.destination-grid--transition .destination-card>span{animation:destination-content-fade 520ms cubic-bezier(.4,0,.2,1) both;animation-delay:var(--destination-delay,0ms)}
@keyframes destination-content-fade{0%{opacity:1}45%,55%{opacity:0}100%{opacity:1}}
.destination-card{position:relative;display:grid;grid-template-rows:112px 46px;overflow:hidden;text-decoration:none;background:#fff;border:1px solid #dde7ee;border-radius:var(--r-md);box-shadow:var(--shadow-soft);transition:transform .18s ease,box-shadow .18s ease}
.destination-card:hover{transform:translateY(-2px);box-shadow:0 13px 28px rgba(11,44,78,.13)}
.destination-card img{grid-row:1;grid-column:1;width:100%;height:112px;object-fit:cover;display:block}
.destination-card>span{grid-row:2;grid-column:1;display:flex;align-items:center;padding:0 42px 0 13px;font-size:15px;font-weight:600;color:#12385e}
.destination-weather{z-index:1;grid-row:1;grid-column:1;align-self:end;justify-self:end;margin:0 9px 8px;color:#fff;font-size:12px;line-height:1;font-weight:700;white-space:nowrap;text-shadow:0 1px 5px rgba(0,0,0,.72)}
.destination-card i{position:absolute;right:10px;bottom:10px;width:26px;height:26px;display:grid;place-items:center;border:1px solid #d5e2eb;border-radius:50%;background:#fff;color:var(--blue);font-style:normal;font-size:12px;font-weight:700}
.site-footer{display:flex;justify-content:space-between;gap:24px;padding:16px 0 24px;border-top:1px solid #e2e9ee;color:#81909d;font-size:11px}
.site-footer span:last-child{display:flex;gap:20px}
.site-footer a{text-decoration:none}

/* Ergebnisstrecke: technisch unverändert, visuell fokussiert. */
body.results-mode{background:#f5f7f9}
body.results-mode .hero{min-height:calc(100vh - 182px);padding:18px 0 32px;background:#f5f7f9;overflow:visible}
body.results-mode .hero-image,
body.results-mode .hero-readable,
body.results-mode .hero::after,
body.results-mode .hero-copy{display:none}
body.results-mode .hero-layout{width:min(1380px,calc(100% - 48px));padding-top:0}
body.results-mode .search-stage{margin-top:0}
body.results-mode .search-card{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none;overflow:visible}
body.results-mode .tbe-mount,body.results-mode tbe{min-height:calc(100vh - 235px)}
body.results-mode .destinations{display:none}

/* 1440x900 / 1280x800: Rhythmus verdichten, aber nichts überlappen. */
@media (min-width:1000px) and (max-height:920px){
  .hero{min-height:620px;padding-bottom:76px}
  .hero-layout{padding-top:26px}
  .hero-copy h1{min-height:85px;font-size:44px;line-height:1.08}
  .hero-copy h1::after{top:53px}
  .search-mode{margin-top:18px}
  .search-mode span,.search-mode a{height:38px;font-size:13px}
  .search-stage{margin-top:20px}
  .tbe-mount{min-height:218px}
  tbe{min-height:214px}
  .destinations{padding-top:14px}
  .section-heading{margin-bottom:12px}
  .section-heading h2{font-size:25px}
  .destination-card{grid-template-rows:96px 42px}
  .destination-card img{height:96px}
}

@media(max-width:980px){
  .container{width:min(100% - 32px,var(--container))}
  .hero-bestprice{top:118px;right:0;transform:scale(.78);transform-origin:top right}
  .hero{min-height:720px;padding-bottom:82px}
  .hero-image{background-position:62% 48%}
  .hero-readable{background:linear-gradient(180deg,rgba(255,255,255,.68),rgba(255,255,255,.28) 46%,rgba(255,255,255,.05) 72%)}
  .hero-copy{max-width:560px;width:100%}
  .hero-copy h1{font-size:clamp(34px,5.8vw,42px)}
  .hero-copy h1::after{top:50px}
  .destination-grid{grid-template-columns:repeat(3,1fr)}
}

@media(max-width:680px){
  html{scroll-padding-top:72px}
  .site-header{position:fixed;height:64px;background:rgba(255,255,255,.22);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
  .site-header.is-scrolled{position:fixed;background:rgba(235,246,250,.92);backdrop-filter:blur(16px)}
  .container{width:calc(100% - 24px)}
  .brand-wordmark{font-size:17px;letter-spacing:-.42px}
  .header-inner{gap:14px}
  .header-actions{gap:16px}
  .callback-label-full{display:none}
  .callback-label-short{display:inline}
  .callback-link,.menu-toggle{font-size:12px}
  .menu-toggle{gap:8px}
  .hamburger{width:19px;height:14px}
  .menu-toggle[aria-expanded="true"] .hamburger i:nth-child(1){transform:translateY(6.25px) rotate(45deg)}
  .menu-toggle[aria-expanded="true"] .hamburger i:nth-child(3){transform:translateY(-6.25px) rotate(-45deg)}
  .brand-menu{top:64px;right:12px;width:calc(100vw - 24px);border-radius:0 0 12px 12px}
  .brand-menu{max-height:calc(100vh - 64px - env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 64px - env(safe-area-inset-bottom,0px))}
  .brand-menu-inner{padding:12px 20px 8px}
  .brand-menu-inner>a,.brand-menu-parent{padding:10px 0;font-size:13px}
  .brand-menu-subnav{gap:16px}
  .hero-bestprice{position:static;width:100%;margin-top:16px;transform:none}
  .hero-bestprice-copy h2{font-size:18px;letter-spacing:-.3px}
  .hero-bestprice-copy p{margin:4px 0 6px;font-size:13px}
  .hero-bestprice-copy a{font-size:12px}
  .hero{padding-top:64px;min-height:0;padding-bottom:30px}
  .hero-image{background-position:72% 42%}
  .hero-readable{background:linear-gradient(180deg,rgba(255,255,255,.80) 0%,rgba(255,255,255,.38) 35%,rgba(255,255,255,.05) 65%)}
  .hero::after{display:none}
  .hero-layout{padding-top:28px}
  .hero-copy{max-width:none;width:100%}
  .hero-copy h1{max-width:calc(100vw - 24px);min-height:71px;font-size:clamp(23px,7.4vw,29px);line-height:1.08;letter-spacing:.05px;white-space:nowrap}
  .hero-copy h1::after{top:35px;left:29%;width:49%;height:7px;border-top-width:2px}
  .search-mode{width:100%;margin-top:18px}
  .search-mode span,.search-mode a{height:40px;font-size:12px}
  .search-stage{margin-top:20px}
  .search-card{padding:5px;border-radius:12px;overflow:visible}
  .tbe-mount{min-height:400px}
  .destinations{padding-top:24px}
  .section-heading{align-items:center}
  .section-heading h2{font-size:23px}
  .section-heading a{font-size:10px}
  .destination-grid{display:flex;overflow-x:auto;gap:10px;padding-bottom:8px;scroll-snap-type:x proximity}
  .destination-card{min-width:158px;grid-template-rows:94px 44px;scroll-snap-align:start}
  .destination-card img{height:94px}
  .site-footer{flex-direction:column;padding-bottom:28px}
  body.results-mode .hero{padding-top:12px}
  .results-mode .hero-layout{width:calc(100% - 16px)}
}

/* Regionenauswahl: ausschließlich visuelle, auf .tbe-regionpage begrenzte Anpassungen. */
tbe .tbe-regionpage .tbe-search-wrapper searchbox{
  display:flow-root;
  box-sizing:border-box;
  width:100%;
  padding:8px;
  border:1px solid #d5e1ea;
  border-radius:14px;
  background:#fff;
  box-shadow:none;
}
tbe .tbe-regionpage .tbe-switch__tabs{
  display:flex;
  gap:6px;
  width:100%;
  margin:0 0 8px;
  overflow:visible;
  border:0;
  background:transparent;
}
tbe .tbe-regionpage .tbe-switch__tab{
  float:none;
  flex:1 1 0;
  box-sizing:border-box;
  border:1px solid #cbd8e2;
  border-radius:9px;
  background:#f1f6fa;
  color:var(--navy);
}
tbe .tbe-regionpage .tbe-switch__tab.active{
  border-color:var(--blue-strong);
  background:var(--blue-strong);
  color:#fff;
}
tbe .tbe-regionpage .tbe-searchbox,
tbe .tbe-regionpage .tbe-collapse{
  box-sizing:border-box;
  border-radius:12px;
  background:#f5f7f9;
}
tbe .tbe-regionpage .tbe-collapse{
  margin-top:8px;
}
tbe .tbe-regionpage .tbe-input-text,
tbe .tbe-regionpage .tbe-input-autosuggest,
tbe .tbe-regionpage .tbe-input-select,
tbe .tbe-regionpage .tbe-input-pmslider,
tbe .tbe-regionpage .tbe-price-component input-slider,
tbe .tbe-regionpage input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
tbe .tbe-regionpage select,
tbe .tbe-regionpage textarea,
tbe .tbe-regionpage button{
  border-radius:9px;
}
tbe .tbe-regionpage .tbe-regions__row{
  box-sizing:border-box;
}
tbe .tbe-regionpage .tbe-regions__row--head{
  margin-bottom:8px;
  border-radius:10px;
  background:var(--blue-strong);
}
tbe .tbe-regionpage .tbe-regions__list>.tbe-regions__row{
  min-height:52px;
  margin-top:8px;
  padding-inline:14px;
  border:1px solid #d5e2ec;
  border-radius:9px;
  background:#e8f1f8;
}
tbe .tbe-regionpage .tbe-regions__items .tbe-regions__row{
  min-height:52px;
  margin-top:6px;
  padding-inline:12px;
  border:1px solid #e0e8ef;
  border-radius:9px;
  background:#fff;
}
tbe .tbe-regionpage .tbe-regions__items .tbe-regions__row:hover{
  border-color:#bfd2e1;
  background:#f3f8fb;
}

@media(max-width:680px){
  tbe .tbe-regionpage .tbe-search-wrapper searchbox{
    padding:6px;
    border-radius:12px;
  }
  tbe .tbe-regionpage .tbe-switch__tabs{
    gap:4px;
    margin-bottom:6px;
  }
  tbe .tbe-regionpage .tbe-switch__tab,
  tbe .tbe-regionpage .tbe-searchbox,
  tbe .tbe-regionpage .tbe-collapse,
  tbe .tbe-regionpage .tbe-regions__row--head,
  tbe .tbe-regionpage .tbe-regions__list>.tbe-regions__row,
  tbe .tbe-regionpage .tbe-regions__items .tbe-regions__row{
    border-radius:8px;
  }
  tbe .tbe-regionpage .tbe-regions__list>.tbe-regions__row,
  tbe .tbe-regionpage .tbe-regions__items .tbe-regions__row{
    min-height:48px;
    margin-top:6px;
    padding-inline:8px;
  }
}

/* V3.0.2 – kompakte, skalierbare Rechtsnavigation */
.footer-nav{display:flex;align-items:center;gap:20px;flex-wrap:wrap;justify-content:flex-end}
.footer-nav a{text-decoration:none;transition:color .16s ease}
.footer-nav a:hover,.footer-nav a[aria-current="page"]{color:var(--navy)}

/* Rechtliche Unterseiten */
body.legal-page{min-height:100vh;padding-top:76px;background:#f6f9fb;color:var(--ink);display:flex;flex-direction:column}
.legal-main{width:min(900px,calc(100% - 48px));padding:54px 0 42px;flex:1}
.legal-heading{margin-bottom:24px}
.legal-kicker{margin:0 0 8px;color:var(--blue);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.legal-heading h1{margin:0;color:var(--navy);font-size:42px;line-height:1.05;letter-spacing:-1px;font-weight:620}
.legal-heading>p:not(.legal-kicker){max-width:720px;margin:14px 0 0;color:var(--muted);font-size:15px;line-height:1.65}
.legal-card{background:#fff;border:1px solid #dbe7ef;border-radius:16px;padding:30px;box-shadow:0 10px 32px rgba(11,44,78,.06);line-height:1.65}
.legal-card h2{margin:28px 0 8px;color:var(--navy);font-size:20px;line-height:1.25;letter-spacing:-.25px}
.legal-card h2:first-child{margin-top:0}
.legal-card h3{margin:22px 0 6px;color:var(--navy);font-size:16px}
.legal-card p{margin:0 0 14px}
.legal-card p:last-child{margin-bottom:0}
.legal-card a{color:var(--blue)}
.legal-note{margin:18px 2px 0;color:#5b6c7a;font-size:12px;line-height:1.55}
.legal-warning{padding:14px 16px;border:1px solid #ead9aa;border-radius:10px;background:#fffaf0;color:#64522d}
.legal-external{font-weight:650;text-decoration:none}
.legal-link-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}
.legal-link-card{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:94px;padding:18px 20px;background:#fff;border:1px solid #dbe7ef;border-radius:14px;box-shadow:0 8px 24px rgba(11,44,78,.05);text-decoration:none;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.legal-link-card:hover{transform:translateY(-1px);border-color:#bfd4e4;box-shadow:0 12px 28px rgba(11,44,78,.09)}
.legal-link-card span{display:flex;flex-direction:column;gap:4px}
.legal-link-card strong{color:var(--navy);font-size:15px}
.legal-link-card small{color:var(--muted);font-size:12px;line-height:1.45}
.legal-link-card i{color:var(--blue);font-style:normal;font-size:17px}
.legal-card-compact{padding:22px 24px}
.legal-footer{margin-top:auto;background:transparent}

@media(max-width:680px){
  body.legal-page{padding-top:64px}
  .footer-nav{justify-content:flex-start;gap:14px 18px}
  .legal-main{width:calc(100% - 24px);padding:36px 0 30px}
  .legal-heading h1{font-size:34px}
  .legal-card{padding:22px 18px;border-radius:14px}
  .legal-link-grid{grid-template-columns:1fr}
  .legal-link-card{min-height:84px;padding:16px}
}

/* ================================================================
   V3.1.0 – Destination Landing Pages mit eingebetteter Travianet-TBE
   ================================================================ */
.destination-page{background:#fff}
.destination-header{position:fixed}
.destination-hero{
  position:relative;
  min-height:390px;
  display:flex;
  align-items:flex-end;
  padding:112px 0 92px;
  overflow:hidden;
  isolation:isolate;
  background:#0a4b7c var(--destination-hero) center/cover no-repeat;
}
.tbe-context-hero{
  display:none;
  /* Keep the heading photo; never fall back to the unrelated landing photo. */
  background:#103e60 var(--destination-hero) center 48%/cover no-repeat;
}
.destination-hero::before{content:none}
.tbe-context-hero::before{
  content:"";
  position:absolute;
  z-index:-2;
  inset:0;
  background-image:var(--destination-hero);
  background-position:center 48%;
  background-size:cover;
  background-repeat:no-repeat;
  opacity:0;
}
.tbe-context-hero[data-hero-image-ready]::before{opacity:1}
.destination-hero-shade{position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,rgba(2,25,49,.50) 0%,rgba(3,34,63,.26) 44%,rgba(3,28,48,.04) 78%),linear-gradient(180deg,rgba(3,26,48,.06),rgba(3,28,48,.18))}
.destination-hero-content{color:#fff}
.destination-hero-content>*{max-width:none}
.destination-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;width:100%}
.destination-title-row h1{max-width:720px}
.destination-kicker{margin:0 0 8px;font-size:11px;line-height:1.2;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.destination-hero h1{margin:0;font-size:clamp(44px,5vw,70px);line-height:.98;letter-spacing:-2px;font-weight:650;text-shadow:0 3px 22px rgba(0,0,0,.18)}
.destination-hero-content>p:last-child{max-width:650px;margin:18px 0 0;font-size:18px;line-height:1.55;font-weight:520;text-shadow:0 2px 18px rgba(0,0,0,.22)}
.destination-search-shell{position:relative;z-index:5;margin-top:-58px;padding-bottom:28px}
.destination-search-card{padding:10px;background:rgba(255,255,255,.99);border:1px solid #dce7ee;border-radius:16px;box-shadow:0 22px 58px rgba(8,47,95,.16)}
.destination-search-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:8px 10px 12px 12px;border-bottom:1px solid #e5edf2;margin-bottom:8px}
.destination-search-heading>div{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.destination-search-heading span{color:#7a8b98;font-size:11px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}
.destination-search-heading strong{color:var(--navy);font-size:15px;font-weight:700}
.destination-search-heading a{color:var(--blue);font-size:12px;font-weight:650;text-decoration:none;white-space:nowrap}
.destination-tbe{min-height:222px}
.destination-inspiration{display:flex;align-items:baseline;justify-content:space-between;gap:48px;padding:20px 0 52px}
.destination-inspiration>div{max-width:690px}
.destination-inspiration .destination-kicker{color:var(--blue)}
.destination-inspiration h2{margin:0;color:var(--navy);font-size:30px;line-height:1.15;letter-spacing:-.6px;font-weight:620}
.destination-inspiration p:last-child{margin:12px 0 0;color:var(--muted);font-size:15px;line-height:1.65}
.destination-all-link{color:var(--blue);font-size:13px;font-weight:700;text-decoration:none;white-space:nowrap}
.destination-footer{margin-top:0}

/* Nach Start der eigentlichen Angebotssuche: Bild bleibt als Markenanker, Ergebnisse bekommen die Fläche. */
.destination-results-mode{background:#f5f7f9}
.destination-results-mode .destination-header{position:fixed;background:rgba(235,246,250,.90);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 8px 24px rgba(8,47,95,.06)}
.destination-results-mode .destination-hero,
.results-mode .tbe-context-hero{min-height:182px;padding:86px 0 22px;background-position:center 48%}
.results-mode .tbe-context-hero{display:flex}
.destination-results-mode .destination-hero-shade,
.results-mode .tbe-context-hero .destination-hero-shade{background:linear-gradient(90deg,rgba(2,25,49,.62),rgba(3,28,48,.30))}
.destination-results-mode .destination-hero-content>p:last-child,
.results-mode .tbe-context-hero .destination-hero-content>p:last-child{display:block !important;visibility:visible !important;opacity:1 !important;max-width:760px;margin:8px 0 0;font-size:14px;line-height:1.35;font-weight:600;text-shadow:0 2px 14px rgba(0,0,0,.28)}
.destination-results-mode .destination-hero h1,
.results-mode .tbe-context-hero h1{font-size:32px;letter-spacing:-.6px}
.destination-results-mode .destination-search-shell{margin-top:18px;padding-bottom:34px}
.destination-results-mode .destination-search-card{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.destination-results-mode .destination-search-heading{display:none}
/* Ergebnis-Kopf: die TBE-Navigation bleibt nativ. */
.destination-results-mode .destination-tbe{position:relative;overflow-x:clip;border-radius:10px 10px 0 0}
.destination-results-mode .destination-tbe>tbe{position:relative;z-index:1}
.destination-results-mode .destination-tbe,.destination-results-mode .destination-tbe tbe{min-height:calc(100vh - 235px)}
.destination-results-mode .destination-inspiration{display:none}

@media(max-width:980px){
  .destination-hero{min-height:360px;padding-bottom:86px;background-position:center}
  .destination-title-row{align-items:flex-end;gap:18px}
  .destination-hero-content>p:last-child{font-size:16px}
  .destination-search-shell{margin-top:-48px}
  .destination-inspiration{align-items:flex-start;flex-direction:column;gap:18px}
}
@media(max-width:680px){
  .destination-header{height:64px}
  .destination-title-row{align-items:flex-start;flex-direction:column;gap:12px}
  .destination-hero{min-height:340px;padding:94px 0 76px;background-position:center}
  .destination-hero h1{font-size:43px;letter-spacing:-1.2px}
  .destination-hero-content>p:last-child{font-size:15px;line-height:1.5}
  .destination-search-shell{margin-top:-42px;padding-bottom:18px}
  .destination-search-card{padding:6px;border-radius:13px}
  .destination-search-heading{align-items:flex-start;padding:7px 7px 10px;gap:10px}
  .destination-search-heading>div{display:block}
  .destination-search-heading span,.destination-search-heading strong{display:block}
  .destination-search-heading strong{margin-top:3px;font-size:13px}
  .destination-search-heading a{font-size:10px;padding-top:2px}
  .destination-tbe{min-height:390px}
  .destination-inspiration{padding:18px 0 36px}
  .destination-inspiration h2{font-size:25px}
  .destination-results-mode .destination-hero,
  .results-mode .tbe-context-hero{min-height:150px;padding:74px 0 16px}
  .destination-results-mode .destination-hero h1,
  .results-mode .tbe-context-hero h1{font-size:25px}
  .destination-results-mode .destination-hero-content>p:last-child,
  .results-mode .tbe-context-hero .destination-hero-content>p:last-child{margin-top:6px;font-size:12.5px;line-height:1.3}
  .destination-results-mode .destination-search-shell{margin-top:12px}
  .destination-results-mode .destination-tbe,.destination-results-mode .destination-tbe tbe{min-height:calc(100vh - 185px)}
}

/* ================================================================
   V3.1.1 – Travianet Overlay-Fix
   Kalender, Reisenden- und Auswahl-Popups dürfen über nachfolgende
   Inhaltsbereiche hinaus sichtbar bleiben.
   ================================================================ */
.destination-page .destination-search-shell{
  z-index:100;
  overflow:visible;
}
.destination-page .destination-search-card,
.destination-page .destination-tbe,
.destination-page .destination-tbe > tbe,
.destination-page tbe{
  position:relative;
  overflow:visible !important;
}
.destination-page .destination-search-card{z-index:2}
.destination-page .destination-tbe,
.destination-page .destination-tbe > tbe{z-index:3}
.destination-page .destination-search-shell:focus-within{z-index:1000}
.destination-page .destination-inspiration,
.destination-page .destinations,
.destination-page .destination-footer{
  position:relative;
  z-index:1;
}

/* ================================================================
   V3.1.17 – Suchmaske der Startseite
   Rein visuelle, auf den Landing-Zustand begrenzte TBE-Anpassungen.
   Die Ergebnisstrecke und die TBE-Logik bleiben unangetastet.
   ================================================================ */
body:not(.results-mode) .hero .search-card{
  padding:12px;
  background:#fff;
  border-color:#d5e1ea;
  border-radius:14px;
  box-shadow:0 10px 28px rgba(8,47,95,.10);
  backdrop-filter:none;
}

body:not(.results-mode) .hero .tbe-switch__tabs{
  display:flex;
  gap:8px;
  width:100%;
  height:auto;
  padding:0;
  margin:0 0 4px;
  border:0;
  background:transparent;
}
body:not(.results-mode) .hero .tbe-switch__tab{
  display:flex;
  flex:1 1 0;
  float:none;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:auto;
  min-width:0;
  height:52px;
  padding:0 18px;
  border:1px solid #cbd9e5;
  border-radius:10px;
  background:#f8fafc;
  color:var(--navy);
  font-size:14px;
  font-weight:700;
  line-height:1;
  box-shadow:none;
  transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease;
}
body:not(.results-mode) .hero .tbe-switch__tab:hover{
  border-color:#9ebbd0;
  background:#f1f6fa;
}
body:not(.results-mode) .hero .tbe-switch__tab.active{
  border-color:var(--blue-strong);
  background:var(--blue-strong);
  color:#fff;
  box-shadow:0 4px 10px rgba(0,94,184,.18);
}
body:not(.results-mode) .hero .tbe-switch__tab>span{
  display:inline-flex;
  align-items:center;
  min-width:0;
}
body:not(.results-mode) .hero .tbe-switch__tab>span:last-child{
  flex:0 0 auto;
  gap:5px;
  opacity:.86;
  font-size:13px;
}

body:not(.results-mode) .hero .tbe-searchbox{
  display:flow-root;
  width:100%;
  padding:14px 0 10px;
  border-radius:12px;
}
body:not(.results-mode) .hero .tbe-autosuggest-component,
body:not(.results-mode) .hero .tbe-airports-component,
body:not(.results-mode) .hero .tbe-timespan-component,
body:not(.results-mode) .hero .tbe-travellers-component,
body:not(.results-mode) .hero .tbe-stars-component,
body:not(.results-mode) .hero .tbe-operator-component,
body:not(.results-mode) .hero .tbe-price-component,
body:not(.results-mode) .hero .tbe-searchbox__submit{
  box-sizing:border-box;
  min-height:74px;
  padding-inline:8px;
  margin:0;
}
body:not(.results-mode) .hero .tbe-input-label{
  min-height:17px;
  margin:0 0 6px;
  color:var(--navy);
  font-size:12px;
  line-height:17px;
  font-weight:700;
  letter-spacing:.01em;
}
body:not(.results-mode) .hero .tbe-airports-component>.tbe-input-label{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
body:not(.results-mode) .hero .tbe-airports-component>.tbe-input-label>label{
  display:inline-flex;
  align-items:center;
  gap:5px;
  color:#445f75;
  font-size:11px;
  line-height:1;
  font-weight:600;
  white-space:nowrap;
}

body:not(.results-mode) .hero .tbe-input-text,
body:not(.results-mode) .hero .tbe-input-autosuggest,
body:not(.results-mode) .hero .tbe-input-select,
body:not(.results-mode) .hero .tbe-input-pmslider,
body:not(.results-mode) .hero .tbe-price-component input-slider{
  min-height:48px;
  border:1px solid #cbd8e2;
  border-radius:10px;
  background:#fff;
  box-shadow:none;
}
body:not(.results-mode) .hero .tbe-input-text,
body:not(.results-mode) .hero .tbe-input-autosuggest,
body:not(.results-mode) .hero .tbe-input-select{
  display:flex;
  align-items:center;
}
body:not(.results-mode) .hero .tbe-input-autosuggest>div{
  flex:1 1 auto;
  min-width:0;
}
body:not(.results-mode) .hero .tbe-input-text input,
body:not(.results-mode) .hero .tbe-input-autosuggest input,
body:not(.results-mode) .hero .tbe-input-select select{
  width:100%;
  height:46px;
  min-height:46px;
  border:0;
  border-radius:9px;
  outline:0;
  background:transparent;
  color:#27465f;
  box-shadow:none;
}
body:not(.results-mode) .hero .tbe-input-text:focus-within,
body:not(.results-mode) .hero .tbe-input-autosuggest:focus-within,
body:not(.results-mode) .hero .tbe-input-select:focus-within,
body:not(.results-mode) .hero .tbe-input-pmslider:focus-within,
body:not(.results-mode) .hero .tbe-price-component input-slider:focus-within{
  border-color:var(--blue);
  box-shadow:0 0 0 3px rgba(8,104,184,.10);
}
body:not(.results-mode) .hero .tbe-input-icon{
  color:var(--blue);
}
body:not(.results-mode) .hero .tbe-input-pmslider{
  display:flex;
  align-items:center;
  overflow:hidden;
}
body:not(.results-mode) .hero .tbe-input-pmslider__prefix,
body:not(.results-mode) .hero .tbe-input-pmslider__suffix{
  display:grid;
  place-items:center;
  align-self:stretch;
  min-width:44px;
  color:var(--navy);
  background:#f7fafc;
}
body:not(.results-mode) .hero .tbe-input-pmslider__box{
  flex:1 1 auto;
  display:flex;
  align-items:center;
  justify-content:space-evenly;
  min-width:0;
}
body:not(.results-mode) .hero .tbe-input-pmslider__value{
  color:#e2bd58;
  font-size:17px;
}
body:not(.results-mode) .hero .tbe-stars-component .tbe-input-pmslider__value--active{
  color:#d79b00;
}
body:not(.results-mode) .hero .tbe-stars-component .fa-circle::before{
  content:"\f005";
}
body:not(.results-mode) .hero .tbe-stars-component .tbe-input-pmslider__value>i.fa-circle,
body:not(.results-mode) .hero .tbe-stars-component .tbe-input-pmslider__value>i.fa-circle::before{
  color:#d6e1e9 !important;
}
body:not(.results-mode) .hero .tbe-stars-component i.fa-circle::before{
  content:"\f005" !important;
  font-family:"Font Awesome 5 Free" !important;
  font-weight:900 !important;
}
body:not(.results-mode) .hero .tbe-stars-component .tbe-input-pmslider__value{
  cursor:pointer;
}
body:not(.results-mode) .hero .tbe-stars-component .tbe-input-pmslider__value--active>i.fa-circle,
body:not(.results-mode) .hero .tbe-stars-component .tbe-input-pmslider__value--active>i.fa-circle::before,
body:not(.results-mode) .hero .tbe-stars-component .tbe-input-pmslider__value--hover>i.fa-circle,
body:not(.results-mode) .hero .tbe-stars-component .tbe-input-pmslider__value--hover>i.fa-circle::before{
  color:#d9a400 !important;
}
body:not(.results-mode) .hero .tbe-price-component input-slider{
  display:flex;
  align-items:center;
  padding:0 13px;
}
body:not(.results-mode) .hero .tbe-price-component .ng2-nouislider{
  width:100%;
  margin:0;
}
body:not(.results-mode) .hero .tbe-price-component .noUi-target{
  box-shadow:none;
}

body:not(.results-mode) .hero .tbe-searchbox__submit{
  position:relative;
  float:right;
  margin-top:23px;
}
body:not(.results-mode) .hero .tbe-searchbox__submit .tbe-primary-button{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
  height:48px;
  min-height:48px;
  padding:0 20px;
  border:1px solid var(--blue-strong);
  border-radius:10px;
  background:var(--blue-strong);
  color:#fff;
  font-size:15px;
  line-height:1;
  font-weight:750;
  box-shadow:0 5px 12px rgba(0,94,184,.18);
  cursor:pointer;
  transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}
body:not(.results-mode) .hero .tbe-searchbox__submit .tbe-primary-button::before{
  content:"\f002";
  font-family:"Font Awesome 5 Free";
  font-size:14px;
  font-weight:900;
}
body:not(.results-mode) .hero .tbe-searchbox__submit .tbe-primary-button:hover{
  border-color:#004f9b;
  background:#004f9b;
  box-shadow:0 7px 15px rgba(0,79,155,.22);
}
body:not(.results-mode) .hero .tbe-searchbox__submit .tbe-primary-button:active{
  transform:translateY(1px);
  box-shadow:0 3px 8px rgba(0,79,155,.18);
}

body:not(.results-mode) .hero .tbe-input-iconField{
  border-radius:8px;
}

body:not(.results-mode) .hero .tbe-airports-component .tbe-input-multiple__popup,
body:not(.results-mode) .hero .tbe-timespan-component__popup,
body:not(.results-mode) .hero .tbe-travellers-component__popup{
  z-index:1000 !important;
  top:calc(100% + 8px) !important;
  bottom:auto !important;
  height:auto !important;
  max-height:none !important;
  overflow-x:clip !important;
  overflow-y:visible !important;
  overscroll-behavior:auto;
}
.destination-page:not(.destination-results-mode) .destination-tbe :is(.tbe-airports-component,.tbe-timespan-component,.tbe-travellers-component){
  position:relative;
}
.destination-page:not(.destination-results-mode) .destination-tbe .tbe-airports-component .tbe-input-multiple__popup,
.destination-page:not(.destination-results-mode) .destination-tbe .tbe-timespan-component__popup,
.destination-page:not(.destination-results-mode) .destination-tbe .tbe-travellers-component__popup{
  position:absolute !important;
  z-index:1000 !important;
  top:calc(100% + 8px) !important;
  bottom:auto !important;
  height:auto !important;
  max-height:none !important;
  overflow-x:clip !important;
  overflow-y:visible !important;
  overscroll-behavior:auto;
}
/* Nur unsere Seite wechselt den Stacking-Zustand; am TBE-Popup selbst wird nichts manipuliert. */
body.tbe-popup-visible{overflow-x:hidden}
/* clip erzeugt keinen zweiten vertikalen Body-Scroller bei längeren Monaten. */
body.home-page:not(.results-mode).tbe-popup-visible{overflow-x:clip}
body.tbe-popup-visible .hero{z-index:50;overflow:visible}
body.tbe-popup-visible .destinations,
body.tbe-popup-visible>.site-footer{position:relative;z-index:1}
body:not(.results-mode) .hero tbe [class*="__popup"]{
  overflow-x:hidden;
  border:1px solid #cfdae4 !important;
  border-radius:14px !important;
  background-clip:padding-box;
  box-shadow:0 16px 38px rgba(8,47,95,.18) !important;
}

@media(max-width:680px){
  body:not(.results-mode) .hero .search-card{
    padding:7px;
    border-radius:12px;
    box-shadow:0 8px 22px rgba(8,47,95,.09);
  }
  body:not(.results-mode) .hero .tbe-switch__tabs{
    gap:4px;
    margin-bottom:2px;
  }
  body:not(.results-mode) .hero .tbe-switch__tab{
    justify-content:center;
    gap:6px;
    height:48px;
    padding:0 6px;
    border-radius:8px;
    font-size:11px;
    white-space:nowrap;
  }
  body:not(.results-mode) .hero .tbe-switch__tab>span:first-child{
    display:inline-flex;
  }
  body:not(.results-mode) .hero .tbe-switch__tab>span:last-child{
    display:none;
  }
  body:not(.results-mode) .hero .tbe-switch__tab::after{
    flex:0 0 auto;
    font-family:"Font Awesome 5 Free";
    font-size:10px;
    font-weight:900;
    opacity:.82;
  }
  body:not(.results-mode) .hero .tbe-switch__tab:nth-child(1)::after{content:"\f5b0"}
  body:not(.results-mode) .hero .tbe-switch__tab:nth-child(2)::after{content:"\f236"}
  body:not(.results-mode) .hero .tbe-switch__tab:nth-child(3)::after{content:"\f072"}
  body:not(.results-mode) .hero .tbe-searchbox{
    padding:12px 0 8px;
  }
  body:not(.results-mode) .hero .tbe-autosuggest-component,
  body:not(.results-mode) .hero .tbe-airports-component,
  body:not(.results-mode) .hero .tbe-timespan-component,
  body:not(.results-mode) .hero .tbe-travellers-component,
  body:not(.results-mode) .hero .tbe-stars-component,
  body:not(.results-mode) .hero .tbe-operator-component,
  body:not(.results-mode) .hero .tbe-price-component{
    float:none;
    width:100%;
    min-height:73px;
    padding-inline:6px;
  }
  body:not(.results-mode) .hero .tbe-airports-component>.tbe-input-label{
    gap:8px;
  }
  body:not(.results-mode) .hero .tbe-airports-component>.tbe-input-label>label{
    font-size:10px;
  }
  body:not(.results-mode) .hero .tbe-searchbox__submit{
    float:none;
    width:100%;
    min-height:0;
    padding-inline:6px;
    margin-top:4px;
    margin-bottom:13px;
  }
  body:not(.results-mode) .hero .tbe-searchbox__submit .tbe-primary-button{
    height:50px;
    min-height:50px;
  }
}

/* Startseite: ausschließlich der vertikale Rhythmus rund um „Beliebte Reiseziele“. */
body.home-page:not(.results-mode) .hero{
  padding-bottom:30px;
}
body.home-page:not(.results-mode) .destinations{
  padding-bottom:32px;
}
@media (min-width:1000px) and (max-height:920px){
  body.home-page:not(.results-mode) .hero{
    padding-bottom:34px;
  }
}
@media(max-width:680px){
  body.home-page:not(.results-mode) .hero{
    padding-bottom:24px;
  }
  body.home-page:not(.results-mode) .destinations{
    padding-bottom:24px;
  }
}

/* ================================================================
   V3.1.60 – TBE-Suchmasken sauber nach Kontext getrennt
   - Homepage bleibt unverändert die Designreferenz.
   - Zielseiten-Landing übernimmt dieselbe visuelle Sprache.
   - Ergebnis-/Angebotsseiten verwenden ein kompaktes Sidebar-Layout,
     ohne die native TBE-Ergebnisgeometrie zu überschreiben.
   - Keine Änderung an TBE-Logik, Parametern oder Buchungsablauf.
   ================================================================ */

/* Hotelkategorie: TBE-Kreise nur innerhalb der Kategorieauswahl als Sterne. */
tbe .tbe-stars-component i.fa-circle::before{
  content:"\f005" !important;
  font-family:"Font Awesome 5 Free" !important;
  font-weight:900 !important;
}
tbe .tbe-stars-component .tbe-input-pmslider__value>i.fa-circle,
tbe .tbe-stars-component .tbe-input-pmslider__value>i.fa-circle::before{
  color:#d6e1e9 !important;
}
tbe .tbe-stars-component .tbe-input-pmslider__value--active>i.fa-circle,
tbe .tbe-stars-component .tbe-input-pmslider__value--active>i.fa-circle::before,
tbe .tbe-stars-component .tbe-input-pmslider__value--hover>i.fa-circle,
tbe .tbe-stars-component .tbe-input-pmslider__value--hover>i.fa-circle::before{
  color:#d9a400 !important;
}

/* ---------------------------------------------------------------
   A. Zielseiten-Landing – gleiche große Maske wie auf der Homepage
   --------------------------------------------------------------- */
.destination-page:not(.destination-results-mode) .destination-tbe .tbe-switch__tabs{
  display:flex;
  gap:8px;
  width:100%;
  height:auto;
  padding:0;
  margin:0 0 4px;
  border:0;
  background:transparent;
}
.destination-page:not(.destination-results-mode) .destination-tbe .tbe-switch__tab{
  display:flex;
  flex:1 1 0;
  float:none;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:auto;
  min-width:0;
  height:52px;
  padding:0 18px;
  border:1px solid #cbd9e5;
  border-radius:10px;
  background:#f8fafc;
  color:var(--navy);
  font-size:14px;
  font-weight:700;
  line-height:1;
  box-shadow:none;
  transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease;
}
.destination-page:not(.destination-results-mode) .destination-tbe .tbe-switch__tab:hover{
  border-color:#9ebbd0;
  background:#f1f6fa;
}
.destination-page:not(.destination-results-mode) .destination-tbe .tbe-switch__tab.active{
  border-color:var(--blue-strong);
  background:var(--blue-strong);
  color:#fff;
  box-shadow:0 4px 10px rgba(0,94,184,.18);
}
.destination-page:not(.destination-results-mode) .destination-tbe .tbe-switch__tab>span{
  display:inline-flex;
  align-items:center;
  min-width:0;
}
.destination-page:not(.destination-results-mode) .destination-tbe .tbe-switch__tab>span:last-child{
  flex:0 0 auto;
  gap:5px;
  opacity:.86;
  font-size:13px;
}
.destination-page:not(.destination-results-mode) .destination-tbe .tbe-searchbox{
  display:flow-root;
  width:100%;
  padding:14px 0 10px;
  border-radius:12px;
}
.destination-page:not(.destination-results-mode) .destination-tbe :is(
  .tbe-autosuggest-component,
  .tbe-airports-component,
  .tbe-timespan-component,
  .tbe-travellers-component,
  .tbe-stars-component,
  .tbe-operator-component,
  .tbe-price-component,
  .tbe-searchbox__submit
){
  box-sizing:border-box;
  min-height:74px;
  padding-inline:8px;
  margin-left:0;
  margin-right:0;
}
.destination-page:not(.destination-results-mode) .destination-tbe .tbe-input-label{
  min-height:17px;
  margin:0 0 6px;
  color:var(--navy);
  font-size:12px;
  line-height:17px;
  font-weight:700;
  letter-spacing:.01em;
}
.destination-page:not(.destination-results-mode) .destination-tbe .tbe-airports-component>.tbe-input-label{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.destination-page:not(.destination-results-mode) .destination-tbe .tbe-airports-component>.tbe-input-label>label{
  display:inline-flex;
  align-items:center;
  gap:5px;
  color:#445f75;
  font-size:11px;
  line-height:1;
  font-weight:600;
  white-space:nowrap;
}
.destination-page:not(.destination-results-mode) .destination-tbe :is(
  .tbe-input-text,
  .tbe-input-autosuggest,
  .tbe-input-select,
  .tbe-input-pmslider,
  .tbe-price-component input-slider
){
  min-height:48px;
  border:1px solid #cbd8e2;
  border-radius:10px;
  background:#fff;
  box-shadow:none;
}
.destination-page:not(.destination-results-mode) .destination-tbe :is(.tbe-input-text,.tbe-input-autosuggest,.tbe-input-select){
  display:flex;
  align-items:center;
}
.destination-page:not(.destination-results-mode) .destination-tbe .tbe-input-autosuggest>div{
  flex:1 1 auto;
  min-width:0;
}
.destination-page:not(.destination-results-mode) .destination-tbe :is(.tbe-input-text input,.tbe-input-autosuggest input,.tbe-input-select select){
  width:100%;
  height:46px;
  min-height:46px;
  border:0;
  border-radius:9px;
  outline:0;
  background:transparent;
  color:#27465f;
  box-shadow:none;
}
.destination-page:not(.destination-results-mode) .destination-tbe :is(
  .tbe-input-text,
  .tbe-input-autosuggest,
  .tbe-input-select,
  .tbe-input-pmslider,
  .tbe-price-component input-slider
):focus-within{
  border-color:var(--blue);
  box-shadow:0 0 0 3px rgba(8,104,184,.10);
}
.destination-page:not(.destination-results-mode) .destination-tbe .tbe-input-icon{color:var(--blue)}
.destination-page:not(.destination-results-mode) .destination-tbe .tbe-input-pmslider{
  display:flex;
  align-items:center;
  overflow:hidden;
}
.destination-page:not(.destination-results-mode) .destination-tbe :is(.tbe-input-pmslider__prefix,.tbe-input-pmslider__suffix){
  display:grid;
  place-items:center;
  align-self:stretch;
  min-width:44px;
  color:var(--navy);
  background:#f7fafc;
}
.destination-page:not(.destination-results-mode) .destination-tbe .tbe-input-pmslider__box{
  flex:1 1 auto;
  display:flex;
  align-items:center;
  justify-content:space-evenly;
  min-width:0;
}
.destination-page:not(.destination-results-mode) .destination-tbe .tbe-input-pmslider__value{
  color:#e2bd58;
  font-size:17px;
  cursor:pointer;
}
.destination-page:not(.destination-results-mode) .destination-tbe .tbe-price-component input-slider{
  display:flex;
  align-items:center;
  padding:0 13px;
}
.destination-page:not(.destination-results-mode) .destination-tbe .tbe-price-component .ng2-nouislider{
  width:100%;
  margin:0;
}
.destination-page:not(.destination-results-mode) .destination-tbe .tbe-price-component .noUi-target{box-shadow:none}
.destination-page:not(.destination-results-mode) .destination-tbe .tbe-searchbox__submit{
  position:relative;
  float:right;
  margin-top:23px;
  margin-bottom:10px !important;
}
.destination-page:not(.destination-results-mode) .destination-tbe .tbe-searchbox__submit .tbe-primary-button{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
  height:48px;
  min-height:48px;
  padding:0 20px;
  border:1px solid var(--blue-strong);
  border-radius:10px;
  background:var(--blue-strong);
  color:#fff;
  font-size:15px;
  line-height:1;
  font-weight:750;
  box-shadow:0 5px 12px rgba(0,94,184,.18);
  cursor:pointer;
}
.destination-page:not(.destination-results-mode) .destination-tbe .tbe-searchbox__submit .tbe-primary-button::before{
  content:"\f002";
  font-family:"Font Awesome 5 Free";
  font-size:14px;
  font-weight:900;
}

/* Die störende/misaligned Trennlinie wird auf großen Suchmasken bewusst entfernt. */
body:not(.results-mode) .hero .tbe-collapse,
.destination-page:not(.destination-results-mode) .destination-tbe .tbe-collapse{
  clear:both;
  width:100%;
  padding:0 8px 2px !important;
  margin-top:0 !important;
}
body:not(.results-mode) .hero .tbe-collapse__link,
.destination-page:not(.destination-results-mode) .destination-tbe .tbe-collapse__link{
  display:flex;
  float:none;
  align-items:center;
  justify-content:space-between;
  width:100%;
  height:auto;
  min-height:43px;
  padding:10px 2px 7px;
  border-top:0 !important;
  background:transparent;
  color:var(--navy);
  font-size:13px;
  line-height:1.2;
  font-weight:650;
  cursor:pointer;
}
body:not(.results-mode) .hero :is(.tbe-collapse__link__text,.tbe-collapse__link__icon),
.destination-page:not(.destination-results-mode) .destination-tbe :is(.tbe-collapse__link__text,.tbe-collapse__link__icon){
  float:none;
  width:auto;
}
body:not(.results-mode) .hero .tbe-collapse__link__icon,
.destination-page:not(.destination-results-mode) .destination-tbe .tbe-collapse__link__icon{color:var(--blue)}
.destination-page:not(.destination-results-mode) .destination-search-card{
  padding:12px;
  background:#fff;
  border-color:#d5e1ea;
  border-radius:14px;
  box-shadow:0 10px 28px rgba(8,47,95,.10);
}
.destination-page:not(.destination-results-mode) .destination-tbe tbe [class*="__popup"]{
  overflow-x:hidden;
  border:1px solid #cfdae4 !important;
  border-radius:14px !important;
  background-clip:padding-box;
  box-shadow:0 16px 38px rgba(8,47,95,.18) !important;
}

/* ---------------------------------------------------------------
   B. Ergebnis-/Angebotsstrecke – kompakt, TBE-native Geometrie bleibt
   --------------------------------------------------------------- */
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-search-wrapper searchbox{
  display:flow-root;
  box-sizing:border-box;
  padding:8px;
  border:0;
  border-radius:12px;
  background:#fff;
}
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-switch__tabs{
  display:flex;
  gap:8px;
  width:100%;
  height:auto;
  padding:0;
  margin:0 0 8px;
  overflow:hidden;
  border:0;
  background:transparent;
}
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-switch__tab{
  box-sizing:border-box;
  display:flex;
  flex:1 1 0;
  float:none;
  align-items:center;
  justify-content:center;
  gap:0;
  width:auto;
  min-width:0;
  height:52px;
  padding:0 8px;
  overflow:hidden;
  border:1px solid #cbd9e5;
  border-radius:10px;
  background:#f8fafc;
  color:var(--navy);
  font-size:14px;
  font-weight:700;
  line-height:1;
  white-space:nowrap;
  text-overflow:ellipsis;
  box-shadow:none;
}
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-switch__tab:hover{
  border-color:#9ebbd0;
  background:#f1f6fa;
}
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-switch__tab.active{
  border-color:var(--blue-strong);
  background:var(--blue-strong);
  color:#fff;
  box-shadow:0 4px 10px rgba(0,94,184,.16);
}
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-switch__tab>span{
  min-width:0;
}
/* In der schmalen Sidebar keine Zusatzicons: sie waren die Ursache der Textüberlagerung. */
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-switch__tab>span:last-child{
  display:none !important;
}
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-switch__tab::after{
  content:none !important;
  display:none !important;
}

:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-searchbox{
  box-sizing:border-box;
  width:100% !important;
  margin:0 !important;
  padding:10px 8px 12px !important;
  border-radius:12px;
  background:#f5f7f9 !important;
}
/* Keine Breiten/Floats der TBE-Komponenten überschreiben – nur die Oberflächen modernisieren. */
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) :is(
  .tbe-input-text,
  .tbe-input-autosuggest,
  .tbe-input-select,
  .tbe-input-pmslider,
  .tbe-price-component input-slider
){
  box-sizing:border-box;
  min-height:48px;
  border:1px solid #cbd8e2;
  border-radius:10px;
  background:#fff;
  box-shadow:none;
}
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) :is(.tbe-input-text,.tbe-input-autosuggest,.tbe-input-select){
  display:flex;
  align-items:center;
}
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-input-autosuggest>div{
  flex:1 1 auto;
  min-width:0;
}
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) :is(.tbe-input-text input,.tbe-input-autosuggest input,.tbe-input-select select){
  width:100%;
  min-width:0;
  height:46px;
  min-height:46px;
  border:0;
  border-radius:9px;
  outline:0;
  background:transparent;
  color:#27465f;
  box-shadow:none;
}
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-input-label{
  color:var(--navy);
  font-weight:700;
}
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-input-icon{color:var(--blue)}
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-input-pmslider{
  display:flex;
  align-items:center;
  overflow:hidden;
}
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) :is(.tbe-input-pmslider__prefix,.tbe-input-pmslider__suffix){
  display:grid;
  place-items:center;
  align-self:stretch;
  min-width:44px;
  color:var(--navy);
  background:#f7fafc;
}
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-input-pmslider__box{
  flex:1 1 auto;
  display:flex;
  align-items:center;
  justify-content:space-evenly;
  min-width:0;
}
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-input-pmslider__value{
  color:#e2bd58;
  font-size:17px;
  cursor:pointer;
}
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-price-component input-slider{
  display:flex;
  align-items:center;
  padding:0 13px;
}
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-price-component .ng2-nouislider{
  width:100%;
  margin:0;
}
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-price-component .noUi-target{box-shadow:none}

:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-searchbox__submit{
  position:relative;
  float:none !important;
  clear:both;
  box-sizing:border-box;
  width:auto !important;
  min-height:0 !important;
  margin:18px 8px 12px !important;
  padding:0 !important;
}
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-searchbox__submit .tbe-primary-button{
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  width:100%;
  min-height:48px;
  padding:0 14px;
  border:1px solid var(--blue-strong);
  border-radius:10px;
  background:var(--blue-strong);
  color:#fff;
  font-size:14px;
  line-height:1;
  font-weight:750;
  box-shadow:0 5px 12px rgba(0,94,184,.16);
}
/* Keine zusätzlich erzeugten Suchicons in der kompakten Ergebnis-Sidebar. */
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-searchbox__submit .tbe-primary-button::before{
  content:none !important;
}

:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-collapse{
  clear:both;
  box-sizing:border-box;
  width:100% !important;
  margin:18px 0 0 !important;
  padding:0 8px 10px !important;
  border-radius:12px;
  background:#f5f7f9 !important;
  background-clip:padding-box;
}
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-collapse__link{
  box-sizing:border-box;
  display:flex;
  float:none;
  align-items:center;
  justify-content:space-between;
  width:100%;
  min-height:44px;
  padding:10px 2px 8px;
  border-top:0 !important;
  background:transparent;
  color:var(--navy);
  font-size:13px;
  line-height:1.2;
  font-weight:650;
  cursor:pointer;
}
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) :is(.tbe-collapse__link__text,.tbe-collapse__link__icon){
  float:none;
  width:auto;
}
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-collapse__link__icon{color:var(--blue)}

/* Resultat-Header, Merkzettel, Angebotszahlen und Breadcrumbs bleiben vollständig TBE-native.
   Insbesondere keine width/overflow/position-Regeln auf deren Container setzen. */

/* Ergebnis-Ladezustand: Zentrum wird aus der realen TBE-Geometrie berechnet.
   Damit bleibt der Spinner auch bei Browser-Zoom und unterschiedlichen Sidebar-Breiten mittig. */
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) tbe .tbe-loading:not(.site-tbe-loading){
  position:fixed !important;
  top:var(--tbe-results-spinner-y,calc(50vh + 100px)) !important;
  right:auto !important;
  bottom:auto !important;
  left:var(--tbe-results-spinner-x,min(calc(66.6667vw - 8px),calc(50vw + 230px))) !important;
  width:2.5em !important;
  max-width:none !important;
  height:2.5em !important;
  margin:0 !important;
  transform:translate(-50%,-50%) !important;
  z-index:30 !important;
}

/* ---------------------------------------------------------------
   C. Preisprüfung – deterministischer Spinner + Status im CTA
   --------------------------------------------------------------- */
tbe .tbe-offer__check{
  overflow:visible !important;
}
tbe .tbe-offer__check .tbe-primary-button{
  box-sizing:border-box !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:44px !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
  overflow:hidden !important;
}
tbe .tbe-offer__check .tbe-primary-button loading{
  box-sizing:border-box !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:7px !important;
  width:100% !important;
  min-width:0 !important;
  min-height:42px !important;
  margin:0 !important;
  padding:0 8px !important;
  color:transparent !important;
  font-size:0 !important;
  line-height:1 !important;
}
tbe .tbe-offer__check .tbe-primary-button loading>.tbe-loading{
  display:none !important;
}
tbe .tbe-offer__check .tbe-primary-button loading::before{
  content:"" !important;
  flex:0 0 14px !important;
  box-sizing:border-box !important;
  width:14px !important;
  height:14px !important;
  margin:0 !important;
  border:2px solid rgba(255,255,255,.48) !important;
  border-top-color:#fff !important;
  border-radius:50% !important;
  background:transparent !important;
  box-shadow:none !important;
  animation:spin .75s linear infinite !important;
}
tbe .tbe-offer__check .tbe-primary-button loading::after{
  content:"Preis wird geprüft …" !important;
  flex:0 1 auto !important;
  min-width:0 !important;
  color:#fff !important;
  font-family:inherit !important;
  font-size:12px !important;
  font-weight:650 !important;
  line-height:1.2 !important;
  white-space:nowrap !important;
  text-align:center !important;
}

@media(max-width:680px){
  .destination-page:not(.destination-results-mode) .destination-tbe .tbe-switch__tabs{gap:4px;margin-bottom:2px}
  .destination-page:not(.destination-results-mode) .destination-tbe .tbe-switch__tab{
    justify-content:center;
    gap:6px;
    height:48px;
    padding:0 6px;
    border-radius:8px;
    font-size:11px;
    white-space:nowrap;
  }
  .destination-page:not(.destination-results-mode) .destination-tbe .tbe-switch__tab>span:last-child{display:none}
  .destination-page:not(.destination-results-mode) .destination-tbe .tbe-switch__tab::after{
    flex:0 0 auto;
    font-family:"Font Awesome 5 Free";
    font-size:10px;
    font-weight:900;
    opacity:.82;
  }
  .destination-page:not(.destination-results-mode) .destination-tbe .tbe-switch__tab:nth-child(1)::after{content:"\f5b0"}
  .destination-page:not(.destination-results-mode) .destination-tbe .tbe-switch__tab:nth-child(2)::after{content:"\f236"}
  .destination-page:not(.destination-results-mode) .destination-tbe .tbe-switch__tab:nth-child(3)::after{content:"\f072"}
  .destination-page:not(.destination-results-mode) .destination-tbe .tbe-searchbox{padding:12px 0 8px}
  .destination-page:not(.destination-results-mode) .destination-tbe :is(
    .tbe-autosuggest-component,
    .tbe-airports-component,
    .tbe-timespan-component,
    .tbe-travellers-component,
    .tbe-stars-component,
    .tbe-operator-component,
    .tbe-price-component,
    .tbe-searchbox__submit
  ){
    float:none;
    width:100%;
    min-height:73px;
    padding-inline:6px;
  }
  .destination-page:not(.destination-results-mode) .destination-tbe .tbe-searchbox__submit{
    min-height:0;
    margin-top:4px;
    margin-bottom:13px !important;
  }
  .destination-page:not(.destination-results-mode) .destination-tbe .tbe-searchbox__submit .tbe-primary-button{
    height:50px;
    min-height:50px;
  }
  .destination-page:not(.destination-results-mode) .destination-search-card{
    padding:7px;
    border-radius:12px;
    box-shadow:0 8px 22px rgba(8,47,95,.09);
  }

  :is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-search-wrapper searchbox{
    padding:6px;
    border-radius:10px;
  }
  :is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-switch__tabs{gap:4px}
  :is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-switch__tab{
    height:48px;
    padding:0 5px;
    border-radius:8px;
    font-size:11px;
  }
  :is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-searchbox{
    padding:8px 5px 10px !important;
  }
  :is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-searchbox__submit{
    margin:14px 5px 10px !important;
  }
  :is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-collapse{
    margin:14px 0 0 !important;
    padding:0 5px 8px !important;
  }
}


/* ================================================================
   V3.1.63 – stabile TBE-Zustände und gemessene Ergebnisgeometrie
   ================================================================ */
/* Die Zielseiten-Landingmaske reserviert die Höhe des größten regulären
   Suchzustands. Pauschal/Hotel/Flug dürfen dadurch den Seitenabschluss
   nicht mehr bei jedem Tabwechsel vertikal verschieben. */
@media(min-width:681px){
  .destination-page:not(.destination-results-mode) .destination-tbe{
    min-height:390px;
  }
}

/* Ergebnis-Sidebar: die eigentliche Suchkarte bleibt in sich geschlossen.
   Zusatzoptionen vergrößern nur ihren Inhalt, nicht die äußere Spaltenbreite. */
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-search-wrapper,
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-search-wrapper searchbox{
  min-width:0;
  max-width:100%;
}


/* ================================================================
   V3.1.64 – Kopfzeile und Ergebnis-Sidebar geometrisch vereinheitlicht
   ================================================================ */
/* Hauptsuchblock und Zusatzoptionen bilden zwei klar getrennte, gleich breite
   Karten. Der Abstand stammt ausschließlich aus dem Collapse-Margin. */
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-search-wrapper searchbox{
  overflow:visible;
}
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-searchbox,
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-collapse{
  max-width:100% !important;
}

/* Die beiden Sidebar-Karten bleiben gleich breit; ein eigener Flex-Abstand
   verhindert, dass der obere Margin am vorausgehenden Float kollabiert. */
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-search-wrapper searchbox>form{
  display:flex !important;
  flex-direction:column !important;
  gap:18px;
}
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-search-wrapper searchbox>form>.tbe-collapse{
  margin-top:0 !important;
}

/* Das native 8,33-%-Loch zwischen Bestätigung und Merkzettel wird durch die
   korrekte Breite der Breadcrumb-Leiste beseitigt, ohne Overlay oder Abdeckung. */
@media(min-width:681px){
  :is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) tbe .tbe-breadcrumb{
    width:83.333333% !important;
  }
}

@media(max-width:680px){
  :is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) .tbe-search-wrapper searchbox>form{
    gap:14px;
  }
}

/* Ergebnis-Sidebar: Popups werden vollständig nach unten geöffnet. Die
   normale Seite übernimmt das Scrollen; kein zweiter Scrollcontainer im Popup. */
:is(body.results-mode .hero,.destination-page.destination-results-mode .destination-tbe) :is(
  .tbe-airports-component .tbe-input-multiple__popup,
  .tbe-timespan-component__popup,
  .tbe-travellers-component__popup
){
  z-index:1000 !important;
  top:calc(100% + 8px) !important;
  bottom:auto !important;
  height:auto !important;
  max-height:none !important;
  overflow-x:clip !important;
  overflow-y:visible !important;
  overscroll-behavior:auto;
}

/* ================================================================
   V3.1.65 – Ergebnis-Spinner + „Alle Ziele“
   ================================================================ */

/* Sekundäre Navigation zurück zur vollständigen Regionenauswahl. */
.destination-all-targets{
  display:none;
  align-items:center;
  justify-content:center;
  min-height:36px;
  padding:0 14px;
  border:1px solid rgba(255,255,255,.72);
  border-radius:999px;
  background:rgba(6,45,78,.24);
  color:#fff;
  font-size:12px;
  line-height:1;
  font-weight:700;
  text-decoration:none;
  white-space:nowrap;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  transition:background .16s ease,border-color .16s ease,transform .16s ease;
}
.destination-all-targets[hidden]{display:none !important}
.destination-results-mode .destination-all-targets,
.results-mode .tbe-context-hero .destination-all-targets{display:inline-flex}
.destination-all-targets:hover{
  border-color:#fff;
  background:rgba(6,45,78,.40);
  transform:translateY(-1px);
}
.destination-all-targets:focus-visible{outline:3px solid rgba(255,255,255,.72);outline-offset:3px}

/* Der sichtbare Ergebnis-Ladespinner gehört uns und hängt direkt am body.
   So kann kein transformierter TBE-Untercontainer seine Position verschieben. */
.results-loading-overlay{
  position:fixed;
  left:50vw;
  top:50vh;
  z-index:1000;
  display:flex;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  margin:0;
  border-radius:50%;
  background:rgba(255,255,255,.94);
  box-shadow:0 6px 18px rgba(8,47,95,.14);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translate(-50%,-50%);
  transition:opacity .12s ease;
}
.results-loading-overlay .loader{width:36px;height:36px;border-width:3px}
body.tbe-results-loading .results-loading-overlay{opacity:1;visibility:visible}

/* Fallback vor der ersten TBE-Messung: Mittelpunkt der rechten Ergebnisfläche.
   Sobald die vorhandene exakte Inline-Koordinate vorliegt, überschreibt sie
   diesen rein visuellen CSS-Fallback ohne Positionssprung. */
@media(min-width:681px){
  body.results-mode .results-loading-overlay,
  body.destination-results-mode .results-loading-overlay{
    left:min(calc(66.6667vw - 8px),calc(50vw + 230px));
    top:calc(50vh + 100px);
  }
}

/* Preisprüfung bleibt vollständig innerhalb der jeweiligen Angebotskarte. */
body.results-mode tbe .tbe-offer__check{position:relative;}
body.results-mode tbe .tbe-offer__check .tbe-loading{
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  right:auto !important;
  bottom:auto !important;
  margin:0 !important;
  transform:translate(-50%,-50%) !important;
}

/* Während unser geometrisch korrekt zentrierter Overlay-Spinner sichtbar ist,
   wird ausschließlich der allgemeine TBE-Ergebnis-Ladeindikator unsichtbar.
   Die Preisprüfung besitzt weiterhin ihren eigenen Button-Spinner. */
body.tbe-results-loading.results-mode .hero tbe .tbe-loading:not(.site-tbe-loading),
body.tbe-results-loading.destination-page.destination-results-mode .destination-tbe tbe .tbe-loading:not(.site-tbe-loading){
  opacity:0 !important;
  visibility:hidden !important;
}

@media(max-width:680px){
  .destination-results-mode .destination-title-row{align-items:center;flex-direction:row;gap:12px}
  .destination-results-mode .destination-all-targets{min-height:34px;padding:0 11px;font-size:11px}
}


/* ================================================================
   V3.1.66 – Buchungskarten + klarer Abstand der Zusatzoptionen
   ================================================================ */
/* Nur die von site.js geometrisch identifizierten großen Buchungsblöcke
   erhalten eine moderate Rundung. TBE-Inhalte und Buchungslogik bleiben nativ. */
body.tbe-booking-mode :is(.hero,.destination-tbe) tbe [data-ro-booking-card="true"]{
  border-radius:14px !important;
  background-clip:padding-box !important;
  overflow:hidden;
}

/* Buchungsseite: alle nativen Travianet-Inhaltsflächen erhalten denselben
   weichen Kartenabschluss. Nur Darstellung, keine Inhalte oder Logik. */
body.tbe-booking-mode :is(
  .tbe-operatorinfo,
  .tbe-travelinfo,
  .tbe-flight-detail-box,
  .tbe-book-registration,
  .tbe-book-travellers,
  .tbe-book-insurance,
  .tbe-book-addon,
  .tbe-book-payment,
  .tbe-book-legalform,
  .tbe-book-annotation,
  .tbe-book-checkout,
  .tbe-book-requestinfo,
  .tbe-book-unavailable,
  .tbe-content-wrapper--confirm
){
  border-radius:14px !important;
  background-clip:padding-box !important;
  overflow:hidden;
}

/* Derselbe Hook funktioniert auch dann, wenn TBE die Buchungsroute intern
   neu rendert, bevor unsere äußere Routenklasse gesetzt ist. */
tbe .tbe-bookpage :is(
  .tbe-operatorinfo,
  .tbe-travelinfo,
  .tbe-flight-detail-box,
  .tbe-book-registration,
  .tbe-book-travellers,
  .tbe-book-insurance,
  .tbe-book-addon,
  .tbe-book-payment,
  .tbe-book-legalform,
  .tbe-book-annotation,
  .tbe-book-checkout,
  .tbe-book-requestinfo,
  .tbe-book-unavailable,
  .tbe-content-wrapper--confirm
){
  border-radius:14px !important;
  background-clip:padding-box !important;
  overflow:hidden;
}

/* Desktop: alle drei Reisearten behalten dieselbe Maskenhöhe. Dadurch bleiben
   Hero-Ausschnitt und nachfolgende Bereiche beim Umschalten exakt stehen. */
@media(min-width:681px){
  body.home-page:not(.results-mode) .hero .search-card{
    min-height:396px;
  }
  body.home-page:not(.results-mode) .hero .tbe-searchbox{
    min-height:269px;
  }
}

/* ================================================================
   V3.1.81 – kompakte Reisezeit aus Offer-API
   ================================================================ */
/* Reine Präsentationsschicht auf validierten TBE-Daten. Native Datums-,
   Dauer- und Abflugzeilen werden nur bei eindeutigem Match ersetzt. */
tbe .ro-trip-native-hidden{
  display:none !important;
}

tbe .ro-trip-dates{
  flex:0 0 100%;
  grid-column:1 / -1;
  width:100%;
  margin:0 0 10px;
  color:var(--ink);
  line-height:1.3;
}
tbe .ro-trip-dates__headline{
  width:100%;
  box-sizing:border-box;
  padding:10px 12px;
  background:#f3f3f3;
  color:var(--ink);
  font-size:16px;
  line-height:1.25;
  font-weight:400;
  white-space:normal;
  overflow-wrap:anywhere;
}
tbe .ro-trip-dates__headline strong{
  font-weight:700;
}

@media(max-width:680px){
  tbe .ro-trip-dates{margin:0 0 9px}
  tbe .ro-trip-dates__headline{padding:9px 10px;font-size:14px}
}

/* ================================================================
   V3.1.75c – ruhige Popups, unverändert übernommen
   ================================================================ */
/* Keine adaptive Auf-/Ab-Positionierung. Die TBE-Popups öffnen nach unten,
   ohne unsere eigene interne Höhenbegrenzung. Reicht der Inhalt über den
   Viewport hinaus, scrollt ausschließlich die normale Webseite. */

/* V3.1.83 – Hero-Wechsel: synchroner Routenwechsel + eigenständiger Bild-Fallback; keine TBE-Logikänderung. */

/* V3.1.89 – Angebotskarten. Native Spalten, Fluginformationen, Hinweise und
   Buchungsschritte bleiben im TBE-Layout; Tooltips dürfen die Karte verlassen. */
/* V3.2.03 – denselben Stil auch auf Reisezielseiten und vor dem Setzen der
   äußeren Routenklasse anwenden. Nur die CSS-Zuordnung wird erweitert. */
:is(body.results-mode tbe, tbe .tbe-offerpage) .tbe-offer{
  border:1px solid #dce5eb;
  border-radius:16px;
  padding:16px;
  margin-bottom:18px;
  background:#fff;
  box-shadow:0 3px 14px rgba(23,50,74,.07);
}
:is(body.results-mode tbe, tbe .tbe-offerpage) .tbe-offer .ro-trip-dates{
  margin-bottom:16px;
}
:is(body.results-mode tbe, tbe .tbe-offerpage) .tbe-offer .ro-trip-dates__headline{
  padding:10px 12px;
  border-radius:10px;
  background:#f3f3f3;
  line-height:1.25;
  font-size:16px;
}
:is(body.results-mode tbe, tbe .tbe-offerpage) .tbe-offer .ro-trip-hotel-label{
  display:block;
  color:var(--ink);
  font-weight:700;
  margin-bottom:3px;
}
:is(body.results-mode tbe, tbe .tbe-offerpage) .tbe-offer .ro-trip-hotel-nights{
  display:block;
  margin-top:3px;
  color:var(--ink);
  font-weight:700;
}
:is(body.results-mode tbe, tbe .tbe-offerpage) .tbe-offer .tbe-offer-collabel:not(.tbe-offer-collabel__duration){
  color:var(--ink);
  font-weight:700;
}
:is(body.results-mode tbe, tbe .tbe-offerpage) .tbe-offer .tbe-offer__check .tbe-primary-button,
:is(body.results-mode tbe, tbe .tbe-offerpage) .tbe-offer .tbe-offer__navigate .tbe-primary-button{
  border-radius:9px;
}
@media(max-width:680px){
  :is(body.results-mode tbe, tbe .tbe-offerpage) .tbe-offer{padding:12px;border-radius:13px;margin-bottom:14px}
  :is(body.results-mode tbe, tbe .tbe-offerpage) .tbe-offer .ro-trip-dates{margin-bottom:12px}
  :is(body.results-mode tbe, tbe .tbe-offerpage) .tbe-offer .ro-trip-dates__headline{padding:9px 10px;font-size:14px}
}

/* V3.1.92 – Hotelübersicht auf der Angebotsseite: derselbe ruhige Rahmen
   wie die Angebotskarten. TBE-Anordnung und überstehende Inhalte bleiben frei. */
tbe .tbe-offerpage .tbe-content-wrapper > hotel-overview > .tbe-hotel{
  border:1px solid #dce5eb;
  border-radius:16px;
  background:#fff;
  box-shadow:0 3px 14px rgba(23,50,74,.07);
}
@media(max-width:680px){
  tbe .tbe-offerpage .tbe-content-wrapper > hotel-overview > .tbe-hotel{
    border-radius:13px;
  }
}

/* ================================================================
   V3.2.11 – moderne Hotelkarten in der Hotelauswahl
   Die Angebotsseite verwendet diese ruhige Kartenoptik bereits. Hier wird
   ausschließlich die Darstellung der Hotel-Liste angeglichen; TBE-Inhalte,
   Spalten, Links, Preise und Navigation bleiben unverändert.
   ================================================================ */
tbe .tbe-hotelpage .tbe-content-wrapper > hotel-overview > .tbe-hotel{
  border:1px solid #dce5eb !important;
  border-radius:16px !important;
  background:#fff !important;
  box-shadow:0 3px 14px rgba(23,50,74,.07);
  transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}
tbe .tbe-hotelpage .tbe-content-wrapper > hotel-overview > .tbe-hotel:hover{
  border-color:#c7d8e4 !important;
  box-shadow:0 8px 24px rgba(23,50,74,.11);
  transform:translateY(-1px);
}
tbe .tbe-hotelpage .tbe-hotel__name{
  color:var(--blue-strong);
  font-weight:700;
  line-height:1.2;
}
tbe .tbe-hotelpage .tbe-hotel__image,
tbe .tbe-hotelpage .tbe-hotel__image-zoom img{
  border-radius:12px;
}
tbe .tbe-hotelpage .tbe-hotel__image{
  overflow:hidden;
  background-position:center;
  background-size:cover;
  box-shadow:0 2px 8px rgba(23,50,74,.10);
}
tbe .tbe-hotelpage .tbe-hotel-info__links{
  color:var(--blue-strong);
}
tbe .tbe-hotelpage .tbe-hotel-info__price .tbe-primary-button{
  border-radius:9px;
  box-shadow:0 4px 10px rgba(0,84,165,.16);
}

@media(max-width:680px){
  tbe .tbe-hotelpage .tbe-content-wrapper > hotel-overview > .tbe-hotel{
    border-radius:13px !important;
    margin-bottom:14px;
    box-shadow:0 3px 12px rgba(23,50,74,.07);
  }
  tbe .tbe-hotelpage .tbe-content-wrapper > hotel-overview > .tbe-hotel:hover{
    transform:none;
  }
  tbe .tbe-hotelpage .tbe-hotel__image,
  tbe .tbe-hotelpage .tbe-hotel__image-zoom img{
    border-radius:10px;
  }
}

/* CHECK24 development-only banner */
.check24-dev-banner{position:relative;z-index:1000;padding:8px 16px;background:#fff4d6;border-bottom:1px solid #e3c879;color:#5e4800;font-size:13px;text-align:center}.check24-dev-banner strong{font-weight:800}
