/* ============================================================
   A1 Taxis Toolkit — section styles
   Ported from the approved static prototype. Everything is scoped
   under .a1 (emitted by every widget) so nothing here can collide
   with the theme's own .btn / .wrap / .logo rules.
   Uber Base tokens: grayscale #F6F6F6 → #141414, yellow400 #FFC043,
   type 60/48/24/18/16, radius 8px, 48px controls, 1280 container.
   ============================================================ */

.a1{
  /* colour — Uber Base grayscale */
  --white:#ffffff;
  --gray50:#f6f6f6;    /* alternating section ground, inputs */
  --gray100:#eeeeee;   /* hover on grey surfaces */
  --gray200:#e2e2e2;   /* hairlines */
  --gray300:#cbcbcb;
  --gray400:#afafaf;
  --gray500:#757575;
  --gray600:#545454;   /* body copy on white */
  --gray700:#333333;
  --gray900:#141414;
  --black:#000000;
  /* Brand. The logo green is 2.9:1 on white, so it is used for marks and
     rules only; --brand-deep (5.2:1) carries white text on green bands. */
  --brand:#60a926;
  --brand-deep:#3f7a17;
  --brand-tint:#f6f6f6;   /* neutral, was a pale green — see note below */
  --yellow:var(--brand);   /* legacy alias */

  /* type */
  --font:'Rubik','Helvetica Neue',Helvetica,Arial,sans-serif;
  --t-h1:clamp(44px,6.2vw,76px);
  --t-h2:clamp(32px,4.4vw,54px);
  --t-h3:24px;
  --t-h4:18px;
  --t-lg:18px;
  --t-md:16px;
  --t-sm:14px;

  /* layout */
  --max:1280px;
  --gut:clamp(24px,4vw,48px);
  --sec:clamp(64px,8vw,96px);
  --radius:8px;

  color:var(--black);
  font-family:var(--font);
  font-size:var(--t-lg);
  font-weight:400;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}

.a1 *,.a1 *::before,.a1 *::after{box-sizing:border-box}
.a1 a{color:inherit}
.a1 img{display:block;max-width:100%;height:auto}
.a1 :focus-visible{outline:2px solid currentColor;outline-offset:3px;border-radius:2px}

/* Off-screen for sighted users, still read by screen readers and search engines */
.a1 .vh{
  position:absolute;
  width:1px;height:1px;
  margin:-1px;padding:0;border:0;
  clip-path:inset(50%);
  overflow:hidden;
  white-space:nowrap;
}

/* position:sticky can only travel inside its containing block, and Elementor
   nests the header five levels deep in wrappers that are each exactly the
   header's own height (measured: 69px, all of them). So the bar scrolled away
   with the page. Taking that whole chain out of layout makes <body> the
   containing block, which is what sticky needs. display:contents keeps every
   element in the DOM, so the .a1 design tokens still inherit through it. */
[data-elementor-type="header"],
[data-elementor-type="header"] > .elementor-element,
[data-elementor-type="header"] .elementor-widget-a1_header,
[data-elementor-type="header"] .elementor-widget-a1_header > .elementor-widget-container,
.a1--bare{display:contents}

/* Logged-in users get WordPress's 32px admin bar fixed to the top of the
   viewport, which covered the header. WordPress switches to 46px under 783px
   and stops fixing it, so the offset only applies while it is fixed. */
body.admin-bar .a1 .hdr{top:32px}
body.admin-bar .a1 .hdr__nav.is-open{top:100px}
@media screen and (max-width:782px){
  body.admin-bar .a1 .hdr{top:46px}
  body.admin-bar .a1 .hdr__nav.is-open{top:114px}
}
@media screen and (max-width:600px){
  /* Below 600px the admin bar is not fixed — it scrolls away, so no offset. */
  body.admin-bar .a1 .hdr{top:0}
  body.admin-bar .a1 .hdr__nav.is-open{top:68px}
}

.a1 .wrap{width:100%;max-width:var(--max);margin:0 auto;padding-inline:var(--gut)}

/* ── Headings ──────────────────────────────────────────── */

.a1 h1, .a1 h2, .a1 h3, .a1 h4{
  font-weight:700;
  letter-spacing:-.03em;
  line-height:1.15;
  margin:0;
  text-wrap:balance;
}

.a1 h1{font-size:var(--t-h1);line-height:1.05}

.a1 .sec-h{font-size:var(--t-h2);margin-bottom:16px}
.a1 .sec-h--light{color:var(--white)}

.a1 .sec-p{
  max-width:58ch;
  margin:0 0 clamp(32px,4vw,48px);
  font-size:var(--t-lg);
  color:var(--gray600);
}

/* ── Buttons and links ─────────────────────────────────── */

.a1 .btn{
  display:inline-flex;
  white-space:nowrap;align-items:center;justify-content:center;
  min-height:48px;
  padding:12px 24px;
  border:0;border-radius:var(--radius);
  font-family:var(--font);
  font-size:var(--t-md);font-weight:500;
  text-decoration:none;
  cursor:pointer;
  transition:background .15s ease,color .15s ease;
}
.a1 .btn--dark{background:var(--black);color:var(--white)}
.a1 .btn--dark:hover{background:var(--brand-deep)}
.a1 .btn--grey{background:var(--gray50);color:var(--black)}
.a1 .btn--grey:hover{background:var(--gray100)}
.a1 .btn--sm{min-height:40px;padding:9px 18px;font-size:var(--t-md)}

.a1 .tlink{
  align-self:center;
  font-size:var(--t-md);font-weight:500;
  text-decoration:underline;
  text-underline-offset:4px;
  text-decoration-thickness:1px;
}
.a1 .tlink:hover{text-decoration-thickness:2px}

/* ── Header ────────────────────────────────────────────── */

.a1 .hdr{
  position:sticky;top:0;z-index:100;
  background:var(--white);
  border-bottom:1px solid var(--gray200);
}
.a1 .hdr__in{
  display:flex;align-items:center;gap:28px;
  height:68px;
  max-width:var(--max);margin:0 auto;
  padding-inline:var(--gut);
}

.a1 .logo{
  font-size:20px;font-weight:700;letter-spacing:-.03em;
  text-decoration:none;white-space:nowrap;
}
.a1 .logo span{font-weight:400;color:var(--gray500)}

.a1 .hdr__nav{display:flex;gap:4px}
.a1 .hdr__nav a{
  padding:8px 12px;border-radius:var(--radius);
  font-size:var(--t-md);font-weight:500;text-decoration:none;
  transition:background .15s ease;
}
.a1 .hdr__nav a:hover{background:var(--gray50)}

.a1 .hdr__end{display:flex;align-items:center;gap:8px;margin-left:auto}
.a1 .hdr__link{
  padding:8px 12px;border-radius:var(--radius);
  font-size:var(--t-md);font-weight:500;text-decoration:none;
}
.a1 .hdr__link:hover{background:var(--gray50)}

.a1 .hdr__burger{
  display:none;
  width:44px;height:44px;
  padding:0;
  background:var(--white);
  border:1px solid var(--gray200);border-radius:var(--radius);
  cursor:pointer;
}
.a1 .hdr__burger span{
  display:block;width:18px;height:1.6px;margin:3.5px auto;
  background:var(--black);
  transition:opacity .15s ease,transform .15s ease;
}
.a1 .hdr__burger[aria-expanded="true"] span:nth-child(1){transform:translateY(5.1px) rotate(45deg)}
.a1 .hdr__burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.a1 .hdr__burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-5.1px) rotate(-45deg)}

/* ── Section photographs ───────────────────────────────── */

.a1 .shot{
  margin:0;
  width:100%;
  height:auto;
  object-fit:cover;
  background:var(--gray50);
  border-radius:var(--radius);
}
.a1 .shot--hero{aspect-ratio:4/3}
.a1 .shot--4x3{aspect-ratio:4/3}
.a1 .shot--16x10{aspect-ratio:16/10}

/* ── Hero ──────────────────────────────────────────────── */

.a1 .hero{padding-block:clamp(32px,4.5vw,56px) clamp(48px,6vw,80px)}
.a1 .hero__in{
  max-width:var(--max);margin:0 auto;
  padding-inline:var(--gut);
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(32px,5vw,64px);
  align-items:center;
}
.a1 .hero__lede{
  max-width:46ch;
  margin:24px 0 0;
  font-size:clamp(18px,1.5vw,22px);
  line-height:1.45;
  color:var(--gray600);
}

/* The lead photo bleeds off the right edge on wide screens — the single
   biggest reason the page read as a boxed template rather than a layout. */
@media (min-width:1100px){
  .a1 .hero__in{
    grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
    gap:clamp(40px,5vw,72px);
    align-items:center;
  }
  .a1 .hero{overflow-x:clip}          /* clip, not hidden: keeps sticky working */
  .a1 .hero__in > .shot--hero{
    /* An <img> is a replaced element, so width:auto sizes it to the file's own
       width rather than stretching. The extra width has to be explicit. */
    --bleed:calc((100vw - min(100vw, var(--max))) / 2 + var(--gut));
    width:calc(100% + var(--bleed));
    max-width:none;
    border-radius:var(--radius) 0 0 var(--radius);
    aspect-ratio:auto;
    min-height:clamp(420px,46vw,600px);
    object-fit:cover;
  }
}

/* Fare request form */
.a1 .quote{margin-top:32px;max-width:460px}
.a1 .quote__field{position:relative;margin-bottom:10px}
.a1 .quote__field input{
  width:100%;
  min-height:52px;
  padding:14px 16px 14px 44px;
  font-family:var(--font);font-size:var(--t-md);color:var(--black);
  background:var(--gray50);
  border:1px solid transparent;border-radius:var(--radius);
  appearance:none;
}
.a1 .quote__field input::placeholder{color:var(--gray500)}
.a1 .quote__field input:focus{background:var(--white);border-color:var(--black);outline:none}

.a1 .quote__ico{
  position:absolute;left:16px;top:50%;
  width:14px;height:14px;
  transform:translateY(-50%);
  fill:var(--black);
  pointer-events:none;
}

.a1 .quote__row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.a1 .quote__row .quote__field input{padding-left:16px}

/* Pick-up date. The browser's own calendar button is a 16px target at the end
   of the field, so the script makes the whole box open the picker.

   Whether we also draw our own mark depends on the browser, and the script
   measures rather than guesses (see nativeButtonReplaceable): Chrome has a
   button and hides it when asked, so ours replaces it; Safari draws none, so
   ours is the only one; Firefox draws one that no rule can reach, so ours would
   be the second icon on the row and is left off. Hence two classes, and a mark
   that is hidden until one of them says otherwise. */
.a1 .quote__field--date.is-tap input,
.a1 .quote__field--date.is-tap-plain input{cursor:pointer}
.a1 .quote__field--date.is-tap input{padding-right:42px}
.a1 .quote__field--date.is-tap input::-webkit-calendar-picker-indicator{display:none}
.a1 .quote__field--date.is-tap input::-webkit-inner-spin-button{display:none}
.a1 .quote__cal{
  position:absolute;right:15px;top:50%;
  width:16px;height:16px;
  transform:translateY(-50%);
  fill:none;stroke:var(--black);stroke-width:1.5;
  stroke-linecap:round;stroke-linejoin:round;
  pointer-events:none;
  display:none;
}
.a1 .quote__field--date.is-tap .quote__cal{display:block}

