  :root{
    /* surfaces */
    --paper:#FFFFFF;
    --paper-soft:#F4F6F8;
    --wash:#EAF0F8;
    --wash-deep:#DCE6F3;
    --line:#E1E6EC;
    --line-strong:#CBD3DC;

    /* text */
    --ink:#16202F;
    --ink-soft:#59667A;

    /* brand */
    --navy:#1B2A41;
    --navy-deep:#142032;
    --navy-soft:#2A3D5A;
    --bone:#F2F0EA;
    --bone-dim:#AEBACB;

    /* gold: fill vs. text-on-white */
    --brass:#B08D4F;
    --brass-lift:#C6A05C;
    --brass-ink:#7A5E27;
    --brass-wash:#FBF6EC;

    --f-display:"Bodoni Moda", Georgia, "Times New Roman", serif;
    --f-ui:"Archivo","Helvetica Neue",Arial,sans-serif;

    --gut:clamp(20px,5vw,56px);
    --maxw:1140px;
    --shadow-card:0 1px 2px rgba(22,32,47,.05), 0 6px 18px rgba(22,32,47,.06);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;background:var(--wash);color:var(--ink);
    font-family:var(--f-ui);font-size:17px;line-height:1.62;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;}
  h1,h2,h3,h4{font-family:var(--f-display);font-weight:700;margin:0;line-height:1.12;text-wrap:balance;
    font-optical-sizing:none;font-variation-settings:"opsz" 12;}
  /* Bodoni hairlines go too thin at display sizes: pin a low optical size so strokes stay solid */
  .brand .nm,.cbox .v,.step .num{font-optical-sizing:none;font-variation-settings:"opsz" 11;}
  p{margin:0;}
  .shell{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gut);}
  .eyebrow{font-family:var(--f-ui);font-size:.7rem;font-weight:700;letter-spacing:.2em;
    text-transform:uppercase;color:var(--brass-ink);}
  .eyebrow-on-navy{color:var(--brass);}

  .btn{display:inline-block;font-family:var(--f-ui);font-weight:600;font-size:.88rem;letter-spacing:.02em;
    text-decoration:none;padding:11px 22px;border-radius:3px;border:1px solid var(--brass);
    transition:background .18s ease,color .18s ease,border-color .18s ease;cursor:pointer;}
  .btn-solid{background:var(--brass);color:var(--navy-deep);}
  .btn-solid:hover{background:var(--brass-lift);border-color:var(--brass-lift);}
  .btn-outline{background:transparent;color:var(--brass-ink);border-color:var(--line-strong);}
  .btn-outline:hover{border-color:var(--brass);background:var(--brass-wash);}

  /* ---------------- header ---------------- */
  header.nav{position:sticky;top:0;z-index:60;background:var(--navy);border-bottom:1px solid rgba(255,255,255,.08);}
  .nav-in{display:flex;align-items:center;gap:18px;padding-block:13px;}
  .brand{display:flex;align-items:center;gap:12px;text-decoration:none;margin-right:auto;min-width:0;color:var(--bone);}
  .brand .nm{font-family:var(--f-display);font-weight:700;font-size:1.2rem;white-space:nowrap;}
  .nav-links{display:flex;align-items:center;gap:26px;}
  .nav-links a{font-size:.85rem;font-weight:500;text-decoration:none;color:var(--bone-dim);transition:color .18s ease;}
  .nav-links a:hover{color:var(--bone);}
  @media(max-width:820px){ .nav-links{display:none;} }

  /* ---------------- hero band ---------------- */
  .hero{
    position:relative;color:var(--bone);padding-block:clamp(46px,7vw,84px) 0;
    background-color:var(--navy);
    background-image:
      linear-gradient(100deg, rgba(10,18,32,.90) 0%, rgba(10,18,32,.72) 34%, rgba(10,18,32,.40) 62%, rgba(10,18,32,.16) 100%),
      url("assets/hero.webp");
    background-size:cover;
    background-position:center 58%;
    background-repeat:no-repeat;
  }
  @media(max-width:700px){
    .hero{background-position:46% 70%;
      background-image:
        linear-gradient(180deg, rgba(10,18,32,.90) 0%, rgba(10,18,32,.66) 42%, rgba(10,18,32,.34) 100%),
        url("assets/hero.webp");}
  }
  .hero h1{font-size:clamp(2.2rem,5.2vw,3.6rem);letter-spacing:-.012em;max-width:17ch;
    margin-block:14px 16px;color:#FFF;text-shadow:0 2px 24px rgba(8,14,24,.6);}
  .hero .sub{font-size:clamp(1rem,1.8vw,1.14rem);color:#D2DAE6;max-width:54ch;
    text-shadow:0 1px 12px rgba(8,14,24,.55);}

  /* white booking card, overlapping into the white page below */
  .booker{
    background:var(--paper);color:var(--ink);
    border-radius:7px;margin-top:clamp(26px,4vw,38px);margin-bottom:-58px;
    box-shadow:0 20px 44px rgba(9,14,24,.30);position:relative;z-index:5;overflow:hidden;
  }
  .bk-grid{display:grid;grid-template-columns:1.35fr 1.1fr 1.1fr auto;gap:1px;background:var(--line);}
  @media(max-width:940px){ .bk-grid{grid-template-columns:1fr 1fr;} .bk-field:first-child{grid-column:1/-1;} }
  @media(max-width:560px){ .bk-grid{grid-template-columns:1fr;} }

  .bk-field{background:var(--paper);padding:14px 18px 15px;display:flex;flex-direction:column;gap:6px;min-width:0;}
  .bk-field > label{font-size:.65rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-soft);}
  .bk-row{display:flex;gap:10px;align-items:center;}
  .bk-row input[type="date"]{flex:1 1 auto;min-width:118px;}
  .bk-row select{flex:0 0 auto;width:auto;min-width:96px;}
  .bk-field input,.bk-field select{
    font-family:var(--f-ui);font-size:.95rem;font-weight:500;color:var(--ink);
    border:0;background:transparent;padding:2px 0;min-width:0;width:100%;
    border-bottom:1px solid transparent;
  }
  .bk-field input:focus,.bk-field select:focus{outline:none;border-bottom-color:var(--brass);}
  .bk-field select{cursor:pointer;}
  .bk-go{background:var(--paper);display:grid;padding:10px;}
  .bk-go button{
    font-family:var(--f-ui);font-weight:700;font-size:.95rem;letter-spacing:.02em;
    background:var(--navy);color:#FFF;border:0;border-radius:4px;
    padding:0 30px;min-height:58px;cursor:pointer;transition:background .18s ease;white-space:nowrap;
  }
  .bk-go button:hover{background:var(--navy-soft);}
  @media(max-width:940px){ .bk-go{grid-column:1/-1;} }

  .bk-strip{
    display:flex;flex-direction:column;gap:8px;
    background:var(--paper-soft);padding:16px 20px;border-top:1px solid var(--line);
  }
  .bk-strip span{display:flex;align-items:flex-start;gap:9px;font-size:.84rem;color:var(--ink-soft);font-weight:500;line-height:1.45;}
  .bk-strip svg{flex:none;margin-top:5px;}

  /* ---------------- sections ---------------- */
  section{padding-block:clamp(50px,7vw,80px);}
  #cars{padding-top:clamp(96px,11vw,140px);}
  .band{background:var(--wash-deep);border-block:1px solid var(--line-strong);}
  .band-navy{background:var(--navy);border-block:0;color:var(--bone);}
  .band-navy h2,.band-navy h3{color:#FFF;}
  .band-navy .sec-head p,.band-navy .step p{color:#C3CDDC;}
  .band-navy .sec-head p.eyebrow{color:var(--brass);}
  .band-navy .step .num{background:transparent;color:var(--brass);border-color:var(--brass);}
  .sec-head{display:flex;flex-direction:column;gap:11px;margin-bottom:clamp(26px,4vw,40px);max-width:58ch;}
  .sec-head h2{font-size:clamp(1.8rem,4vw,2.6rem);}
  .sec-head p{color:var(--ink-soft);}

  .quote-note{margin-bottom:22px;font-size:.88rem;color:var(--ink-soft);}
  .quote-note b{color:var(--brass-ink);font-weight:700;}

  /* ---------------- fleet ---------------- */
  .fleet{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:26px;}
  .car{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--paper);
    display:flex;flex-direction:column;box-shadow:var(--shadow-card);
    transition:border-color .2s ease,box-shadow .2s ease;}
  .car:hover{border-color:var(--line-strong);box-shadow:0 2px 4px rgba(22,32,47,.06),0 12px 28px rgba(22,32,47,.10);}
  .car-photo{
    aspect-ratio:16/10;max-width:100%;background:var(--paper-soft);
    display:grid;place-items:center;padding:10px 16px;border-bottom:1px solid var(--line);
  }
  .car-photo img{width:100%;height:100%;object-fit:contain;}
  .car-body{padding:20px 22px 24px;display:flex;flex-direction:column;gap:15px;flex:1;}
  .car h3{font-size:1.4rem;}
  .car .meta{font-size:.82rem;color:var(--ink-soft);}
  .car dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:.86rem;
    border-top:1px solid var(--line);padding-top:14px;}
  .car dt{color:var(--ink-soft);}
  .car dd{margin:0;text-align:right;font-variant-numeric:tabular-nums;font-weight:500;}

  .quote{border-top:1px solid var(--line);padding-top:15px;margin-top:auto;
    display:flex;flex-direction:column;gap:5px;}
  .quote .total{display:flex;align-items:baseline;gap:11px;flex-wrap:wrap;}
  /* numbers in the UI face: Bodoni's 4 and 1 are near-identical at this size */
  .quote .amt{font-family:var(--f-ui);font-size:1.9rem;font-weight:700;color:var(--ink);line-height:1;
    letter-spacing:-.01em;font-variant-numeric:tabular-nums;}
  .quote .for{font-size:.85rem;color:var(--ink-soft);}
  .quote .rate{font-size:.8rem;color:var(--ink-soft);font-variant-numeric:tabular-nums;}
  .quote .save{font-size:.8rem;color:var(--brass-ink);font-weight:700;}
  .car .btn{align-self:flex-start;}

  .third{margin-top:24px;border:1px dashed var(--line-strong);border-radius:6px;padding:18px 22px;
    color:var(--ink-soft);font-size:.92rem;background:var(--paper-soft);}

  /* ---------------- steps ---------------- */
  .steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:30px;}
  .step{display:flex;flex-direction:column;gap:10px;}
  .step .num{font-family:var(--f-display);font-size:.9rem;font-weight:700;color:var(--brass-ink);
    border:1px solid var(--brass);width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
    background:var(--paper);}
  .step h3{font-size:1.18rem;}
  .step p{color:var(--ink-soft);font-size:.93rem;}

  /* ---------------- compare ---------------- */
  .compare{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:24px;}
  .comp{background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--brass);
    border-radius:5px;padding:22px 22px;display:flex;flex-direction:column;gap:8px;}
  .comp h3{font-size:1.18rem;}
  .comp p{font-size:.93rem;color:var(--ink-soft);}

  /* ---------------- faq ---------------- */
  .faq{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:6px;overflow:hidden;
    background:var(--paper);}
  details{border-bottom:1px solid var(--line);}
  details:last-child{border-bottom:0;}
  summary{cursor:pointer;list-style:none;padding:17px 22px;font-weight:600;font-size:1rem;
    display:flex;justify-content:space-between;gap:16px;align-items:center;}
  summary::-webkit-details-marker{display:none;}
  summary::after{content:"+";color:var(--brass-ink);font-size:1.3rem;line-height:1;flex:none;}
  details[open] summary::after{content:"\2013";}
  details p{padding:0 22px 19px;color:var(--ink-soft);font-size:.94rem;max-width:70ch;}

  /* ---------------- contact ---------------- */
  .contact{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:30px;align-items:start;}
  .cbox{display:flex;flex-direction:column;gap:7px;}
  .cbox .k{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brass-ink);font-weight:700;}
  .cbox .v{font-family:var(--f-display);font-size:1.4rem;font-weight:700;}
  .cbox .n{font-size:.88rem;color:var(--ink-soft);}
  /* phone & email in the UI face: Bodoni's digits are too easy to misread,
     and a long address needs to be able to break */
  .cbox .v.vc{font-family:var(--f-ui);font-size:1.12rem;font-weight:700;letter-spacing:-.005em;
    line-height:1.3;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;}
  /* underline so it reads as tappable, the way the KBW contact links do */
  .cbox .v.vc a{text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line-strong);
    padding-bottom:2px;transition:color .18s ease,border-color .18s ease;}
  .cbox .v.vc a:hover{color:var(--brass-ink);border-bottom-color:var(--brass);}

  .actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:clamp(26px,4vw,36px);}
  .actions .btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;}
  #request .actions{margin-top:9px;margin-bottom:0;}
  @media(max-width:460px){ .actions{flex-direction:column;align-items:stretch;} }
  .todo{background:var(--brass-wash);border:1px solid var(--brass);color:var(--brass-ink);
    font-family:var(--f-ui);font-weight:700;font-size:.8rem;padding:2px 9px;border-radius:3px;
    display:inline-block;letter-spacing:.01em;}

  #request{margin-bottom:28px;border:1px solid var(--brass);border-radius:6px;
    background:var(--brass-wash);padding:19px 22px;display:flex;flex-direction:column;gap:7px;}
  #request h3{font-size:1.25rem;color:var(--brass-ink);}
  #request p{font-size:.94rem;}
  #request .line{font-size:.9rem;color:var(--ink-soft);font-variant-numeric:tabular-nums;}

  /* ---------------- footer ---------------- */
  footer{background:var(--navy);color:var(--bone-dim);padding-block:32px 38px;}
  .foot{display:flex;flex-wrap:wrap;gap:16px 30px;align-items:center;justify-content:space-between;}
  .foot p{font-size:.8rem;}
  .foot .by{font-size:.76rem;color:#8394AB;}
  .foot .by a{color:var(--brass);text-decoration:none;}

  [hidden]{display:none !important;}

  a:focus-visible,summary:focus-visible,.btn:focus-visible,button:focus-visible,
  input:focus-visible,select:focus-visible{outline:2px solid var(--brass);outline-offset:3px;border-radius:2px;}
  @media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;}*{transition:none !important;animation:none !important;}}
