:root{
  --ink:#1a1a1a;
  --ink-2:#242424;
  --panel:#2a2a2a;
  --paper:#ffffff;
  --paper-2:#f4f4f4;
  --line:#383838;
  --amber:#e01b24;
  --amber-dark:#b3141b;
  --amber-tint:#fdeced;
  --text-on-dark:#ffffff;
  --text-muted-dark:#b3b3b3;
  --text-body:#1a1a1a;
  --text-muted:#5e5e5e;
  --danger:#c23b2f;
  --danger-tint:#fbe7e4;
  --success:#3f7d3a;
  --success-tint:#e9f3e6;
  --footer-bg:#000000;
  --red-light:#ff3b42;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--paper);color:var(--text-body);font-family:'Work Sans',sans-serif;}
h1,h2,h3{font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.02em;margin:0;line-height:1.02;}
.eyebrow{font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.18em;font-size:13px;font-weight:600;color:var(--amber);}
a{color:inherit;text-decoration:none;}
.wrap{max-width:1180px;margin:0 auto;padding:0 32px;}

/* NAV */
header.main{background:var(--ink);border-bottom:1px solid var(--line);position:relative;z-index:20;}
nav.wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;height:76px;}
.logo{white-space:nowrap;font-family:'Archivo Black',sans-serif;color:#fff;font-size:22px;letter-spacing:.01em;display:flex;align-items:center;gap:2px;}
.logo span{color:var(--amber);}
.navlinks{display:flex;gap:22px;}
.navlinks>div{position:relative;}
.navlinks a.top{white-space:nowrap;color:var(--text-on-dark);font-size:14px;font-weight:600;font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.06em;padding:10px 2px;display:inline-block;border-bottom:2px solid transparent;}
.navlinks>div:hover a.top{border-bottom:2px solid var(--amber);color:#fff;}
.navlinks>div.active a.top{border-bottom:2px solid var(--amber);color:#fff;}
.dropdown{display:none;position:absolute;top:100%;left:0;background:var(--panel);border:1px solid var(--line);min-width:230px;padding:10px 0;box-shadow:0 12px 24px rgba(0,0,0,.35);}
.navlinks>div:hover .dropdown{display:block;}
.dropdown a{display:block;padding:9px 18px;font-size:13.5px;color:var(--text-on-dark);}
.dropdown a:hover{background:var(--ink);color:var(--red-light);}
.navright{display:flex;align-items:center;gap:20px;}
.navphone{display:flex;align-items:center;gap:9px;color:var(--text-on-dark);}
.navphone svg{width:19px;height:19px;fill:var(--amber);flex:none;}
.navphone span{white-space:nowrap;display:flex;flex-direction:column;line-height:1.12;font-family:'Barlow Condensed',sans-serif;font-size:20px;font-weight:700;letter-spacing:.02em;}
.navphone small{font-family:'Work Sans',sans-serif;font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted-dark);margin-bottom:1px;}
.navphone:hover{color:#fff;}
.navphone:hover small{color:var(--red-light);}
.navcta{white-space:nowrap;background:var(--amber);color:#fff;font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;font-weight:700;letter-spacing:.04em;font-size:14px;padding:12px 22px;border-radius:2px;}
.navcta:hover{background:var(--amber-dark);}

/* GENERIC PAGE HEADER (non-home pages) */
.pagehead{background:var(--ink);color:#fff;padding:44px 0;}
.pagehead h1{font-size:40px;color:#fff;}
.pagehead p{font-family:'Work Sans',sans-serif;text-transform:none;letter-spacing:0;color:var(--text-muted-dark);font-size:15px;margin-top:10px;max-width:56ch;}
.breadcrumb{font-size:12.5px;color:var(--text-muted-dark);margin-bottom:12px;}
.breadcrumb a:hover{color:var(--amber);}

/* FORM ELEMENTS (shared across booking + all applications) */
.field{margin-bottom:16px;}
.field label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:6px;font-weight:600;}
.field input,.field select,.field textarea{width:100%;border:1px solid #dcdcdc;border-radius:4px;padding:11px 12px;font-size:14.5px;font-family:'Work Sans',sans-serif;background:#fff;color:var(--text-body);}
.field textarea{resize:vertical;min-height:110px;}
.field .hint{font-size:12px;color:var(--text-muted);margin-top:5px;}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;}
.btn-amber{background:var(--amber);color:#fff;border:none;padding:14px 22px;border-radius:4px;font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;font-weight:700;font-size:15px;letter-spacing:.05em;cursor:pointer;}
.btn-amber:hover{background:var(--amber-dark);}
.btn-amber.full{width:100%;}
.btn-outline{background:transparent;color:var(--ink);border:1px solid var(--ink);padding:13px 22px;border-radius:4px;font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;font-weight:700;font-size:14px;letter-spacing:.05em;cursor:pointer;}
.btn-outline:hover{background:var(--ink);color:#fff;}
.fine{font-size:11.5px;color:var(--text-muted);text-align:center;margin-top:10px;}
.card{background:#fff;border:1px solid #e2e2e2;border-radius:6px;padding:28px;}
.formcard{max-width:720px;}
.checkline{display:flex;gap:10px;align-items:flex-start;margin-bottom:14px;font-size:13.5px;color:var(--text-body);}
.checkline input{margin-top:3px;}
/* .ok / .err set colour only. They used to set display:block, which made
   every status box - success and failure alike - visible on page load. */
.form-status{border-radius:4px;padding:14px 16px;font-size:14px;margin-top:16px;display:none;}
.form-status.ok{background:var(--success-tint);color:var(--success);border:1px solid var(--success);}
.form-status.err{background:var(--danger-tint);color:var(--danger);border:1px solid var(--danger);}

/* FOOTER */
footer{background:var(--footer-bg);color:var(--text-muted-dark);padding:50px 0 20px;font-size:13.5px;}
.est-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center;}
.splitgrid{display:grid;grid-template-columns:1.3fr .9fr;gap:48px;}
.footgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:30px;padding-bottom:34px;border-bottom:1px solid var(--line);}
footer h4{font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.06em;color:#fff;font-size:14px;margin-bottom:14px;}
footer a{display:block;margin-bottom:9px;color:var(--text-muted-dark);}
footer a:hover{color:var(--red-light);}
.social{display:flex;gap:10px;margin-top:18px;}
.social a{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;margin:0;border:none;border-radius:6px;background:var(--amber);transition:background .15s;}
.social svg{width:16px;height:16px;fill:#fff;}
.social a:hover{background:var(--amber-dark);}

.footbottom{display:flex;justify-content:space-between;padding-top:18px;flex-wrap:wrap;gap:10px;}

/* SHARED DARK SECTION (fare estimator on Home + Ride With Us) */
section.estimator{background:var(--ink);color:var(--text-on-dark);padding:70px 0;}


/* MOBILE NAV */
.navtoggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:40px;padding:0 10px;background:transparent;border:1px solid var(--line);border-radius:4px;cursor:pointer;}
.navtoggle span{display:block;height:2px;background:#fff;border-radius:2px;transition:transform .2s,opacity .2s;}
body.nav-open .navtoggle span:nth-child(1){transform:translateY(7px) rotate(45deg);}
body.nav-open .navtoggle span:nth-child(2){opacity:0;}
body.nav-open .navtoggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.mobilemenu{display:none;background:var(--ink-2);border-bottom:1px solid var(--line);max-height:calc(100vh - 64px);overflow-y:auto;}
body.nav-open .mobilemenu{display:block;}
.mobilemenu a{display:block;padding:13px 20px;color:var(--text-on-dark);border-bottom:1px solid var(--line);font-size:15px;}
.mobilemenu a.mm-top{background:var(--ink);font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.06em;font-weight:700;font-size:15px;}
.mobilemenu a.mm-sub{padding-left:36px;font-size:14px;color:var(--text-muted-dark);}
.mobilemenu a:hover,.mobilemenu a:focus{color:var(--red-light);}

@media(max-width:1120px){
  nav.wrap{gap:16px;}
  .navlinks{gap:14px;}
  .navlinks a.top{font-size:13px;letter-spacing:.04em;}
  .navphone small{display:none;}
  .navphone span{font-size:18px;}
  .navphone svg{width:17px;height:17px;}
  .navright{gap:14px;}
  .navcta{padding:11px 16px;font-size:13px;}
}
/* the links stop fitting before 1000px once the condensed webfont is slow or
   missing, so the drawer takes over at 1080 */
@media(max-width:1080px){
  .navlinks{display:none;}
  .navtoggle{display:flex;}
  .navright{gap:12px;}
  .navphone small{display:block;}
  .navphone span{font-size:20px;}
}
@media(max-width:1000px){
  .row2,.row3{grid-template-columns:1fr;}
  .footgrid{grid-template-columns:1fr 1fr;}
}
@media(max-width:900px){
  .est-grid,.splitgrid{grid-template-columns:1fr;gap:32px;}
}
@media(max-width:620px){
  .wrap{padding:0 18px;}
  nav.wrap{height:64px;gap:10px;}
  .logo{font-size:19px;}
  .navphone span{display:none;}
  .navphone svg{width:21px;height:21px;}
  .navcta{padding:10px 13px;font-size:12.5px;}
  .navtoggle{width:40px;height:36px;padding:0 9px;}
  .mobilemenu{max-height:calc(100vh - 64px);}
  .card{padding:20px;}
  .footgrid{grid-template-columns:1fr;gap:24px;}
  .footbottom{flex-direction:column;align-items:flex-start;gap:8px;font-size:12px;}
}

/* Address confirmation line, shown under each address box once Google has
   matched what the customer typed. The point is the suburb and postcode: a
   wrong suburb is invisible in "371 Park Rd" but obvious in "Regents Park
   NSW 2143", and on a fixed-price booking that mistake costs us the fare.
   .partial marks a match that came back without a suburb or postcode - still
   usable, but not something to reassure the customer about. */
.addr-confirm{font-size:13px;line-height:1.4;margin-top:6px;min-height:18px;}
.addr-confirm.ok{color:var(--success);}
.addr-confirm.ok::before{content:"\2713\00a0";font-weight:700;}
.addr-confirm.partial{color:var(--text-muted);}

/* Google's autocomplete widget replaces our input, so it has to be dressed to
   match the rest of the form rather than arriving with browser defaults. */
gmp-place-autocomplete{width:100%;display:block;}

/* Phone field: country code beside the number. A fair share of our passengers
   are landing on an international flight, and "0412 345 678" means nothing
   from a foreign handset - the country code is what lets a driver ring them
   and lets them ring back. The select is capped in width so a long country
   name cannot squeeze the number field out on a phone. */
.phonefield{display:flex;gap:8px;}
.phonefield .phonecc{flex:0 0 auto;max-width:44%;min-width:0;}
.phonefield .phonenum{flex:1 1 auto;min-width:0;}
@media(max-width:420px){
  .phonefield{flex-direction:column;gap:6px;}
  .phonefield .phonecc{max-width:100%;}
}

/* Turnstile renders its own widget in here. The min-height reserves the space
   before it loads, so the submit button does not jump down under the reader's
   thumb as they reach for it. Collapses to nothing when unconfigured. */
.human-check:not(:empty){min-height:65px;}


/* CONTENT / POLICY PAGES
   Shared by privacy-policy, payment-dispute-terms, about-us and
   fixed-fare-trial. Kept here rather than inline so the next policy page does
   not become a fifth copy of the same rules. */
.doc{max-width:820px;}
.doc-lead{font-size:17px;line-height:1.7;color:var(--text-muted);margin-bottom:26px;}
.doc-sec{margin:34px 0;}
.doc-sec h2{font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.4px;font-size:24px;color:var(--ink);margin-bottom:12px;}
.doc-sec h3{font-size:16px;color:var(--ink);margin:20px 0 8px;}
.doc-sec p,.doc-sec li{font-size:15px;line-height:1.75;color:var(--text-muted);}
.doc-sec ul{margin:10px 0 0 20px;}
.doc-sec li{margin-bottom:8px;}
.doc-sec a,.doc-callout a{color:var(--amber-dark);text-decoration:underline;}
.doc-callout{border-left:4px solid var(--amber-dark);background:var(--paper-2);padding:16px 20px;margin:22px 0;border-radius:0 8px 8px 0;}
.doc-callout p{margin:0;font-size:15px;line-height:1.7;color:var(--ink);}
.doc-callout p + p{margin-top:10px;}
.doc-warn{border-left-color:var(--danger);background:var(--danger-tint);}
.doc-quote{font-size:15px;line-height:1.9;color:var(--ink);background:var(--paper-2);border-radius:10px;padding:20px;}
.doc-updated{font-size:13px;color:var(--text-muted);border-top:1px solid #e2e2e2;padding-top:18px;margin-top:40px;}
.doc-figs{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:26px 0 30px;}
.doc-figs .cell{border-radius:10px;padding:22px;background:var(--paper-2);}
.doc-figs .amt{font-family:'Archivo Black',sans-serif;font-size:38px;color:var(--ink);display:block;line-height:1;}
.doc-figs .who{font-size:14px;color:var(--text-muted);margin-top:10px;line-height:1.55;}
@media(max-width:640px){.doc-figs{grid-template-columns:1fr;}}