/* Used only by that measurement: two off-screen date inputs are compared, and
   the one carrying this class is narrower wherever hiding the button works. */
.a1-datep::-webkit-calendar-picker-indicator{display:none}

/* App store badges. Apple's badge is trimmed to the artwork while Google's
   carries its own padding, so they are sized to match by eye, not by number. */
.a1 .app__badges{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:28px 0 0}
.a1 .app__badges a{display:inline-flex;line-height:0}
.a1 .app__badges img{display:block;width:auto;height:auto}
.a1 .app__badge--ios img{height:48px}
.a1 .app__badge--android img{height:62px;margin:-7px 0}
.a1 .app__soon{margin-top:22px;font-size:var(--t-sm);color:var(--gray600)}

/* Address suggestions. The field is already position:relative for its icon,
   so the list hangs off that. z-index clears the hero photograph. */
.a1 .quote__sug{
  position:absolute;left:0;right:0;top:calc(100% + 4px);
  z-index:20;
  margin:0;padding:6px;
  list-style:none;
  max-height:264px;overflow-y:auto;
  background:var(--white);
  border:1px solid var(--gray200);border-radius:var(--radius);
  box-shadow:0 12px 32px rgb(0 0 0 / .12);
}
.a1 .quote__sug li{
  padding:10px 12px;
  font-size:var(--t-md);line-height:1.35;
  border-radius:6px;
  cursor:pointer;
}
.a1 .quote__sug li.is-on,
.a1 .quote__sug li:hover{background:var(--gray50)}
/* Attribution line under Google's results: not an option, not clickable. */
.a1 .quote__sug li.quote__sug-by,
.a1 .quote__sug li.quote__sug-by:hover{
  padding:4px 12px 2px;
  font-size:11px;line-height:1.2;
  color:var(--gray500);
  text-align:right;
  cursor:default;
  background:transparent;
}

/* Pick-up time: a list, so it matches the text fields rather than the
   browser's own select chrome. The chevron is ours, hence appearance:none. */
.a1 .quote__field select{
  width:100%;
  min-height:52px;
  padding:14px 40px 14px 16px;
  font-family:var(--font);font-size:var(--t-md);color:var(--black);
  background:var(--gray50);
  border:1px solid transparent;border-radius:var(--radius);
  appearance:none;-webkit-appearance:none;
  cursor:pointer;
}
.a1 .quote__field select:focus{background:var(--white);border-color:var(--black);outline:none}
.a1 .quote__chev{
  position:absolute;right:16px;top:50%;
  width:12px;height:8px;
  transform:translateY(-50%);
  fill:none;stroke:var(--black);stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round;
  pointer-events:none;
}

.a1 .quote__act{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.a1 .quote__note{
  margin:16px 0 0;
  font-size:var(--t-sm);line-height:1.5;
  color:var(--gray600);
}
.a1 .quote__note.is-ok{color:var(--black);font-weight:500}

/* ── Split sections (image + copy) ─────────────────────── */

.a1 .split{padding-block:var(--sec)}
.a1 .split__in{
  max-width:var(--max);margin:0 auto;
  padding-inline:var(--gut);
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(32px,5vw,64px);
  align-items:center;
}
.a1 .split__copy h2{font-size:var(--t-h2)}
.a1 .split__copy p{
  max-width:50ch;
  margin:20px 0 0;
  font-size:var(--t-lg);
  color:var(--gray600);
}
.a1 .split__act{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:32px}

/* ── Airports we cover ─────────────────────────────────── */

.a1 .dest{
  padding-block:var(--sec);
  background:var(--brand-tint);
}
.a1 .dest__grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(16px,2vw,24px);
}
.a1 .dest__card{
  display:flex;flex-direction:column;align-items:flex-start;
  padding:clamp(20px,2.4vw,28px);
  background:var(--white);
  border:1px solid var(--gray200);
  border-radius:var(--radius);
}
.a1 .dest__code{
  display:inline-block;
  padding:4px 10px;
  border-radius:4px;
  background:var(--brand-deep);
  color:var(--white);
  font-size:var(--t-sm);font-weight:600;letter-spacing:.08em;
}
.a1 .dest__card h3{margin:10px 0 0;font-size:var(--t-h3)}
.a1 .dest__meta{
  margin:8px 0 0;
  font-size:var(--t-md);font-weight:500;
}
.a1 .dest__card p{margin:8px 0 0;font-size:var(--t-md);color:var(--gray600)}
.a1 .dest__card .tlink{margin-top:20px;align-self:flex-start}

.a1 .dest__incl{
  margin-top:clamp(20px,2.4vw,24px);
  padding:clamp(24px,3vw,36px);
  background:var(--black);
  color:var(--white);
  border-radius:var(--radius);
}
.a1 .dest__incl h3{font-size:var(--t-h3)}
.a1 .dest__incl ul{
  list-style:none;
  margin:20px 0 28px;padding:0;
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px 32px;
}
.a1 .dest__incl li{
  position:relative;
  padding-left:28px;
  font-size:var(--t-md);color:var(--gray300);
}
.a1 .dest__incl li::before{
  content:"";position:absolute;left:0;top:7px;
  width:14px;height:8px;
  border-left:2px solid var(--yellow);
  border-bottom:2px solid var(--yellow);
  transform:rotate(-45deg);
}
.a1 .dest__incl .btn{background:var(--white);color:var(--black)}
.a1 .dest__incl .btn:hover{background:var(--gray200)}

/* ── Fleet — dark band, rows reveal on scroll ──────────── */

.a1 .fleet{
  padding-block:clamp(80px,9vw,128px);
  background:var(--black);
  color:var(--white);
}
.a1 .fleet__list{
  margin:0;padding:0;
  list-style:none;
  display:grid;
  gap:clamp(64px,8vw,120px);
}
.a1 .fleet__row{
  display:grid;
  grid-template-columns:auto minmax(0,1.5fr) minmax(0,1fr);
  gap:clamp(20px,3vw,48px);
  align-items:center;
}

/* 01/04 */
.a1 .fleet__idx{
  margin:0;
  align-self:start;
  font-size:var(--t-sm);
  font-weight:500;
  color:var(--gray500);
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.a1 .fleet__idx span{
  display:block;
  margin-bottom:2px;
  font-size:32px;
  line-height:1;
  color:var(--white);
}

/* Photo sits square-edged and unframed — the cinematic part */
.a1 .fleet__fig{
  margin:0;
  overflow:hidden;
  background:var(--gray900);
}
.a1 .fleet__fig img{
  display:block;
  width:100%;height:100%;
  aspect-ratio:16/10;
  object-fit:cover;
}

.a1 .fleet__copy h3{
  margin:0;
  font-size:clamp(32px,3.6vw,52px);
  line-height:1.05;
  font-weight:600;
  letter-spacing:-.02em;
}
.a1 .fleet__rule{display:none}
.a1 .fleet__desc{
  margin:20px 0 24px;
  max-width:40ch;
  font-size:var(--t-md);
  color:var(--gray400);
}
.a1 .fleet__specs{
  margin:0 0 28px;
  padding:0;
  list-style:none;
  display:grid;
  gap:10px;
}
.a1 .fleet__specs li{font-size:var(--t-md)}
.a1 .fleet__specs li::before{
  content:"";
  display:inline-block;
  width:5px;height:5px;
  margin-right:12px;
  vertical-align:middle;
  border-radius:50%;
  background:var(--yellow);
}
.a1 .btn--light{background:var(--white);color:var(--black)}
.a1 .btn--light:hover{background:var(--gray200)}
.a1 .btn--light span{margin-left:8px}

/* Reveal on scroll. The hidden start state is applied only once script.js adds
   .is-anim, so with JS off every row is simply visible. */
@media (prefers-reduced-motion:no-preference){
  .a1 .fleet.is-anim .fleet__idx, .a1 .fleet.is-anim .fleet__fig, .a1 .fleet.is-anim .fleet__copy{
    opacity:0;
    transform:translateY(28px);
    transition:opacity .7s cubic-bezier(.22,.61,.36,1),
               transform .7s cubic-bezier(.22,.61,.36,1);
  }
  .a1 .fleet.is-anim .fleet__row.is-in .fleet__idx, .a1 .fleet.is-anim .fleet__row.is-in .fleet__fig, .a1 .fleet.is-anim .fleet__row.is-in .fleet__copy{
    opacity:1;
    transform:none;
  }
  /* photo, then copy, a beat behind the number */
  .a1 .fleet.is-anim .fleet__row.is-in .fleet__fig{transition-delay:.08s}
  .a1 .fleet.is-anim .fleet__row.is-in .fleet__copy{transition-delay:.16s}
}

@media (max-width:860px){
  .a1 .fleet__row{
    grid-template-columns:1fr;
    gap:20px;
  }
  .a1 .fleet__idx{align-self:auto}
  .a1 .fleet__idx span{display:inline;margin-right:6px;font-size:24px}
  .a1 .fleet__copy h3{font-size:clamp(28px,7vw,40px)}
}

/* ── Trust (the one dark band, like Uber's) ────────────── */

.a1 .trust{
  padding-block:clamp(72px,8vw,112px);
  background:var(--brand-deep);
  color:var(--white);
}
.a1 .trust .sec-h{margin-bottom:clamp(32px,4vw,48px)}
.a1 .trust__grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(24px,3vw,40px);
}
/* Icons inherit currentColor, so the same markup works on white cards and on
   the green band. */
