/* =========================================================
   PRODE TOURS — TRANSFER V1 / PREMIUM BOOKING EXPERIENCE
   Visual-only layer for public Transfer pages.
   No booking logic, pricing or JS changes.
   ========================================================= */

.public-v5 .transfer-main{
  --tr-ink:#142019;
  --tr-muted:#6b746f;
  --tr-green:#173429;
  --tr-green-deep:#0f241b;
  --tr-gold:#ad7d45;
  --tr-gold-soft:#e2c89f;
  --tr-paper:#fbf8f2;
  --tr-card:#fffdf9;
  --tr-line:rgba(20,32,25,.11);
  --tr-shadow:0 28px 72px rgba(17,28,22,.09);
  background:
    radial-gradient(circle at 7% 23%,rgba(173,125,69,.08),transparent 27rem),
    radial-gradient(circle at 94% 65%,rgba(23,52,41,.05),transparent 30rem),
    linear-gradient(180deg,#f5eee5 0%,#fbf8f2 38%,#faf7f1 100%);
}

/* ---------- Hero ---------- */
.public-v5 .transfer-hero{
  min-height:540px;
  padding:132px clamp(22px,5vw,72px) 92px;
  display:grid;
  align-items:end;
  background-color:#07140f;
  background-image:
    linear-gradient(90deg,
      #07140f 0%,
      #07140f 35%,
      rgba(7,20,15,.97) 42%,
      rgba(7,20,15,.82) 49%,
      rgba(7,20,15,.48) 58%,
      rgba(7,20,15,.14) 68%,
      rgba(7,20,15,0) 76%),
    linear-gradient(180deg,rgba(4,10,7,.04) 0%,rgba(4,10,7,.08) 56%,rgba(4,10,7,.30) 100%),
    url('../images/transfers/transfer-hero-chauffeur-v1.webp');
  background-repeat:no-repeat;
  background-position:center,center,calc(100% - 26px) center;
  background-size:100% 100%,100% 100%,auto 92%;
  isolation:isolate;
}
.public-v5 .transfer-hero::after{
  content:"";
  position:absolute;
  left:-190px;
  bottom:-320px;
  width:680px;
  height:680px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(224,193,148,.20),transparent 67%);
  pointer-events:none;
}
.public-v5 .transfer-hero > div{
  position:relative;
  z-index:1;
  width:min(100%,1180px);
  margin-inline:auto;
}
.public-v5 .transfer-hero .eyebrow{
  margin-bottom:16px;
  color:var(--tr-gold-soft);
}
.public-v5 .transfer-hero h1{
  max-width:13.2ch;
  margin:0 0 20px;
  font-size:clamp(50px,5.9vw,78px);
  line-height:.94;
  letter-spacing:-.058em;
  color:#fff;
  text-wrap:balance;
  text-shadow:0 12px 38px rgba(0,0,0,.26);
}
.public-v5 .transfer-hero p{
  max-width:670px;
  margin:0;
  font-size:clamp(15.5px,1.25vw,18px);
  line-height:1.68;
  color:rgba(255,255,255,.86);
  text-wrap:pretty;
}

