:root{
    --ink:#0B0E14;
    --panel:#14181F;
    --panel-raised:#1B202B;
    --bone:#F2EFE9;
    --bone-dim:#C9C5BC;
    --slate:#8A93A3;
    --brass:#C9A45C;
    --brass-bright:#E0BC78;
    --line-green:#1B4332;
    --line-green-bright:#2D6A4F;
    --hairline: rgba(242,239,233,0.12);
    --radius: 2px;
    --serif: "Fraunces", serif;
    --sans: "Inter", -apple-system, sans-serif;
    --mono: "JetBrains Mono", monospace;
  }

  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--ink);
    color:var(--bone);
    font-family:var(--sans);
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  ::selection{background:var(--brass);color:var(--ink);}

  @media (prefers-reduced-motion: reduce){
    *{animation-duration:0.01ms !important; transition-duration:0.01ms !important;}
  }

  .wrap{max-width:1180px;margin:0 auto;padding:0 28px;}
  section{position:relative;}

  /* ---------- visible focus ---------- */
  a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible{
    outline:2px solid var(--brass-bright);
    outline-offset:2px;
  }

  /* ---------- top bar ---------- */
  .topbar{
    position:sticky; top:0; z-index:50;
    background:rgba(11,14,20,0.88);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--hairline);
  }
  .topbar-inner{
    display:flex; align-items:center; justify-content:space-between;
    padding:16px 28px; max-width:1180px; margin:0 auto;
  }
  .brand{
    display:flex; align-items:baseline; gap:8px;
    font-family:var(--serif); font-weight:600; font-size:1.25rem; letter-spacing:0.01em;
  }
  .brand .mark{color:var(--brass);}
  .brand small{font-family:var(--mono); font-size:0.55rem; letter-spacing:0.18em; color:var(--slate); text-transform:uppercase; font-weight:500;}
  nav{display:flex; gap:28px; align-items:center;}
  nav a{
    font-size:0.82rem; letter-spacing:0.02em; color:var(--bone-dim);
    transition:color 0.15s ease;
  }
  nav a:hover{color:var(--brass-bright);}
  .nav-cta{
    display:flex; gap:10px; align-items:center;
  }
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    padding:11px 22px; font-size:0.82rem; letter-spacing:0.03em; font-weight:600;
    border-radius:var(--radius); border:1px solid transparent; cursor:pointer;
    background:transparent; color:inherit; appearance:none; -webkit-appearance:none;
    transition:transform 0.15s ease, background 0.15s ease, border-color 0.15s ease, opacity 0.15s ease;
    font-family:var(--sans);
  }
  .btn:hover{transform:translateY(-1px);}
  .btn:disabled{opacity:.55;cursor:not-allowed;transform:none;}
  .btn-primary{background:var(--brass); color:var(--ink);}
  .btn-primary:hover{background:var(--brass-bright);}
  .btn-ghost{border-color:var(--hairline); color:var(--bone);}
  .btn-ghost:hover{border-color:var(--brass); color:var(--brass-bright);}
  .btn-line{border-color:var(--line-green-bright); color:var(--bone);}
  .btn-line:hover{background:var(--line-green); }
  .btn-sm{padding:9px 16px; font-size:0.76rem;}
  .menu-toggle{display:none; background:none; border:none; color:var(--bone); font-size:1.4rem; cursor:pointer;}

  @media (max-width: 880px){
    nav{display:none;}
    .menu-toggle{display:block;}
    .nav-cta .btn-ghost{display:none;}
  }

  /* ---------- hero ---------- */
  .hero{
    padding:84px 0 64px;
    background:
      radial-gradient(ellipse 900px 500px at 80% -10%, rgba(201,164,92,0.10), transparent 60%),
      radial-gradient(ellipse 700px 400px at 0% 100%, rgba(27,67,50,0.18), transparent 60%);
    overflow:hidden;
  }
  .hero-grid{
    display:grid; grid-template-columns:1.05fr 0.95fr; gap:56px; align-items:center;
  }
  .eyebrow{
    font-family:var(--mono); font-size:0.7rem; letter-spacing:0.18em; text-transform:uppercase;
    color:var(--brass-bright); display:flex; align-items:center; gap:10px; margin-bottom:22px;
  }
  .eyebrow::before{content:""; width:28px; height:1px; background:var(--brass-bright); display:inline-block;}
  h1{
    font-family:var(--serif); font-weight:600; font-size:clamp(2.6rem, 4.2vw, 3.8rem);
    line-height:1.04; letter-spacing:-0.01em; max-width:13ch;
  }
  h1 em{font-style:italic; color:var(--brass-bright); font-weight:450;}
  .hero-sub{
    margin-top:22px; font-size:1.05rem; color:var(--bone-dim); max-width:42ch; line-height:1.6;
  }
  .hero-actions{display:flex; gap:14px; margin-top:34px; flex-wrap:wrap;}
  .hero-phone{
    display:flex; align-items:center; gap:10px; margin-top:28px; font-family:var(--mono); font-size:0.92rem; color:var(--bone-dim);
  }
  .hero-phone a{color:var(--brass-bright); font-weight:600;}

  /* route line signature element */
  .route-card{
    background:var(--panel); border:1px solid var(--hairline); border-radius:6px;
    padding:30px 28px 26px; position:relative;
  }
  .route-card-label{
    font-family:var(--mono); font-size:0.68rem; letter-spacing:0.14em; text-transform:uppercase;
    color:var(--slate); display:flex; justify-content:space-between; margin-bottom:22px;
  }
  .route-card-label span:last-child{color:var(--brass-bright);}
  .route-track{
    position:relative; height:64px; margin:0 4px 8px;
  }
  .route-track::before{
    content:""; position:absolute; left:0; right:0; top:50%; height:2px;
    background:repeating-linear-gradient(to right, var(--hairline) 0 8px, transparent 8px 16px);
    transform:translateY(-50%);
  }
  .route-progress{
    position:absolute; left:0; top:50%; height:2px; width:0%;
    background:var(--brass); transform:translateY(-50%);
    transition:width 0.9s cubic-bezier(.4,0,.2,1);
  }
  .route-track.is-active .route-progress{width:100%;}
  .route-point{
    position:absolute; top:50%; transform:translate(-50%,-50%);
    width:13px; height:13px; border-radius:50%; background:var(--ink); border:2px solid var(--slate); z-index:2;
    transition:border-color 0.4s ease, background 0.4s ease;
  }
  .route-point.lit{border-color:var(--brass-bright); background:var(--brass-bright);}
  .route-point.start{left:0;}
  .route-point.end{left:100%;}
  .route-car{
    position:absolute; top:50%; left:0; transform:translate(-50%,-50%);
    font-size:1rem; z-index:3; transition:left 0.9s cubic-bezier(.4,0,.2,1);
  }
  .route-track.is-active .route-car{left:100%;}
  .route-names{
    display:flex; justify-content:space-between; font-size:0.78rem; color:var(--bone-dim); margin-top:2px;
  }
  .route-names strong{color:var(--bone); font-weight:600; display:block; font-family:var(--serif); font-size:0.95rem; margin-bottom:1px;}

  .quote-form{margin-top:24px;}
  .quote-row{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:12px;}
  .field{display:flex; flex-direction:column; gap:6px;}
  .field label{font-size:0.7rem; letter-spacing:0.05em; text-transform:uppercase; color:var(--slate); font-family:var(--mono);}
  .field select, .field input{
    background:var(--ink); border:1px solid var(--hairline); border-radius:var(--radius);
    color:var(--bone); padding:11px 12px; font-size:0.88rem; font-family:var(--sans);
  }
  .field select:focus, .field input:focus{border-color:var(--brass);}
  .field select option{background:var(--ink);color:var(--bone);}
  input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus{
    -webkit-text-fill-color:var(--bone);-webkit-box-shadow:0 0 0 1000px var(--ink) inset;caret-color:var(--bone);
  }
  .quote-result{
    margin-top:18px; padding:16px 18px; background:var(--panel-raised); border-radius:4px;
    border:1px solid var(--hairline); display:none;
  }
  .quote-result.show{display:block; animation:fadein 0.35s ease;}
  @keyframes fadein{from{opacity:0; transform:translateY(4px);} to{opacity:1; transform:translateY(0);}}
  .quote-result-route{font-size:0.85rem; color:var(--bone-dim); margin-bottom:6px;}
  .quote-result-price{font-family:var(--mono); font-size:1.9rem; color:var(--brass-bright); font-weight:600; display:flex; align-items:baseline; gap:8px;}
  .quote-result-price span{font-size:0.85rem; color:var(--slate); font-weight:400; font-family:var(--sans);}
  .quote-result .btn{margin-top:14px; width:100%;}

  /* ---------- section heading pattern ---------- */
  .section-head{max-width:640px; margin-bottom:48px;}
  .section-head .eyebrow{margin-bottom:14px;}
  .section-head h2{
    font-family:var(--serif); font-weight:600; font-size:clamp(1.9rem,3vw,2.5rem); line-height:1.12;
  }
  .section-head p{margin-top:14px; color:var(--bone-dim); font-size:1.02rem; max-width:52ch;}
  .section-pad{padding:84px 0;}
  .divider{height:1px; background:var(--hairline); margin:0;}

  /* ---------- fleet ---------- */
  .fleet-grid{display:grid; grid-template-columns:1fr 1fr; gap:28px;}
  .fleet-card{
    background:var(--panel); border:1px solid var(--hairline); border-radius:6px; overflow:hidden;
    display:flex; flex-direction:column;
  }
  .fleet-photo{
    height:220px; background:linear-gradient(135deg, var(--panel-raised), var(--ink));
    display:flex; align-items:center; justify-content:center; position:relative;
    border-bottom:1px solid var(--hairline);
  }
  .fleet-photo .silhouette{font-size:3.4rem; opacity:0.5;}
  .fleet-tag{
    position:absolute; top:14px; left:14px; font-family:var(--mono); font-size:0.62rem;
    letter-spacing:0.1em; text-transform:uppercase; color:var(--brass-bright);
    background:rgba(11,14,20,0.8); padding:5px 10px; border-radius:2px; border:1px solid var(--hairline);
  }
  .fleet-body{padding:24px 26px 26px;}
  .fleet-body h3{font-family:var(--serif); font-size:1.4rem; font-weight:600;}
  .fleet-body .model{color:var(--slate); font-size:0.85rem; margin-top:2px; font-family:var(--mono);}
  .fleet-specs{display:flex; gap:20px; margin:16px 0; font-size:0.82rem; color:var(--bone-dim);}
  .fleet-specs strong{color:var(--bone); display:block; font-family:var(--serif); font-size:1.1rem;}
  .fleet-use{list-style:none; display:flex; flex-wrap:wrap; gap:8px; margin-top:14px;}
  .fleet-use li{
    font-size:0.76rem; color:var(--bone-dim); border:1px solid var(--hairline); border-radius:20px;
    padding:5px 12px;
  }

  @media (max-width: 760px){ .fleet-grid{grid-template-columns:1fr;} }

  /* ---------- airport features ---------- */
  .airport-layout{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start;}
  .feature-list{list-style:none; display:flex; flex-direction:column; gap:18px; margin-top:8px;}
  .feature-list li{display:flex; gap:14px; align-items:flex-start; font-size:0.96rem; color:var(--bone-dim);}
  .feature-list .ico{color:var(--brass-bright); font-family:var(--mono); flex-shrink:0; margin-top:2px;}
  .feature-list strong{color:var(--bone); font-weight:600;}
  .airport-served{
    background:var(--panel); border:1px solid var(--hairline); border-radius:6px; padding:26px 28px;
  }
  .airport-served h4{font-family:var(--mono); font-size:0.7rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--slate); margin-bottom:18px;}
  .airport-row{display:flex; justify-content:space-between; align-items:center; padding:14px 0; border-bottom:1px solid var(--hairline);}
  .airport-row:last-child{border-bottom:none;}
  .airport-row .code{font-family:var(--mono); font-size:1.3rem; color:var(--brass-bright); font-weight:600; width:54px;}
  .airport-row .name{font-size:0.92rem; color:var(--bone);}
  .airport-row .name small{display:block; color:var(--slate); font-size:0.78rem; margin-top:2px;}

  @media (max-width: 860px){ .airport-layout{grid-template-columns:1fr;} }

  /* ---------- corporate ---------- */
  .corp-section{background:var(--panel-raised);}
  .corp-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:56px; align-items:center;}
  .client-tags{display:flex; flex-wrap:wrap; gap:10px; margin-top:24px;}
  .client-tags span{
    font-size:0.82rem; color:var(--bone-dim); border:1px solid var(--hairline); border-radius:3px;
    padding:8px 14px; font-family:var(--mono);
  }
  .corp-panel{
    background:var(--ink); border:1px solid var(--hairline); border-radius:6px; padding:30px;
  }
  .corp-panel-row{display:flex; gap:16px; padding:16px 0; border-bottom:1px solid var(--hairline);}
  .corp-panel-row:first-child{padding-top:0;}
  .corp-panel-row:last-child{border-bottom:none; padding-bottom:0;}
  .corp-panel-num{font-family:var(--serif); color:var(--brass-bright); font-size:1.3rem; font-weight:600; width:32px; flex-shrink:0;}
  .corp-panel-row h4{font-size:0.98rem; font-weight:600; margin-bottom:4px;}
  .corp-panel-row p{font-size:0.86rem; color:var(--bone-dim);}

  @media (max-width: 860px){ .corp-grid{grid-template-columns:1fr;} }

  /* ---------- booking form ---------- */
  .book-section{
    background:
      linear-gradient(180deg, var(--ink), var(--panel) 100%);
  }
  .book-card{
    max-width:760px; margin:0 auto; background:var(--panel); border:1px solid var(--hairline);
    border-radius:8px; padding:42px 44px;
  }
  .book-card h3{font-family:var(--serif); font-size:1.7rem; font-weight:600; margin-bottom:8px;}
  .book-card .sub{color:var(--bone-dim); font-size:0.92rem; margin-bottom:30px;}
  .form-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
  .form-grid .full{grid-column:1 / -1;}
  .book-card .btn{margin-top:22px; width:100%; padding:14px;}
  .form-note{font-size:0.78rem; color:var(--slate); margin-top:14px; text-align:center;}
  .confirm-box{
    display:none; text-align:center; padding:30px 10px;
  }
  .confirm-box.show{display:block;}
  .confirm-box .code{font-family:var(--mono); color:var(--brass-bright); font-size:1.1rem; letter-spacing:0.05em; margin-top:10px;}

  @media (max-width:600px){
    .form-grid{grid-template-columns:1fr;}
    .book-card{padding:30px 24px;}
  }

  /* ---------- how it works (booking experience) ---------- */
  .how-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:0;}
  .how-step{
    padding:0 24px; position:relative;
  }
  .how-step:not(:last-child)::after{
    content:""; position:absolute; top:18px; right:0; width:24px; height:1px; background:var(--hairline);
  }
  .how-num{font-family:var(--mono); font-size:0.75rem; color:var(--brass-bright); margin-bottom:14px;}
  .how-step h4{font-family:var(--serif); font-size:1.1rem; font-weight:600; margin-bottom:8px;}
  .how-step p{font-size:0.86rem; color:var(--bone-dim);}

  @media (max-width:880px){
    .how-grid{grid-template-columns:1fr 1fr; gap:32px;}
    .how-step:not(:last-child)::after{display:none;}
  }
  @media (max-width:560px){ .how-grid{grid-template-columns:1fr;} }

  /* ---------- membership ---------- */
  .tier-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
  .tier-card{
    border:1px solid var(--hairline); border-radius:6px; padding:32px 28px; background:var(--panel);
    display:flex; flex-direction:column;
  }
  .tier-card.featured{border-color:var(--brass); background:linear-gradient(160deg, var(--panel-raised), var(--panel));}
  .tier-name{font-family:var(--mono); font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--slate);}
  .tier-card.featured .tier-name{color:var(--brass-bright);}
  .tier-card h3{font-family:var(--serif); font-size:1.55rem; font-weight:600; margin-top:8px;}
  .tier-list{list-style:none; margin-top:20px; display:flex; flex-direction:column; gap:10px; flex-grow:1;}
  .tier-list li{font-size:0.88rem; color:var(--bone-dim); display:flex; gap:10px;}
  .tier-list li::before{content:"—"; color:var(--brass-bright); flex-shrink:0;}
  .tier-card .btn{margin-top:24px;}

  @media (max-width:860px){ .tier-grid{grid-template-columns:1fr;} }

  /* ---------- reviews ---------- */
  .review-strip{display:flex; gap:24px; overflow-x:auto; padding-bottom:8px; scrollbar-width:thin;}
  .review-card{
    flex:0 0 320px; background:var(--panel); border:1px solid var(--hairline); border-radius:6px;
    padding:26px 24px;
  }
  .stars{color:var(--brass-bright); font-size:0.9rem; letter-spacing:2px;}
  .review-card p{font-size:0.92rem; color:var(--bone-dim); margin:14px 0 16px; line-height:1.6;}
  .review-name{font-size:0.82rem; font-weight:600;}
  .review-meta{font-size:0.76rem; color:var(--slate); font-family:var(--mono);}
  .review-stats{display:flex; gap:40px; margin-top:40px; flex-wrap:wrap;}
  .review-stat strong{display:block; font-family:var(--serif); font-size:2.1rem; color:var(--brass-bright); font-weight:600;}
  .review-stat span{font-size:0.8rem; color:var(--slate); text-transform:uppercase; letter-spacing:0.05em;}

  /* ---------- journal / blog ---------- */
  .journal-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--hairline); border:1px solid var(--hairline);}
  .journal-card{background:var(--ink); padding:30px 32px;}
  .journal-card .eyebrow{margin-bottom:12px; font-size:0.65rem;}
  .journal-card h4{font-family:var(--serif); font-size:1.2rem; font-weight:600; line-height:1.3;}
  .journal-card p{font-size:0.86rem; color:var(--bone-dim); margin-top:10px;}
  .journal-card .read{font-size:0.78rem; color:var(--brass-bright); margin-top:16px; display:inline-block; font-family:var(--mono);}

  @media (max-width:760px){ .journal-grid{grid-template-columns:1fr;} }

  /* ---------- footer ---------- */
  footer{background:var(--panel); border-top:1px solid var(--hairline); padding:56px 0 32px;}
  .foot-grid{display:grid; grid-template-columns:1.4fr repeat(4,1fr); gap:34px;}
  .foot-brand .brand{margin-bottom:14px;}
  .foot-brand p{font-size:0.86rem; color:var(--bone-dim); max-width:30ch;}
  .foot-col h5{font-family:var(--mono); font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--slate); margin-bottom:16px;}
  .foot-col a{display:block; font-size:0.86rem; color:var(--bone-dim); margin-bottom:10px;}
  .foot-col a:hover{color:var(--brass-bright);}
  .foot-text{display:block; font-size:0.86rem; color:var(--bone-dim); margin-bottom:10px;}
  .foot-bottom{
    display:flex; justify-content:space-between; margin-top:48px; padding-top:24px; border-top:1px solid var(--hairline);
    font-size:0.78rem; color:var(--slate); flex-wrap:wrap; gap:10px;
  }

  @media (max-width:860px){ .foot-grid{grid-template-columns:1fr 1fr; gap:32px;} }
  @media (max-width:560px){ .foot-grid{grid-template-columns:1fr;} }

  @media (max-width: 880px){
    .hero-grid{grid-template-columns:1fr;}
    h1{max-width:none;}
  }


  /* ---------- functional upgrades ---------- */
  .mobile-nav{
    display:none; border-top:1px solid var(--hairline); padding:10px 28px 16px;
    background:rgba(11,14,20,0.96);
  }
  .mobile-nav.open{display:flex; flex-direction:column; gap:12px;}
  .mobile-nav a{font-size:0.92rem; color:var(--bone-dim); padding:8px 0;}
  .mobile-nav a:hover{color:var(--brass-bright);}

  textarea{
    background:var(--ink); border:1px solid var(--hairline); border-radius:var(--radius);
    color:var(--bone); padding:11px 12px; font-size:0.88rem; font-family:var(--sans);
    min-height:94px; resize:vertical;
  }
  textarea:focus{border-color:var(--brass); outline:none;}
  .inline-actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:10px;}
  .mini-note{font-size:0.76rem; color:var(--slate); margin-top:7px;}
  .status-box{
    margin-top:10px; padding:12px 14px; border:1px solid var(--hairline); background:var(--ink); border-radius:4px;
    color:var(--bone-dim); font-size:0.82rem; display:none;
  }
  .status-box.show{display:block;}
  .booking-summary{
    text-align:left; max-width:560px; margin:22px auto 0; background:var(--ink); border:1px solid var(--hairline);
    border-radius:6px; padding:18px;
  }
  .booking-summary-row{display:flex; justify-content:space-between; gap:16px; padding:8px 0; border-bottom:1px solid var(--hairline); font-size:0.86rem;}
  .booking-summary-row:last-child{border-bottom:none;}
  .booking-summary-row span:first-child{color:var(--slate); font-family:var(--mono); font-size:0.72rem; text-transform:uppercase; letter-spacing:0.06em;}
  .booking-summary-row span:last-child{color:var(--bone); text-align:right;}
  .confirm-actions{display:flex; gap:10px; flex-wrap:wrap; justify-content:center; margin-top:22px;}
  .btn-disabled{opacity:0.48; pointer-events:none;}

  .admin-section{background:var(--panel-raised);}
  .admin-card{
    background:var(--panel); border:1px solid var(--hairline); border-radius:8px; padding:30px; max-width:1060px; margin:0 auto;
  }
  .admin-card h3{font-family:var(--serif); font-size:1.6rem; margin-bottom:8px;}
  .admin-toolbar{display:flex; gap:10px; flex-wrap:wrap; align-items:end; justify-content:space-between; margin:20px 0;}
  .admin-login{display:grid; grid-template-columns:1fr 1fr auto; gap:10px; max-width:700px; margin-top:20px; align-items:end;}
  .admin-panel{display:none;}
  .admin-panel.show{display:block;}
  .admin-table-wrap{overflow-x:auto; border:1px solid var(--hairline); border-radius:6px;}
  table{width:100%; border-collapse:collapse; min-width:920px;}
  th,td{padding:12px 14px; border-bottom:1px solid var(--hairline); text-align:left; font-size:0.82rem; vertical-align:top;}
  th{font-family:var(--mono); text-transform:uppercase; letter-spacing:0.08em; color:var(--slate); font-size:0.67rem; background:var(--ink);}
  td{color:var(--bone-dim);}
  td strong{color:var(--bone);}
  .status-pill{display:inline-block; padding:4px 9px; border:1px solid var(--hairline); border-radius:20px; color:var(--brass-bright); font-size:0.72rem; white-space:nowrap;}
  .row-actions{display:flex; gap:8px; align-items:center;}
  .row-actions select{background:var(--ink); color:var(--bone); border:1px solid var(--hairline); padding:7px; border-radius:2px;}
  .empty-state{padding:24px; text-align:center; color:var(--slate);}

  .modal-backdrop{display:none; position:fixed; inset:0; background:rgba(0,0,0,0.72); z-index:90; padding:24px; overflow:auto;}
  .modal-backdrop.show{display:block;}
  .modal-card{max-width:760px; margin:6vh auto; background:var(--panel); border:1px solid var(--hairline); border-radius:8px; padding:32px;}
  .modal-card h3{font-family:var(--serif); font-size:1.7rem; margin-bottom:12px;}
  .modal-card p{color:var(--bone-dim); margin:12px 0;}
  .modal-close{float:right; margin-left:18px;}

  @media (min-width:1041px){.mobile-nav{display:none !important;}}
  @media (max-width:760px){.admin-login{grid-template-columns:1fr;}.booking-summary-row{flex-direction:column; gap:4px;}.booking-summary-row span:last-child{text-align:left;}}

