
:root{
  --bg:#050505;--panel:#0a0a0a;--panel2:#111;--text:#f7f7f7;--muted:#9b9b9b;
  --line:#252525;--line2:#383838;--max:1500px;--radius:10px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Arial,sans-serif;line-height:1.55}
a{color:inherit;text-decoration:none} img{display:block;width:100%} button,input,select,textarea{font:inherit}
.container{width:min(calc(100% - 42px),var(--max));margin:auto}
.notice{height:28px;display:flex;align-items:center;justify-content:center;background:#fff;color:#000;font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.site-header{position:absolute;top:28px;left:0;right:0;z-index:50;background:linear-gradient(to bottom,rgba(0,0,0,.8),transparent)}
.nav{height:88px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:12px}.brand-mark{font-size:2.15rem;font-weight:950;letter-spacing:-.04em}
.brand-text{font-size:.75rem;font-weight:800;letter-spacing:.08em}.brand-text small{display:block;font-size:.5rem;color:#aaa;letter-spacing:.18em}
.nav-links{display:flex;align-items:center;gap:21px;font-size:.73rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em}
.nav-links a{opacity:.8}.nav-links a.active,.nav-links a:hover{opacity:1;border-bottom:1px solid #fff;padding-bottom:6px}
.lang-switch{display:flex;align-items:center;gap:3px;border-left:1px solid #555;padding-left:12px}
.lang-switch button{background:none;border:0;color:#777;font-size:.72rem;font-weight:900;cursor:pointer}.lang-switch button.active{color:#fff}
.menu-btn{display:none;background:none;border:0;color:#fff;font-size:1.5rem}
.hero{min-height:790px;position:relative;display:flex;align-items:flex-end;background:
 linear-gradient(to bottom,rgba(0,0,0,.12),rgba(0,0,0,.16) 52%,rgba(0,0,0,.86) 92%,#050505),
 url("../images/hero-user.jpg") center center/cover no-repeat}
.hero-inner{padding:170px 0 36px}
.hero-copy{max-width:620px;margin-bottom:44px}
.eyebrow{font-size:.72rem;text-transform:uppercase;letter-spacing:.28em;font-weight:800;color:#d3d3d3;margin-bottom:10px}
h1,h2,h3{margin:0;line-height:1.04} h1{font-size:clamp(3.6rem,6.8vw,7.3rem);letter-spacing:-.055em}
.hero-sub{font-size:.9rem;letter-spacing:.28em;text-transform:uppercase;margin:13px 0 22px}.lead{max-width:630px;color:#d1d1d1}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 19px;background:#fff;color:#000;border:1px solid #fff;font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em;cursor:pointer}
.btn.outline{background:rgba(0,0,0,.42);color:#fff}.btn.small{min-height:38px;padding:0 14px}
.flight-console{display:grid;grid-template-columns:1.08fr .92fr;gap:18px}
.panel{background:rgba(4,4,4,.9);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(10px)}
.tabs{display:flex;border-bottom:1px solid #252525}.tabs button{background:none;border:0;color:#777;padding:16px 24px;font-weight:800;cursor:pointer}.tabs button.active{color:#fff;border-bottom:2px solid #fff}
.flight-search{display:grid;grid-template-columns:1.25fr .75fr auto;gap:9px;padding:16px}.input{background:#090909;color:#fff;border:1px solid #333;padding:13px 14px;outline:none}
.table-title{display:flex;justify-content:space-between;gap:16px;padding:15px 17px;border-bottom:1px solid #222;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:650px}th,td{padding:10px 14px;text-align:left;border-bottom:1px solid #1d1d1d;font-size:.79rem}
th{color:#777;font-size:.66rem;text-transform:uppercase;letter-spacing:.08em}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#fff;margin-right:6px}
.quick-links{display:grid;grid-template-columns:repeat(6,1fr);border:1px solid #242424;border-top:0;background:#050505}
.quick-links a{text-align:center;padding:20px 12px;border-right:1px solid #202020}.quick-links a:last-child{border-right:0}
.quick-links strong{display:block;margin:6px 0 3px}.quick-links span{display:block;color:#888;font-size:.73rem}.icon{font-size:1.35rem}
.section{padding:72px 0;border-top:1px solid #191919}.section-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:28px}
.section-head h2{font-size:clamp(2.2rem,4.4vw,4.5rem);letter-spacing:-.04em}.section-head p{max-width:610px;color:#999}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.card{background:linear-gradient(180deg,#0d0d0d,#080808);border:1px solid var(--line);padding:24px}.card h3{font-size:1.25rem;margin-bottom:9px}.card p{color:#969696;margin:0 0 10px}.card .big{font-size:2.4rem;font-weight:900;margin:8px 0}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.gallery-card{border:1px solid #242424;background:#090909;overflow:hidden}.gallery-card img{height:230px;object-fit:cover;transition:.25s}.gallery-card:hover img{transform:scale(1.02)}
.gallery-meta{padding:15px}.gallery-meta strong{display:block;font-size:1.05rem}.gallery-meta span{color:#858585;font-size:.78rem}
.page-hero{min-height:440px;padding:175px 0 70px;background:
 linear-gradient(90deg,rgba(0,0,0,.95) 0%,rgba(0,0,0,.6) 50%,rgba(0,0,0,.28)),
 url("../images/hero-user.jpg") center 40%/cover no-repeat;border-bottom:1px solid #222}
.page-hero h1{font-size:clamp(3.5rem,7vw,6.8rem)}.page-hero p{max-width:700px;color:#c1c1c1}
.info-list{border-top:1px solid #292929}.info-row{display:grid;grid-template-columns:220px 1fr auto;gap:20px;padding:19px 0;border-bottom:1px solid #292929;align-items:center}.info-row span{color:#aaa}.tag{border:1px solid #444;padding:5px 9px;font-size:.69rem;text-transform:uppercase;letter-spacing:.07em}
.price{font-size:2.25rem;font-weight:900}.route{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:18px 0;border-bottom:1px solid #222}.route strong{font-size:1.15rem}.route span{color:#8d8d8d}
.feature-banner{padding:42px;border:1px solid #282828;background:#0b0b0b;display:flex;justify-content:space-between;align-items:center;gap:30px}.feature-banner h2{font-size:clamp(2rem,4vw,3.7rem)}
.site-footer{padding:52px 0 24px;background:#020202;border-top:1px solid #1a1a1a}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:28px}.footer-grid a,.footer-grid p{color:#777;font-size:.86rem}.footer-bottom{display:flex;justify-content:space-between;gap:20px;margin-top:34px;padding-top:20px;border-top:1px solid #191919;color:#626262;font-size:.75rem}
@media(max-width:1050px){.flight-console{grid-template-columns:1fr}.grid-4{grid-template-columns:repeat(2,1fr)}.gallery-grid{grid-template-columns:repeat(2,1fr)}.quick-links{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){.menu-btn{display:block}.nav-links{display:none;position:absolute;top:88px;left:0;right:0;background:#080808;padding:18px;flex-direction:column;align-items:flex-start}.nav-links.open{display:flex}.hero{min-height:900px}.hero-inner{padding-top:140px}.flight-search,.grid-4,.grid-3,.grid-2,.gallery-grid,.footer-grid{grid-template-columns:1fr}.quick-links{grid-template-columns:repeat(2,1fr)}.info-row{grid-template-columns:1fr}.section-head,.feature-banner,.footer-bottom{flex-direction:column;align-items:flex-start}}

.hero{min-height:820px;background-position:center 43%}
.hero-copy{max-width:650px}
.gallery-card img{background:#111}

/* User supplied photography */
.hero{
  background-image:
    linear-gradient(to bottom,rgba(0,0,0,.18),rgba(0,0,0,.28) 55%,rgba(0,0,0,.90) 94%,#050505),
    url("../images/hero-user.jpg");
  background-position:center 53%;
  background-size:cover;
}
.page-hero{
  background-image:
    linear-gradient(90deg,rgba(0,0,0,.94) 0%,rgba(0,0,0,.58) 52%,rgba(0,0,0,.30)),
    url("../images/hero-user.jpg");
  background-position:center 52%;
  background-size:cover;
}
.gallery-card img{
  width:100%;
  height:260px;
  object-fit:cover;
  filter:grayscale(100%);
}
@media(max-width:820px){
  .hero{background-position:center center}
  .gallery-card img{height:230px}
}

.contact-form{display:grid;gap:16px}
.contact-form label>span{display:block;margin-bottom:7px;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:#b5b5b5}
.contact-form textarea{resize:vertical;min-height:170px}
.privacy-check{display:flex!important;align-items:flex-start;gap:10px;color:#aaa;font-size:.82rem}
.privacy-check span{display:inline!important;margin:0!important;text-transform:none!important;letter-spacing:0!important;font-weight:400!important}
.hp-field{position:absolute!important;left:-99999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.flight-count{display:flex;align-items:center;justify-content:center;border:1px solid #333;background:#0a0a0a;padding:0 18px;white-space:nowrap}
.flight-row:hover{background:#101010}
.form-result{min-height:100vh;display:flex;align-items:center;padding:60px 0}
.form-result .card{max-width:760px;margin:auto}
.form-result h1{font-size:clamp(2.5rem,6vw,5rem);margin-bottom:20px}

/* v3 content layouts */
.contact-layout{display:grid;grid-template-columns:1.5fr .7fr;gap:22px}.contact-aside{display:grid;gap:18px;align-content:start}
.gallery-story-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.gallery-story-card{background:#090909;border:1px solid #252525;overflow:hidden}.gallery-story-card img{height:330px;object-fit:cover;filter:grayscale(100%)}.gallery-story-copy{padding:24px}.gallery-story-copy h3{font-size:1.5rem;margin-bottom:12px}.gallery-story-copy p{color:#aaa}
.service-list{border-top:1px solid #292929}.service-detail{display:grid;grid-template-columns:1fr auto;gap:30px;padding:28px 0;border-bottom:1px solid #292929;align-items:center}.service-detail h3{font-size:1.55rem;margin:5px 0 9px}.service-detail p{max-width:820px;color:#999;margin:0}.service-number{color:#666;font-size:.74rem;font-weight:800}.service-price{font-size:2rem;font-weight:900;white-space:nowrap}.service-price small{font-size:.75rem;color:#888}
.terminal-story{max-width:1100px}.terminal-intro{max-width:860px;margin-bottom:50px}.terminal-intro h2{font-size:clamp(2.4rem,5vw,4.8rem);margin-bottom:20px}.terminal-intro p{color:#aaa;font-size:1.05rem}.terminal-section{display:grid;grid-template-columns:1fr 180px;gap:50px;padding:34px 0;border-top:1px solid #2a2a2a}.terminal-section h3{font-size:1.6rem;margin-bottom:10px}.terminal-section p{color:#999}.terminal-highlight{display:flex;flex-direction:column;justify-content:center;border-left:1px solid #333;padding-left:25px}.terminal-highlight strong{font-size:2rem}.terminal-highlight span{color:#888}
.parking-layout{display:grid;grid-template-columns:1.25fr .75fr;gap:22px}.parking-map-card{border:1px solid #252525;background:#090909;padding:25px}.parking-map{height:470px;position:relative;background:linear-gradient(#0b0b0b,#101010);overflow:hidden;border:1px solid #262626}.terminal-block{position:absolute;left:38%;top:34%;width:28%;height:24%;border:2px solid #777;display:flex;align-items:center;justify-content:center;font-weight:900;letter-spacing:.1em;background:#161616}.parking-zone{position:absolute;background:#111;color:#fff;border:1px solid #444;cursor:pointer;padding:18px;text-align:left;transition:.2s}.parking-zone strong{display:block;font-size:1.7rem}.parking-zone small{color:#999}.parking-zone.selected{outline:2px solid #fff}.p1{left:10%;top:15%;width:22%;height:24%}.p2{left:7%;bottom:8%;width:38%;height:28%}.p3{right:7%;top:16%;width:23%;height:31%}.road{position:absolute;background:#242424}.road-a{height:12px;left:0;right:0;top:64%}.road-b{width:12px;top:0;bottom:0;left:67%}.parking-legend{display:flex;flex-wrap:wrap;gap:16px;margin-top:15px;color:#888;font-size:.78rem}.parking-book-form{display:grid;gap:16px}.parking-book-form label>span{display:block;margin-bottom:7px;font-size:.78rem;font-weight:800;text-transform:uppercase;color:#aaa}.parking-availability{display:flex;align-items:baseline;gap:10px;padding:18px;border:1px solid #333;background:#080808}.parking-availability strong{font-size:2.3rem}.parking-availability span{color:#aaa}.small-note{font-size:.77rem!important;color:#777!important}
.passenger-guide{max-width:1100px}.passenger-step{display:grid;grid-template-columns:110px 1fr;gap:35px;padding:38px 0;border-top:1px solid #292929}.step-no{font-size:3rem;font-weight:900;color:#555}.passenger-step h2{font-size:clamp(1.9rem,3.3vw,3.1rem);margin-bottom:14px}.passenger-step p{color:#aaa;font-size:1rem;max-width:850px}.tip-box{margin-top:18px;padding:18px;border-left:3px solid #fff;background:#0d0d0d;color:#bbb}.security-checklist{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.security-checklist span{border:1px solid #333;padding:10px 13px;font-size:.78rem}
.destination-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.destination-card{border:1px solid #262626;background:#0a0a0a;padding:22px;min-height:210px;display:flex;flex-direction:column}.destination-code{font-size:.72rem;letter-spacing:.18em;color:#777;margin-bottom:35px}.destination-card h3{font-size:1.35rem}.destination-card p{color:#888;margin:8px 0}.destination-card span{margin-top:auto;font-size:.76rem;border-top:1px solid #2b2b2b;padding-top:14px}.destination-note{margin-top:36px}
.cargo-process{display:grid;grid-template-columns:.8fr 1.2fr;gap:50px;align-items:start}.cargo-process h2{font-size:clamp(2.3rem,4vw,4rem)}.cargo-steps{display:grid;gap:0}.cargo-steps div{display:grid;grid-template-columns:70px 1fr;gap:20px;padding:18px 0;border-bottom:1px solid #292929}.cargo-steps b{font-size:1.5rem;color:#666}.cargo-steps span{font-weight:800}
@media(max-width:1050px){.destination-grid{grid-template-columns:repeat(3,1fr)}.parking-layout,.cargo-process{grid-template-columns:1fr}}
@media(max-width:820px){.contact-layout,.gallery-story-grid,.terminal-section,.passenger-step,.destination-grid{grid-template-columns:1fr}.terminal-highlight{border-left:0;border-top:1px solid #333;padding:18px 0 0}.parking-map{height:380px}.service-detail{grid-template-columns:1fr}.destination-grid{grid-template-columns:1fr 1fr}.passenger-step{gap:10px}.step-no{font-size:2rem}}
@media(max-width:520px){.destination-grid{grid-template-columns:1fr}}


/* =========================================================
   NCA v5 — RESPONSIVE SYSTEM
   Desktop / Laptop / Tablet / Mobile
   ========================================================= */

html{box-sizing:border-box;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
*,*:before,*:after{box-sizing:inherit}
body{width:100%;max-width:100%;overflow-x:hidden}
img,svg,video{display:block;max-width:100%;height:auto}
button,input,select,textarea{font:inherit;max-width:100%}
table{width:100%}
.container{width:min(100% - 48px,1280px);margin-inline:auto}

/* Long text/links must never force horizontal scrolling */
p,h1,h2,h3,h4,a,span,strong{overflow-wrap:break-word}
.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}

/* Touch targets */
.nav-links a,.lang-switch button,.menu-btn,.btn,.tabs button,.parking-zone{
  min-height:44px;
}

/* Large tablets / small laptops */
@media (max-width:1100px){
  .container{width:min(100% - 40px,1100px)}
  .hero{min-height:720px}
  .hero h1{font-size:clamp(4rem,9vw,7.5rem)}
  .grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .parking-layout,.cargo-process{grid-template-columns:1fr}
  .parking-book-card{max-width:none}
  .destination-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .gallery-story-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .service-detail{grid-template-columns:minmax(0,1fr) auto}
}

/* Tablet */
@media (max-width:900px){
  .container{width:min(100% - 32px,900px)}

  header .container, .header-inner{
    min-height:72px;
  }

  .menu-btn{display:flex;align-items:center;justify-content:center;z-index:1002}
  .nav-links{
    position:fixed;
    z-index:1000;
    top:0;
    right:-100%;
    width:min(86vw,390px);
    height:100dvh;
    padding:96px 24px 30px;
    background:rgba(5,5,5,.98);
    border-left:1px solid #262626;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:4px;
    overflow-y:auto;
    transition:right .25s ease;
  }
  .nav-links.open{right:0}
  .nav-links a{
    display:flex;
    align-items:center;
    width:100%;
    padding:13px 10px;
    border-bottom:1px solid #1d1d1d;
  }
  .lang-switch{margin-top:12px}

  .hero{
    min-height:680px;
    background-position:center center;
  }
  .hero-copy{max-width:100%}
  .hero h1{font-size:clamp(3.5rem,12vw,6.5rem);line-height:.92}
  .page-hero{min-height:auto;padding:130px 0 70px}
  .page-hero h1{font-size:clamp(3rem,10vw,5.5rem)}

  .grid-2,.contact-layout,.terminal-section,.cargo-process{
    grid-template-columns:1fr;
  }
  .terminal-highlight{
    border-left:0;
    border-top:1px solid #333;
    padding:20px 0 0;
  }

  .parking-map{height:430px}
  .flight-search{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
  }
  .flight-count{min-height:48px;grid-column:1/-1}

  .passenger-step{grid-template-columns:75px minmax(0,1fr);gap:20px}
  .gallery-card img,.gallery-story-card img{height:280px}
}

/* Phones */
@media (max-width:640px){
  .container{width:calc(100% - 28px)}
  .section{padding:62px 0}

  .brand-text{font-size:.72rem}
  .brand-mark{width:44px;height:44px}
  .header-inner{gap:10px}

  .hero{
    min-height:620px;
    padding-top:90px;
    background-position:center center;
  }
  .hero h1{font-size:clamp(3rem,16vw,5.3rem)}
  .hero p{font-size:.95rem}
  .hero-actions{display:flex;flex-direction:column;align-items:stretch;gap:10px}
  .hero-actions .btn{width:100%;justify-content:center}

  .page-hero{padding:115px 0 55px}
  .page-hero h1{font-size:clamp(2.8rem,14vw,4.6rem)}
  .section-head{display:block}
  .section-head>p{margin-top:15px}

  .grid-2,.grid-3,.destination-grid,.gallery-story-grid{
    grid-template-columns:1fr;
  }

  .card{padding:22px}
  .tabs{display:grid;grid-template-columns:1fr 1fr}
  .tabs button{width:100%;padding-inline:10px}

  .flight-search{grid-template-columns:1fr}
  .flight-count{grid-column:auto}

  /* Flight table becomes a horizontally scrollable compact board */
  .table-wrap table{min-width:720px}
  .table-wrap{margin-inline:0}
  th,td{padding:13px 11px;white-space:nowrap}

  .gallery-story-card img,.gallery-card img{height:auto;aspect-ratio:4/3;object-fit:cover}

  .service-detail{
    grid-template-columns:1fr;
    gap:14px;
    padding:24px 0;
  }
  .service-price{font-size:1.65rem}

  .terminal-intro h2{font-size:clamp(2.2rem,11vw,3.6rem)}
  .terminal-section{gap:18px}

  .passenger-step{
    grid-template-columns:1fr;
    gap:8px;
    padding:30px 0;
  }
  .step-no{font-size:1.5rem}
  .passenger-step h2{font-size:clamp(1.75rem,8vw,2.6rem)}
  .security-checklist{display:grid;grid-template-columns:1fr}

  /* Parking map stays usable on a narrow phone */
  .parking-map-card{padding:14px}
  .parking-map{height:390px}
  .terminal-block{
    left:31%;top:37%;width:38%;height:18%;
    font-size:.72rem;
  }
  .p1{left:4%;top:10%;width:27%;height:23%;padding:10px}
  .p2{left:4%;bottom:8%;width:43%;height:25%;padding:10px}
  .p3{right:4%;top:12%;width:27%;height:27%;padding:10px}
  .parking-zone strong{font-size:1.3rem}
  .parking-zone small{font-size:.67rem}
  .parking-legend{display:grid;grid-template-columns:1fr;gap:6px}

  .cargo-steps div{grid-template-columns:52px minmax(0,1fr)}
  .feature-banner{padding:28px 22px}

  .contact-form .input,.parking-book-form .input{
    width:100%;
    min-height:48px;
  }
  textarea.input{min-height:150px}

  footer .container{display:block}
}

/* Very small phones */
@media (max-width:380px){
  .container{width:calc(100% - 20px)}
  .brand-text{display:none}
  .hero h1{font-size:2.9rem}
  .page-hero h1{font-size:2.65rem}
  .parking-map{height:350px}
  .card{padding:18px}
}

/* Landscape phones */
@media (max-height:520px) and (orientation:landscape){
  .hero{min-height:520px}
  .nav-links{padding-top:75px}
}

/* Better safe-area support on modern phones */
@supports(padding:max(0px)){
  .nav-links{padding-right:max(24px,env(safe-area-inset-right));padding-bottom:max(30px,env(safe-area-inset-bottom))}
  body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
}


/* v5.1 kleine UI-Korrekturen */

/* Kalender-Symbol im Datumsfeld auf dunklem Hintergrund sichtbar machen */
input[type="date"]::-webkit-calendar-picker-indicator{
  filter: invert(1);
  opacity: 1;
  cursor: pointer;
}

/* Textfelder dürfen vom Besucher nicht manuell vergrößert/verkleinert werden */
.contact-form textarea{
  resize: none !important;
}

/* NCA v6 – Parking booking flow */
body.modal-open{overflow:hidden}
.booking-modal{position:fixed;inset:0;z-index:5000;display:none;align-items:center;justify-content:center;padding:24px}
.booking-modal.open{display:flex}
.booking-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.82);backdrop-filter:blur(8px)}
.booking-dialog{position:relative;z-index:1;width:min(920px,100%);max-height:92dvh;overflow-y:auto;background:#080808;border:1px solid #383838;padding:38px;box-shadow:0 30px 90px rgba(0,0,0,.6)}
.booking-close{position:absolute;right:18px;top:14px;width:44px;height:44px;border:0;background:transparent;color:#fff;font-size:2rem;cursor:pointer}
.booking-progress{display:flex;align-items:center;margin:0 50px 40px 0}.booking-progress span{display:flex;align-items:center;gap:7px;color:#555;font-size:.75rem;font-weight:900}.booking-progress span.active{color:#fff}.booking-progress i{height:1px;background:#333;flex:1;margin:0 14px}.booking-step{display:none}.booking-step.active{display:block}.booking-step h2{font-size:clamp(2rem,5vw,4rem);margin:7px 0 12px}.booking-step>p{color:#999}
.booking-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:28px}.booking-form-grid label>span{display:block;margin-bottom:7px;font-size:.74rem;font-weight:900;text-transform:uppercase;color:#aaa}
.booking-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:28px}.btn-secondary{background:transparent!important;color:#fff!important;border:1px solid #444!important}
.booking-summary{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #333;margin-top:28px}.booking-summary div{padding:20px;border-bottom:1px solid #333}.booking-summary div:nth-child(odd){border-right:1px solid #333}.booking-summary span{display:block;color:#777;font-size:.72rem;text-transform:uppercase;margin-bottom:6px}.booking-summary strong{font-size:1.2rem}
.demo-payment-warning{border-left:3px solid #fff;background:#111;padding:15px 18px;margin:24px 0;color:#bbb;font-size:.84rem}.payment-methods{display:grid;gap:10px}.payment-option{display:flex;gap:14px;align-items:center;border:1px solid #333;padding:18px;cursor:pointer}.payment-option span{display:flex;flex-direction:column}.payment-option small{color:#777;margin-top:3px}
.booking-success{text-align:center;padding:30px 0}.booking-check{width:72px;height:72px;border:2px solid #fff;border-radius:50%;display:grid;place-items:center;font-size:2rem;margin:0 auto 25px}.booking-reference{border:1px solid #333;padding:18px;margin:25px auto;max-width:390px}.booking-reference span{display:block;color:#777;font-size:.72rem;text-transform:uppercase}.booking-reference strong{font-size:1.4rem}

/* Cargo v6 */
.cargo-intro{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;align-items:start}.cargo-intro h2,.cargo-process-header h2{font-size:clamp(2.6rem,5vw,5rem);line-height:.96}.cargo-intro p{color:#aaa;font-size:1.02rem}.cargo-dark{background:#050505;border-top:1px solid #202020;border-bottom:1px solid #202020}
.cargo-flight-board{border-top:1px solid #333}.cargo-flight{display:grid;grid-template-columns:120px 1fr 220px;gap:20px;align-items:center;padding:22px 0;border-bottom:1px solid #292929}.cargo-flight>span{color:#777;font-weight:900}.cargo-flight strong{font-size:1.25rem}.cargo-flight small{color:#888;text-align:right}
.cargo-process-header{max-width:800px;margin-bottom:45px}.cargo-process-header p{color:#999}.cargo-timeline{max-width:1000px;margin-left:auto}.cargo-timeline-item{display:grid;grid-template-columns:100px 1fr;gap:30px;padding:30px 0;border-top:1px solid #303030}.cargo-timeline-item>b{font-size:2rem;color:#555}.cargo-timeline-item h3{font-size:1.5rem;margin-bottom:7px}.cargo-timeline-item p{color:#999;margin:0}.cargo-enquiry-section{background:#090909;border-top:1px solid #222}

@media(max-width:820px){
 .booking-dialog{padding:28px 20px}.booking-progress b{display:none}.booking-form-grid,.booking-summary,.cargo-intro{grid-template-columns:1fr}.booking-summary div:nth-child(odd){border-right:0}.cargo-flight{grid-template-columns:80px 1fr}.cargo-flight small{grid-column:2;text-align:left}.cargo-timeline-item{grid-template-columns:60px 1fr;gap:15px}
}
@media(max-width:520px){
 .booking-modal{padding:0}.booking-dialog{width:100%;height:100dvh;max-height:none;border:0;padding:70px 16px 25px}.booking-progress{margin-right:30px}.booking-actions{flex-direction:column-reverse}.booking-actions .btn{width:100%}.cargo-flight{grid-template-columns:1fr}.cargo-flight small{grid-column:auto}.cargo-timeline-item{grid-template-columns:1fr;gap:5px}
}

/* v6.3 – Kalender-Icons im gesamten Park-Buchungsprozess weiß */
#parkingBookingModal input[type="date"],
#parkingBookingModal input[type="datetime-local"],
#parkingBookingModal input[type="time"],
#parkingDate {
  color-scheme: dark;
}

#parkingBookingModal input[type="date"]::-webkit-calendar-picker-indicator,
#parkingBookingModal input[type="datetime-local"]::-webkit-calendar-picker-indicator,
#parkingBookingModal input[type="time"]::-webkit-calendar-picker-indicator,
#parkingDate::-webkit-calendar-picker-indicator {
  filter: invert(1) brightness(2) !important;
  opacity: 1 !important;
  cursor: pointer;
}


/* =========================================================
   v6.4 – Kalender-Icons auf dunklem Hintergrund WEISS
   Muss am Ende der CSS-Datei stehen, damit ältere Regeln
   sicher überschrieben werden.
   ========================================================= */
input[type="date"],
input[type="datetime-local"],
input[type="time"]{
  color-scheme: dark !important;
}

input[type="date"]::-webkit-calendar-picker-indicator,
input[type="datetime-local"]::-webkit-calendar-picker-indicator,
input[type="time"]::-webkit-calendar-picker-indicator{
  filter: invert(1) brightness(2) !important;
  -webkit-filter: invert(1) brightness(2) !important;
  opacity: 1 !important;
  cursor: pointer !important;
}

/* Buchungsfenster zusätzlich explizit überschreiben */
#parkingBookingModal input[type="date"]::-webkit-calendar-picker-indicator,
#parkingBookingModal input[type="datetime-local"]::-webkit-calendar-picker-indicator,
#parkingBookingModal input[type="time"]::-webkit-calendar-picker-indicator,
#parkingDate::-webkit-calendar-picker-indicator{
  filter: invert(1) brightness(2) !important;
  -webkit-filter: invert(1) brightness(2) !important;
  opacity: 1 !important;
}


/* =========================================================
   v6.5 – Eigenes WEISSES Kalender-Symbol
   Das Browser-Symbol wird unsichtbar gemacht und durch
   ein eigenes weißes SVG-Symbol ersetzt.
   ========================================================= */

input[type="date"],
input[type="datetime-local"]{
  padding-right: 48px !important;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 10h18'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 15px center !important;
  background-size: 20px 20px !important;
}

/* Native Chromium-Icon bleibt als Klickfläche erhalten,
   ist aber vollständig transparent. */
input[type="date"]::-webkit-calendar-picker-indicator,
input[type="datetime-local"]::-webkit-calendar-picker-indicator{
  position: absolute;
  right: 0;
  width: 46px;
  height: 100%;
  opacity: 0 !important;
  cursor: pointer !important;
}

/* Inputs brauchen für die positionierte Klickfläche einen Kontext */
input[type="date"],
input[type="datetime-local"]{
  position: relative;
}

/* Speziell für NCA Parking */
#parkingDate,
#bookEntry,
#bookExit{
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 10h18'/%3E%3C/svg%3E") !important;
}


/* =========================================================
   v6.6 FINALER KALENDER-FIX
   Nur EIN Symbol: das native Browser-Kalendersymbol.
   Eigene SVG-Hintergrundsymbole werden vollständig entfernt.
   ========================================================= */

#parkingDate,
#bookEntry,
#bookExit{
  background-image: none !important;
  padding-right: 16px !important;
  color-scheme: light !important;
}

/* Chromium / Edge / Chrome:
   schwarzes natives Symbol -> weiß */
#parkingDate::-webkit-calendar-picker-indicator,
#bookEntry::-webkit-calendar-picker-indicator,
#bookExit::-webkit-calendar-picker-indicator{
  position: static !important;
  width: 20px !important;
  height: 20px !important;
  margin-left: 8px !important;
  padding: 0 !important;
  opacity: 1 !important;
  filter: invert(1) brightness(3) contrast(3) !important;
  -webkit-filter: invert(1) brightness(3) contrast(3) !important;
  cursor: pointer !important;
  background: transparent !important;
}

/* Keine zusätzliche Symbol-Ebene */
#parkingDate::before,
#parkingDate::after,
#bookEntry::before,
#bookEntry::after,
#bookExit::before,
#bookExit::after{
  content: none !important;
  display: none !important;
}


/* =========================================================
   v6.7 – Stabiler weißer Kalender-Button
   Native Browser-Icons werden ausgeblendet. Ein eigener,
   echter Button öffnet den jeweiligen Date/Datetime-Picker.
   ========================================================= */
.date-field-wrap{
  position:relative;
  display:block;
  width:100%;
}
.date-field-wrap > input{
  width:100% !important;
  padding-right:52px !important;
  background-image:none !important;
}
.date-field-wrap > input::-webkit-calendar-picker-indicator{
  opacity:0 !important;
  width:0 !important;
  height:0 !important;
  padding:0 !important;
  margin:0 !important;
  pointer-events:none !important;
}
.date-picker-btn{
  position:absolute;
  z-index:5;
  right:10px;
  top:50%;
  transform:translateY(-50%);
  width:38px;
  height:38px;
  padding:8px;
  display:grid;
  place-items:center;
  border:0;
  background:transparent;
  color:#fff;
  cursor:pointer;
}
.date-picker-btn svg{
  width:21px;
  height:21px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
  pointer-events:none;
}
.date-picker-btn:hover{background:rgba(255,255,255,.08)}
.date-picker-btn:focus-visible{outline:1px solid #fff;outline-offset:1px}


/* =========================================================
   v6.8 – Logo weiter nach links
   Navigation bleibt an ihrer bisherigen Position.
   ========================================================= */
@media (min-width: 901px){
  header .brand,
  .header-inner .brand{
    margin-left: -20px !important;
  }
}

/* Auf Tablet/Handy bleibt ein sauberer Sicherheitsabstand. */
@media (max-width: 900px){
  header .brand,
  .header-inner .brand{
    margin-left: 0 !important;
  }
}




/* =========================================================
   v7.0 – Responsive Navigation + Mobile Overflow Fix
   ========================================================= */

/* Nur die Seite selbst darf nicht horizontal wegrutschen. */
html,
body{
  max-width:100%;
  overflow-x:hidden;
}

/* Medien dürfen den Viewport nicht verbreitern. */
img,
video,
iframe{
  max-width:100%;
  height:auto;
}

/* DESKTOP: Navigation immer normal in einer Zeile anzeigen. */
@media (min-width:901px){
  .menu-btn{
    display:none !important;
  }

  .nav-links{
    position:static !important;
    inset:auto !important;
    width:auto !important;
    max-width:none !important;
    height:auto !important;
    min-height:0 !important;
    transform:none !important;
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    overflow:visible !important;
  }

  .nav-links a,
  .nav-links button{
    white-space:nowrap !important;
    word-break:normal !important;
    overflow-wrap:normal !important;
    flex:0 0 auto !important;
  }
}

/* HANDY/TABLET: Menü standardmäßig vollständig außerhalb des Bildschirms. */
@media (max-width:900px){
  .menu-btn{
    display:flex !important;
    position:relative;
    z-index:10002;
  }

  .nav-links{
    position:fixed !important;
    top:0 !important;
    right:0 !important;
    left:auto !important;
    width:min(86vw,390px) !important;
    max-width:min(86vw,390px) !important;
    height:100vh !important;
    height:100dvh !important;
    transform:translateX(105%) !important;
    transition:transform .28s ease !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    z-index:10001 !important;
  }

  .nav-links.open{
    transform:translateX(0) !important;
  }

  .nav-links a,
  .nav-links button{
    white-space:normal !important;
    word-break:normal !important;
    overflow-wrap:break-word !important;
  }

  /* Breite Seitenelemente begrenzen, ohne die Navigation zu zerstören. */
  main,
  section,
  .container,
  .hero,
  .page-hero,
  .parking-layout,
  .parking-map-card,
  .contact-layout,
  .gallery-story-grid{
    max-width:100% !important;
  }

  .table-wrap{
    max-width:100% !important;
    overflow-x:auto !important;
    -webkit-overflow-scrolling:touch;
  }
}


/* =========================================================
   v7.1 – MOBILE POLISH
   Echte Handy-Ansicht statt Desktop-Elemente nur zu verkleinern
   ========================================================= */

@media (max-width:640px){

  html,body{width:100%;max-width:100%;overflow-x:hidden}
  body{font-size:15px}
  .container{width:calc(100% - 24px);max-width:100%}
  .section{padding:48px 0}
  .section-head{margin-bottom:26px}
  .section-head h2{font-size:clamp(1.8rem,9vw,2.7rem);line-height:1}
  .section-head p{font-size:.92rem;line-height:1.55}

  /* Header */
  header .container,.header-inner{min-height:66px}
  .brand{max-width:calc(100% - 64px)}
  .brand-mark{width:40px;height:40px;flex:0 0 40px}
  .brand-text{font-size:.67rem;line-height:1.25}
  .menu-btn{width:44px;height:44px;flex:0 0 44px}

  /* Hero */
  .hero{min-height:560px;padding-top:78px}
  .hero-inner{padding-top:70px;padding-bottom:50px}
  .hero h1{font-size:clamp(2.8rem,15vw,4.6rem);line-height:.9}
  .hero p{font-size:.9rem;line-height:1.55}
  .page-hero{padding:100px 0 44px}
  .page-hero h1{font-size:clamp(2.5rem,13vw,4rem);line-height:.94}

  /* Cards / grids */
  .grid-2,.grid-3,.grid-4,.destination-grid,.gallery-grid,
  .gallery-story-grid,.contact-layout,.terminal-section,
  .parking-layout,.cargo-process,.booking-form-grid,.booking-summary{
    grid-template-columns:1fr !important;
  }
  .card{padding:18px}
  .quick-links{grid-template-columns:1fr 1fr !important}
  .feature-banner{padding:22px 18px}

  /* FLÜGE: auf dem Handy als Karten statt breite Tabelle */
  .flight-console{display:block}
  .flight-search{grid-template-columns:1fr !important;padding:12px;gap:8px}
  .flight-count{grid-column:auto !important;min-height:44px}
  .tabs button{font-size:.82rem;padding:11px 7px}

  .table-wrap{
    overflow:visible !important;
    width:100%;
  }
  .table-wrap table{
    min-width:0 !important;
    width:100% !important;
    display:block;
  }
  .table-wrap thead{display:none}
  .table-wrap tbody{display:grid;gap:10px;width:100%}
  .table-wrap tr.flight-row{
    display:grid;
    grid-template-columns:62px minmax(0,1fr) auto;
    gap:5px 10px;
    width:100%;
    padding:14px;
    border:1px solid #242424;
    background:#090909;
  }
  .table-wrap tr.flight-row td{
    display:block;
    width:auto;
    min-width:0;
    padding:0 !important;
    border:0 !important;
    white-space:normal !important;
    font-size:.78rem;
    overflow-wrap:anywhere;
  }
  .table-wrap tr.flight-row td:nth-child(1){
    grid-row:1/3;
    align-self:center;
    font-size:1rem;
    font-weight:900;
  }
  .table-wrap tr.flight-row td:nth-child(2){
    grid-column:2;
    grid-row:1;
  }
  .table-wrap tr.flight-row td:nth-child(2) strong{font-size:.92rem}
  .table-wrap tr.flight-row td:nth-child(2) small{font-size:.68rem;color:#888}
  .table-wrap tr.flight-row td:nth-child(3){
    grid-column:2;
    grid-row:2;
    font-size:.9rem;
    font-weight:700;
  }
  .table-wrap tr.flight-row td:nth-child(4){
    grid-column:3;
    grid-row:1;
    text-align:right;
    font-weight:800;
  }
  .table-wrap tr.flight-row td:nth-child(4)::before{
    content:"Gate ";
    color:#777;
    font-weight:500;
  }
  .table-wrap tr.flight-row td:nth-child(5){
    grid-column:3;
    grid-row:2;
    text-align:right;
    font-size:.72rem;
    white-space:nowrap !important;
  }

  /* Reiseziele */
  .destination-grid{gap:12px}
  .destination-card{min-height:0}
  .destination-card h3{font-size:1.35rem}

  /* Passagiere */
  .passenger-step{padding:24px 0}
  .passenger-step h2{font-size:1.75rem}
  .passenger-step p,.passenger-step li{font-size:.92rem;line-height:1.55}

  /* Parken */
  .parking-map-card{padding:10px}
  .parking-map{height:330px}
  .parking-book-card{padding:18px}
  .parking-zone{min-height:0}
  .parking-zone strong{font-size:1.05rem}
  .parking-zone small{font-size:.6rem;line-height:1.2}
  .parking-legend{font-size:.75rem}

  /* Terminal / Service */
  .terminal-intro h2{font-size:2rem}
  .terminal-section h3,.service-detail h3{font-size:1.35rem}
  .terminal-section p,.service-detail p{font-size:.92rem;line-height:1.55}
  .service-price{font-size:1.4rem}

  /* Galerie */
  .gallery-story-card img,.gallery-card img{
    width:100%;height:auto;aspect-ratio:4/3;object-fit:cover
  }
  .gallery-story-copy{padding:18px}
  .gallery-story-copy h3{font-size:1.4rem}

  /* Cargo */
  .cargo-flight{
    grid-template-columns:1fr !important;
    gap:5px !important;
    padding:16px 0 !important;
  }
  .cargo-flight small{
    grid-column:auto !important;
    text-align:left !important;
  }
  .cargo-timeline-item{grid-template-columns:42px minmax(0,1fr) !important;gap:10px !important}

  /* Formulare */
  .input,input,select,textarea{width:100%;font-size:16px}
  .contact-form,.parking-book-form{max-width:100%}
  .btn{max-width:100%}
  .booking-dialog{width:100%;max-width:100%}

  /* Footer */
  .footer-grid{grid-template-columns:1fr !important;gap:24px}
  .footer-bottom{gap:10px;font-size:.76rem}
}

@media (max-width:380px){
  .container{width:calc(100% - 18px)}
  .quick-links{grid-template-columns:1fr !important}
  .table-wrap tr.flight-row{
    grid-template-columns:54px minmax(0,1fr);
  }
  .table-wrap tr.flight-row td:nth-child(4),
  .table-wrap tr.flight-row td:nth-child(5){
    grid-column:2;
    text-align:left;
  }
  .table-wrap tr.flight-row td:nth-child(4){grid-row:3}
  .table-wrap tr.flight-row td:nth-child(5){grid-row:4}
}


/* =========================================================
   v7.2 – Mobile Logo Fix
   Logo/Brand-Schrift bleibt sauber lesbar und bricht nicht
   Buchstabe für Buchstabe um.
   ========================================================= */
@media (max-width:640px){
  .brand{
    display:flex !important;
    align-items:center !important;
    flex:0 1 auto !important;
    min-width:0 !important;
    max-width:calc(100% - 58px) !important;
    gap:9px !important;
  }

  .brand-mark{
    width:38px !important;
    height:38px !important;
    min-width:38px !important;
    flex:0 0 38px !important;
  }

  .brand-text{
    display:block !important;
    width:auto !important;
    min-width:max-content !important;
    max-width:none !important;
    white-space:nowrap !important;
    word-break:keep-all !important;
    overflow-wrap:normal !important;
    font-size:.58rem !important;
    line-height:1.15 !important;
    letter-spacing:.08em !important;
  }

  .brand-text strong,
  .brand-text span,
  .brand-text small{
    white-space:nowrap !important;
    word-break:keep-all !important;
    overflow-wrap:normal !important;
  }
}

@media (max-width:380px){
  .brand{gap:7px !important}
  .brand-mark{
    width:34px !important;
    height:34px !important;
    min-width:34px !important;
    flex-basis:34px !important;
  }
  .brand-text{
    font-size:.52rem !important;
    letter-spacing:.045em !important;
  }
}


/* =========================================================
   v7.3 – FINALER HEADER-LOGO-FIX
   Nur das Logo im Header. Footer bleibt unverändert.
   ========================================================= */
@media (max-width:640px){
  .site-header .nav > .brand{
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    flex-wrap:nowrap !important;
    width:auto !important;
    min-width:0 !important;
    max-width:calc(100vw - 82px) !important;
    gap:8px !important;
    overflow:hidden !important;
  }

  .site-header .nav > .brand .brand-mark{
    display:block !important;
    width:auto !important;
    height:auto !important;
    min-width:0 !important;
    flex:0 0 auto !important;
    font-size:1.65rem !important;
    line-height:1 !important;
    white-space:nowrap !important;
  }

  .site-header .nav > .brand .brand-text{
    display:flex !important;
    flex-direction:column !important;
    flex:0 1 auto !important;
    width:auto !important;
    min-width:0 !important;
    max-width:100% !important;
    white-space:nowrap !important;
    word-break:normal !important;
    overflow-wrap:normal !important;
    overflow:hidden !important;
    font-size:.62rem !important;
    line-height:1.15 !important;
    letter-spacing:.055em !important;
  }

  .site-header .nav > .brand .brand-text small{
    display:block !important;
    width:auto !important;
    white-space:nowrap !important;
    word-break:normal !important;
    overflow-wrap:normal !important;
    overflow:hidden !important;
    text-overflow:clip !important;
    font-size:.42rem !important;
    letter-spacing:.075em !important;
    margin-top:3px !important;
  }

  .site-header .nav > .menu-btn{
    flex:0 0 44px !important;
    margin-left:auto !important;
  }
}

@media (max-width:390px){
  .site-header .nav > .brand{
    max-width:calc(100vw - 72px) !important;
    gap:6px !important;
  }
  .site-header .nav > .brand .brand-mark{
    font-size:1.45rem !important;
  }
  .site-header .nav > .brand .brand-text{
    font-size:.55rem !important;
    letter-spacing:.025em !important;
  }
  .site-header .nav > .brand .brand-text small{
    font-size:.36rem !important;
    letter-spacing:.035em !important;
  }
}


/* =========================================================
   v7.4 – 42 Direktziele + stabile Flug-Suchergebnisse
   ========================================================= */

/* Desktop/Tablet: Die Ergebnisfläche behält ihre Höhe, auch wenn
   ein Suchfilter nur wenige Flüge anzeigt. */
@media (min-width:641px){
  .flight-console .table-wrap{
    min-height:560px;
  }
}

/* Handy: ebenfalls ruhiger Seitenaufbau, aber deutlich kompakter. */
@media (max-width:640px){
  .flight-console .table-wrap{
    min-height:420px;
  }
}

/* Bei komplett leerer Suche bleibt genug Raum für den Leerzustand. */
.flight-console .empty-state{
  min-height:180px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}


/* =========================================================
   v7.5 – 42 Demo-Flüge + Statusfarben
   ========================================================= */
.status-dot.status-green{background:#35d06f !important;box-shadow:0 0 0 3px rgba(53,208,111,.10)}
.status-dot.status-yellow{background:#ffd43b !important;box-shadow:0 0 0 3px rgba(255,212,59,.10)}
.status-dot.status-red{background:#ff4d4f !important;box-shadow:0 0 0 3px rgba(255,77,79,.10)}
.status-dot.status-white{background:#fff !important;box-shadow:0 0 0 3px rgba(255,255,255,.08)}

@media (min-width:641px){
  .flight-console .table-wrap{
    height:620px !important;
    min-height:620px !important;
    overflow-y:auto !important;
    overflow-x:auto !important;
  }
  .flight-console table thead{
    position:sticky;
    top:0;
    z-index:2;
    background:#050505;
  }
}
@media (max-width:640px){
  .flight-console .table-wrap{
    height:620px !important;
    min-height:620px !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
  }
}

/* ========================= NCA v8.0 ========================= */
.v8-ops{display:flex;align-items:center;gap:10px;padding:10px max(16px,calc((100% - 1180px)/2));background:#101010;border-bottom:1px solid #242424;font-size:.78rem}.v8-ops span:last-of-type{color:#999}.v8-ops button{margin-left:auto;background:none;border:0;color:#fff;font-size:1.3rem}
.v8-flight-tools{display:grid;grid-template-columns:1fr 220px auto auto;gap:10px;align-items:stretch;margin:0 0 16px}.v8-clock{border:1px solid #292929;background:#090909;padding:10px 14px;display:flex;flex-direction:column}.v8-clock span{font-size:.62rem;letter-spacing:.15em;color:#888}.v8-clock strong{font-size:1.25rem}.v8-flight-tools select{background:#090909;color:#fff;border:1px solid #292929;padding:0 12px}
.v8-star{border:0;background:none;color:#fff;font-size:1.1rem;margin-right:7px;cursor:pointer}
.v8-modal{position:fixed;inset:0;background:#000c;z-index:20000;display:none;place-items:center;padding:18px}.v8-modal.open{display:grid}.v8-modal-card{width:min(700px,100%);max-height:90dvh;overflow:auto;background:#0a0a0a;border:1px solid #333;padding:28px;position:relative}.v8-close{position:absolute;right:14px;top:10px;background:none;border:0;color:#fff;font-size:2rem}.v8-detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:#292929;margin:24px 0}.v8-detail-grid>div{background:#0d0d0d;padding:16px;display:flex;flex-direction:column}.v8-detail-grid small{color:#777}.v8-detail-grid strong{font-size:1.05rem}
.v8-board-section{background:#030303;min-height:70vh}.v8-board-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.v8-board-top>div{display:flex;flex-direction:column}.v8-board-top span{font-family:monospace;color:#aaa}.v8-full-board{border-top:2px solid #fff}.v8-board-row{display:grid;grid-template-columns:80px 100px 1fr 70px 140px;gap:12px;padding:12px 8px;border-bottom:1px solid #222;font-family:monospace;text-transform:uppercase}.v8-board-row em{font-style:normal}
.v8-airline-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.v8-airline-card{border:1px solid #292929;padding:18px;display:flex;flex-direction:column;min-height:130px;text-decoration:none;color:#fff}.v8-airline-card strong{font-size:1.8rem}.v8-airline-card span{margin-top:auto}.v8-airline-card small{color:#777}
.v8-tool-shell{max-width:850px}.v8-inline-form{display:grid;grid-template-columns:1fr auto;gap:10px}.v8-inline-form input{background:#080808;border:1px solid #333;color:#fff;padding:14px}.v8-result{margin-top:24px}.v8-alert,.v8-track-head,.v8-trip-head{padding:18px;border:1px solid #333;background:#090909}.v8-trip-head,.v8-track-head{display:flex;justify-content:space-between}.v8-timeline{margin-top:10px;border-left:1px solid #444;padding-left:20px}.v8-timeline>div{display:grid;grid-template-columns:90px 1fr;gap:12px;padding:13px 0;position:relative}.v8-timeline>div:before{content:"";position:absolute;left:-25px;top:19px;width:9px;height:9px;border-radius:50%;background:#fff}.v8-timeline>div.done:before{background:#35d06f}.v8-saved-wrap{margin-top:40px}.v8-saved-wrap a{display:flex;justify-content:space-between;padding:12px;border-bottom:1px solid #222;color:#fff;text-decoration:none}
.v8-weather-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.v8-weather-grid>div{border:1px solid #292929;padding:14px;display:grid;grid-template-columns:35px 1fr auto;align-items:center}.v8-weather-grid>div>span{font-size:1.3rem}.v8-weather-grid small{grid-column:2/4;color:#777}.v8-weather-grid b{font-size:1.1rem}
.v8-terminal-map{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;background:#080808;border:1px solid #333;padding:18px}.v8-map-main{grid-column:1/6;text-align:center;border:1px solid #555;padding:22px}.v8-terminal-map button{background:#111;border:1px solid #333;color:#fff;padding:18px 8px;cursor:pointer}.v8-terminal-map button.active{background:#fff;color:#000}.v8-map-info{margin-top:10px;padding:16px;border:1px solid #333;display:flex;gap:15px}.v8-map-info span{color:#aaa}
.v8-qr-ticket{margin:18px 0 0;padding:16px;border:1px solid #333;display:flex;align-items:center;gap:16px}.v8-qr{width:90px;height:90px;display:grid;grid-template-columns:repeat(9,1fr);background:#fff;padding:5px;flex:0 0 90px}.v8-qr i{display:block}.v8-qr i.on{background:#000}.v8-qr-ticket>div:last-child{display:flex;flex-direction:column}.v8-qr-ticket small,.v8-qr-ticket span{color:#888}

@media(max-width:900px){.v8-flight-tools{grid-template-columns:1fr 1fr}.v8-airline-grid,.v8-weather-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){
 .v8-ops{padding:9px 12px;align-items:flex-start;flex-wrap:wrap}.v8-ops span:last-of-type{width:calc(100% - 25px)}.v8-ops button{position:absolute;right:8px}
 .v8-flight-tools{grid-template-columns:1fr;gap:8px}.v8-flight-tools select,.v8-flight-tools .btn{min-height:44px}
 .v8-detail-grid{grid-template-columns:1fr}.v8-modal-card{padding:22px 16px}
 .v8-board-top{align-items:flex-start;gap:12px}.v8-board-row{grid-template-columns:58px 75px minmax(90px,1fr) 42px;font-size:.68rem;gap:5px}.v8-board-row em{grid-column:2/5;color:#aaa}
 .v8-airline-grid,.v8-weather-grid{grid-template-columns:1fr 1fr}.v8-airline-card{min-height:105px;padding:13px}.v8-airline-card strong{font-size:1.35rem}
 .v8-inline-form{grid-template-columns:1fr}.v8-inline-form .btn{width:100%}.v8-trip-head,.v8-track-head{flex-direction:column;gap:4px}.v8-timeline>div{grid-template-columns:70px 1fr}
 .v8-terminal-map{grid-template-columns:repeat(2,1fr);padding:10px}.v8-map-main{grid-column:1/3}.v8-terminal-map button{padding:14px 5px}.v8-map-info{flex-direction:column;gap:4px}
 .v8-qr-ticket{align-items:flex-start}.v8-qr{width:72px;height:72px;flex-basis:72px}
}
@media(max-width:380px){.v8-airline-grid,.v8-weather-grid{grid-template-columns:1fr}.v8-board-row{grid-template-columns:52px 68px minmax(75px,1fr) 38px}}

/* ================= NCA v8.1: header, board, floor plan, footer ================= */

/* Keep all page heroes and the operations bar below the fixed/sticky main navigation. */
.site-header{z-index:12000 !important}
.page-hero{position:relative;z-index:1}
.v8-ops{position:relative;z-index:2}
body:has(.site-header){scroll-padding-top:110px}

/* Do not let the brand disappear into the upper viewport edge. */
.site-header .nav{padding-top:8px !important;padding-bottom:8px !important}
.site-header .brand{align-self:center !important;margin-top:0 !important;margin-bottom:0 !important}

/* Full flight board: add safe breathing room below navigation. */
.v8-board-section{position:relative;z-index:1;padding-top:36px !important}
body:has(.v8-board-section) .page-hero{padding-top:132px !important}

/* REALISTIC TERMINAL FLOOR PLAN */
.nca-floor-shell{border:1px solid #303030;background:#070707;padding:14px}
.nca-floor-topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:12px 4px 18px}
.nca-floor-topbar>div:first-child{display:flex;flex-direction:column}.nca-floor-topbar>div:first-child strong{font-size:1.25rem}.nca-floor-topbar>div:first-child span{font-size:.68rem;color:#888;letter-spacing:.15em}
.nca-floor-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.72rem;color:#aaa}.nca-floor-legend span{display:flex;align-items:center;gap:6px}.nca-floor-legend i{width:9px;height:9px;border:1px solid #777}.nca-floor-legend i.public{background:#181818}.nca-floor-legend i.secure{background:#303030}.nca-floor-legend i.service{background:#fff}
.nca-building-map{border:2px solid #555;background:#111;padding:10px;position:relative}
.nca-road,.nca-apron{text-align:center;padding:10px;border:1px dashed #444;color:#777;font-size:.68rem;letter-spacing:.12em;background:#050505}
.nca-entrances{display:grid;grid-template-columns:1fr 1fr 1fr;text-align:center;font-size:.62rem;color:#999;padding:7px 0}.nca-entrances span:before{content:"↓";display:block;color:#fff;font-size:1rem}
.nca-hall{display:grid;grid-template-columns:1.4fr 1.4fr .8fr 1fr 1.4fr .7fr .7fr;gap:6px;border:1px solid #555;padding:8px;background:#141414}
.nca-building-map button{font:inherit;color:#fff;cursor:pointer;transition:.18s ease}
.nca-hall .room{min-height:84px;background:#0b0b0b;border:1px solid #454545;padding:8px;font-size:.72rem}.nca-hall .room small{color:#777}.nca-hall .service-room{border-color:#ddd}.nca-hall .arrivals{background:#181818}
.nca-security-line{display:grid;grid-template-columns:1fr 150px;gap:6px;padding:10px 5%;background:#090909}.security-control,.fast-track{min-height:48px;border:1px solid #777;background:#161616;font-size:.7rem}.fast-track{background:#eee;color:#000 !important}
.nca-airside{display:grid;grid-template-columns:1fr 1.45fr 1fr;gap:8px;border:1px solid #666;padding:10px;background:#1a1a1a}
.nca-pier{display:grid;grid-template-columns:1fr;gap:5px;border:1px solid #555;padding:7px;background:#0d0d0d}.pier-label{text-align:center;color:#888;font-size:.65rem;letter-spacing:.14em;padding:4px}.nca-pier button{min-height:46px;border:1px solid #444;background:#161616;font-weight:800}
.nca-center-airside{display:grid;grid-template-columns:1fr 1fr;gap:6px;align-content:start}.airside-room{min-height:60px;border:1px solid #555;background:#111;font-size:.68rem}.airside-room.lounge{border-color:#fff}.nca-walkway{grid-column:1/3;text-align:center;padding:25px 8px;border:1px dashed #555;color:#999;font-size:.65rem;letter-spacing:.12em}
.nca-building-map button:hover,.nca-building-map button.active{background:#fff !important;color:#000 !important;border-color:#fff !important}
.nca-apron{margin-top:8px;padding:18px 10px}
.nca-floor-shell .v8-map-info{background:#0b0b0b}

/* GROUPED FOOTER */
.nca-footer{border-top:1px solid #242424;background:#050505;padding:54px 0 0;margin-top:0}
.nca-footer-grid{display:grid;grid-template-columns:1.5fr repeat(4,1fr);gap:36px}
.nca-footer-brand,.nca-footer-col{display:flex;flex-direction:column;align-items:flex-start}
.nca-footer-brand strong{font-size:1.05rem;letter-spacing:.08em}.nca-footer-brand>span{font-size:.58rem;letter-spacing:.15em;color:#777;margin-top:4px}.nca-footer-brand p{font-size:.72rem;color:#666;line-height:1.5;max-width:240px;margin-top:18px}
.nca-footer-col strong{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;margin-bottom:13px}
.nca-footer-col a{display:block;color:#888;text-decoration:none;font-size:.78rem;padding:4px 0}.nca-footer-col a:hover{color:#fff}
.nca-footer-bottom{border-top:1px solid #1d1d1d;margin-top:42px;padding:18px 0;display:flex;justify-content:space-between;color:#555;font-size:.62rem;letter-spacing:.08em}

@media(max-width:900px){
 .nca-hall{grid-template-columns:repeat(4,1fr)}.nca-airside{grid-template-columns:.8fr 1.4fr .8fr}
 .nca-footer-grid{grid-template-columns:1.5fr 1fr 1fr}.nca-footer-brand{grid-row:span 2}
}
@media(max-width:640px){
 .site-header .nav{padding-top:6px !important;padding-bottom:6px !important}
 body:has(.v8-board-section) .page-hero{padding-top:112px !important}
 .v8-board-section{padding-top:20px !important}
 .nca-floor-shell{padding:8px}.nca-floor-topbar{align-items:flex-start;flex-direction:column;gap:10px}.nca-floor-legend{gap:9px}
 .nca-building-map{padding:6px}.nca-road{font-size:.55rem}.nca-entrances{font-size:.5rem}
 .nca-hall{grid-template-columns:repeat(2,1fr);gap:4px;padding:5px}.nca-hall .room{min-height:62px;font-size:.58rem}.nca-hall .arrivals{grid-column:1/3}
 .nca-security-line{grid-template-columns:1fr 88px;padding:6px 0;gap:4px}.security-control,.fast-track{font-size:.55rem;min-height:42px}
 .nca-airside{grid-template-columns:1fr 1.25fr 1fr;gap:4px;padding:5px}.nca-pier{padding:4px;gap:3px}.nca-pier button{min-height:38px;font-size:.65rem}.pier-label{font-size:.5rem}
 .nca-center-airside{grid-template-columns:1fr;gap:3px}.airside-room{min-height:42px;font-size:.5rem}.nca-walkway{grid-column:1;padding:14px 3px;font-size:.45rem;writing-mode:vertical-rl;justify-self:stretch}
 .nca-apron{padding:11px 5px;font-size:.52rem}
 .nca-floor-shell .v8-map-info{font-size:.75rem}
 .nca-footer{padding-top:38px}.nca-footer-grid{grid-template-columns:1fr 1fr;gap:28px 18px}.nca-footer-brand{grid-column:1/3;grid-row:auto}.nca-footer-brand p{max-width:100%}.nca-footer-col a{font-size:.75rem}.nca-footer-bottom{flex-direction:column;gap:5px;margin-top:30px}
}
@media(max-width:380px){
 .nca-footer-grid{grid-template-columns:1fr}.nca-footer-brand{grid-column:1}.nca-hall .room{font-size:.52rem}.nca-airside{grid-template-columns:.9fr 1.1fr .9fr}
}


/* =========================================================
   v8.2 – definitive navigation/header positioning fix
   ========================================================= */

/* Header participates in normal document flow. This prevents the first
   content block from ever sitting underneath it. */
.site-header{
  position:relative !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  width:100% !important;
  z-index:12000 !important;
}

/* Keep the logo fully inside the header on every page. */
.site-header .nav{
  min-height:78px !important;
  padding-top:10px !important;
  padding-bottom:10px !important;
  overflow:visible !important;
}
.site-header .brand{
  position:relative !important;
  top:auto !important;
  transform:none !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
  align-self:center !important;
}
.site-header .brand-mark,
.site-header .brand-text{
  position:relative !important;
  top:auto !important;
  transform:none !important;
}

/* The operations notice is now the first element INSIDE main and therefore
   always starts below the complete navigation. */
main > .v8-ops{
  position:relative !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  z-index:3 !important;
  width:100% !important;
  margin:0 !important;
}

/* Page heroes no longer need artificial offsets from earlier fixed-header fixes. */
.page-hero,
body:has(.v8-board-section) .page-hero{
  padding-top:72px !important;
}

/* Explicit active main-nav state. */
.nav-links a.active{
  color:#fff !important;
  border-bottom-color:#fff !important;
}

@media (max-width:900px){
  .site-header .nav{
    min-height:68px !important;
    padding-top:7px !important;
    padding-bottom:7px !important;
  }
  .site-header .brand{
    margin-left:0 !important;
  }
  .page-hero,
  body:has(.v8-board-section) .page-hero{
    padding-top:54px !important;
  }
  main > .v8-ops{
    padding-left:12px !important;
    padding-right:38px !important;
  }
}


/* =========================================================
   v8.3 – Demo-Hinweis und Header sauber untereinander
   ========================================================= */

/* Der Hinweis bleibt ein eigener normaler Block und überlagert nichts. */
.demo-bar{
  position:relative !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  z-index:13000 !important;
  width:100% !important;
  min-height:28px !important;
  height:auto !important;
  margin:0 !important;
  padding:7px 12px !important;
  box-sizing:border-box !important;
  line-height:1.25 !important;
}

/* Der Header beginnt garantiert erst NACH dem Demo-Hinweis. */
.site-header{
  position:relative !important;
  top:auto !important;
  margin-top:0 !important;
  transform:none !important;
  overflow:visible !important;
}

/* Brand vollständig innerhalb des Headers halten. */
.site-header .nav{
  box-sizing:border-box !important;
  min-height:82px !important;
  height:auto !important;
  padding-top:14px !important;
  padding-bottom:14px !important;
  overflow:visible !important;
}
.site-header .nav > .brand{
  position:relative !important;
  top:auto !important;
  bottom:auto !important;
  transform:none !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
  padding-top:2px !important;
  padding-bottom:2px !important;
  line-height:1 !important;
}
.site-header .brand-mark,
.site-header .brand-text,
.site-header .brand-text small{
  top:auto !important;
  bottom:auto !important;
  transform:none !important;
}

/* Alte Desktop-Regel mit negativem linken Brand-Abstand neutralisieren. */
@media (min-width:901px){
  header .brand,
  .header-inner .brand,
  .site-header .brand{
    margin-left:0 !important;
  }
}

@media (max-width:900px){
  .demo-bar{
    min-height:26px !important;
    padding:6px 10px !important;
    font-size:.62rem !important;
  }
  .site-header .nav{
    min-height:70px !important;
    padding-top:10px !important;
    padding-bottom:10px !important;
  }
}

@media (max-width:640px){
  .demo-bar{
    min-height:24px !important;
    padding:5px 8px !important;
    font-size:.56rem !important;
    white-space:normal !important;
  }
  .site-header .nav{
    min-height:66px !important;
    padding-top:8px !important;
    padding-bottom:8px !important;
  }
  .site-header .nav > .brand{
    padding-top:3px !important;
    padding-bottom:3px !important;
  }
}