/* ---------- Main booking composition ---------- */
.public-v5 .transfer-shell{
  width:min(calc(100% - 42px),1240px);
  margin:-62px auto 0;
  padding-bottom:118px;
}
.public-v5 .transfer-grid{
  grid-template-columns:minmax(0,1fr) minmax(320px,360px);
  gap:30px;
  align-items:start;
}
.public-v5 .booking-panel{
  counter-reset:transfer-step;
  padding:clamp(30px,3.8vw,46px);
  border:1px solid rgba(173,125,69,.15);
  border-radius:34px;
  background:
    radial-gradient(circle at 100% 0%,rgba(173,125,69,.045),transparent 19rem),
    rgba(255,253,249,.97);
  box-shadow:var(--tr-shadow);
}
.public-v5 .booking-step{
  counter-increment:transfer-step;
  padding:34px 0;
  border-color:var(--tr-line);
}
.public-v5 .booking-step:first-of-type{padding-top:0}
.public-v5 .booking-step:last-of-type{padding-bottom:0}
.public-v5 .booking-step h2{
  display:flex;
  align-items:center;
  gap:13px;
  margin:0 0 23px;
  color:var(--tr-ink);
  font-size:clamp(28px,2.5vw,35px);
  line-height:1.04;
  letter-spacing:-.045em;
}
.public-v5 .booking-step h2::before{
  content:counter(transfer-step, decimal-leading-zero);
  flex:0 0 38px;
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border:1px solid rgba(173,125,69,.22);
  border-radius:50%;
  background:#f7efe4;
  color:var(--tr-gold);
  font-family:Inter,Arial,sans-serif;
  font-size:10px;
  font-weight:900;
  letter-spacing:.10em;
}

/* ---------- Journey type ---------- */
.public-v5 .radio-row{gap:9px}
.public-v5 .radio span{
  min-height:48px;
  padding:10px 18px;
  border:1px solid rgba(20,32,25,.13);
  border-radius:999px;
  background:#fff;
  color:rgba(20,32,25,.76);
  font-size:12px;
  font-weight:800;
  box-shadow:0 8px 20px rgba(17,28,22,.035);
  transition:.2s ease;
}
.public-v5 .radio input:checked + span{
  border-color:var(--tr-green);
  background:linear-gradient(135deg,var(--tr-green-deep),var(--tr-green));
  color:#fff;
  box-shadow:0 12px 26px rgba(16,40,30,.14);
}
.public-v5 .radio:hover span{border-color:rgba(173,125,69,.40)}

/* ---------- Fields ---------- */
.public-v5 .form-grid{gap:17px}
.public-v5 .field{gap:8px}
.public-v5 .field label{
  display:grid;
  gap:9px;
  color:#344039;
  font-size:11px;
  font-weight:800;
  line-height:1.38;
  letter-spacing:.025em;
}
.public-v5 .field input,
.public-v5 .field select,
.public-v5 .field textarea{
  min-height:54px;
  border:1px solid rgba(20,32,25,.13);
  border-radius:14px;
  padding:13px 14px;
  background:#fff;
  color:var(--tr-ink);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75);
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.public-v5 .field textarea{min-height:125px}
.public-v5 .field input:hover,
.public-v5 .field select:hover,
.public-v5 .field textarea:hover{border-color:rgba(173,125,69,.34)}
.public-v5 .field input:focus,
.public-v5 .field select:focus,
.public-v5 .field textarea:focus{
  outline:none;
  border-color:rgba(173,125,69,.68);
  background:#fffefa;
  box-shadow:0 0 0 4px rgba(173,125,69,.09);
}