/* ---------- separate admin page upgrades ---------- */
.admin-page{min-height:100vh;background:linear-gradient(180deg,var(--ink),var(--panel-raised));}
.admin-main{min-height:calc(100vh - 72px);}
.login-card{max-width:720px;}
.admin-dashboard-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap;margin-bottom:18px;}
.admin-dashboard-head h2{font-family:var(--serif);font-size:clamp(1.9rem,3vw,2.5rem);line-height:1.12;margin:0;}
.subtle{color:var(--bone-dim);font-size:.92rem;max-width:62ch;margin-top:10px;}
code{font-family:var(--mono);color:var(--brass-bright);}
.send-status-field{align-self:center;min-width:240px;}
.send-status-field label{display:flex;align-items:center;gap:8px;text-transform:none;letter-spacing:0;font-family:var(--sans);font-size:.86rem;color:var(--bone-dim);}
.send-status-field input{width:auto;accent-color:var(--brass);}
.admin-action-stack{display:flex;flex-direction:column;gap:8px;min-width:190px;}
.contact-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;}
.contact-actions .btn{padding-left:8px;padding-right:8px;}
.status-canceled{color:#ffb3b3;border-color:rgba(255,179,179,.35);}
.status-confirmed{color:#bdf5cd;border-color:rgba(189,245,205,.35);}
.status-completed{color:#b7d2ff;border-color:rgba(183,210,255,.35);}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(16px);z-index:120;background:var(--panel);border:1px solid var(--brass);color:var(--bone);padding:12px 18px;border-radius:4px;box-shadow:0 14px 40px rgba(0,0,0,.35);opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;max-width:min(560px,calc(100vw - 32px));font-size:.88rem;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
.modal-card .form-grid{margin-top:20px;}
.modal-card textarea{min-height:160px;}
@media (max-width:760px){.admin-dashboard-head{flex-direction:column}.contact-actions{grid-template-columns:1fr}.admin-action-stack{min-width:150px}.admin-toolbar{align-items:stretch}.admin-toolbar .field,.admin-toolbar button{width:100%;}}

.login-card .status-box{max-width:700px;margin-top:12px;}
#emailConfigStatus.config-ok{color:#bdf5cd;}
#emailConfigStatus.config-warning{color:var(--brass-bright);}

/* ---------- dynamic fleet slideshow ---------- */
.fleet-slideshow{
  position:relative;
  max-width:980px;
  margin:0 auto;
}
.fleet-slides{
  min-height:440px;
  border:1px solid var(--hairline);
  border-radius:8px;
  overflow:hidden;
  background:var(--panel);
}
.fleet-slide{
  display:none;
  grid-template-columns:minmax(0,1.35fr) minmax(320px,.9fr);
  min-height:440px;
  animation:fleetFade .35s ease;
}
.fleet-slide.active{display:grid;}
@keyframes fleetFade{from{opacity:.35}to{opacity:1}}
.fleet-slide-image{
  position:relative;
  min-height:440px;
  background:linear-gradient(135deg,var(--panel-raised),var(--ink));
  overflow:hidden;
}
.fleet-slide-image img{
  width:100%;
  height:100%;
  min-height:440px;
  object-fit:cover;
}
.fleet-image-placeholder{
  min-height:440px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:6rem;
  opacity:.55;
}
.fleet-slide-body{
  padding:42px 38px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:28px;
}
.fleet-slide-body h3{
  font-family:var(--serif);
  font-size:clamp(1.8rem,3vw,2.5rem);
  line-height:1.1;
}
.fleet-slide-body .model{color:var(--slate);font-family:var(--mono);font-size:.86rem;margin-top:8px;}
.fleet-slide-specs{margin:0;flex-wrap:wrap;}
.fleet-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:5;
  width:44px;
  height:44px;
  border-radius:50%;
  border:1px solid var(--hairline);
  background:rgba(11,14,20,.86);
  color:var(--bone);
  cursor:pointer;
  font-size:1.2rem;
}
.fleet-arrow:hover{border-color:var(--brass);color:var(--brass-bright);}
.fleet-prev{left:16px;}
.fleet-next{right:16px;}
.fleet-dots{display:flex;justify-content:center;gap:9px;margin-top:18px;}
.fleet-dot{
  width:9px;
  height:9px;
  border-radius:50%;
  border:1px solid var(--slate);
  background:transparent;
  cursor:pointer;
}
.fleet-dot.active{background:var(--brass-bright);border-color:var(--brass-bright);}
.fleet-loading{min-height:220px;display:flex;align-items:center;justify-content:center;color:var(--slate);padding:30px;text-align:center;}

/* ---------- fleet and pricing admin ---------- */
.admin-management-card{margin-top:28px;}
.management-form{padding:22px;border:1px solid var(--hairline);border-radius:6px;background:var(--ink);}
.checkbox-field label{display:flex;align-items:center;gap:9px;text-transform:none;letter-spacing:0;font-family:var(--sans);font-size:.86rem;color:var(--bone-dim);}
.checkbox-field input{width:auto;accent-color:var(--brass);}
.fleet-admin-list{display:grid;gap:14px;margin-top:24px;}
.fleet-admin-card{
  display:grid;
  grid-template-columns:190px 1fr;
  border:1px solid var(--hairline);
  border-radius:6px;
  background:var(--ink);
  overflow:hidden;
}
.fleet-admin-image{min-height:150px;background:var(--panel-raised);}
.fleet-admin-image img{width:100%;height:100%;min-height:150px;object-fit:cover;}
.fleet-admin-placeholder{height:100%;min-height:150px;display:flex;align-items:center;justify-content:center;font-size:3.4rem;opacity:.55;}
.fleet-admin-content{padding:20px;}
.fleet-admin-title-row{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;}
.fleet-admin-content h3{font-size:1.28rem;margin:0;}
.fleet-admin-content p{color:var(--bone-dim);font-size:.86rem;margin-top:4px;}
.pricing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:22px;}
.pricing-field{padding:14px;border:1px solid var(--hairline);border-radius:5px;background:var(--ink);}
.price-input-wrap{display:flex;align-items:center;border:1px solid var(--hairline);background:var(--panel);}
.price-input-wrap span{padding-left:12px;color:var(--brass-bright);font-family:var(--mono);}
.price-input-wrap input{border:0;background:transparent;width:100%;}

@media (max-width:860px){
  .fleet-slide,.fleet-slide.active{grid-template-columns:1fr;}
  .fleet-slide-image,.fleet-slide-image img,.fleet-image-placeholder{min-height:300px;}
  .pricing-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:620px){
  .fleet-slide-body{padding:30px 24px;}
  .fleet-arrow{width:38px;height:38px;}
  .fleet-prev{left:8px;}.fleet-next{right:8px;}
  .fleet-admin-card{grid-template-columns:1fr;}
  .pricing-grid{grid-template-columns:1fr;}
}

/* ---------- public reviews and cross-device polish ---------- */
.reviews-layout{
  display:grid;
  grid-template-columns:minmax(0,1.65fr) minmax(300px,.8fr);
  gap:36px;
  align-items:start;
}
.reviews-content{min-width:0;}
.review-form-card{
  position:sticky;
  top:96px;
  background:var(--panel);
  border:1px solid var(--hairline);
  border-radius:8px;
  padding:28px;
}
.review-form-card h3{font-family:var(--serif);font-size:1.65rem;line-height:1.15;}
.review-form-card>p{color:var(--bone-dim);font-size:.88rem;margin:9px 0 22px;}
.review-form-card form{display:grid;gap:15px;}
.review-form-card .btn{width:100%;margin-top:2px;}
.review-form-row{display:grid;grid-template-columns:.65fr 1.35fr;gap:12px;}
.review-loading{
  min-height:180px;
  min-width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--slate);
  border:1px solid var(--hairline);
  border-radius:6px;
  padding:24px;
  text-align:center;
}
.schedule-editor{display:grid;gap:7px;min-width:155px;}
.schedule-editor input{
  width:100%;
  background:var(--ink);
  border:1px solid var(--hairline);
  border-radius:var(--radius);
  color:var(--bone);
  padding:8px 9px;
  font-family:var(--sans);
  color-scheme:dark;
}

