/* Prode Tours | Premium geographic transfer request | v106303
   Only applies to custom-route form. Existing route, booking, payment and footer layout unaffected. */
body.public-v5 .transfer-main .pt-geo-panel{
  --pt-geo-green:#14382b;
  --pt-geo-dark:#10271e;
  --pt-geo-gold:#b28a52;
  --pt-geo-ink:#1b3026;
  --pt-geo-muted:#67756e;
  box-sizing:border-box;
  grid-column:1/-1;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  margin:8px 0 12px;
  padding:0 18px 18px;
  overflow:hidden;
  min-width:0;
  border:1px solid rgba(161,121,68,.38);
  border-radius:22px;
  color:var(--pt-geo-ink);
  background:linear-gradient(145deg,#f9f5ed 0%,#f5eee3 100%);
  box-shadow:0 14px 35px rgba(17,41,29,.075);
}
body.public-v5 .transfer-main .pt-geo-panel[hidden]{display:none!important}
body.public-v5 .transfer-main .pt-geo-panel *,
body.public-v5 .transfer-main .pt-geo-panel *::before,
body.public-v5 .transfer-main .pt-geo-panel *::after{box-sizing:border-box}
body.public-v5 .transfer-main .pt-geo-heading{
  grid-column:1/-1;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
  margin:0 -18px 1px;
  padding:22px clamp(20px,3vw,28px) 21px;
  background:linear-gradient(115deg,#10281f 0%,#173d2e 65%,#225040 100%);
  border-bottom:2px solid var(--pt-geo-gold);
  position:relative;
  isolation:isolate;
}
body.public-v5 .transfer-main .pt-geo-heading::after{
  content:"";position:absolute;right:24px;top:16px;width:85px;height:85px;
  border:1px solid rgba(222,187,130,.18);border-radius:50%;z-index:-1;
  box-shadow:0 0 0 16px rgba(222,187,130,.055);
}
body.public-v5 .transfer-main .pt-geo-kicker{
  display:block;color:#e3c18a;font-size:10px;line-height:1.4;
  font-weight:800;letter-spacing:.18em;text-transform:uppercase;
}
body.public-v5 .transfer-main .pt-geo-heading h3{
  margin:0;color:#fffaf2;font:700 clamp(21px,2vw,27px)/1.23 Georgia,'Times New Roman',serif;
  letter-spacing:-.015em;
}
body.public-v5 .transfer-main .pt-geo-heading p{
  margin:0;max-width:62ch;color:rgba(255,251,242,.83);font-size:13px;line-height:1.65;
}
body.public-v5 .transfer-main .pt-geo-side{
  display:flex;flex-direction:column;gap:14px;
  position:relative;min-width:0;
  background:#fffefa;
  border:1px solid rgba(151,116,66,.20);
  border-radius:17px;padding:21px 19px 22px;
  box-shadow:0 6px 18px rgba(17,35,24,.045);
}
body.public-v5 .transfer-main .pt-geo-side::before{
  content:"";position:absolute;top:0;left:20px;right:20px;height:2px;
  background:linear-gradient(90deg,transparent,#c5a06d,transparent);
}
body.public-v5 .transfer-main .pt-geo-side-header{
  display:flex;align-items:center;gap:11px;padding-bottom:13px;
  margin-bottom:2px;border-bottom:1px solid rgba(20,50,34,.10);
}
body.public-v5 .transfer-main .pt-geo-step{
  width:36px;height:36px;flex:0 0 36px;display:grid;place-items:center;
  border:1px solid #c4a16a;border-radius:50%;
  background:linear-gradient(135deg,#123429,#1e4938);
  color:#f7dab0;font-size:12px;font-weight:800;letter-spacing:.03em;
}
body.public-v5 .transfer-main .pt-geo-side h3{
  margin:0;color:var(--pt-geo-green);
  font:700 clamp(16px,1.6vw,19px)/1.3 Georgia,'Times New Roman',serif;
}
body.public-v5 .transfer-main .pt-geo-field{
  display:flex;flex-direction:column;gap:8px;
  min-width:0;margin:0;color:#35483e;
  font-size:11px;font-weight:800;line-height:1.45;letter-spacing:.035em;
  text-transform:none;
}
body.public-v5 .transfer-main .pt-geo-field>span{display:block}
body.public-v5 .transfer-main .pt-geo-field input,
body.public-v5 .transfer-main .pt-geo-field select{
  display:block;min-height:49px;width:100%;min-width:0;
  padding:11px 13px;background:#fff!important;color:#19362a!important;
  border:1px solid rgba(32,59,44,.18);border-radius:12px;
  box-shadow:0 1px 2px rgba(17,41,29,.03);
  font-family:inherit;line-height:1.45;
  font-size:14px;font-weight:500;letter-spacing:0;text-transform:none;
  transition:border-color .16s ease,box-shadow .16s ease;
}
body.public-v5 .transfer-main .pt-geo-field input::placeholder{color:#87928b;opacity:1}
body.public-v5 .transfer-main .pt-geo-field input:hover,
body.public-v5 .transfer-main .pt-geo-field select:hover{border-color:rgba(171,126,71,.6)}
body.public-v5 .transfer-main .pt-geo-field input:focus,
body.public-v5 .transfer-main .pt-geo-field select:focus{
  outline:2px solid transparent;outline-offset:2px;
  border-color:#ad874d;box-shadow:0 0 0 4px rgba(173,135,77,.15);
}
body.public-v5 .transfer-main .pt-geo-field input[readonly]{background:#f5f6f3!important}
body.public-v5 .transfer-main .pt-geo-field input[type=search]{appearance:none;padding-left:39px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%235d7463' stroke-width='2'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='m16 16 5 5'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;background-size:18px 18px!important;background-position:13px center!important;
}
body.public-v5 .transfer-main .pt-geo-field select{
  appearance:auto;cursor:pointer;
}
body.public-v5 .transfer-main .pt-geo-results{
  display:flex;flex-direction:column;gap:4px;
  width:100%;max-height:215px;overflow-y:auto;scrollbar-width:thin;
  margin-top:-8px;
}
body.public-v5 .transfer-main .pt-geo-results:empty{display:none}
body.public-v5 .transfer-main .pt-geo-result{
  display:block;width:100%;min-height:42px;
  padding:10px 13px;text-align:left;
  border:1px solid rgba(29,61,45,.12);border-radius:10px;
  background:#f7f8f3!important;color:#214131!important;
  font-family:inherit;font-weight:500;font-size:13px;line-height:1.5;
  cursor:pointer;transition:background .15s,border-color .15s;
}
body.public-v5 .transfer-main .pt-geo-result:hover,
body.public-v5 .transfer-main .pt-geo-result:focus-visible{
  background:#eaf0e8!important;color:#123b28!important;
  border-color:#b9985f;outline:2px solid #b9985f;outline-offset:1px;
}
body.public-v5 .transfer-main .pt-geo-results small{
  display:block;padding:10px 12px;color:#84552c;font-size:12px;
  background:#fff5e6;border:1px solid #ead6b5;border-radius:10px;
}
body.public-v5 .transfer-main .pt-geo-selected{
  display:flex;align-items:center;gap:8px;line-height:1.45;
  padding:9px 11px;border-radius:10px;background:#ebf3ed;
  border:1px solid #c8dccc;color:#1c5636;font-size:12px;font-weight:700;
}
body.public-v5 .transfer-main .pt-geo-selected::before{
  content:'✓';width:20px;height:20px;flex:0 0 20px;display:grid;place-items:center;
  border-radius:50%;background:#1e5b3c;color:#fff;font-size:12px;
}
body.public-v5 .transfer-main .pt-geo-selected[hidden],
body.public-v5 .transfer-main .pt-geo-terminal[hidden]{display:none!important}
body.public-v5 .transfer-main .pt-geo-help{
  grid-column:1/-1;margin:0 3px 2px;
  display:flex;align-items:flex-start;gap:10px;
  padding:13px 15px;color:#47614f;
  border-radius:12px;border:1px solid rgba(162,125,77,.20);
  background:rgba(255,255,255,.70);font-size:12px;line-height:1.6;
}
body.public-v5 .transfer-main .pt-geo-help::before{
  content:'i';width:19px;height:19px;display:grid;place-items:center;flex:0 0 19px;
  border-radius:50%;color:#fff;background:#24533d;font:700 12px/1 Georgia,serif;
}
@media(max-width:1180px){
  body.public-v5 .transfer-main .pt-geo-panel{grid-template-columns:minmax(0,1fr)}
}
@media(min-width:1181px) and (max-width:1320px){
  body.public-v5 .transfer-main .pt-geo-side{padding:18px 14px}
}
@media(max-width:720px){
  body.public-v5 .transfer-main .pt-geo-panel{margin:10px 0;padding:0 12px 12px;gap:12px;border-radius:17px}
  body.public-v5 .transfer-main .pt-geo-heading{margin:0 -12px;padding:20px 18px}
  body.public-v5 .transfer-main .pt-geo-heading h3{font-size:22px}
  body.public-v5 .transfer-main .pt-geo-side{padding:18px 15px;border-radius:14px}
  body.public-v5 .transfer-main .pt-geo-results{max-height:185px}
  body.public-v5 .transfer-main .pt-geo-field input,
  body.public-v5 .transfer-main .pt-geo-field select{font-size:16px;min-height:51px}
}
@media(prefers-reduced-motion:reduce){
  body.public-v5 .transfer-main .pt-geo-panel *{transition:none!important}
}

/* v106305 — prefilled terminal / pier inputs, Prode Tours palette */
body.public-v5 .transfer-main .pt-listed-terminal-hint{
  display:block;margin-top:8px;padding:9px 12px;
  border-left:3px solid #b69a56;border-radius:0 9px 9px 0;
  background:#f4f4eb;color:#375a46;
  font-size:12px;font-weight:500;line-height:1.5;
}
body.public-v5 .transfer-main input[list^="pt-listed-"]{
  border-color:rgba(160,128,72,.55);
}
body.public-v5 .transfer-main input[list^="pt-listed-"]:focus{
  outline-color:#b69a56;
}

/* v106306 — required customer choice when more than one terminal / pier exists. */
body.public-v5 .transfer-main .pt-terminal-choice {
  display:block;
  width:100%;
  min-height:49px;
  border:1px solid rgba(159,122,67,.56);
  border-radius:12px;
  background:#fffefa;
  color:#183b2b;
  font-family:inherit;font-size:14px;font-weight:500;line-height:1.45;
  padding:11px 13px;
  box-shadow:0 2px 5px rgba(17,41,29,.05);
  cursor:pointer;
}
body.public-v5 .transfer-main .pt-terminal-choice:focus {
  outline:2px solid #b28a52;
  outline-offset:2px;
  border-color:#b28a52;
}
body.public-v5 .transfer-main .pt-terminal-choice:invalid {
  border-color:#b08a55;
}
body.public-v5 .transfer-main .pt-geo-field input[style*="display: none"] { display:none!important }
body.public-v5 .transfer-main .pt-geo-field select[style*="display: none"] { display:none!important }
@media(max-width:720px) {
  body.public-v5 .transfer-main .pt-terminal-choice { font-size:16px;min-height:51px }
}


/* ============================================================
   Prode Tours v106307 — uniform premium headings + mobile fix
   Visual changes only; no impact on routes, form fields or APIs.
   ============================================================ */
body.public-v5 .transfer-main {
  --pt-head-green:#102b21;
  --pt-head-green-light:#1d4635;
  --pt-head-gold:#e9c58c;
}

/* Four primary form sections: Journey / Vehicle / Extras / Passenger. */
body.public-v5 .transfer-main .booking-step > h2 {
  display:flex;
  flex-wrap:nowrap;
  align-items:center;
  width:100%;
  min-width:0;
  padding:17px 21px;
  gap:13px;
  border:1px solid rgba(196,151,83,.75);
  border-bottom:3px solid #b88a4c;
  border-radius:15px;
  background:linear-gradient(115deg,var(--pt-head-green),var(--pt-head-green-light));
  box-shadow:0 10px 24px rgba(12,37,25,.11);
  color:var(--pt-head-gold)!important;
  font-weight:500!important;
  letter-spacing:-.025em!important;
  line-height:1.2!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
  text-wrap:wrap!important;
  writing-mode:horizontal-tb!important;
}
body.public-v5 .transfer-main .booking-step > h2::before {
  flex:0 0 39px;
  width:39px;height:39px;
  border:1px solid rgba(233,197,140,.78);
  background:rgba(255,255,255,.075);
  color:var(--pt-head-gold);
}

/* Outbound and return headings, for both listed and custom transfers. */
body.public-v5 .transfer-main .journey-card__header {
  display:flex;
  flex-flow:row wrap;
  align-items:center;
  justify-content:space-between;
  gap:8px 18px;
  min-width:0;
  border-bottom:2px solid #b88a4c;
  background:linear-gradient(115deg,#102b21,#1b4434);
}
body.public-v5 .transfer-main .journey-card__header h3 {
  display:block;
  flex:0 0 auto;
  min-width:max-content;
  max-width:100%;
  margin:0;
  color:var(--pt-head-gold)!important;
  font-weight:600;
  line-height:1.22;
  writing-mode:horizontal-tb!important;
  white-space:nowrap;
  word-break:normal!important;
  overflow-wrap:normal!important;
  text-wrap:nowrap!important;
  hyphens:none;
}
body.public-v5 .transfer-main .journey-card__header p {
  flex:1 1 195px;
  min-width:0;
  margin:0;
  text-align:right;
  color:#f5e9d6!important;
  line-height:1.5;
}

/* Custom route: matching dark green/gold heading for each location card. */
body.public-v5 .transfer-main .pt-geo-heading h3 {color:var(--pt-head-gold)!important}
body.public-v5 .transfer-main .pt-geo-side-header {
  gap:12px;
  min-width:0;
  padding:13px 15px;
  margin:-5px -3px 5px;
  border:1px solid rgba(196,151,83,.65);
  border-bottom:2px solid #b88a4c;
  border-radius:12px;
  background:linear-gradient(115deg,#102b21,#1c4433);
}
body.public-v5 .transfer-main .pt-geo-step {
  flex:0 0 34px;
  width:34px;height:34px;
  background:rgba(255,255,255,.075);
  border-color:rgba(233,197,140,.75);
  color:var(--pt-head-gold);
}
body.public-v5 .transfer-main .pt-geo-side-header h3 {
  display:block;
  flex:1 1 auto;
  min-width:0;
  margin:0;
  color:var(--pt-head-gold)!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
  writing-mode:horizontal-tb!important;
  text-wrap:wrap!important;
  line-height:1.35;
}

/* Small screens: never stack the individual letters of Andata / Outbound. */
@media(max-width:720px) {
  body.public-v5 .transfer-main .booking-step > h2 {
    padding:14px 13px;
    gap:10px;
    font-size:clamp(20px,5.3vw,27px)!important;
  }
  body.public-v5 .transfer-main .booking-step > h2::before {
    width:31px;height:31px;flex-basis:31px;font-size:9px;
  }
  body.public-v5 .transfer-main .journey-card__header {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    gap:7px;
    padding:18px 16px;
  }
  body.public-v5 .transfer-main .journey-card__header h3 {
    flex:none;
    display:block;
    width:auto;
    min-width:0;
    font-size:23px;
    white-space:nowrap!important;
  }
  body.public-v5 .transfer-main .journey-card__header p {
    flex:none;
    width:100%;
    text-align:left!important;
    font-size:12px;
  }
  body.public-v5 .transfer-main .pt-geo-side-header {
    display:flex;
    flex-direction:row;
    align-items:center;
    flex-wrap:nowrap;
    gap:10px;
    min-width:0;
    margin:-4px -2px 4px;
    padding:12px 13px;
  }
  body.public-v5 .transfer-main .pt-geo-side-header h3 {
    flex:1 1 auto;
    min-width:0;
    font-size:clamp(16px,4vw,19px);
    overflow-wrap:normal!important;
    word-break:normal!important;
    writing-mode:horizontal-tb!important;
    white-space:normal!important;
  }
  body.public-v5 .transfer-main .pt-geo-heading h3 {
    overflow-wrap:normal!important;
    word-break:normal!important;
    writing-mode:horizontal-tb!important;
  }
  body.public-v5 .transfer-main .radio-row {
    display:grid;
    grid-template-columns:minmax(0,1fr);
    width:100%;
    min-width:0;
  }
  body.public-v5 .transfer-main .radio-row .radio,
  body.public-v5 .transfer-main .radio-row .radio span {
    width:100%;
    min-width:0;
    max-width:100%;
    word-break:normal!important;
    overflow-wrap:normal!important;
    writing-mode:horizontal-tb!important;
    text-align:center;
    justify-content:center;
  }
}


/* ============================================================
   Prode Tours v106308 — flight/ship number + terminal/pier sizing
   Both details have identical full-row widths and touch heights.
   ============================================================ */
body.public-v5 .transfer-main .journey-card__fields > .pt-travel-reference,
body.public-v5 .transfer-main .journey-card__fields > .pt-terminal-reference {
  grid-column:1 / -1;
  width:100%;
  min-width:0;
}
body.public-v5 .transfer-main .journey-card__fields .pt-travel-reference label,
body.public-v5 .transfer-main .journey-card__fields .pt-terminal-reference label {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:9px;
  width:100%;
  min-width:0;
}
body.public-v5 .transfer-main .journey-card__fields .pt-travel-reference input,
body.public-v5 .transfer-main .journey-card__fields .pt-terminal-reference input,
body.public-v5 .transfer-main .journey-card__fields .pt-terminal-reference select.pt-terminal-choice {
  display:block;
  box-sizing:border-box;
  width:100%!important;
  max-width:100%;
  min-width:0;
  min-height:54px;
  height:54px;
  padding:12px 15px;
  border:1px solid rgba(159,122,67,.56);
  border-radius:12px;
  background:#fffefa;
  color:#183b2b;
  box-shadow:0 2px 5px rgba(17,41,29,.05);
  font-family:inherit;
  font-size:15px;
  font-weight:500;
  line-height:1.45;
}
body.public-v5 .transfer-main .journey-card__fields .pt-travel-reference input:focus-visible,
body.public-v5 .transfer-main .journey-card__fields .pt-terminal-reference input:focus-visible,
body.public-v5 .transfer-main .journey-card__fields .pt-terminal-reference select.pt-terminal-choice:focus-visible {
  outline:2px solid #b28a52;
  outline-offset:2px;
  border-color:#b28a52;
}
@media(max-width:720px) {
  body.public-v5 .transfer-main .journey-card__fields > .pt-travel-reference,
  body.public-v5 .transfer-main .journey-card__fields > .pt-terminal-reference {
    grid-column:1 / -1;
  }
  body.public-v5 .transfer-main .journey-card__fields .pt-travel-reference input,
  body.public-v5 .transfer-main .journey-card__fields .pt-terminal-reference input,
  body.public-v5 .transfer-main .journey-card__fields .pt-terminal-reference select.pt-terminal-choice {
    font-size:16px;
    height:54px;
    min-height:54px;
  }
}