.a1 .a1-icon,
.a1 .trust__icon,
.a1 .points__icon{
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.a1 .trust__item{color:var(--white)}
.a1 .trust__icon{width:32px;height:32px;display:block}
.a1 .trust__item h3{margin:16px 0 0;font-size:var(--t-h4)}
.a1 .trust__item p{margin:8px 0 0;font-size:var(--t-md);color:rgba(255,255,255,.88)}

/* ── Areas ─────────────────────────────────────────────── */

.a1 .areas{padding-block:var(--sec);background:var(--gray50)}
.a1 .areas__list{
  list-style:none;margin:0;padding:0;
  display:flex;flex-wrap:wrap;gap:12px;
}
/* ---- Free ride entry ---- */
.a1 .freeride{padding-block:var(--sec)}
.a1 .freeride--grey{background:var(--gray50)}
.a1 .freeride--dark{background:var(--black);color:var(--white)}
.a1 .freeride--dark .sec-h{color:var(--white)}
.a1 .freeride--dark .freeride__lede,
.a1 .freeride--dark .freeride__small{color:var(--gray300)}
.a1 .freeride--dark .quote__field input{background:var(--gray900);color:var(--white)}
.a1 .freeride--dark .btn--dark{background:var(--white);color:var(--black)}
.a1 .freeride__in{max-width:640px}
.a1 .freeride__h{font-size:var(--t-h2);margin-bottom:12px}
.a1 .freeride__lede{margin-bottom:14px}
.a1 .freeride__row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.a1 .freeride__row--code{grid-template-columns:200px auto;align-items:center}
.a1 .freeride__form .quote__field input{
  width:100%;min-height:56px;padding:14px 16px;
  font-family:var(--font);font-size:var(--t-md);color:var(--black);
  background:var(--gray50);border:1px solid transparent;border-radius:var(--radius);
  appearance:none;
}
.a1 .freeride--grey .freeride__form .quote__field input{background:var(--white)}
.a1 .freeride__form .quote__field input:focus{background:var(--white);border-color:var(--black);outline:none}
.a1 .freeride__check{
  display:flex;gap:10px;align-items:flex-start;
  margin-top:14px;font-size:var(--t-sm);line-height:1.45;
}
.a1 .freeride__check input{margin-top:3px;flex:none;width:18px;height:18px;accent-color:var(--brand-deep)}
.a1 .freeride__act{margin-top:20px}
.a1 .freeride__row--code .freeride__act{margin-top:0}
.a1 .freeride__sent{margin:0 0 14px;font-size:var(--t-md)}
.a1 .freeride__note{margin:14px 0 0;font-size:var(--t-sm);color:var(--gray600);min-height:1.4em}
.a1 .freeride__note.is-bad{color:#b00020;font-weight:500}
.a1 .freeride--dark .freeride__note.is-bad{color:#ff8a80}
.a1 .freeride__small{margin:22px 0 0;font-size:13px;line-height:1.6;color:var(--gray500);max-width:60ch}
/* ---- Pick a card ----
   Three cards, one pick, swap freely, then a flip. The outcome was decided by
   the server before any of this, which the terms state plainly — the game is
   there for the moment of choosing, not to decide anything. */
.a1 .freeride__deal{margin:0 0 16px;font-size:var(--t-md);font-weight:500;min-height:1.5em}
.a1 .freeride__cards{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(10px,1.4vw,18px);
}
.a1 .freeride__pick{
  position:relative;
  aspect-ratio:3/4;
  padding:0;border:0;background:none;
  cursor:pointer;
  perspective:900px;
  -webkit-tap-highlight-color:transparent;
}
.a1 .freeride__pick:disabled{cursor:default}
.a1 .freeride__face{
  position:absolute;inset:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  border-radius:14px;
  backface-visibility:hidden;
  transition:transform .55s cubic-bezier(.2,.8,.2,1), box-shadow .2s ease, border-color .2s ease;
}
.a1 .freeride__face--back{
  background:linear-gradient(150deg,var(--gray900),var(--black));
  border:1px solid var(--gray700);
  color:var(--white);
}
.a1 .freeride__face--front{
  background:var(--white);
  border:1px solid var(--gray200);
  color:var(--gray400);
  font-size:38px;font-weight:700;
  transform:rotateY(180deg);
}
.a1 .freeride__lamp svg{
  width:44px;height:22px;
  fill:none;stroke:var(--brand);stroke-width:2;stroke-linejoin:round;
}
.a1 .freeride__num{
  font-size:var(--t-h3);font-weight:700;
  color:var(--gray500);
}
/* Hover and keyboard focus lift the card, so it reads as pickable. */
@media (hover:hover){
  .a1 .freeride__pick:not(:disabled):hover .freeride__face--back{
    transform:translateY(-6px);
    box-shadow:0 16px 34px rgb(0 0 0 / .28);
    border-color:var(--brand);
  }
}
.a1 .freeride__pick:focus-visible .freeride__face--back{outline:2px solid var(--brand);outline-offset:3px}
.a1 .freeride__pick.is-chosen .freeride__face--back{
  transform:translateY(-8px);
  border-color:var(--brand);
  box-shadow:0 18px 38px rgb(96 169 38 / .32);
}
.a1 .freeride__pick.is-chosen .freeride__num{color:var(--brand)}
/* The flip */
.a1 .freeride__pick.is-open .freeride__face--back{transform:rotateY(-180deg)}
.a1 .freeride__pick.is-open .freeride__face--front{transform:rotateY(0)}
.a1 .freeride__pick.is-yours .freeride__face--front{border-color:var(--gray400)}
.a1 .freeride__pick.is-win .freeride__face--front{
  border-color:var(--brand);color:var(--brand);
  box-shadow:0 16px 36px rgb(96 169 38 / .30);
}
.a1 .freeride__pick.is-open:not(.is-yours) .freeride__face--front{opacity:.55}

@media (prefers-reduced-motion:reduce){
  .a1 .freeride__face{transition:none}
}
@media (max-width:420px){
  .a1 .freeride__cards{gap:8px}
  .a1 .freeride__num{font-size:var(--t-h4)}
  .a1 .freeride__lamp svg{width:34px;height:17px}
}

.a1 .freeride__result{
  margin-top:22px;padding:26px;
  background:var(--white);border:1px solid var(--gray200);border-radius:14px;
}
.a1 .freeride__result.is-win{border-color:var(--brand);box-shadow:0 14px 34px rgb(96 169 38 / .18)}
.a1 .freeride__big{margin:0 0 10px;font-size:var(--t-h3);font-weight:600;line-height:1.2}
.a1 .freeride__result.is-win .freeride__big{color:var(--brand-deep)}
.a1 .freeride__voucher{
  margin:0 0 12px;padding:14px 18px;
  background:var(--gray50);border-radius:10px;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:22px;font-weight:700;letter-spacing:.04em;
}
.a1 .freeride__result p:last-child{margin-bottom:0}
@media (max-width:560px){
  .a1 .freeride__row,
  .a1 .freeride__row--code{grid-template-columns:1fr}
}

/* ---- Standalone quote form ---- */
.a1 .quotesec{padding-block:var(--sec)}
.a1 .quotesec--grey{background:var(--gray50)}
.a1 .quotesec__h{font-size:var(--t-h2);margin-bottom:12px}
.a1 .quotesec__lede{margin-bottom:28px}
.a1 .quotesec__in .quote{margin-top:0}
/* Form column width, so it never stretches to 1280px and looks like a barn door. */
.a1 .quotesec--left .quotesec__in{max-width:520px}
.a1 .quotesec--centre .quotesec__in{max-width:560px;margin-inline:auto;text-align:center}
.a1 .quotesec--centre .quotesec__in .quote{text-align:left}
.a1 .quotesec--centre .quotesec__lede{margin-inline:auto}
.a1 .quotesec--centre .quotesec__in .quote__act{justify-content:center}
.a1 .quotesec--full .quotesec__in{max-width:none}
.a1 .quotesec--full .quotesec__in .quote{max-width:none}

/* ---- Booking bar: the quote form as one row, made to sit under a hero ----
   The markup is the same form the hero uses; display:contents lets the date and
   time escape their wrapper row and line up as columns of the bar. Browsers
   without it fall back to the stacked form, which is not a failure. */
/* The bar belongs to the hero above it, so the hero's own bottom padding is the
   whole gap — a var(--sec) on top of that put 176px of white between the two.
   Below it, the standard section spacing separates it from what follows. */
.a1 .quotesec--bar{padding-top:0;padding-bottom:var(--sec)}
.a1 .quotesec--bar .quotesec__in{
  padding:clamp(16px,1.6vw,22px);
  background:var(--white);
  border:1px solid var(--gray200);border-radius:16px;
  box-shadow:0 18px 44px rgb(0 0 0 / .10);
  position:relative;z-index:2;
}
.a1 .quotesec--bar .quotesec__h{
  font-size:var(--t-h4);font-weight:600;
  margin:0 0 12px;padding-inline:4px;
}
.a1 .quotesec--bar .quotesec__lede{
  font-size:var(--t-sm);margin:-6px 0 12px;padding-inline:4px;
}
.a1 .quotesec--bar .quote{
  display:grid;
  grid-template-columns:1.15fr 1.15fr .8fr .95fr auto;
  gap:10px;align-items:center;
  max-width:none;margin:0;
}
.a1 .quotesec--bar .quote__row{display:contents}
.a1 .quotesec--bar .quote__field{margin:0}
.a1 .quotesec--bar .quote__field input,
.a1 .quotesec--bar .quote__field select{min-height:56px}
.a1 .quotesec--bar .quote__act{margin:0;flex-wrap:nowrap;gap:8px}
.a1 .quotesec--bar .quote__act .btn{white-space:nowrap}
.a1 .quotesec--bar .quote__note{
  grid-column:1 / -1;
  margin:8px 0 0;padding-inline:4px;
}
/* The suggestion list must clear the card, not be clipped by it. */
.a1 .quotesec--bar .quote__sug{z-index:30}

@media (max-width:1080px){
  .a1 .quotesec--bar .quote{grid-template-columns:1fr 1fr;}
  .a1 .quotesec--bar .quote__act{grid-column:1 / -1}
  .a1 .quotesec--bar .quote__act .btn{flex:1 1 auto;justify-content:center}
}
@media (max-width:620px){
  .a1 .quotesec--bar .quote{grid-template-columns:1fr}
  .a1 .quotesec--bar .quotesec__in{border-radius:14px}
}

/* ---- Coverage map: map beside the list ---- */
.a1 .areas__map{
  display:grid;grid-template-columns:1.05fr .95fr;
  gap:clamp(28px,4vw,64px);align-items:center;
}
.a1 .areas__mapfig{margin:0;position:relative}
.a1 .areas__mapimg{width:100%;border-radius:12px;border:1px solid var(--gray200)}
.a1 .areas__mapbadge{
  position:absolute;left:16px;top:16px;
  padding:8px 14px;border-radius:100px;
  background:var(--white);
  font-size:var(--t-sm);font-weight:600;
  box-shadow:0 4px 14px rgb(0 0 0 / .12);
}
.a1 .areas__maplist{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:1fr 1fr;gap:2px 22px;
}
.a1 .areas__maplist a{
  display:flex;align-items:center;gap:9px;padding:8px 0;
  font-size:var(--t-md);color:var(--black);text-decoration:none;
}
.a1 .areas__maplist a::before{
  content:'';flex:none;width:6px;height:6px;border-radius:50%;background:var(--brand);
}
.a1 .areas__maplist a:hover{color:var(--brand-deep)}
.a1 .areas__foot{margin:24px 0 0;font-size:var(--t-sm);color:var(--gray500)}
@media (max-width:880px){
  .a1 .areas__map{grid-template-columns:1fr}
}

/* ---- Type to find ---- */
.a1 .areas__find{max-width:760px}
.a1 .areas__findbox{position:relative;margin:0 0 18px}
.a1 .areas__findbox input{
  width:100%;min-height:60px;padding:16px 20px 16px 52px;
  font-family:var(--font);font-size:var(--t-lg);color:var(--black);
  background:var(--gray50);
  border:1px solid transparent;border-radius:12px;appearance:none;
}
.a1 .areas__findbox input:focus{background:var(--white);border-color:var(--black);outline:none}
.a1 .areas__findico{
  position:absolute;left:20px;top:50%;transform:translateY(-50%);
  width:18px;height:18px;fill:none;stroke:var(--gray500);stroke-width:2;
  stroke-linecap:round;pointer-events:none;
}
.a1 .areas__findhint{margin:0 0 14px;font-size:var(--t-sm);color:var(--gray500)}
.a1 .areas__chips{
  list-style:none;margin:0;padding:0;
  display:flex;flex-wrap:wrap;gap:8px;
}
.a1 .areas__chips a{
  display:block;padding:9px 16px;
  background:var(--gray50);border-radius:100px;
  font-size:var(--t-md);font-weight:500;color:var(--black);text-decoration:none;
}
.a1 .areas__chips a:hover{background:var(--black);color:var(--white)}
.a1 .areas__chips li[hidden]{display:none}
.a1 .areas__none{font-size:var(--t-md);color:var(--gray500)}

/* Grouped columns. The pill list below is kept for pages still built with it. */
.a1 .areas__cols{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(24px,3vw,48px);
}
.a1 .areas__group{
  margin:0 0 14px;
  padding-bottom:12px;
  border-bottom:1px solid var(--gray200);
  font-size:var(--t-sm);font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;
  color:var(--gray600);
}
.a1 .areas__links{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.a1 .areas__links li{font-size:var(--t-md)}
.a1 .areas__links a{
  display:block;
  padding:7px 0;
  color:var(--black);text-decoration:none;
  border-radius:4px;
}
.a1 .areas__links a:hover{text-decoration:underline;text-underline-offset:3px}
.a1 .areas__links a:focus-visible{outline:2px solid var(--black);outline-offset:2px}

@media (max-width:900px){
  .a1 .areas__cols{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:560px){
  .a1 .areas__cols{grid-template-columns:1fr;gap:28px}
}

.a1 .areas__list li{
  display:flex;align-items:center;gap:9px;
  padding:10px 18px;
  background:var(--white);
  border:1px solid var(--gray200);
  border-radius:100px;
  font-size:var(--t-md);font-weight:500;
  transition:border-color .15s ease,background .15s ease;
}
/* A pin dot rather than a bare word, so the list reads as places. */
.a1 .areas__list li::before{
  content:"";
  width:7px;height:7px;
  border-radius:50%;
  background:var(--brand);
  flex:none;
}
.a1 .areas__list li:hover{border-color:var(--brand);background:var(--white)}
.a1 .areas__list a{text-decoration:none;color:inherit}
.a1 .areas__list--link{padding:0}
.a1 .areas__list--link a{display:flex;align-items:center;padding:10px 18px 10px 0}
.a1 .areas__list--link{gap:0}
.a1 .areas__list--link::before{margin-left:18px;margin-right:9px}

/* ── FAQ ───────────────────────────────────────────────── */

.a1 .faq{padding-block:var(--sec);border-top:1px solid var(--gray200)}
.a1 .faq__list{border-top:1px solid var(--gray200)}
.a1 .faq details{border-bottom:1px solid var(--gray200)}
.a1 .faq summary{
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:24px 2px;
  list-style:none;cursor:pointer;
  font-size:var(--t-lg);font-weight:500;letter-spacing:-.01em;
  transition:color .15s ease;
}
.a1 .faq summary:hover{color:var(--brand-deep)}
.a1 .faq details[open] summary{color:var(--brand-deep)}
.a1 .faq summary::-webkit-details-marker{display:none}
.a1 .faq__a{padding:0 clamp(2px,6vw,80px) 24px 2px}
.a1 .faq__a p{margin:0;font-size:var(--t-md);color:var(--gray600)}

.a1 .pm{position:relative;flex:none;width:16px;height:16px}
.a1 .pm::before, .a1 .pm::after{
  content:"";position:absolute;top:50%;left:50%;
  width:16px;height:2px;background:currentColor;
  transform:translate(-50%,-50%);
  transition:transform .18s ease;
}
.a1 .pm::after{transform:translate(-50%,-50%) rotate(90deg)}
.a1 details[open] .pm::after{transform:translate(-50%,-50%) rotate(0deg)}

/* ── Two-panel CTA ─────────────────────────────────────── */

.a1 .panels{padding-block:var(--sec);background:var(--gray50)}
.a1 .panels__in{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(24px,3vw,32px);
}
.a1 .panel h3{margin:24px 0 0;font-size:var(--t-h3)}
.a1 .panel p{margin:12px 0 24px;font-size:var(--t-md);color:var(--gray600);max-width:44ch}

/* ── Footer ────────────────────────────────────────────── */

.a1 .ftr{
  padding-block:clamp(48px,6vw,72px) 0;
  background:var(--black);
  color:var(--white);
}
/* Logo as artwork. The supplied SVG is ~3.9:1, so height drives the size and
   width follows; the explicit width/height on the img keeps the header from
   shifting while it loads. */
.a1 .logo img{
  display:block;
  height:36px;
  width:auto;
  max-width:none;
}
.a1 .logo--ftr img{height:46px}

.a1 .logo--ftr{display:inline-block;margin-bottom:clamp(32px,4vw,48px);font-size:24px}
.a1 .logo--ftr span{color:var(--gray300)}

.a1 .ftr__grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:32px;
}
.a1 .ftr__col h4{font-size:var(--t-h4);margin-bottom:16px}
.a1 .ftr__col ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.a1 .ftr__col li{font-size:var(--t-md);color:var(--gray300)}
.a1 .ftr__col a{text-decoration:none}
.a1 .ftr__col a:hover{text-decoration:underline;text-underline-offset:4px}

.a1 .ftr__base{
  display:flex;flex-wrap:wrap;gap:8px 24px;
  justify-content:space-between;
  margin-top:clamp(40px,5vw,64px);
  padding-block:24px;
  border-top:1px solid var(--gray700);
  font-size:var(--t-sm);color:var(--gray300);
}
.a1 .ftr__base p{margin:0}
.a1 .ftr__base a{text-decoration:none}
.a1 .ftr__base a:hover{text-decoration:underline;text-underline-offset:4px}
.a1 .ftr__base{align-items:center}
.a1 .ftr__base .ftr__credit{
  display:inline-flex;align-items:center;gap:8px;
  padding:5px 14px 5px 5px;border:1px solid var(--gray700);border-radius:999px;
  color:var(--gray300);transition:border-color .2s,color .2s,background-color .2s;
}
.a1 .ftr__base .ftr__credit img{width:24px;height:24px;border-radius:50%;display:block;box-shadow:0 0 0 1px rgba(255,255,255,.35)}
.a1 .ftr__base .ftr__credit strong{color:#fff;font-weight:600}
.a1 .ftr__base .ftr__credit:hover{text-decoration:none;border-color:var(--gray300);background:rgba(255,255,255,.06)}
@media (max-width:640px){.a1 .ftr__base{flex-direction:column;align-items:flex-start}}

/* ── Responsive ────────────────────────────────────────── */

@media (max-width:1080px){
  .a1 .hdr__nav{display:none}
  .a1 .hdr__nav.is-open{
    display:flex;flex-direction:column;gap:0;
    position:fixed;top:68px;left:0;right:0;
    /* Above the booking page's fixed booker, which is also position:fixed. */
    z-index:120;
    max-height:calc(100dvh - 68px);
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    background:var(--white);
    border-bottom:1px solid var(--gray200);
    box-shadow:0 12px 24px rgba(0,0,0,.08);
    padding:8px var(--gut) 20px;
  }
  .a1 .hdr__nav.is-open a{
    padding:16px 2px;border-radius:0;
    border-bottom:1px solid var(--gray200);
    font-size:var(--t-lg);
  }
  .a1 .hdr__nav.is-open a:hover{background:transparent}
  .a1 .hdr__burger{display:block}

  .a1 .dest__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .a1 .trust__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .a1 .ftr__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:860px){
  .a1 .hero__in, .a1 .split__in{grid-template-columns:1fr}
  .a1 .hero__in{gap:32px}
  .a1 .split--flip .split__copy{order:2}
  .a1 .split--flip .shot{order:1}
  .a1 .quote{max-width:none}

}

@media (max-width:620px){
  .a1{font-size:var(--t-md)}
  .a1 .hdr__link{display:none}
  .a1 .dest__grid{grid-template-columns:1fr}
  .a1 .dest__incl ul{grid-template-columns:1fr}
  .a1 .trust__grid{grid-template-columns:1fr}
  .a1 .fleet__copy .btn{width:100%}
  /* Budget at 390px: 342px inner width. Logo 32px reads better and the phone
     button drops to 14px to pay for it, keeping everything on one row. */
  .a1 .logo img{height:32px}
  .a1 .hdr__in{gap:10px}
  .a1 .hdr .btn--sm{
    font-size:var(--t-sm);
    padding:9px 14px;
    min-height:40px;
  }
  .a1 .panels__in{grid-template-columns:1fr}
  .a1 .ftr__grid{grid-template-columns:1fr}
  .a1 .faq summary{font-size:var(--t-md)}
}

/* ── Booking screen (app style) ────────────────────────── */

/* The booker fills everything under the sticky 68px header and the page itself
   does not scroll, so it behaves like an app on phones and desktop alike.
   .a1-app is set on <body> by A1TT_Header_Footer::body_class().
   The widget strips the plugin's inline styles before this runs; the
   !important fallbacks cover the case where its markup changes. */
body.a1-app,
body:has(.a1-book--app){
  overflow:hidden;
  overscroll-behavior:none;
}
/* The booking screen has no footer. When Elementor Pro's theme builder renders
   it we cannot skip it in PHP, so it is hidden here as well as suppressed
   server-side in the non-Pro path. */
body.a1-app .a1 .ftr,
body.a1-app footer[data-elementor-type="footer"],
body:has(.a1-book--app) .a1 .ftr,
body:has(.a1-book--app) footer[data-elementor-type="footer"]{display:none !important}
body.a1-app .a1 .hdr,
body:has(.a1-book--app) .a1 .hdr{position:fixed;left:0;right:0}

/* Square corners in both modes — no rounded card, on any screen size */
.a1 .a1-book .opticab-booker{max-width:none}
.a1 .a1-book .opticab-booker iframe{
  display:block;
  width:100%;
  border:0;
  border-radius:0 !important;
}

/* Full-screen mode */
.a1 .a1-book--app{
  position:fixed;
  top:68px;
  left:0;right:0;
  /* Height, not bottom:0 — on iOS a fixed element's bottom is the layout
     viewport, which sits behind the Safari toolbar. dvh follows the toolbar. */
  height:calc(100vh - 68px);
  height:calc(100dvh - 68px);
  background:var(--gray50);
  padding:0;
  overflow:hidden;
}
body.admin-bar .a1 .a1-book--app{
  top:100px;
  height:calc(100dvh - 100px);
}
@media screen and (max-width:600px){
  body.admin-bar .a1 .a1-book--app{top:68px;height:calc(100dvh - 68px)}
}
.a1 .a1-book--app .opticab-booker iframe{
  position:absolute;
  inset:0;
  width:100% !important;
  height:100% !important;
}

/* Inline mode keeps normal page flow; the height slider drives the iframe. */
.a1 .a1-book{padding-block:0}

/* Honeypot: off-screen rather than display:none, which some bots detect. */
.a1 .quote__trap{
  position:absolute;
  left:-9999px;
  width:1px;height:1px;
  overflow:hidden;
}
.a1 .quote__act{flex-wrap:wrap}
.a1 .quote button[disabled]{opacity:.6;cursor:default}

/* Route strip on the booking page — the journey typed on the home page.
   Sits above the booker in app mode without stealing its height. */
.a1 .a1-route{
  padding:12px var(--gut) 14px;
  background:var(--black);
  color:var(--white);
}
.a1 .a1-route__lead{
  margin:0 0 8px;
  font-size:var(--t-sm);
  font-weight:500;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--gray400);
}
.a1 .a1-route__list{
  margin:0;padding:0;
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 14px;
  font-size:var(--t-md);
  font-weight:500;
}
.a1 .a1-route__list li{display:flex;align-items:center;gap:8px}
.a1 .a1-route__list li::before{
  content:"";
  width:9px;height:9px;
  border-radius:50%;
  background:var(--yellow);
}
.a1 .a1-route__to::before{background:var(--white) !important}
.a1 .a1-route__note{
  margin:8px 0 0;
  font-size:var(--t-sm);
  color:var(--gray400);
}
/* The booker fills whatever the route strip leaves. Done with flex rather than
   a calc(): the strip's height changes with the address length and the viewport,
   and a fixed offset pushed the iframe a few pixels past the bottom edge. */
.a1 .a1-book--app{display:flex;flex-direction:column}
.a1 .a1-book--app .a1-route{flex:0 0 auto}
.a1 .a1-book--app .opticab-booker{
  position:relative;
  flex:1 1 auto;
  min-height:0;
}

/* ── Content block ─────────────────────────────────────── */

.a1 .copy{padding-block:var(--sec)}
.a1 .copy--grey{background:var(--gray50)}
.a1 .copy--dark{background:var(--black);color:var(--white)}
.a1 .copy--dark .sec-p,
.a1 .copy--dark .copy__body{color:var(--gray400)}
.a1 .copy__body{max-width:70ch;font-size:var(--t-lg)}
.a1 .copy__body--two{max-width:none;columns:2;column-gap:clamp(32px,4vw,64px)}
/* Never split a subheading from the paragraph it introduces. */
.a1 .copy__body--two h3,
.a1 .copy__body--two h3 + p{break-inside:avoid}
.a1 .copy__body > :first-child{margin-top:0}
.a1 .copy__body > p:first-of-type{
  font-size:clamp(18px,1.4vw,21px);
  line-height:1.5;
  color:var(--gray700);
}
.a1 .copy--dark .copy__body > p:first-of-type{color:var(--white)}
.a1 .copy__body p{margin:0 0 1em;color:var(--gray600)}
.a1 .copy--dark .copy__body p{color:var(--gray400)}
.a1 .copy__body h3{margin:1.6em 0 .5em;font-size:var(--t-h3);break-after:avoid}
.a1 .copy__body ul,.a1 .copy__body ol{margin:0 0 1em;padding-left:1.1em;color:var(--gray600)}
.a1 .copy--dark .copy__body ul,.a1 .copy--dark .copy__body ol{color:var(--gray400)}
.a1 .copy__body li{margin-bottom:.4em}
.a1 .copy__body a{text-decoration:underline;text-underline-offset:3px}
.a1 .copy__act{margin:clamp(24px,3vw,36px) 0 0}

/* Editorial split: heading and standfirst hold the left column while the copy
   runs down the right. Placed on the grid rather than restructured, so every
   page that already uses this block gets it. */
@media (min-width:900px){
  .a1 .copy .wrap{
    display:grid;
    grid-template-columns:minmax(0,0.8fr) minmax(0,1.2fr);
    /* The first two rows hug their content so the standfirst stays under the
       heading; row three absorbs whatever extra height the copy column needs. */
    grid-template-rows:min-content min-content 1fr min-content;
    column-gap:clamp(40px,6vw,100px);
    align-items:start;
  }
  .a1 .copy .sec-h{grid-column:1;grid-row:1;margin-bottom:14px}
  .a1 .copy .sec-p{grid-column:1;grid-row:2;margin:0;max-width:34ch}
  .a1 .copy__body{grid-column:2;grid-row:1 / span 3;max-width:64ch}
  .a1 .copy__act{grid-column:2;grid-row:4;margin-top:clamp(24px,2.6vw,32px)}
  /* Long single-column documents (privacy, terms) keep the full measure. */
  .a1 .copy--doc .wrap{display:block}
  .a1 .copy--doc .copy__body{max-width:72ch}
}

/* ── Routes table ──────────────────────────────────────── */

.a1 .routes{padding-block:var(--sec);background:var(--brand-tint)}
.a1 .routes__scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.a1 .routes__table{
  width:100%;
  border-collapse:collapse;
  background:var(--white);
  border:1px solid var(--gray200);
  border-radius:var(--radius);
  overflow:hidden;
  font-size:var(--t-md);
  min-width:520px;
}
.a1 .routes__table th,
.a1 .routes__table td{
  padding:14px 18px;
  text-align:left;
  border-bottom:1px solid var(--gray200);
  vertical-align:top;
}
.a1 .routes__table thead th{
  background:var(--brand-deep);
  color:var(--white);
  font-weight:500;
  font-size:var(--t-sm);
  letter-spacing:.04em;
  text-transform:uppercase;
}
.a1 .routes__table tbody th{font-weight:500}
.a1 .routes__table tbody td{color:var(--gray600)}
.a1 .routes__table tbody tr:last-child th,
.a1 .routes__table tbody tr:last-child td{border-bottom:0}
.a1 .routes__note{margin:16px 0 0;font-size:var(--t-sm);color:var(--gray500)}

@media (max-width:860px){
  .a1 .copy__body--two{columns:1}
}

/* ── Points grid ───────────────────────────────────────── */

.a1 .points{padding-block:var(--sec)}
.a1 .points--grey{background:var(--gray50)}
.a1 .points--tint{background:var(--brand-tint)}
.a1 .points--dark{background:var(--black);color:var(--white)}
.a1 .points--dark .sec-p{color:var(--gray400)}

.a1 .points__grid{
  margin:clamp(40px,5vw,64px) 0 0;
  padding:0;
  list-style:none;
  display:grid;
  gap:clamp(36px,4.5vw,64px);
}
.a1 .points--c2 .points__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.a1 .points--c3 .points__grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.a1 .points--c4 .points__grid{grid-template-columns:repeat(4,minmax(0,1fr))}

.a1 .points__item{padding:0}
.a1 .points__mark{
  margin:0 0 20px;
  color:var(--brand-deep);
  line-height:0;
}
.a1 .points--dark .points__mark{color:var(--brand)}
.a1 .points__icon{
  width:40px;height:40px;
  display:block;
  stroke-width:1.5;
}
.a1 .points__num{
  margin:0 0 12px;
  font-size:var(--t-sm);
  font-weight:600;
  letter-spacing:.08em;
  color:var(--brand-deep);
  font-variant-numeric:tabular-nums;
}
.a1 .points--dark .points__num{color:var(--brand)}
.a1 .points__item h3{margin:0;font-size:20px;line-height:1.3;letter-spacing:-.02em}
.a1 .points__body{
  margin:12px 0 0;
  max-width:36ch;
  font-size:var(--t-md);
  line-height:1.55;
  color:var(--gray600);
}
.a1 .points--dark .points__body{color:var(--gray400)}

@media (max-width:1080px){
  .a1 .points--c4 .points__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .a1 .points--c3 .points__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:700px){
  .a1 .points__grid,
  .a1 .points--c2 .points__grid,
  .a1 .points--c3 .points__grid,
  .a1 .points--c4 .points__grid{grid-template-columns:1fr}
}

/* ── Long documents (privacy, terms) ───────────────────── */

/* The title block sits tight to the summary grid that follows it. */
.a1 .copy--doc{padding-block:var(--sec) clamp(24px,3vw,36px)}
.a1 .copy--doc + .points{padding-top:clamp(24px,3vw,36px)}

/* Each clause gets a brand rule, so a page of small print has landmarks. */
.a1 .copy--doc .copy__body h3{
  margin-top:2.4em;
  padding-top:1.1em;
  border-top:1px solid var(--gray200);
  font-size:var(--t-h4);
}
.a1 .copy--doc .copy__body h3:first-child{margin-top:0;padding-top:0;border-top:0}
.a1 .copy__stamp{
  margin-top:2.4em;
  padding-top:1.2em;
  border-top:1px solid var(--gray200);
  font-size:var(--t-sm);
  color:var(--gray500);
}

/* ============================================================
   1.1.0 — home page review (October 2026)
   Everything below is either opt-in through a widget control
   (hero--boxed, points--steps, fleet--cards, split--dark,
   trust--white, the reviews widget) or a fix that holds on
   every page (quote route line, call button, panel button).
   ============================================================ */

/* ── Stars (Google rating) ─────────────────────────────── */

.a1 .stars{position:relative;display:inline-block;flex:none;line-height:0;vertical-align:middle}
.a1 .stars__bg,
.a1 .stars__fg{display:flex;gap:2px;white-space:nowrap}
.a1 .stars__fg{position:absolute;top:0;left:0;bottom:0;overflow:hidden}
.a1 .stars svg{flex:none;width:17px;height:17px}
.a1 .stars__bg svg{fill:var(--gray200)}
.a1 .stars__fg svg{fill:#ffc043}            /* Uber Base yellow400 */
.a1 .stars--sm svg{width:14px;height:14px}

/* ── Hero ──────────────────────────────────────────────── */

.a1 .hero__rating{
  display:inline-flex;align-items:center;gap:10px;
  margin-top:20px;
  font-size:var(--t-sm);color:var(--gray700);
  text-decoration:none;
}
.a1 .hero__rating strong{color:var(--black);font-weight:600}
.a1 .hero__rating:hover span{text-decoration:underline;text-underline-offset:3px}

/* Boxed photograph: inside the 1280 container, top level with the headline,
   rounded on all four corners. Square, because the copy column is tall. */
@media (min-width:1100px){
  .a1 .hero--boxed .hero__in{align-items:start}
  .a1 .hero--boxed .hero__in > .shot--hero{
    width:100%;
    max-width:100%;
    min-height:0;
    aspect-ratio:1/1;
    border-radius:16px;
    margin-top:6px;              /* optical: the H1 cap height sits below its box top */
  }
}

/* ── Quote form ────────────────────────────────────────── */

/* Dot and square big enough to read as marks, not list bullets... */
.a1 .quote__ico{width:18px;height:18px;left:16px}
/* ...and joined by a line, so pick-up and drop-off read as one route. */
.a1 .quote__field--from::after{
  content:"";
  position:absolute;
  left:24.25px;
  top:calc(50% + 8px);
  width:1.5px;
  height:calc(100% - 6px);       /* down across the 10px gap to the square */
  background:var(--black);
  pointer-events:none;
  z-index:1;                     /* the next field is positioned too, and later */
}
/* The one-row booking bar puts the fields side by side: no vertical line. */
.a1 .quotesec--bar .quote__field--from::after{display:none}

/* Today / Tomorrow / Sat 5 Oct over the native 03/10/2026. */
.a1 .quote__field--date.is-friendly input{color:transparent;-webkit-text-fill-color:transparent}
.a1 .quote__field--date.is-friendly input::-webkit-datetime-edit{color:transparent}
.a1 .quote__datelbl{
  position:absolute;left:17px;right:42px;top:50%;
  transform:translateY(-50%);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-size:var(--t-md);color:var(--black);
  pointer-events:none;
}

/* Outlined secondary button with a phone mark — the grey fill vanished
   against the white hero. */
.a1 .btn--line{
  gap:8px;
  background:var(--white);color:var(--black);
  box-shadow:inset 0 0 0 1.5px var(--gray300);
  transition:box-shadow .15s ease;
}
.a1 .btn--line:hover{box-shadow:inset 0 0 0 1.5px var(--black)}
.a1 .btn__ico{
  flex:none;width:18px;height:18px;
  fill:none;stroke:currentColor;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round;
}

/* The note is always in the markup for the script's messages; with no note
   set it takes no space until there is something to say. */
.a1 .quote__note:empty{display:none}

/* ── How booking works: numbered steps ─────────────────── */

.a1 .points__step{position:relative;margin:0 0 22px;line-height:0}
.a1 .points__step span{
  position:relative;z-index:1;
  display:inline-flex;align-items:center;justify-content:center;
  width:48px;height:48px;border-radius:50%;
  background:var(--black);color:var(--white);
  font-size:18px;font-weight:600;line-height:1;
}
.a1 .points--dark .points__step span{background:var(--white);color:var(--black)}
.a1 .points__act{margin:clamp(40px,5vw,56px) 0 0}

@media (min-width:701px){
  .a1 .points--steps.points--c3 .points__grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:1081px){
  /* A line from each number to the next, across the column gap. */
  .a1 .points--steps .points__item:not(:last-child) .points__step::after{
    content:"";
    position:absolute;
    left:64px;
    right:calc(-1 * clamp(36px,4.5vw,64px) + 16px);
    top:50%;
    height:1.5px;
    background:var(--gray300);
  }
}

/* ── Airports: heading button, price, whole-card link ──── */

.a1 .dest__head--btn{
  display:flex;justify-content:space-between;align-items:flex-end;
  gap:20px 48px;
  margin-bottom:clamp(32px,4vw,48px);
}
.a1 .dest__head--btn .sec-p{margin-bottom:0}
.a1 .dest__head--btn > .btn{flex:none}

.a1 .dest__top{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%}
.a1 .dest__card .dest__price{       /* beats .dest__card p */
  margin:0;
  font-size:var(--t-h4);font-weight:600;
  color:var(--black);
  white-space:nowrap;
}

.a1 .dest__card.is-link{
  position:relative;
  transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;
}
.a1 .dest__card.is-link:hover{
  border-color:var(--black);
  box-shadow:0 12px 32px rgb(0 0 0 / .08);
  transform:translateY(-2px);
}
.a1 .dest__card .dest__go{
  margin-top:auto;padding-top:20px;
  text-decoration:none;
}
.a1 .dest__card .dest__go span{display:inline-block;margin-left:4px;transition:transform .15s ease}
.a1 .dest__card.is-link:hover .dest__go span{transform:translateX(3px)}
.a1 .dest__go::after{content:"";position:absolute;inset:0;border-radius:inherit}
.a1 .dest__go:focus-visible{outline:0}
.a1 .dest__card.is-link:has(.dest__go:focus-visible){outline:2px solid var(--black);outline-offset:2px}

@media (max-width:860px){
  .a1 .dest__head--btn{flex-direction:column;align-items:flex-start}
}
/* Phones: six airports stacked ran to 2,400px; a swipeable row like the fleet. */
@media (max-width:620px){
  .a1 .dest__grid{
    grid-template-columns:none;
    grid-auto-flow:column;
    grid-auto-columns:82%;
    gap:12px;
    overflow-x:auto;
    overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;
    margin-inline:calc(-1 * var(--gut));
    padding-inline:var(--gut);
    padding-block:4px;            /* room for the hover lift, no clipped border */
    scroll-padding-inline:var(--gut);
    scrollbar-width:none;
  }
  .a1 .dest__grid::-webkit-scrollbar{display:none}
  .a1 .dest__card{scroll-snap-align:start}
}

/* ── Fleet: ride-picker cards ──────────────────────────── */

.a1 .fleet--cards{padding-block:var(--sec)}
.a1 .fleet--cards .sec-h{margin-bottom:clamp(32px,4vw,48px)}
.a1 .fleet--cards .sec-h:has(+ .sec-p){margin-bottom:12px}
.a1 .fleet--cards .sec-p{color:var(--gray400)}
.a1 .fleet--cards .vh + .fleet__cards{margin-top:0}

.a1 .fleet__cards{
  list-style:none;margin:0;padding:0;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}
.a1 .fleet__cards--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.a1 .fleet__cards--2{grid-template-columns:repeat(2,minmax(0,1fr))}

.a1 .fleet__card{
  display:flex;flex-direction:column;
  background:var(--gray900);
  border:1px solid #262626;
  border-radius:12px;
  overflow:hidden;
}
/* Cropped in on the car: the four photos share one backdrop, so the less of
   it that shows, the less alike they look side by side. */
.a1 .fleet__cardfig{margin:0;aspect-ratio:4/3;overflow:hidden;background:#1d1d1d}
.a1 .fleet__cardfig img{
  width:100%;height:100%;
  object-fit:cover;object-position:50% 72%;
  transform:scale(1.18);transform-origin:50% 72%;
  transition:transform .4s ease;
}
.a1 .fleet__card:hover .fleet__cardfig img{transform:scale(1.24)}

.a1 .fleet__cardbody{display:flex;flex-direction:column;flex:1;padding:20px 20px 22px}
.a1 .fleet__cardhead{display:flex;align-items:center;justify-content:space-between;gap:12px}
.a1 .fleet__cardhead h3{margin:0;font-size:22px;font-weight:600;letter-spacing:-.02em}
.a1 .fleet__caps{display:flex;gap:12px;margin:0;font-size:15px;font-weight:500;color:var(--white)}
.a1 .fleet__caps > span{display:inline-flex;align-items:center;gap:4px}
.a1 .fleet__caps .a1-icon{width:18px;height:18px}
.a1 .fleet__carddesc{margin:10px 0 14px;font-size:15px;line-height:1.5;color:var(--gray400)}
.a1 .fleet__specs--sm{gap:6px;margin:0 0 20px}
.a1 .fleet__specs--sm li{font-size:var(--t-sm);color:var(--gray300)}
.a1 .fleet__card .btn{margin-top:auto;width:100%}

@media (max-width:1080px){
  .a1 .fleet__cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* Phones: a swipeable row rather than four cards stacked a screen apart. */
@media (max-width:700px){
  .a1 .fleet__cards,
  .a1 .fleet__cards--3,
  .a1 .fleet__cards--2{
    grid-template-columns:none;
    grid-auto-flow:column;
    grid-auto-columns:80%;
    gap:12px;
    overflow-x:auto;
    overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;
    margin-inline:calc(-1 * var(--gut));
    padding-inline:var(--gut);
    scroll-padding-inline:var(--gut);
    scrollbar-width:none;
  }
  .a1 .fleet__cards::-webkit-scrollbar{display:none}
  .a1 .fleet__card{scroll-snap-align:start}
}

/* ── Split: background tones ───────────────────────────── */

.a1 .split--grey{background:var(--gray50)}
.a1 .split--dark{background:var(--black);color:var(--white)}
.a1 .split--dark .split__copy p{color:var(--gray400)}
.a1 .split--dark .shot{background:var(--gray900)}

/* ── Trust: white and black tones ──────────────────────── */

.a1 .trust--white{background:var(--white);color:var(--black);border-top:1px solid var(--gray200)}
.a1 .trust--dark{background:var(--black)}
.a1 .trust--white .trust__item{color:var(--black)}
.a1 .trust--white .trust__item p{color:var(--gray600)}
.a1 .trust--dark .trust__item p{color:var(--gray400)}

.a1 .trust--white .trust__icon,
.a1 .trust--dark .trust__icon{
  box-sizing:content-box;
  width:26px;height:26px;
  padding:13px;
  border-radius:50%;
}
.a1 .trust--white .trust__icon{color:var(--brand-deep);background:#eef5e8}
.a1 .trust--dark .trust__icon{color:var(--brand);background:var(--gray900)}

.a1 .trust__note{
  display:flex;align-items:center;gap:10px;
  margin:clamp(36px,4vw,48px) 0 0;
  padding-top:24px;
  border-top:1px solid rgb(255 255 255 / .22);
  font-size:var(--t-md);font-weight:500;
}
.a1 .trust--white .trust__note{border-top-color:var(--gray200)}
.a1 .trust__note .a1-icon{flex:none;width:22px;height:22px}
.a1 .trust--white .trust__note .a1-icon{color:var(--brand-deep)}
.a1 .trust--dark .trust__note .a1-icon{color:var(--brand)}

/* ── Reviews ───────────────────────────────────────────── */

.a1 .reviews{padding-block:var(--sec)}
.a1 .reviews--grey{background:var(--gray50)}
.a1 .reviews__head{
  display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;
  gap:16px 40px;
  margin-bottom:clamp(32px,4vw,48px);
}
.a1 .reviews__head .sec-h{margin:0}
.a1 .reviews__score{display:flex;align-items:center;gap:14px}
.a1 .reviews__num{font-size:52px;font-weight:700;letter-spacing:-.03em;line-height:1}
.a1 .reviews__count{margin:6px 0 0;font-size:var(--t-sm);color:var(--gray600)}

.a1 .reviews__grid{
  list-style:none;margin:0;padding:0;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:16px;
}
.a1 .reviews__card{
  display:flex;flex-direction:column;
  padding:clamp(20px,2.4vw,28px);
  background:var(--white);
  border:1px solid var(--gray200);
  border-radius:12px;
}
.a1 .reviews--white .reviews__card{background:var(--gray50);border-color:transparent}
.a1 .reviews__text{flex:1;margin:14px 0 22px}
.a1 .reviews__text p{
  margin:0;
  font-size:var(--t-md);line-height:1.55;color:var(--gray700);
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;
  overflow:hidden;
}
.a1 .reviews__by{display:flex;align-items:center;gap:12px;margin:0;font-size:var(--t-md);font-weight:500}
.a1 .reviews__by img,
.a1 .reviews__init{flex:none;width:36px;height:36px;border-radius:50%}
.a1 .reviews__init{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--black);color:var(--white);font-weight:600;
}
.a1 .reviews__by > span{display:flex;flex-direction:column;line-height:1.3}
.a1 .reviews__by a{text-decoration:none}
.a1 .reviews__by a:hover{text-decoration:underline;text-underline-offset:3px}
.a1 .reviews__by small{font-size:13px;font-weight:400;color:var(--gray500)}
.a1 .reviews__foot{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:8px 24px;
  margin:24px 0 0;
  font-size:var(--t-sm);color:var(--gray500);
}

/* ── CTA panels: the grey button sat on a grey band ────── */

.a1 .panels .btn--grey{
  background:var(--white);
  box-shadow:inset 0 0 0 1.5px var(--gray300);
}
.a1 .panels .btn--grey:hover{background:var(--white);box-shadow:inset 0 0 0 1.5px var(--black)}

/* ── WhatsApp button (Sky360) ──────────────────────────── */

/* Its red "1" reads as an unread message that does not exist. */
.sky-whatsapp-button::before,
.sky-whatsapp-button.show-notification::before{display:none !important}
@media (max-width:620px){
  .sky-whatsapp-widget.sky-whatsapp-bottom-right{bottom:16px;right:16px}
  .sky-whatsapp-button{width:52px !important;height:52px !important}
}

/* ── Footer: promise strip, logo row with social icons ── */

.a1 .ftr__promises{
  list-style:none;margin:0 0 clamp(40px,5vw,56px);padding:0 0 clamp(32px,4vw,44px);
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:20px 24px;
  border-bottom:1px solid var(--gray700);
}
.a1 .ftr__promises li{display:flex;align-items:center;gap:14px}
.a1 .ftr__pico{
  flex:none;display:inline-flex;align-items:center;justify-content:center;
  width:52px;height:52px;border-radius:50%;
  background:var(--gray900);
  box-shadow:inset 0 0 0 1px #2a2a2a;
  color:var(--brand);
}
.a1 .ftr__pico .a1-icon{width:24px;height:24px}
.a1 .ftr__promises strong{display:block;font-size:var(--t-lg);font-weight:600;letter-spacing:-.01em;line-height:1.3;color:var(--white)}
.a1 .ftr__promises small{display:block;margin-top:2px;font-size:var(--t-sm);color:var(--gray400)}

.a1 .ftr__top{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:20px 32px;
  margin-bottom:clamp(32px,4vw,48px);
}
.a1 .ftr__top .logo--ftr{margin-bottom:0}
.a1 .ftr__social{display:flex;align-items:center;gap:16px}
.a1 .ftr__social p{margin:0;font-size:var(--t-sm);color:var(--gray400)}
.a1 .ftr__social ul{list-style:none;margin:0;padding:0;display:flex;gap:8px}
.a1 .ftr__social a{
  display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;border-radius:50%;
  background:var(--gray900);
  box-shadow:inset 0 0 0 1px #2a2a2a;
  color:var(--white);
  transition:background .15s ease,color .15s ease,box-shadow .15s ease;
}
.a1 .ftr__social a:hover{background:var(--white);color:var(--black);box-shadow:none}
.a1 .ftr__social svg{width:20px;height:20px;fill:currentColor}

@media (max-width:1080px){
  .a1 .ftr__promises{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:620px){
  .a1 .ftr__promises{gap:16px 12px}
  .a1 .ftr__promises li{gap:10px}
  .a1 .ftr__pico{width:42px;height:42px}
  .a1 .ftr__pico .a1-icon{width:20px;height:20px}
  .a1 .ftr__promises strong{font-size:var(--t-sm)}
  .a1 .ftr__social{flex-direction:column;align-items:flex-start;gap:10px}
}

/* ── Journey tables: each place opens its page ─────────── */

.a1 .routes__place{
  color:var(--black);
  text-decoration:underline;
  text-decoration-color:var(--gray300);
  text-decoration-thickness:1px;
  text-underline-offset:4px;
  transition:color .15s ease,text-decoration-color .15s ease;
}
.a1 .routes__place:hover{color:var(--brand-deep);text-decoration-color:currentColor}

/* ── Ride picker: links to the vehicle pages ───────────── */

.a1 .rides__body h3 a{color:inherit;text-decoration:none}
.a1 .rides__body h3 a:hover{text-decoration:underline;text-underline-offset:4px}
.a1 a.rides__fig{text-decoration:none}
.a1 .rides__caps .rides__more{margin-left:auto}
.a1 .rides__more a{font-size:var(--t-sm);font-weight:500;color:var(--black);text-decoration:none}
.a1 .rides__more a:hover{text-decoration:underline;text-underline-offset:3px}
.a1 .rides__card.is-current{border-color:var(--black);box-shadow:inset 0 0 0 1px var(--black)}

/* ── Vehicle showcase ──────────────────────────────────── */

.a1 .vehicle{padding-block:var(--sec)}
.a1 .vehicle__in{
  display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
  gap:clamp(32px,5vw,72px);align-items:center;
}
.a1 .vehicle__fig{
  display:flex;align-items:center;justify-content:center;
  aspect-ratio:4/3;
  padding:clamp(24px,4vw,56px);
  background:radial-gradient(120% 90% at 50% 70%, #ffffff 0%, var(--gray50) 60%, #ececec 100%);
  border-radius:20px;
}
/* Black studio cut-outs, 1200px wide, so they can fill the panel. */
.a1 .vehicle__img{width:100%;height:auto;max-width:620px;object-fit:contain;filter:drop-shadow(0 24px 24px rgb(0 0 0 / .14))}
.a1 .vehicle__kind{
  margin:0 0 10px;
  font-size:var(--t-sm);font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--brand-deep);
}
.a1 .vehicle__intro{margin:16px 0 0;max-width:52ch;font-size:var(--t-lg);color:var(--gray600)}
.a1 .vehicle__caps{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;margin:28px 0 0;
}
.a1 .vehicle__caps > div{padding:16px 16px 14px;background:var(--gray50);border-radius:12px}
.a1 .vehicle__caps dt{display:flex;align-items:center;gap:8px;font-size:var(--t-sm);color:var(--gray600)}
.a1 .vehicle__caps dt .a1-icon{width:18px;height:18px}
.a1 .vehicle__caps dd{margin:8px 0 0;font-size:32px;font-weight:700;line-height:1;letter-spacing:-.02em}
.a1 .vehicle__max{font-size:var(--t-sm);font-weight:500;color:var(--gray500);letter-spacing:0}
.a1 .vehicle__suits{list-style:none;margin:24px 0 0;padding:0;display:grid;gap:10px}
.a1 .vehicle__suits li{display:flex;align-items:flex-start;gap:10px;font-size:var(--t-md)}
.a1 .vehicle__suits .a1-icon{flex:none;width:20px;height:20px;margin-top:2px;color:var(--brand-deep)}
.a1 .vehicle__act{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;margin:32px 0 0}

@media (max-width:860px){
  .a1 .vehicle__in{grid-template-columns:1fr}
}
@media (max-width:620px){
  .a1 .vehicle__caps dd{font-size:26px}
  .a1 .vehicle__caps > div{padding:12px}
}

/* ── Form section (Gravity Forms in the site's style) ──── */

.a1 .formsec{padding-block:var(--sec)}
.a1 .formsec--grey{background:var(--gray50)}
.a1 .formsec__in{
  display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(32px,5vw,72px);align-items:start;
}
.a1 .formsec__eyebrow{
  margin:0 0 12px;
  font-size:var(--t-sm);font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--brand-deep);
}
.a1 .formsec__lede{margin:16px 0 0;max-width:46ch;font-size:var(--t-lg);color:var(--gray600)}
.a1 .formsec__points{list-style:none;margin:24px 0 0;padding:0;display:grid;gap:12px}
.a1 .formsec__points li{display:flex;align-items:flex-start;gap:10px;font-size:var(--t-md)}
.a1 .formsec__points .a1-icon{flex:none;width:20px;height:20px;margin-top:2px;color:var(--brand-deep)}
.a1 .formsec__contact{list-style:none;margin:32px 0 0;padding:24px 0 0;border-top:1px solid var(--gray200);display:grid;gap:16px}
.a1 .formsec__contact li{display:grid;grid-template-columns:24px 1fr;column-gap:12px;font-size:var(--t-md)}
.a1 .formsec__contact .a1-icon{width:20px;height:20px;margin-top:2px;grid-row:span 2}
.a1 .formsec__contact a{font-weight:600;text-decoration:none}
.a1 .formsec__contact a:hover{text-decoration:underline;text-underline-offset:3px}
.a1 .formsec__contact small{grid-column:2;font-size:var(--t-sm);color:var(--gray500)}

.a1 .formsec__card{
  padding:clamp(22px,3vw,36px);
  background:var(--white);
  border:1px solid var(--gray200);
  border-radius:16px;
  box-shadow:0 18px 44px rgb(0 0 0 / .06);
}
.a1 .formsec--white .formsec__card{background:var(--white)}

/* Gravity Forms (Orbital): the font, the 52px field height and the black
   button come from here; colours and radius come from the widget's
   style settings so GF's own focus and error states stay intact. */
.a1 .formsec__card .gform_wrapper.gform-theme{
  --gf-font-family:var(--font) !important;
  --gf-ctrl-size-lg:52px;
  --gf-ctrl-label-font-weight-primary:500;
  --gf-form-gap-y:18px;
  --gf-ctrl-textarea-height:140px;   /* GF's large textarea is 288px */
  font-family:var(--font);
}
.a1 .formsec__card .gform_wrapper input:not([type=submit]):not([type=checkbox]):not([type=radio]),
.a1 .formsec__card .gform_wrapper select,
.a1 .formsec__card .gform_wrapper textarea{font-family:var(--font);font-size:var(--t-md)}
.a1 .formsec__card .gform_wrapper input:focus,
.a1 .formsec__card .gform_wrapper select:focus,
.a1 .formsec__card .gform_wrapper textarea:focus{background:var(--white);border-color:var(--black)}
.a1 .formsec__card .gform_wrapper textarea{min-height:120px;height:140px;block-size:140px}
/* The legend text is filtered out in PHP; GF still prints its empty wrapper. */
.a1 .formsec__card .gform_heading:has(.gform_required_legend:empty),
.a1 .formsec__card .gform_required_legend:empty{display:none}
@media (min-width:861px){
  .a1 .formsec__copy{position:sticky;top:100px}
}
.a1 .formsec__card .gform_footer{margin-top:8px}
.a1 .formsec__card .gform_wrapper .gform_button{
  min-height:52px;padding:12px 28px;
  border-radius:var(--radius);
  font-family:var(--font);font-size:var(--t-md);font-weight:500;
}
.a1 .formsec__card .gform_wrapper .gform_button:hover{background:var(--brand-deep)}
.a1 .a1-form-note{margin:0;font-size:var(--t-sm);color:var(--gray500)}
.a1 .a1-form-note a{color:inherit}
.a1 .a1-form-thanks{margin:0;padding:20px 22px;border-radius:12px;background:#eef5e8;font-size:var(--t-lg);font-weight:500;color:var(--black)}

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

/* ── Area finder on its grey band ──────────────────────── */
/* The box and chips were grey on grey, so neither read as something to use. */
.a1 .areas .areas__findbox input{
  background:var(--white);
  border:1px solid var(--gray200);
  box-shadow:0 8px 24px rgb(0 0 0 / .05);
}
.a1 .areas .areas__findbox input:focus{border-color:var(--black)}
.a1 .areas .areas__chips{gap:10px}
.a1 .areas .areas__chips a{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--white);
  border:1px solid var(--gray200);
  transition:background .15s ease,border-color .15s ease,color .15s ease;
}
.a1 .areas .areas__chips a::before{
  content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--brand);
}
.a1 .areas .areas__chips a:hover{background:var(--black);border-color:var(--black);color:var(--white)}
.a1 .areas .areas__findhint{margin-top:4px}

/* In-page anchors (#app, #reviews, #vehicles) land clear of the sticky header. */
.a1 section[id]{scroll-margin-top:84px}

/* ── Ratings strip (after a1taxis.net) ─────────────────── */

.a1 .ratings{
  padding-block:clamp(36px,4vw,52px);
  background:var(--black);color:var(--white);
}
.a1 .ratings__grid{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:28px 24px;
}
.a1 .ratings__item{display:flex;flex-direction:column;align-items:flex-start;gap:10px;color:inherit;text-decoration:none}
.a1 .ratings__name{font-size:var(--t-lg);font-weight:600;letter-spacing:-.01em}
.a1 .ratings__score{display:flex;align-items:center;gap:12px}
.a1 .ratings__num{font-size:30px;font-weight:500;line-height:1;font-variant-numeric:tabular-nums}
.a1 .ratings__marks{position:relative;display:inline-block;flex:none;line-height:0}
.a1 .ratings__bg,
.a1 .ratings__fg{display:flex;gap:3px;white-space:nowrap}
.a1 .ratings__fg{position:absolute;top:0;left:0;bottom:0;overflow:hidden}
.a1 .ratings__marks svg{flex:none;width:26px;height:26px}
.a1 .ratings__marks--trustpilot .ratings__bg,
.a1 .ratings__marks--trustpilot .ratings__fg{gap:2px}
.a1 .ratings__marks--trustpilot svg{width:28px;height:28px}
.a1 .ratings__bg{color:var(--gray700)}
.a1 .ratings__fg{color:var(--white)}
.a1 .ratings__cut{fill:var(--black)}
.a1 .ratings__link{font-size:var(--t-md);color:var(--gray300)}
.a1 .ratings__count{color:var(--gray500)}
.a1 a.ratings__item:hover .ratings__link{color:var(--white);text-decoration:underline;text-underline-offset:4px}

.a1 .ratings__pay{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:16px 32px;
  margin-top:clamp(28px,3vw,40px);
  padding-top:clamp(24px,3vw,32px);
  border-top:1px solid #262626;
}
.a1 .ratings__pay p{margin:0;font-size:var(--t-lg)}
.a1 .ratings__logos{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.a1 .ratings__logos img{display:block;width:55px;height:36px}

@media (max-width:900px){
  .a1 .ratings__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:620px){
  .a1 .ratings__num{font-size:24px}
  .a1 .ratings__score{gap:8px}
  .a1 .ratings__marks svg{width:18px;height:18px}
  .a1 .ratings__marks--trustpilot svg{width:19px;height:19px}
  .a1 .ratings__bg,.a1 .ratings__fg{gap:2px}
  .a1 .ratings__name{font-size:var(--t-md)}
  .a1 .ratings__link{font-size:var(--t-sm)}
  .a1 .ratings__pay p{font-size:var(--t-md)}
  /* All seven on one row at 390px: 7 × 42 + 6 × 5 = 324 of 342. */
  .a1 .ratings__logos{gap:5px;flex-wrap:nowrap}
  .a1 .ratings__logos img{width:42px;height:28px}
}

/* ── Ride picker: every budget and occasion ────────────── */

.a1 .rides{padding-block:var(--sec)}
.a1 .rides--grey{background:var(--gray50)}
.a1 .rides__head{
  display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;
  gap:20px 40px;
  margin-bottom:clamp(28px,3.5vw,40px);
}
.a1 .rides__head .sec-p{margin-bottom:0}
.a1 .rides__filters{display:flex;flex-wrap:wrap;gap:8px}
.a1 .rides__chip{
  appearance:none;border:0;cursor:pointer;
  padding:10px 16px;border-radius:100px;
  background:var(--gray50);color:var(--black);
  font-family:var(--font);font-size:var(--t-sm);font-weight:500;line-height:1.2;
  white-space:nowrap;
  transition:background .15s ease,color .15s ease;
}
.a1 .rides--grey .rides__chip{background:var(--white)}
.a1 .rides__chip:hover{background:var(--gray100)}
.a1 .rides__chip[aria-pressed="true"]{background:var(--black);color:var(--white)}

.a1 .rides__grid{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.a1 .rides__card{
  display:flex;flex-direction:column;
  background:var(--white);
  border:1px solid var(--gray200);border-radius:14px;
  overflow:hidden;
  transition:border-color .15s ease,box-shadow .15s ease;
}
.a1 .rides__card[hidden]{display:none}
.a1 .rides__card:hover{border-color:var(--black);box-shadow:0 12px 32px rgb(0 0 0 / .08)}
.a1 .rides__fig{
  display:flex;align-items:center;justify-content:center;
  aspect-ratio:5/3;
  padding:22px 28px 10px;
  background:var(--gray50);
}
.a1 .rides__fig img,
.a1 .rides__img{width:100%;height:100%;object-fit:contain;transition:transform .35s ease}
.a1 .rides__card:hover .rides__fig img{transform:translateX(6px)}
.a1 .rides__body{display:flex;flex-direction:column;flex:1;padding:18px 20px 20px}
.a1 .rides__kind{
  margin:0 0 4px;
  font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--brand-deep);
}
.a1 .rides__body h3{margin:0;font-size:22px;letter-spacing:-.02em}
.a1 .rides__caps{
  list-style:none;margin:12px 0 20px;padding:0;
  display:flex;flex-wrap:wrap;gap:6px 16px;
  font-size:var(--t-md);font-weight:500;
}
.a1 .rides__caps li{display:inline-flex;align-items:center;gap:6px}
.a1 .rides__caps .a1-icon{width:20px;height:20px;color:var(--gray600)}
.a1 .rides__btn{margin-top:auto;width:100%;justify-content:space-between}
.a1 .rides__btn.btn--line{justify-content:center}
.a1 .rides__arrow{transition:transform .15s ease}
.a1 .rides__card:hover .rides__arrow{transform:translateX(3px)}

@media (max-width:1080px){
  .a1 .rides__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* Phones: one row per vehicle, like a ride app's list. */
@media (max-width:620px){
  .a1 .rides__filters{
    flex-wrap:nowrap;overflow-x:auto;
    margin-inline:calc(-1 * var(--gut));padding-inline:var(--gut);
    scrollbar-width:none;
  }
  .a1 .rides__filters::-webkit-scrollbar{display:none}
  .a1 .rides__grid{grid-template-columns:1fr;gap:10px}
  .a1 .rides__card{display:grid;grid-template-columns:116px minmax(0,1fr);align-items:stretch}
  .a1 .rides__fig{aspect-ratio:auto;padding:10px 8px}
  .a1 .rides__body{padding:14px 14px 14px 12px}
  .a1 .rides__kind{font-size:11px}
  .a1 .rides__body h3{font-size:18px}
  .a1 .rides__caps{margin:6px 0 12px;gap:4px 12px;font-size:var(--t-sm)}
  .a1 .rides__caps .a1-icon{width:17px;height:17px}
  .a1 .rides__btn{min-height:40px;padding:8px 14px;font-size:var(--t-sm);width:auto;align-self:flex-start;gap:8px}
  .a1 .rides__btn .btn__ico{width:16px;height:16px}
}

/* ── App section ───────────────────────────────────────── */

.a1 .appsec{
  padding-block:var(--sec);
  background:var(--black);color:var(--white);
  overflow:hidden;
}
.a1 .appsec__in{
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:clamp(32px,5vw,72px);align-items:center;
}
.a1 .appsec__eyebrow{
  margin:0 0 14px;
  font-size:var(--t-sm);font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--brand);
}
.a1 .appsec .sec-h{margin-bottom:18px}
.a1 .appsec__lede{margin:0 0 8px;max-width:48ch;font-size:var(--t-lg);color:var(--gray400)}
.a1 .appsec__points{list-style:none;margin:20px 0 32px;padding:0;display:grid;gap:12px}
.a1 .appsec__points li{display:flex;align-items:flex-start;gap:12px;font-size:var(--t-md);color:var(--gray200)}
.a1 .appsec__points .a1-icon{flex:none;width:22px;height:22px;margin-top:1px;color:var(--brand)}
.a1 .appsec__badges{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:0}
.a1 .appsec__badge{display:inline-flex;line-height:0;border-radius:10px}
.a1 .appsec__badge img{display:block;width:auto;height:52px;max-width:none}
/* Google's badge carries its own transparent margin; Apple's is trimmed. */
.a1 .appsec__badge--play img{height:70px;margin:-9px -6px}
.a1 .appsec__rating{display:flex;align-items:center;gap:10px;margin:22px 0 0;font-size:var(--t-sm);color:var(--gray400)}
.a1 .appsec__rating strong{color:var(--white);font-weight:600}
.a1 .appsec .stars__bg svg{fill:var(--gray700)}

.a1 .appsec__phones{
  --pw:clamp(200px,19vw,260px);
  position:relative;
  height:calc(var(--pw) * 2.163 + 56px);
}
.a1 .appsec__phones::before{
  content:"";position:absolute;inset:12% 6%;
  background:radial-gradient(closest-side,rgb(96 169 38 / .38),transparent);
  filter:blur(12px);
}
.a1 .appsec__phone{
  position:absolute;
  width:var(--pw);aspect-ratio:600/1298;
  padding:9px;border-radius:40px;
  background:#1b1b1b;
  box-shadow:0 0 0 1px #343434,0 30px 60px rgb(0 0 0 / .55);
}
.a1 .appsec__phone img{display:block;width:100%;height:100%;object-fit:cover;border-radius:31px}
.a1 .appsec__phone--back{left:calc(50% - var(--pw) * .92);top:0;transform:rotate(-5deg)}
.a1 .appsec__phone--front{left:calc(50% - var(--pw) * .08);top:56px;transform:rotate(4deg)}

@media (max-width:860px){
  .a1 .appsec__in{grid-template-columns:1fr}
  .a1 .appsec__phones{--pw:clamp(150px,40vw,210px)}
}
@media (max-width:620px){
  .a1 .appsec__phone{padding:7px;border-radius:30px}
  .a1 .appsec__phone img{border-radius:23px}
  .a1 .appsec__badge img{height:46px}
  .a1 .appsec__badge--play img{height:62px;margin:-8px -5px}
}

/* ── Related links (nearby areas, airports, services) ───── */
.a1 .related{background:var(--white);border-top:1px solid var(--gray200)}
.a1 .related .sec-h{margin-bottom:clamp(24px,3vw,40px)}
.a1 .related .areas__links a{display:flex;align-items:center;justify-content:space-between;gap:12px}
.a1 .related .areas__links a::after{
  content:"";flex:none;width:7px;height:7px;
  border-top:1.5px solid var(--gray400);border-right:1.5px solid var(--gray400);
  transform:rotate(45deg);transition:border-color .15s,transform .15s;
}
.a1 .related .areas__links a:hover::after{border-color:var(--black);transform:translateX(3px) rotate(45deg)}