/* Prevent grid and flex children from forcing horizontal overflow. */
.hero-grid>*,.airport-layout>*,.corp-grid>*,.form-grid>*,.reviews-layout>*,.foot-grid>*,.admin-dashboard-head>*{min-width:0;}
body{overflow-x:hidden;}
input,select,textarea,button{max-width:100%;}
.field input,.field select,.field textarea{width:100%;}
.admin-table-wrap{-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain;}
.modal-card{width:min(760px,100%);}

@media (max-width:1040px){
  .topbar nav{display:none;}
  .menu-toggle{display:block;}
  .reviews-layout{grid-template-columns:1fr;}
  .review-form-card{position:static;max-width:760px;}
  .review-strip{scroll-snap-type:x proximity;}
  .review-card{scroll-snap-align:start;}
}

@media (max-width:880px){
  .wrap{padding-inline:22px;}
  .topbar-inner{padding:14px 22px;}
  .section-pad{padding:68px 0;}
  .hero{padding:64px 0 52px;}
  .hero-grid{gap:38px;}
  .route-card{max-width:680px;width:100%;}
  .admin-card{padding:24px;}
  .admin-main{padding-top:56px;}
  .fleet-slides,.fleet-slide{min-height:0;}
  .review-stats{gap:26px;}
  .review-stat{min-width:120px;}
}

