    html { scroll-behavior: smooth; }
    body {
      font-family: 'Inter', system-ui, sans-serif;
      background:#FAFAF7;
      color:#1C1C1E;
      font-size: 17px;
      line-height: 1.65;
      -webkit-font-smoothing: antialiased;
      text-rendering: optimizeLegibility;
    }

    .font-serif { font-feature-settings: "ss01"; }

    .h1 { font-family:'Fraunces',serif; font-weight:300; font-size:56px; line-height:1.05; letter-spacing:-0.02em; }
    .h2 { font-family:'Fraunces',serif; font-weight:400; font-size:40px; line-height:1.12; letter-spacing:-0.01em; }
    .h3 { font-family:'Inter',sans-serif; font-weight:600; font-size:24px; line-height:1.3; letter-spacing:-0.005em; }
    .micro { font-family:'Inter',sans-serif; font-size:11px; font-weight:500; text-transform:uppercase; letter-spacing:0.15em; color:#B08D57; }

    @media (max-width: 767px) {
      .h1 { font-size: 40px; }
      .h2 { font-size: 30px; }
      .h3 { font-size: 20px; }
      body { font-size: 16px; }
    }

    .section-y { padding-top: 120px; padding-bottom: 120px; }
    @media (max-width: 767px) { .section-y { padding-top: 64px; padding-bottom: 64px; } }

    .copper-rule { width:40px; height:1px; background:#B08D57; display:block; }

    /* Reveal on scroll */
    .reveal { opacity: 0; transform: translateY(20px); transition: opacity 600ms ease-out, transform 600ms ease-out; }
    .reveal.is-in { opacity: 1; transform: translateY(0); }

    /* Button */
    .btn {
      display:inline-flex; align-items:center; gap:10px;
      padding: 14px 22px;
      border-radius: 6px;
      font-weight: 500;
      font-size: 15px;
      letter-spacing: 0.01em;
      transition: transform 200ms ease-out, box-shadow 200ms ease-out, background 200ms ease-out, border-color 200ms ease-out, color 200ms ease-out;
      will-change: transform;
    }
    .btn-primary { background:#0A2540; color:#FAFAF7; }
    .btn-primary:hover { transform: translateY(-1px); box-shadow: 0 10px 24px -12px rgba(10,37,64,0.45); background:#0c2b4d; }
    .btn-copper { background:#B08D57; color:#FAFAF7; }
    .btn-copper:hover { transform: translateY(-1px); box-shadow: 0 10px 24px -12px rgba(176,141,87,0.5); background:#bb975f; }
    .btn-ghost-light { border:1px solid rgba(250,250,247,0.5); color:#FAFAF7; background:transparent; }
    .btn-ghost-light:hover { border-color:#FAFAF7; transform: translateY(-1px); }

    /* Card */
    .card {
      background:#fff;
      border: 1px solid #E5E2DC;
      border-radius: 8px;
      transition: border-color 250ms ease-out, box-shadow 250ms ease-out, transform 250ms ease-out;
    }
    .card-hover:hover {
      border-color:#0A2540;
      box-shadow: 0 20px 40px -24px rgba(10,37,64,0.25);
    }

    /* Input */
    .field {
      width:100%;
      background:#FAFAF7;
      border:1px solid #E5E2DC;
      border-radius:6px;
      padding: 12px 14px;
      font-size: 15px;
      color:#1C1C1E;
      transition: border-color 200ms ease-out, background 200ms ease-out;
    }
    .field:focus { outline:none; border-color:#0A2540; background:#fff; }
    .field-label { font-size:11px; text-transform:uppercase; letter-spacing:0.12em; color:#555; font-weight:500; }

    /* Placeholder image */
    .placeholder-img {
      background: repeating-linear-gradient(135deg, #F2F0EC 0px, #F2F0EC 14px, #ece9e2 14px, #ece9e2 15px);
      position: relative;
      overflow:hidden;
    }
    .placeholder-img::after {
      content: attr(data-label);
      position:absolute; inset:auto 0 0 0;
      padding: 10px 14px;
      font-family:'JetBrains Mono', monospace;
      font-size: 10px;
      letter-spacing: 0.08em;
      color:#8a8578;
      text-transform:uppercase;
    }

    /* Sticky header blur */
    .header-blur {
      backdrop-filter: saturate(160%) blur(14px);
      -webkit-backdrop-filter: saturate(160%) blur(14px);
      background: rgba(250,250,247,0.78);
      border-bottom: 1px solid transparent;
    }
    .header-blur.scrolled { border-bottom-color: #E5E2DC; }

    /* FAQ */
    details > summary { list-style:none; cursor:pointer; }
    details > summary::-webkit-details-marker { display:none; }
    details[open] .faq-plus::before { transform: rotate(90deg); opacity:0; }
    .faq-plus { position:relative; width:14px; height:14px; }
    .faq-plus::before, .faq-plus::after {
      content:""; position:absolute; background:#1C1C1E;
      transition: transform 220ms ease-out, opacity 220ms ease-out;
    }
    .faq-plus::before { left:6px; top:0; width:2px; height:14px; }
    .faq-plus::after  { left:0; top:6px; width:14px; height:2px; }

    /* Hero ghost bus */
    .hero-bg {
      background:
        radial-gradient(1200px 600px at 85% 10%, rgba(10,37,64,0.06), transparent 60%),
        linear-gradient(180deg, #FAFAF7 0%, #F2F0EC 100%);
    }

    /* Marquee / scroller for mobile fleet */
    .scroll-x { scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; }
    .scroll-x > * { scroll-snap-align: start; }

    /* Focus */
    :focus-visible { outline: 2px solid #0A2540; outline-offset: 3px; border-radius: 4px; }

    /* Underline link */
    .u-link { position:relative; padding-bottom: 2px; }
    .u-link::after {
      content:""; position:absolute; left:0; bottom:0; height:1px; width:100%;
      background: currentColor; transform: scaleX(0); transform-origin: left;
      transition: transform 250ms ease-out;
    }
    .u-link:hover::after { transform: scaleX(1); }

    /* Mobile bottom bar spacing */
    @media (max-width: 767px) { body { padding-bottom: 64px; } }

    /* Reduce chroma of logos row */
    .logo-chip {
      height: 42px;
      border: 1px solid #E5E2DC;
      color:#8a8578;
      font-family:'Fraunces', serif;
      font-weight: 400;
      font-size: 15px;
      letter-spacing: 0.05em;
      background:#FAFAF7;
      transition: color 200ms, border-color 200ms;
    }
    .logo-chip:hover { color:#1C1C1E; border-color:#c9c4ba; }

    /* Fleet image tones */
    .img-tone-a { background: linear-gradient(135deg, #EFECE6 0%, #E2DED4 100%); }
    .img-tone-b { background: linear-gradient(135deg, #E9E6DF 0%, #D8D2C5 100%); }
    .img-tone-c { background: linear-gradient(135deg, #E4E0D6 0%, #CFC8B7 100%); }

    .img-dest {
      background: linear-gradient(180deg, rgba(10,37,64,0.0) 40%, rgba(10,37,64,0.6) 100%),
                  linear-gradient(135deg, #d9d5c9 0%, #b8b3a1 100%);
    }

    /* Destination hover reveal */
    .dest-card .dest-btn {
      opacity: 0; transform: translateY(6px);
      transition: opacity 220ms ease-out, transform 220ms ease-out;
    }
    .dest-card:hover .dest-btn, .dest-card:focus-within .dest-btn {
      opacity: 1; transform: translateY(0);
    }
    .dest-card { transition: transform 250ms ease-out, box-shadow 250ms ease-out; }
    .dest-card:hover { transform: translateY(-3px); box-shadow: 0 20px 40px -24px rgba(10,37,64,0.3); }

    /* Ghost bus illustration */
    .ghost-bus {
      position:absolute; right:-6%; bottom:-4%;
      width: 62%; max-width: 760px;
      opacity: 0.15;
      pointer-events:none;
    }
    @media (max-width: 767px) { .ghost-bus { display:none; } }
  
.smb-chip{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.08em;padding:4px 8px;border:1px solid #E5E2DC;border-radius:4px;color:#6B7280;background:#FFFFFF;cursor:pointer;transition:all .15s}.smb-chip:hover{border-color:#B08D57;color:#B08D57}.smb-chip.active{background:#0A2540;color:#FAFAF7;border-color:#0A2540}
