:root{
  --fr-red:#e63946;
  --fr-red-2:#ff5a64;
  --fr-red-dark:#c92a37;
  --fr-navy:#1b2440;
  --fr-navy-2:#2a3760;
  --fr-blue:#5b7cfa;
  --fr-gold:#ffb703;
  --fr-bg:#f3f4f9;
  --fr-cream:#fbf7f2;
  --fr-ink:#1f2330;
  --fr-muted:#6b7385;
  --grad-red:linear-gradient(135deg,var(--fr-red-2),var(--fr-red));
  --grad-hero:linear-gradient(135deg,#202a4d 0%,#161d36 55%,#221a3a 100%);
  --r-lg:26px;
  --r-md:18px;
  --r-sm:14px;
  --sh-sm:0 6px 18px rgba(24,33,66,.06);
  --sh:0 14px 38px rgba(24,33,66,.10);
  --sh-lg:0 28px 60px rgba(24,33,66,.16);
}
*{scroll-behavior:smooth}
body{font-family:'Source Sans 3',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;color:var(--fr-ink);background:var(--fr-bg)}
h1,h2,h3,h4,h5,h6,.navbar-brand,.display-title{font-family:'Source Sans 3',-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;font-weight:700;letter-spacing:-.01em}
a{text-decoration:none}

/* Buttons – Pill-Form, weich */
.btn{border-radius:50rem;font-weight:600;padding:.55rem 1.25rem;transition:.2s;border-width:1.5px}
.btn-lg{padding:.8rem 1.7rem}
.btn-sm{padding:.4rem .9rem}
.btn:hover{transform:translateY(-1px)}
.btn-primary{--bs-btn-bg:var(--fr-red);--bs-btn-border-color:var(--fr-red);--bs-btn-hover-bg:var(--fr-red-dark);--bs-btn-hover-border-color:var(--fr-red-dark);--bs-btn-active-bg:var(--fr-red-dark);box-shadow:0 8px 20px rgba(230,57,70,.28)}
.btn-primary:hover{box-shadow:0 12px 26px rgba(230,57,70,.36)}
.btn-warning{--bs-btn-bg:var(--fr-gold);--bs-btn-border-color:var(--fr-gold);box-shadow:0 8px 20px rgba(255,183,3,.30)}
.btn-success{box-shadow:0 8px 20px rgba(42,157,143,.25)}
.btn-outline-primary{--bs-btn-color:var(--fr-red);--bs-btn-border-color:var(--fr-red);--bs-btn-hover-bg:var(--fr-red);--bs-btn-hover-border-color:var(--fr-red)}
.text-primary{color:var(--fr-red)!important}
.bg-navy{background:var(--fr-navy)!important}
.text-gold{color:var(--fr-gold)!important}

/* Formularfelder – weich gerundet */
.form-control,.form-select{border-radius:var(--r-sm);border-color:#e4e7f0;padding:.6rem .9rem}
.form-control:focus,.form-select:focus{border-color:var(--fr-red);box-shadow:0 0 0 .2rem rgba(230,57,70,.12)}
.form-control-lg,.form-select-lg{border-radius:var(--r-sm)}
.input-group .form-control{border-top-right-radius:0;border-bottom-right-radius:0}
.input-group .btn{border-radius:0 50rem 50rem 0!important}

/* Topbar */
.topbar{background:var(--fr-navy);font-size:.82rem;padding:.45rem 0}
.topbar a{color:#fff;opacity:.85}
.topbar a:hover{color:var(--fr-gold);opacity:1}

/* Navbar */
.navbar{padding-top:.55rem;padding-bottom:.55rem;backdrop-filter:saturate(1.1) blur(6px);background:rgba(255,255,255,.92)!important}
.navbar .nav-link{font-weight:600;color:var(--fr-navy);border-radius:50rem;padding:.45rem .85rem!important}
.navbar .nav-link:hover{color:var(--fr-red);background:rgba(230,57,70,.06)}
.navbar-brand img{transition:.2s}

/* Volle Suchleiste unter dem Menü */
.header-search{background:#fff;border-top:1px solid #eef0f6;box-shadow:var(--sh-sm);padding:.7rem 0}
.header-search .input-group{box-shadow:var(--sh-sm);border-radius:50rem;overflow:hidden}
.header-search .input-group-text,.header-search .form-control{border-color:#e4e7f0;background:#fff}
.header-search .form-control{box-shadow:none}
.header-search .form-control:focus{box-shadow:none}
.header-search .btn{border-radius:50rem}
@media(max-width:575px){.header-search .input-group{border-radius:14px}}

/* Mega menu */
.navbar .position-static{position:static!important}
.megamenu{left:0;right:0;margin-top:.4rem;border-radius:var(--r-lg);background:#fff;box-shadow:var(--sh-lg)}
.mega-cat-head{display:flex;align-items:center;gap:.5rem;font-family:'Source Sans 3';font-weight:700;font-size:1.02rem;color:var(--fr-navy);padding-bottom:.5rem;border-bottom:2px solid #f0f1f6;margin-bottom:.6rem}
.mega-cat-head i{color:var(--fr-red);font-size:1.15rem}
.mega-list{list-style:none;padding:0;margin:0}
.mega-list li a{display:block;padding:.28rem .5rem;color:#54607a;font-size:.92rem;border-radius:10px}
.mega-list li a:hover{color:var(--fr-red);background:#f6f7fb}
.mega-more{font-size:.82rem;font-weight:700;color:var(--fr-blue)}
@media(min-width:992px){.megamenu{display:block;opacity:0;visibility:hidden;transform:translateY(10px);transition:.2s;pointer-events:none}
.megamenu.show{opacity:1;visibility:visible;transform:none;pointer-events:auto}}

/* Hero – schwebendes, abgerundetes Panel */
.hero{position:relative;background:var(--grad-hero);color:#fff;overflow:hidden;border-radius:var(--r-lg);margin:1.25rem 1.25rem 0}
.hero::after{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 82% 18%,rgba(255,183,3,.20),transparent 42%),radial-gradient(circle at 8% 92%,rgba(255,90,100,.30),transparent 45%)}
.hero .container{position:relative;z-index:2}
.hero-badge{display:inline-block;background:rgba(255,255,255,.14);color:#fff;font-weight:700;padding:.4rem 1rem;border-radius:50rem;font-size:.76rem;letter-spacing:.05em;text-transform:uppercase;backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.18)}
.hero h1{font-size:clamp(2.1rem,5vw,3.5rem);line-height:1.05}
.hero-search{background:rgba(255,255,255,.97);border-radius:22px;padding:1.1rem;box-shadow:var(--sh-lg)}
.hero-search .form-control,.hero-search .form-select{border-radius:14px}
@media(max-width:576px){.hero{margin:.6rem;border-radius:20px}}

/* Karten */
.ride-card{border:1px solid #eef0f6;border-radius:var(--r-md);overflow:hidden;box-shadow:var(--sh-sm);transition:.25s cubic-bezier(.2,.7,.3,1);height:100%;background:#fff}
.ride-card:hover{transform:translateY(-6px);box-shadow:var(--sh-lg);border-color:transparent}
.ride-card .img-wrap{aspect-ratio:4/3;overflow:hidden;background:#eef1f5;position:relative}
.ride-card .img-wrap img{width:100%;height:100%;object-fit:cover;transition:.4s}
.ride-card:hover .img-wrap img{transform:scale(1.07)}
.ride-card .card-badges{position:absolute;top:.7rem;left:.7rem;display:flex;gap:.35rem;flex-wrap:wrap}
.ride-card .card-badges .badge{border-radius:50rem;padding:.4em .7em;font-weight:600;box-shadow:0 4px 10px rgba(0,0,0,.12)}
.ride-card .fav{position:absolute;top:.7rem;right:.7rem}
.ride-card .card-title{font-size:1.06rem;font-weight:700;color:var(--fr-navy);letter-spacing:-.01em}
.price-tag{font-family:'Source Sans 3';font-weight:800;color:var(--fr-red);font-size:1.18rem}
.cat-pill{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--fr-blue);font-weight:700}
.badge{font-weight:600}
.badge.bg-warning{color:#5a4500}

/* Kategorie-Kacheln */
.cat-tile{display:block;border-radius:var(--r-md);padding:1.7rem 1.3rem;color:#fff;position:relative;overflow:hidden;height:100%;background:var(--fr-navy);transition:.25s;box-shadow:var(--sh-sm)}
.cat-tile:hover{transform:translateY(-6px);color:#fff;box-shadow:var(--sh)}
.cat-tile i{font-size:2.3rem;color:#fff;opacity:.95}
.cat-tile h5{margin:.7rem 0 .3rem;color:#fff;font-weight:700}
.cat-tile .count{position:absolute;top:1rem;right:1rem;background:rgba(255,255,255,.22);border-radius:50rem;padding:.18rem .7rem;font-size:.78rem;font-weight:600}
.cat-tile::after{content:"";position:absolute;right:-30px;bottom:-30px;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.10)}
.cat-tile.c0{background:linear-gradient(135deg,#ff5a64,#e63946)}
.cat-tile.c1{background:linear-gradient(135deg,#5b7cfa,#3a52c4)}
.cat-tile.c2{background:linear-gradient(135deg,#2bb6a8,#1f8478)}
.cat-tile.c3{background:linear-gradient(135deg,#ffb703,#f48c06)}
.cat-tile.c4{background:linear-gradient(135deg,#9b5de5,#6930c3)}

/* Sektionen */
.section{padding:3.8rem 0}
.section-head{margin-bottom:2.2rem}
.section-head .eyebrow{color:var(--fr-red);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.78rem}
.section-head h2{font-size:2.1rem;color:var(--fr-navy)}
.bg-cream{background:var(--fr-cream)}

/* Steps / Service */
.step{background:#fff;border-radius:var(--r-md);padding:1.8rem;height:100%;box-shadow:var(--sh-sm);border:1px solid #eef0f6;transition:.25s}
.step:hover{box-shadow:var(--sh);transform:translateY(-4px)}
.step .num{width:48px;height:48px;border-radius:16px;background:var(--grad-red);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Source Sans 3';font-weight:800;font-size:1.2rem;box-shadow:0 8px 18px rgba(230,57,70,.28)}

/* Inserat-Detail */
.gallery-main{border-radius:var(--r-md);overflow:hidden;background:#eef1f5;aspect-ratio:16/11;box-shadow:var(--sh-sm)}
.gallery-main img{width:100%;height:100%;object-fit:cover}
.thumb{border-radius:12px;overflow:hidden;cursor:pointer;aspect-ratio:1;border:2px solid transparent}
.thumb.active{border-color:var(--fr-red)}
.thumb img{width:100%;height:100%;object-fit:cover}
.spec-table td{padding:.45rem .6rem;border-bottom:1px solid #eef0f6;font-size:.92rem}
.price-box{background:#fff;border:1px solid #eef0f6;border-radius:var(--r-md);padding:1.6rem;box-shadow:var(--sh-sm)}

/* Auth */
.auth-card{max-width:460px;margin:0 auto;border-radius:var(--r-lg);border:none;box-shadow:var(--sh-lg)}

/* Admin */
.admin-wrap{display:flex;min-height:100vh}
.admin-side{width:255px;background:var(--fr-navy);color:#aeb6cf;flex-shrink:0}
.admin-side .brand{padding:1.2rem 1.3rem;font-family:'Source Sans 3';font-weight:800;color:#fff;font-size:1.2rem;border-bottom:1px solid rgba(255,255,255,.08)}
.admin-side a{display:flex;align-items:center;gap:.7rem;color:#aeb6cf;padding:.75rem 1.3rem;font-size:.93rem;font-weight:500;border-left:3px solid transparent}
.admin-side a:hover,.admin-side a.active{background:rgba(255,255,255,.06);color:#fff;border-left-color:var(--fr-gold)}
.admin-main{flex:1;background:var(--fr-bg);min-width:0}
.admin-topbar{background:#fff;padding:.9rem 1.5rem;box-shadow:var(--sh-sm);display:flex;justify-content:space-between;align-items:center}
.stat-card{background:#fff;border-radius:var(--r-md);padding:1.3rem;box-shadow:var(--sh-sm);border:1px solid #eef0f6;transition:.2s}
.stat-card:hover{box-shadow:var(--sh);transform:translateY(-3px)}
.stat-card .n{font-family:'Source Sans 3';font-weight:800;font-size:1.9rem;color:var(--fr-navy)}
.stat-card .ic{width:48px;height:48px;border-radius:15px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;color:#fff}
.table thead th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--fr-muted);font-weight:700}

/* Footer */
.site-footer{background:var(--fr-navy);border-radius:var(--r-lg) var(--r-lg) 0 0;margin-top:3rem}
.site-footer h6{color:#fff;font-family:'Source Sans 3';font-weight:700;margin-bottom:1rem}
.footer-links{list-style:none;padding:0;margin:0}
.footer-links li{margin-bottom:.5rem;font-size:.9rem;color:#9aa3c0}
.footer-links a{color:#9aa3c0}
.footer-links a:hover{color:var(--fr-gold)}
.site-footer .social{width:40px;height:40px;border-radius:14px;background:rgba(255,255,255,.08);color:#fff;display:inline-flex;align-items:center;justify-content:center;transition:.2s}
.site-footer .social:hover{background:var(--grad-red);transform:translateY(-2px)}
.footer-logo{filter:brightness(0) invert(1)}

/* Back to top */
.back-to-top{position:fixed;right:22px;bottom:22px;width:50px;height:50px;border-radius:50%;background:var(--grad-red);color:#fff;display:none;align-items:center;justify-content:center;z-index:1030;box-shadow:0 10px 26px rgba(230,57,70,.4)}
.back-to-top.show{display:flex}

/* Newsletter */
.newsletter-cta{background:var(--grad-hero);border-radius:var(--r-lg);color:#fff;position:relative;overflow:hidden;box-shadow:var(--sh)}
.newsletter-cta::after{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 90% 10%,rgba(255,183,3,.22),transparent 40%),radial-gradient(circle at 0% 100%,rgba(255,90,100,.28),transparent 42%)}
.newsletter-cta>*{position:relative;z-index:2}

/* Listen / Cards generisch abrunden */
.rounded-4{border-radius:var(--r-md)!important}
.list-group{border-radius:var(--r-md)!important}
.alert{border-radius:var(--r-sm)}
.shadow-sm{box-shadow:var(--sh-sm)!important}
.shadow,.shadow-lg{box-shadow:var(--sh)!important}

/* Checklist */
.ride-checklist{list-style:none;padding:0}
.ride-checklist li{padding:.32rem 0;padding-left:1.9rem;position:relative}
.ride-checklist li::before{content:"\F26E";font-family:'bootstrap-icons';position:absolute;left:0;color:#2bb6a8}
.empty-state{padding:3rem;text-align:center;color:#97a0b2}

/* Lesbare Schrift auf dunklen Hintergründen */
.hero .text-light-emphasis,.site-footer .text-light-emphasis,.bg-navy .text-light-emphasis,.newsletter-cta .text-light-emphasis,.admin-side .text-light-emphasis,.cat-tile .text-light-emphasis{color:rgba(255,255,255,.82)!important}
.hero .text-muted,.bg-navy .text-muted,.newsletter-cta .text-muted,.cat-tile .text-muted{color:rgba(255,255,255,.72)!important}
.hero .breadcrumb-item.active{color:rgba(255,255,255,.9)!important}
.hero .breadcrumb-item+.breadcrumb-item::before{color:rgba(255,255,255,.5)}