@media (max-width:680px){
  .wrap{padding-inline:16px;}
  .topbar-inner{padding:12px 16px;gap:12px;}
  .brand{font-size:1.08rem;white-space:nowrap;}
  .brand small{display:none;}
  .nav-cta .btn-primary{padding:9px 13px;}
  .mobile-nav{padding-inline:16px;}
  .section-pad{padding:54px 0;}
  .section-head{margin-bottom:34px;}
  h1{font-size:clamp(2.25rem,12vw,3.05rem);}
  .hero-sub{font-size:.98rem;}
  .hero-actions,.confirm-actions,.inline-actions{align-items:stretch;}
  .hero-actions .btn,.confirm-actions .btn,.inline-actions .btn{flex:1 1 100%;}
  .hero-phone{align-items:flex-start;flex-direction:column;gap:4px;}
  .route-card{padding:24px 18px 22px;}
  .quote-row{grid-template-columns:1fr;}
  .route-names{gap:18px;}
  .route-names>div{max-width:48%;}
  .book-card{padding:28px 18px;}
  .review-form-card{padding:24px 18px;}
  .review-form-row{grid-template-columns:1fr;}
  .review-strip{gap:14px;margin-inline:-16px;padding:0 16px 12px;}
  .review-card{flex-basis:min(86vw,320px);padding:22px 20px;}
  .review-stats{display:grid;grid-template-columns:1fr 1fr;gap:22px 16px;margin-top:30px;}
  .review-stat:last-child{grid-column:1/-1;}
  .foot-bottom{flex-direction:column;}
  .admin-card{padding:20px 14px;border-radius:6px;}
  .management-form{padding:16px;}
  .admin-table-wrap{margin-inline:-14px;border-left:0;border-right:0;border-radius:0;}
  table{min-width:1050px;}
  th,td{padding:10px 11px;}
  .modal-backdrop{padding:12px;}
  .modal-card{padding:24px 18px;margin:3vh auto;}
  .modal-close{float:none;margin:0 0 18px auto;display:flex;}
  .toast{bottom:14px;width:calc(100vw - 24px);text-align:center;}
  .fleet-slide-body{padding:26px 20px;}
  .fleet-slide-image,.fleet-slide-image img,.fleet-image-placeholder{min-height:240px;}
  .fleet-arrow{top:120px;}
  input,select,textarea{font-size:16px !important;}
}