/* ---------- Journey cards ---------- */
.public-v5 .journey-card{
  position:relative;
  overflow:hidden;
  padding:0;
  border:1px solid rgba(20,32,25,.10);
  border-radius:24px;
  background:linear-gradient(180deg,#fcfaf6,#f7f1e8);
  box-shadow:0 16px 38px rgba(18,27,23,.045);
}
.public-v5 .journey-card::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:3px;
  background:linear-gradient(180deg,var(--tr-gold),rgba(173,125,69,.15));
}
.public-v5 .journey-card--return::before{
  background:linear-gradient(180deg,#496f5d,rgba(73,111,93,.15));
}
.public-v5 .journey-card__header{
  padding:24px 25px 18px;
  border-bottom:1px solid rgba(20,32,25,.08);
  background:rgba(255,255,255,.46);
}
.public-v5 .journey-card__header h3{
  margin:0 0 6px;
  color:var(--tr-ink);
  font:600 25px/1.1 Georgia,"Times New Roman",serif;
  letter-spacing:-.025em;
}
.public-v5 .journey-card__header p{
  margin:0;
  color:var(--tr-muted);
  font-size:13px;
  line-height:1.6;
}
.public-v5 .journey-card__fields{
  padding:24px 25px 26px;
  gap:16px;
}

/* ---------- Vehicle / extras / payment ---------- */
.public-v5 .vehicle-options{gap:13px}
.public-v5 .vehicle-card{
  position:relative;
  min-height:132px;
  padding:19px;
  border:1px solid rgba(20,32,25,.11);
  border-radius:20px;
  background:#fff;
  box-shadow:0 10px 26px rgba(17,28,22,.035);
  transition:.2s ease;
}
.public-v5 .vehicle-card::after{
  content:"";
  position:absolute;
  top:14px;
  right:14px;
  width:10px;
  height:10px;
  border:1px solid rgba(20,32,25,.20);
  border-radius:50%;
  background:#fff;
}
.public-v5 .vehicle-card strong{
  color:var(--tr-ink);
  font-size:22px;
  letter-spacing:-.02em;
}
.public-v5 .vehicle-card small{color:var(--tr-muted);line-height:1.48}
.public-v5 .vehicle-option:hover .vehicle-card{
  transform:translateY(-3px);
  border-color:rgba(173,125,69,.34);
  box-shadow:0 17px 34px rgba(17,28,22,.07);
}
.public-v5 .vehicle-option input:checked + .vehicle-card{
  border-color:rgba(173,125,69,.72);
  background:linear-gradient(180deg,#fffdf8,#fbf2e6);
  box-shadow:0 0 0 3px rgba(173,125,69,.08),0 17px 38px rgba(17,28,22,.065);
}
.public-v5 .vehicle-option input:checked + .vehicle-card::after{
  border-color:var(--tr-gold);
  background:var(--tr-gold);
  box-shadow:inset 0 0 0 3px #fff8ed;
}

.public-v5 .extra-options{gap:13px}
.public-v5 .extra-row{
  min-height:72px;
  padding:14px 15px;
  border:1px solid rgba(20,32,25,.10);
  border-radius:18px;
  background:#fff;
  box-shadow:0 8px 22px rgba(17,28,22,.03);
}
.public-v5 .extra-row input{
  border-radius:12px;
  border-color:rgba(20,32,25,.13);
}

.public-v5 .payment-method-options{gap:14px}
.public-v5 .payment-method-card{
  position:relative;
  min-height:138px;
  padding:22px 22px 20px;
  border:1px solid rgba(20,32,25,.11);
  border-radius:20px;
  background:#fff;
  box-shadow:0 9px 24px rgba(17,28,22,.03);
  transition:.2s ease;
}
.public-v5 .payment-method-card strong{
  display:block;
  margin-bottom:8px;
  color:var(--tr-ink);
  font:600 21px/1.12 Georgia,"Times New Roman",serif;
}
.public-v5 .payment-method-card small{
  color:var(--tr-muted);
  line-height:1.55;
}
.public-v5 .payment-method-option:hover .payment-method-card{
  transform:translateY(-2px);
  border-color:rgba(173,125,69,.32);
}
.public-v5 .payment-method-option input:checked + .payment-method-card{
  border-color:rgba(43,83,65,.52);
  background:linear-gradient(180deg,#f7fbf8,#edf4f0);
  box-shadow:0 0 0 3px rgba(43,83,65,.065),0 14px 32px rgba(17,28,22,.05);
}

/* ---------- Consents ---------- */
.public-v5 .consents{
  margin-top:22px;
  padding:18px;
  gap:13px;
  border:1px solid rgba(20,32,25,.08);
  border-radius:18px;
  background:#f8f4ed;
}
.public-v5 .consents label{
  color:#5b655f;
  font-size:12.5px;
  line-height:1.55;
}
.public-v5 .consents input{accent-color:var(--tr-green)}
.public-v5 .consents a{color:var(--tr-green);font-weight:800}

/* ---------- Summary ---------- */
.public-v5 .quote-panel{
  top:82px;
  padding:32px;
  overflow:hidden;
  border:1px solid rgba(226,200,159,.14);
  border-radius:30px;
  background:
    radial-gradient(circle at 86% 4%,rgba(226,200,159,.18),transparent 17rem),
    radial-gradient(circle at 0% 100%,rgba(73,111,93,.12),transparent 15rem),
    linear-gradient(145deg,#0e2118,#17372a 72%,#1b4031);
  box-shadow:0 32px 78px rgba(10,21,16,.20);
}
.public-v5 .quote-panel::after{
  content:"";
  position:absolute;
  right:-75px;
  top:-75px;
  width:190px;
  height:190px;
  border:1px solid rgba(226,200,159,.11);
  border-radius:50%;
  pointer-events:none;
}
.public-v5 .quote-panel .eyebrow{color:var(--tr-gold-soft)}
.public-v5 .quote-panel h2{
  max-width:10ch;
  margin:11px 0 22px;
  font-size:clamp(31px,3vw,40px);
  line-height:1.02;
  letter-spacing:-.045em;
  color:#fff;
}
.public-v5 .quote-total{
  margin:10px 0 5px;
  color:#f2d4aa;
  font-size:clamp(43px,4vw,54px);
  line-height:1;
  letter-spacing:-.05em;
}
.public-v5 .quote-caption{
  color:rgba(255,255,255,.62);
  font-size:11px;
  letter-spacing:.04em;
}
.public-v5 .quote-list{margin:24px 0 20px}
.public-v5 .quote-list li{
  padding:11px 0;
  border-color:rgba(255,255,255,.10);
  color:rgba(255,255,255,.80);
  font-size:13px;
}
.public-v5 .quote-status{
  margin:18px 0 20px;
  padding:13px 14px;
  border:1px solid rgba(255,255,255,.07);
  border-radius:14px;
  background:rgba(255,255,255,.07);
  color:rgba(255,255,255,.78);
  line-height:1.45;
}
.public-v5 .book-button{
  min-height:58px;
  border-radius:999px;
  background:linear-gradient(135deg,#ddb985,#ad7d45);
  color:#132019;
  font-size:12px;
  font-weight:900;
  letter-spacing:.035em;
  box-shadow:0 16px 34px rgba(77,50,23,.22);
  transition:transform .2s ease,filter .2s ease,box-shadow .2s ease;
}
.public-v5 .book-button:not(:disabled):hover{
  transform:translateY(-2px);
  filter:brightness(1.035);
  box-shadow:0 20px 40px rgba(77,50,23,.27);
}
.public-v5 .book-button:disabled{
  opacity:.46;
  box-shadow:none;
}

.public-v5 .error-summary.visible{
  margin-bottom:20px;
  border:1px solid rgba(151,54,54,.14);
  border-radius:16px;
  background:#f7e7e5;
  box-shadow:0 10px 24px rgba(87,36,32,.04);
}

/* ---------- Tablet ---------- */
@media (max-width:980px){
  .public-v5 .transfer-hero{
    min-height:500px;
    padding-top:120px;
    padding-bottom:86px;
    background-image:
      linear-gradient(90deg,
        #07140f 0%,
        #07140f 42%,
        rgba(7,20,15,.94) 50%,
        rgba(7,20,15,.60) 61%,
        rgba(7,20,15,.16) 74%,
        rgba(7,20,15,0) 84%),
      linear-gradient(180deg,rgba(4,10,7,.06),rgba(4,10,7,.36)),
      url('../images/transfers/transfer-hero-chauffeur-v1.webp');
    background-position:center,center,calc(100% - 18px) center;
    background-size:100% 100%,100% 100%,auto 90%;
  }
  .public-v5 .transfer-hero h1{font-size:clamp(47px,7.3vw,68px);max-width:13ch}
  .public-v5 .transfer-shell{margin-top:-52px}
  .public-v5 .transfer-grid{grid-template-columns:1fr}
  .public-v5 .quote-panel{position:static;max-width:none}
}

/* ---------- Mobile ---------- */
@media (max-width:640px){
  .public-v5 .transfer-hero{
    min-height:440px;
    padding:102px 18px 62px;
    background-color:#07140f;
    background-image:
      linear-gradient(180deg,rgba(6,12,9,.46) 0%,rgba(6,12,9,.52) 42%,rgba(6,12,9,.88) 100%),
      url('../images/transfers/transfer-hero-chauffeur-v1.webp');
    background-repeat:no-repeat;
    background-position:center,68% center;
    background-size:100% 100%,auto 88%;
  }
  .public-v5 .transfer-hero h1{
    max-width:none;
    margin-bottom:16px;
    font-size:clamp(39px,10.5vw,50px);
    line-height:.96;
  }
  .public-v5 .transfer-hero p{font-size:14.5px;line-height:1.58}
  .public-v5 .transfer-shell{width:calc(100% - 24px);margin-top:-30px;padding-bottom:78px}
  .public-v5 .booking-panel{padding:24px 18px;border-radius:25px}
  .public-v5 .booking-step{padding:27px 0}
  .public-v5 .booking-step h2{gap:11px;font-size:28px;margin-bottom:20px}
  .public-v5 .booking-step h2::before{width:34px;height:34px;flex-basis:34px;font-size:9px}
  .public-v5 .radio-row{display:grid;grid-template-columns:1fr 1fr}
  .public-v5 .radio span{justify-content:center;padding-inline:10px}
  .public-v5 .journey-card{border-radius:20px}
  .public-v5 .journey-card__header{padding:21px 19px 16px}
  .public-v5 .journey-card__fields{padding:20px 19px 22px}
  .public-v5 .journey-card__header h3{font-size:23px}
  .public-v5 .field input,
  .public-v5 .field select,
  .public-v5 .field textarea{min-height:52px}
  .public-v5 .vehicle-card{min-height:0;padding:18px;border-radius:18px}
  .public-v5 .extra-row,
  .public-v5 .payment-method-card{border-radius:18px}
  .public-v5 .payment-method-card{min-height:0;padding:20px}
  .public-v5 .consents{padding:16px;border-radius:16px}
  .public-v5 .quote-panel{padding:27px 22px;border-radius:24px}
  .public-v5 .quote-panel h2{max-width:none;font-size:34px}
  .public-v5 .quote-total{font-size:46px}
}

@media (prefers-reduced-motion:reduce){
  .public-v5 .vehicle-card,
  .public-v5 .payment-method-card,
  .public-v5 .radio span,
  .public-v5 .book-button{transition:none}
}

/* =========================================================
   v106.21 — WORDPRESS TRANSFER LAYOUT HARDENING
   Keep the public Transfer form visually complete even when
   /booking/assets/booking.css is unavailable or delayed.
   Layout only: no booking logic or pricing changes.
   ========================================================= */
.public-v5 .transfer-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,360px);
  gap:32px;
  align-items:start;
}
.public-v5 .booking-panel,
.public-v5 .booking-panel *,
.public-v5 .quote-panel,
.public-v5 .quote-panel *{box-sizing:border-box}
.public-v5 .booking-panel,
.public-v5 .booking-step,
.public-v5 .form-grid,
.public-v5 .field,
.public-v5 .field label,
.public-v5 .journey-card,
.public-v5 .journey-card__fields,
.public-v5 .vehicle-options,
.public-v5 .vehicle-card,
.public-v5 .extra-options,
.public-v5 .extra-row,
.public-v5 .payment-method-options,
.public-v5 .payment-method-card{min-width:0}

.public-v5 .booking-step{border-bottom:1px solid var(--tr-line)}
.public-v5 .booking-step:last-child{border-bottom:0}
.public-v5 .form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:17px;
}
.public-v5 .field{display:grid;gap:8px}
.public-v5 .field.full,
.public-v5 .form-grid > .full{grid-column:1/-1}
.public-v5 .field input,
.public-v5 .field select,
.public-v5 .field textarea{
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
}

/* Journey selector pills */
.public-v5 .radio-row{display:flex;flex-wrap:wrap;gap:10px}
.public-v5 .radio{position:relative;display:block}
.public-v5 .radio input{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}
.public-v5 .radio span{display:flex;align-items:center;cursor:pointer}
.public-v5 .radio input:focus-visible + span{
  outline:3px solid rgba(173,125,69,.20);
  outline-offset:2px;
}

/* Outbound / return cards */
.public-v5 .journey-card{
  grid-column:1/-1;
  display:block;
  width:100%;
}
.public-v5 .journey-card__header{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(220px,420px);
  gap:28px;
  align-items:end;
}
.public-v5 .journey-card__header p{text-align:right}
.public-v5 .journey-card__fields{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px 18px;
}
.public-v5 .journey-card__fields .field.full{grid-column:1/-1}
#return-fields[hidden]{display:none!important}

/* Vehicle cards */
.public-v5 .vehicle-options{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.public-v5 .vehicle-option{position:relative;display:block;cursor:pointer}
.public-v5 .vehicle-option > input{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}
.public-v5 .vehicle-card{display:grid;height:100%;align-content:start;gap:8px;cursor:pointer}
.public-v5 .vehicle-option input:focus-visible + .vehicle-card{
  outline:3px solid rgba(173,125,69,.20);
  outline-offset:2px;
}

/* Optional extras */
.public-v5 .extra-options{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:13px;
}
.public-v5 .extra-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 88px;
  gap:12px;
  align-items:center;
}
.public-v5 .extra-row input{width:100%;min-width:0}

/* Payment choices */
.public-v5 .payment-method-options{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  align-items:stretch;
}
.public-v5 .payment-method-option{
  position:relative;
  display:block;
  min-width:0;
  cursor:pointer;
}
.public-v5 .payment-method-option > input{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}
.public-v5 .payment-method-card{
  display:grid;
  align-content:start;
  gap:7px;
  height:100%;
  cursor:pointer;
}
.public-v5 .payment-method-option input:focus-visible + .payment-method-card{
  outline:3px solid rgba(43,83,65,.18);
  outline-offset:2px;
}

/* Consent area */
.public-v5 .consents{display:grid;gap:13px}
.public-v5 .consents label{
  display:grid;
  grid-template-columns:22px minmax(0,1fr);
  gap:10px;
  align-items:start;
}
.public-v5 .consents input{margin-top:2px}

@media (max-width:1080px){
  .public-v5 .transfer-grid{grid-template-columns:minmax(0,1fr) 320px;gap:24px}
  .public-v5 .vehicle-options{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  .public-v5 .transfer-grid{grid-template-columns:1fr}
  .public-v5 .quote-panel{position:static;width:100%}
}
@media (max-width:720px){
  .public-v5 .form-grid,
  .public-v5 .journey-card__fields,
  .public-v5 .vehicle-options,
  .public-v5 .extra-options,
  .public-v5 .payment-method-options{grid-template-columns:1fr}
  .public-v5 .field.full,
  .public-v5 .form-grid > .full,
  .public-v5 .journey-card__fields .field.full{grid-column:auto}
  .public-v5 .journey-card__header{display:block}
  .public-v5 .journey-card__header p{margin-top:7px;text-align:left}
  .public-v5 .extra-row{grid-template-columns:minmax(0,1fr) 82px}
}
@media (max-width:420px){
  .public-v5 .booking-panel{padding-left:15px;padding-right:15px}
  .public-v5 .journey-card__header,
  .public-v5 .journey-card__fields{padding-left:16px;padding-right:16px}
  .public-v5 .radio-row{display:grid;grid-template-columns:1fr}
  .public-v5 .radio span{width:100%;justify-content:center}
}
