:root{
  --yellow:#FDD435; --yellow-deep:#e9bf14; --ink:#161616; --muted:#505050;
  --line:#dcdcdc; --soft:#f3f3f1; --paper:#ffffff;
  --head: "Arial Black","Segoe UI Black","Helvetica Neue",Arial,sans-serif;
  --body: system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font:1.0625rem/1.6 var(--body);color:var(--ink);background:var(--paper);padding-bottom:env(safe-area-inset-bottom,0)}
img{max-width:100%;height:auto}
a{color:inherit}
.wrap{width:min(1100px,100% - 2.5rem);margin-inline:auto}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:.6rem 1rem;z-index:100}
.skip:focus{left:0}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px;box-shadow:0 0 0 6px var(--yellow)}

/* Kopf */
.site-header{background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.bar{display:flex;align-items:center;gap:1.25rem;padding:.5rem 0}
.brand img{display:block;height:3.5rem;width:auto}
.nav{display:flex;gap:.25rem 1.5rem;margin-left:auto;flex-wrap:wrap}
.nav a{text-decoration:none;font-weight:600;padding:.4rem 0;border-bottom:3px solid transparent}
.nav a:hover{border-color:var(--line)}
.nav a[aria-current="page"]{border-color:var(--ink)}
.callpill{background:var(--ink);color:var(--yellow);text-decoration:none;font-weight:700;padding:.55rem 1rem;border-radius:2rem;white-space:nowrap}
.callpill:hover{background:#000}

/* Hero */
.hero{background:var(--yellow);padding:clamp(2.5rem,7vw,5.5rem) 0}
.hero-grid{display:grid;gap:2.5rem;grid-template-columns:1.25fr 1fr;align-items:center}
h1{font:900 clamp(2rem,5.2vw,3.6rem)/1.05 var(--head);letter-spacing:-.02em;margin:0 0 1rem}
h2{font:900 clamp(1.4rem,2.8vw,1.9rem)/1.15 var(--head);letter-spacing:-.01em;margin:0 0 .7rem}
.lead{font-size:1.2rem;max-width:34rem;margin:0 0 1.6rem}
.bignum{margin:0;font:900 clamp(2.1rem,5vw,3.4rem)/1.05 var(--head);letter-spacing:-.02em;background:var(--ink);color:var(--yellow);padding:1.5rem 1.6rem;border-radius:.4rem;transform:rotate(-1.5deg)}
.bignum span{display:block;font:600 .95rem/1 var(--body);letter-spacing:0;color:#fff;margin-bottom:.6rem}
.actions{display:flex;flex-wrap:wrap;gap:.8rem;margin:0}

.btn{display:inline-block;padding:.85rem 1.5rem;border-radius:.35rem;font-weight:700;text-decoration:none;border:2px solid var(--ink);cursor:pointer;font-family:var(--body);font-size:1.0625rem;line-height:1.2}
.btn-dark{background:var(--ink);color:var(--yellow)}
.btn-dark:hover{background:#000}
.btn-line{background:transparent;color:var(--ink)}
.btn-line:hover{background:var(--ink);color:var(--yellow)}
.section .btn-line:hover,.pagehead .btn-line:hover{color:var(--yellow)}

/* Seiten */
.pagehead{background:var(--yellow);padding:clamp(2rem,5vw,3.5rem) 0}
.pagehead h1{margin-bottom:.5rem}
.pagehead .lead{margin:0}
.section{padding:clamp(2.5rem,6vw,4.25rem) 0}
.section.soft{background:var(--soft)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,5vw,4rem);align-items:start}
.measure{max-width:42rem}
.small{font-size:.95rem;color:var(--muted)}
.textlink{font-weight:700;text-decoration-thickness:2px;text-underline-offset:4px;text-decoration-color:var(--yellow-deep)}

/* Fuhrpark */
.fleet{width:100%;border-collapse:collapse}
.fleet th{text-align:left;font-size:.9rem;font-weight:600;color:var(--muted);padding:.4rem .8rem;border-bottom:2px solid var(--ink)}
.fleet td{padding:.85rem .8rem;border-bottom:1px solid var(--line)}
.fleet td:first-child{font:900 1.6rem/1 var(--head);width:5.5rem}

.tags{list-style:none;margin:0 0 1.4rem;padding:0;display:flex;flex-wrap:wrap;gap:.6rem}
.tags li{background:var(--paper);border:2px solid var(--ink);border-radius:2rem;padding:.4rem 1rem;font-weight:600}
.checklist{list-style:none;margin:0;padding:0}
.checklist li{padding:.7rem 0 .7rem 2rem;border-bottom:1px solid var(--line);position:relative}
.checklist li::before{content:"";position:absolute;left:.25rem;top:1.05rem;width:.8rem;height:.8rem;background:var(--yellow);border:2px solid var(--ink)}
.phones{display:grid;gap:.3rem;margin:0 0 1.5rem}
.phones a{font:900 clamp(1.4rem,3.4vw,2rem)/1.2 var(--head);text-decoration:none}
.phones a:hover{text-decoration:underline;text-decoration-color:var(--yellow-deep);text-decoration-thickness:4px}

/* Buchung */
.booking{border:2px solid var(--ink);border-radius:.4rem;min-height:12rem;background:var(--paper)}
.booking-gate{padding:1.4rem}
.booking-gate p{margin:0 0 .8rem}
.booking iframe{display:block;width:100%;height:520px;border:0;border-radius:.3rem}

/* Fuss */
.checker{height:18px;background:
  conic-gradient(var(--ink) 25%,var(--yellow) 0 50%,var(--ink) 0 75%,var(--yellow) 0) 0 0/36px 36px}
.site-footer{background:var(--ink);color:#e9e9e9;padding:2.2rem 0}
.foot{display:grid;grid-template-columns:repeat(3,auto);justify-content:space-between;gap:1.5rem}
.site-footer a{text-decoration-color:var(--yellow)}
.legal h2{margin-top:2rem;font-size:1.25rem}
.legal p{margin:0 0 1rem}

/* Mobile Anrufleiste */
.callbar{display:none}

@media (max-width:820px){
  .hero-grid,.two{grid-template-columns:1fr}
  .bignum{transform:none}
  .bar{flex-wrap:wrap}
  .nav{order:3;width:100%;margin-left:0;justify-content:space-between;flex-wrap:nowrap;gap:.5rem;font-size:.97rem}
  .callpill{display:none}
  .foot{grid-template-columns:1fr}
}
@media (max-width:700px){
  .callbar{display:block;position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--yellow);color:var(--ink);
    text-align:center;font-weight:800;text-decoration:none;padding:.9rem 1rem calc(.9rem + env(safe-area-inset-bottom,0));
    border-top:3px solid var(--ink)}
  body{padding-bottom:4.2rem}
  .brand img{height:2.6rem}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{.callbar,.site-header,.checker{display:none}}