@media (max-width:420px){
  .topbar-inner{flex-wrap:wrap;}
  .nav-cta{margin-left:auto;}
  .nav-cta .btn-primary{font-size:.72rem;}
  .menu-toggle{order:3;}
  .mobile-nav{width:100%;}
  .hero{padding-top:48px;}
  .eyebrow{font-size:.62rem;letter-spacing:.12em;}
  .route-card-label{font-size:.6rem;}
  .review-stats{grid-template-columns:1fr;}
  .review-stat:last-child{grid-column:auto;}
  .pricing-field{padding:12px;}
  .contact-actions{grid-template-columns:1fr;}
}


/* ---------- policy page ---------- */
.policy-page .topbar .brand{color:var(--bone);}
.policy-hero{
  padding:88px 0 56px;
  background:
    radial-gradient(ellipse 800px 420px at 85% -10%, rgba(201,164,92,0.10), transparent 62%),
    linear-gradient(180deg, rgba(27,67,50,0.10), transparent 100%);
  border-bottom:1px solid var(--hairline);
}
.policy-wrap{max-width:900px;}
.policy-hero h1{max-width:18ch;font-size:clamp(2.5rem,5vw,4.1rem);}
.policy-hero p{margin-top:20px;max-width:66ch;color:var(--bone-dim);font-size:1rem;line-height:1.75;}
.policy-content-section{padding:56px 0 88px;}
.policy-card{background:var(--panel);border:1px solid var(--hairline);padding:clamp(24px,5vw,54px);}
.policy-section{padding:30px 0;border-bottom:1px solid var(--hairline);}
.policy-section:first-child{padding-top:0;}
.policy-section:last-child{padding-bottom:0;border-bottom:0;}
.policy-section h2{font-family:var(--serif);font-size:clamp(1.35rem,2.2vw,1.75rem);font-weight:600;color:var(--bone);margin-bottom:14px;}
.policy-section p{color:var(--bone-dim);font-size:.94rem;line-height:1.78;margin-top:12px;}
.policy-section ul{margin:14px 0 0 20px;display:grid;gap:8px;color:var(--bone-dim);font-size:.94rem;line-height:1.65;}
.policy-section li::marker{color:var(--brass-bright);}
.policy-contact{margin-top:22px;padding:20px;border:1px solid var(--hairline);background:var(--ink);display:grid;gap:8px;color:var(--bone-dim);font-size:.9rem;}
.policy-contact strong{color:var(--brass-bright);font-family:var(--serif);font-size:1.15rem;}
.policy-contact a{color:var(--bone);text-decoration:underline;text-decoration-color:rgba(224,188,120,.55);text-underline-offset:3px;}
.policy-footer-grid{grid-template-columns:1.5fr 1fr 1fr;}
@media (max-width:860px){.policy-footer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){
  .policy-hero{padding:62px 0 42px;}
  .policy-content-section{padding:32px 0 60px;}
  .policy-card{padding:22px 18px;}
  .policy-section{padding:24px 0;}
  .policy-footer-grid{grid-template-columns:1fr;}
}


/* ---------- admin light theme toggle ---------- */
.theme-toggle{min-width:124px;}
html[data-admin-theme="light"] .admin-page,
.admin-page.admin-theme-light{
  --ink:#F5F7FB;
  --panel:#FFFFFF;
  --panel-raised:#EEF2F7;
  --bone:#111827;
  --bone-dim:#4B5563;
  --slate:#667085;
  --brass:#C9A45C;
  --brass-bright:#B2873F;
  --line-green:#EAF4EF;
  --line-green-bright:#2D6A4F;
  --hairline:rgba(17,24,39,0.12);
  color-scheme:light;
  background:linear-gradient(180deg,#F8FAFC 0%, #EEF3F8 100%);
  color:var(--bone);
}
html[data-admin-theme="light"] .admin-page .topbar,
.admin-page.admin-theme-light .topbar{
  background:rgba(255,255,255,0.92);
  box-shadow:0 10px 30px rgba(15,23,42,0.05);
}
html[data-admin-theme="light"] .admin-page .brand,
.admin-page.admin-theme-light .brand{color:var(--bone);}
html[data-admin-theme="light"] .admin-page .brand small,
.admin-page.admin-theme-light .brand small{color:var(--slate);}
html[data-admin-theme="light"] .admin-page .btn-ghost,
.admin-page.admin-theme-light .btn-ghost{
  background:#FFFFFF;
  color:var(--bone);
  border-color:rgba(17,24,39,0.14);
}
html[data-admin-theme="light"] .admin-page .btn-ghost:hover,
.admin-page.admin-theme-light .btn-ghost:hover{
  background:#F8FAFC;
  color:var(--bone);
  border-color:rgba(17,24,39,0.2);
}
html[data-admin-theme="light"] .admin-page .btn-line,
.admin-page.admin-theme-light .btn-line{
  background:#F7FBF8;
  color:#1F4737;
  border-color:rgba(45,106,79,0.28);
}
html[data-admin-theme="light"] .admin-page .btn-line:hover,
.admin-page.admin-theme-light .btn-line:hover{
  background:#EAF4EF;
  color:#163B2E;
}
html[data-admin-theme="light"] .admin-page .admin-page,
.admin-page.admin-theme-light .admin-page{background:transparent;}
html[data-admin-theme="light"] .admin-page .admin-card,
.admin-page.admin-theme-light .admin-card{
  box-shadow:0 18px 42px rgba(15,23,42,0.06);
}
html[data-admin-theme="light"] .admin-page .management-form,
.admin-page.admin-theme-light .management-form,
html[data-admin-theme="light"] .admin-page .fleet-admin-card,
.admin-page.admin-theme-light .fleet-admin-card,
html[data-admin-theme="light"] .admin-page .pricing-field,
.admin-page.admin-theme-light .pricing-field{
  background:#FBFDFF;
}
html[data-admin-theme="light"] .admin-page .field select,
html[data-admin-theme="light"] .admin-page .field input,
html[data-admin-theme="light"] .admin-page .field textarea,
html[data-admin-theme="light"] .admin-page .schedule-editor input,
.admin-page.admin-theme-light .field select,
.admin-page.admin-theme-light .field input,
.admin-page.admin-theme-light .field textarea,
.admin-page.admin-theme-light .schedule-editor input{
  background:#FFFFFF;
  color:var(--bone);
  border-color:rgba(17,24,39,0.14);
}
html[data-admin-theme="light"] .admin-page .field select option,
.admin-page.admin-theme-light .field select option{background:#FFFFFF;color:var(--bone);}
html[data-admin-theme="light"] .admin-page input:-webkit-autofill,
html[data-admin-theme="light"] .admin-page input:-webkit-autofill:hover,
html[data-admin-theme="light"] .admin-page input:-webkit-autofill:focus,
.admin-page.admin-theme-light input:-webkit-autofill,
.admin-page.admin-theme-light input:-webkit-autofill:hover,
.admin-page.admin-theme-light input:-webkit-autofill:focus{
  -webkit-text-fill-color:var(--bone);
  -webkit-box-shadow:0 0 0 1000px #FFFFFF inset;
  caret-color:var(--bone);
}
html[data-admin-theme="light"] .admin-page .status-box,
.admin-page.admin-theme-light .status-box{
  background:#FFFFFF;
  color:var(--bone);
}
html[data-admin-theme="light"] .admin-page th,
.admin-page.admin-theme-light th{
  background:#F8FAFC;
  color:#475467;
}
html[data-admin-theme="light"] .admin-page td,
.admin-page.admin-theme-light td{color:#475467;}
html[data-admin-theme="light"] .admin-page td strong,
.admin-page.admin-theme-light td strong{color:var(--bone);}
html[data-admin-theme="light"] .admin-page .status-pill,
.admin-page.admin-theme-light .status-pill{
  background:#FCF8F1;
  border-color:rgba(178,135,63,0.28);
  color:#8B651D;
}
html[data-admin-theme="light"] .admin-page .fleet-admin-image,
.admin-page.admin-theme-light .fleet-admin-image{background:linear-gradient(135deg,#F8FAFC,#EEF3F8);}
html[data-admin-theme="light"] .admin-page .price-input-wrap,
.admin-page.admin-theme-light .price-input-wrap{
  background:#FFFFFF;
  border-color:rgba(17,24,39,0.14);
}
html[data-admin-theme="light"] .admin-page .price-input-wrap input,
.admin-page.admin-theme-light .price-input-wrap input{background:transparent;}
html[data-admin-theme="light"] .admin-page .modal-backdrop,
.admin-page.admin-theme-light .modal-backdrop{background:rgba(15,23,42,0.45);}
html[data-admin-theme="light"] .admin-page .modal-card,
.admin-page.admin-theme-light .modal-card{box-shadow:0 24px 60px rgba(15,23,42,0.18);}
html[data-admin-theme="light"] .admin-page .toast,
.admin-page.admin-theme-light .toast{
  background:#FFFFFF;
  color:var(--bone);
  box-shadow:0 16px 40px rgba(15,23,42,0.14);
}
html[data-admin-theme="light"] .admin-page .schedule-editor input,
.admin-page.admin-theme-light .schedule-editor input{color-scheme:light;}
@media (max-width:680px){
  .theme-toggle{min-width:0;}
}
