/* PCS Transfers - quote and request panel. Mobile first. Tokens from pcs-design-tokens.
 * Everything is scoped to .pcs-trp; theme button and input rules are overridden on
 * purpose (they restyle custom controls otherwise). */

.pcs-trp {
	--trp-navy: var(--pcs-navy, #0A2E4D);
	--trp-blue: var(--pcs-blue, #0D6E8C);
	--trp-turq: var(--pcs-turquoise, #18B7B2);
	--trp-ivory: var(--pcs-ivory, #FBF8F2);
	--trp-text: var(--pcs-text, #1E2933);
	--trp-muted: var(--pcs-muted, #61707C);
	--trp-border: var(--pcs-border, #DDE5EA);
	--trp-error: var(--pcs-error, #C6402E);
	box-sizing: border-box;
	width: 100%;
	max-width: 880px;
	margin: 0 auto 32px;
	padding: 20px 16px 22px;
	background: #fff;
	border: 1px solid var(--trp-border);
	border-radius: var(--radius-panel, 16px);
	box-shadow: var(--pcs-shadow, 0 8px 24px rgba(8, 52, 76, 0.08));
	font-family: var(--font-body, "Manrope", -apple-system, "Segoe UI", Roboto, sans-serif);
	color: var(--trp-text);
	font-size: 16px;
	line-height: 1.45;
}
.pcs-trp *, .pcs-trp *::before, .pcs-trp *::after { box-sizing: border-box; }
.pcs-trp [hidden] { display: none !important; }
.pcs-trp p { margin: 0; }

.pcs-trp__head { margin: 0 0 14px; }
.pcs-trp .pcs-trp__title {
	margin: 0 0 4px;
	font-family: var(--font-body, "Manrope", sans-serif);
	font-size: 20px;
	line-height: 1.25;
	font-weight: 700;
	color: var(--trp-navy);
	letter-spacing: 0;
}
.pcs-trp__lead { color: var(--trp-muted); font-size: 15px; }
.pcs-trp__sr, .pcs-trp__live {
	position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden;
	clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.pcs-trp__hp { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }

/* Trip type */
.pcs-trp .pcs-trp__seg {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 0;
	margin: 0 0 14px; padding: 3px; border: 1px solid var(--trp-border); border-radius: 11px;
	background: var(--trp-ivory); min-width: 0;
}
.pcs-trp__seg label { display: block; margin: 0; cursor: pointer; min-width: 0; }
.pcs-trp__seg input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.pcs-trp__seg span {
	display: flex; align-items: center; justify-content: center; min-height: 44px; padding: 6px 4px;
	border-radius: 8px; font-size: 14px; font-weight: 600; color: var(--trp-navy); text-align: center; line-height: 1.2;
}
.pcs-trp__seg input:checked + span { background: var(--trp-navy); color: #fff; }
.pcs-trp__seg input:focus-visible + span { outline: 2px solid var(--trp-blue); outline-offset: 2px; }

/* Fields */
.pcs-trp__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pcs-trp__field { min-width: 0; }
.pcs-trp__field--hotel { grid-column: 1 / -1; }
.pcs-trp__field--pax { grid-column: 1 / -1; }
.pcs-trp[data-trip="arrival"] .pcs-trp__field--date,
.pcs-trp[data-trip="departure"] .pcs-trp__field--date { grid-column: 1 / -1; }
.pcs-trp__grid--two, .pcs-trp__grid--three { grid-template-columns: 1fr; }

.pcs-trp .pcs-trp__field > label,
.pcs-trp .pcs-trp__stepper + label {
	display: block; margin: 0 0 5px; font-size: 13px; font-weight: 700; color: var(--trp-navy); letter-spacing: .01em;
}
.pcs-trp input[type="text"], .pcs-trp input[type="email"], .pcs-trp input[type="tel"],
.pcs-trp input[type="date"], .pcs-trp input[type="time"], .pcs-trp input[type="number"], .pcs-trp textarea {
	display: block; width: 100% !important; max-width: 100%; min-height: 48px; margin: 0;
	padding: 10px 12px !important; border: 1px solid #B9C6CF !important; border-radius: var(--radius-control, 9px) !important;
	background: #fff !important; color: var(--trp-text) !important; font-family: inherit; font-size: 16px !important; line-height: 1.3;
	box-shadow: none !important; -webkit-appearance: none; appearance: none;
}
.pcs-trp textarea { min-height: 72px; resize: vertical; }
.pcs-trp input:focus, .pcs-trp textarea:focus {
	outline: 2px solid var(--trp-blue) !important; outline-offset: 1px; border-color: var(--trp-blue) !important;
}
.pcs-trp__field--bad input, .pcs-trp__field--bad textarea { border-color: var(--trp-error) !important; }
.pcs-trp__hint { margin-top: 5px !important; font-size: 13px; color: var(--trp-muted); }
.pcs-trp__error { margin-top: 6px !important; font-size: 14px; font-weight: 600; color: var(--trp-error); }
.pcs-trp__fine { margin-top: 10px !important; font-size: 13px; color: var(--trp-muted); text-align: center; }
.pcs-trp__optional { font-weight: 500; font-size: 13px; color: var(--trp-muted); }

/* Hotel type-ahead */
.pcs-trp__combo { position: relative; }
.pcs-trp .pcs-trp__list {
	position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 4px); max-height: 264px; overflow-y: auto;
	margin: 0; padding: 4px; list-style: none; background: #fff; border: 1px solid #B9C6CF; border-radius: 10px;
	box-shadow: 0 10px 28px rgba(8, 52, 76, 0.16);
}
.pcs-trp .pcs-trp__list li {
	margin: 0; padding: 13px 10px; border-radius: 7px; font-size: 15px; line-height: 1.25; color: var(--trp-text); cursor: pointer; list-style: none;
}
.pcs-trp .pcs-trp__list li::before { content: none; }
.pcs-trp .pcs-trp__list li:hover, .pcs-trp .pcs-trp__list li[aria-selected="true"] { background: #E8F3F6; }
.pcs-trp .pcs-trp__list li.pcs-trp__list-extra { color: var(--trp-blue); font-weight: 600; border-top: 1px solid var(--trp-border); border-radius: 0; }

/* Passengers */
.pcs-trp__stepper { display: grid; grid-template-columns: 48px 1fr 48px; gap: 6px; }
.pcs-trp .pcs-trp__stepper input { text-align: center; -moz-appearance: textfield; }
.pcs-trp .pcs-trp__stepper input::-webkit-outer-spin-button, .pcs-trp .pcs-trp__stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.pcs-trp .pcs-trp__stepper button {
	min-height: 48px; width: 48px; padding: 0 !important; border: 1px solid #B9C6CF !important; border-radius: var(--radius-control, 9px) !important;
	background: #fff !important; color: var(--trp-navy) !important; font-size: 22px !important; font-weight: 600; line-height: 1; cursor: pointer; box-shadow: none !important;
}
.pcs-trp .pcs-trp__stepper button:hover { background: var(--trp-ivory) !important; }

/* Buttons */
.pcs-trp .pcs-trp__btn {
	display: block; width: 100%; min-height: 52px; margin: 16px 0 0; padding: 12px 18px !important; border: 0 !important;
	border-radius: var(--radius-button, 9px) !important; font-family: inherit; font-size: 16px !important; font-weight: 700 !important;
	line-height: 1.2; letter-spacing: .01em; text-transform: none !important; cursor: pointer; text-align: center; box-shadow: none !important;
}
.pcs-trp .pcs-trp__btn--primary { background: linear-gradient(180deg, #AB661F 0%, #8A5319 100%) !important; color: #fff !important; }
.pcs-trp .pcs-trp__btn--primary:hover { background: linear-gradient(180deg, #9A5C1C 0%, #7A4915 100%) !important; }
.pcs-trp .pcs-trp__btn--primary:disabled { opacity: .7; cursor: progress; }
.pcs-trp .pcs-trp__btn--link {
	min-height: 44px; margin-top: 6px; background: transparent !important; color: var(--trp-blue) !important; font-weight: 600 !important; text-decoration: underline;
}
.pcs-trp .pcs-trp__btn:focus-visible { outline: 2px solid var(--trp-navy) !important; outline-offset: 2px; }

/* Quote */
.pcs-trp__eyebrow { font-size: 12px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--trp-blue); }
.pcs-trp__route { margin-top: 6px !important; font-size: 18px; font-weight: 700; color: var(--trp-navy); line-height: 1.3; overflow-wrap: anywhere; }
.pcs-trp__route:focus, .pcs-trp__eyebrow:focus, .pcs-trp__h3:focus { outline: none; }
.pcs-trp__meta { margin-top: 2px !important; color: var(--trp-muted); font-size: 15px; }
.pcs-trp__price { margin-top: 14px !important; color: var(--trp-navy); line-height: 1.1; }
.pcs-trp__amount { font-size: 40px; font-weight: 700; letter-spacing: -.01em; }
.pcs-trp__suffix { font-size: 16px; font-weight: 600; color: var(--trp-muted); }
.pcs-trp__basis { margin-top: 4px !important; font-size: 13px; color: var(--trp-muted); }
.pcs-trp__status { margin-top: 14px; padding: 12px 14px; border-radius: 10px; background: #EEF4F7; border-left: 4px solid var(--trp-blue); }
.pcs-trp__status-title { font-weight: 700; color: var(--trp-navy); font-size: 16px; }
.pcs-trp__status-text { margin-top: 3px !important; font-size: 15px; }
.pcs-trp .pcs-trp__points { display: grid; grid-template-columns: 1fr; gap: 6px; margin: 14px 0 0; padding: 0; list-style: none; }
.pcs-trp .pcs-trp__points li { position: relative; margin: 0; padding: 0 0 0 22px; font-size: 15px; list-style: none; }
.pcs-trp .pcs-trp__points li::before {
	content: ""; position: absolute; left: 2px; top: .38em; width: 11px; height: 6px;
	border-left: 2px solid var(--trp-turq); border-bottom: 2px solid var(--trp-turq); transform: rotate(-45deg);
}
.pcs-trp .pcs-trp__notes { margin: 12px 0 0; padding: 0; list-style: none; }
.pcs-trp .pcs-trp__notes li { margin: 0 0 4px; padding: 0; font-size: 13px; color: var(--trp-muted); list-style: none; }
.pcs-trp .pcs-trp__notes li::before { content: none; }

/* Details */
.pcs-trp__recap { padding: 10px 12px; border-radius: 10px; background: var(--trp-ivory); border: 1px solid var(--trp-border); }
.pcs-trp__recap-route { font-weight: 700; color: var(--trp-navy); overflow-wrap: anywhere; }
.pcs-trp__recap-meta { font-size: 14px; color: var(--trp-muted); }
.pcs-trp__explain { margin-top: 10px !important; font-size: 14px; color: var(--trp-text); }
.pcs-trp .pcs-trp__h3 {
	margin: 18px 0 8px; font-family: var(--font-body, "Manrope", sans-serif); font-size: 16px; font-weight: 700; color: var(--trp-navy); line-height: 1.3; letter-spacing: 0;
}
.pcs-trp .pcs-trp__h3 span { font-weight: 500; color: var(--trp-muted); font-size: 14px; }
.pcs-trp .pcs-trp__check { display: flex; align-items: flex-start; gap: 10px; min-height: 44px; margin: 0; padding: 10px 0; font-size: 15px; font-weight: 500; color: var(--trp-text); cursor: pointer; }
.pcs-trp .pcs-trp__check input { flex: 0 0 auto; width: 20px !important; height: 20px; min-height: 0; margin: 1px 0 0; padding: 0 !important; accent-color: var(--trp-blue); -webkit-appearance: auto; appearance: auto; }
.pcs-trp .pcs-trp__field > label.pcs-trp__check {
	display: flex; margin: 0; padding: 8px 0 0; min-height: 36px; font-size: 15px; font-weight: 500; color: var(--trp-text); letter-spacing: 0;
}

/* Phones: keep the details step short - pair the short fields instead of stacking every one. */
.pcs-trp__details .pcs-trp__grid--two { grid-template-columns: 1fr 1fr; }
.pcs-trp__details .pcs-trp__grid--two > [data-trp-field="email"],
.pcs-trp__details .pcs-trp__grid--two > [data-trp-field="phone"] { grid-column: 1 / -1; }
.pcs-trp__details .pcs-trp__leg .pcs-trp__grid--three { grid-template-columns: 1fr 1fr; }
.pcs-trp__details .pcs-trp__leg .pcs-trp__grid--three > :first-child { grid-column: 1 / -1; }
.pcs-trp__details .pcs-trp__extra .pcs-trp__grid--three { grid-template-columns: repeat(3, 1fr); gap: 8px; }
.pcs-trp__details .pcs-trp__extra .pcs-trp__grid--two { grid-template-columns: 1fr; }
.pcs-trp__details .pcs-trp__grid { gap: 10px; }
.pcs-trp__details .pcs-trp__h3 { margin-top: 14px; }
.pcs-trp__extra { margin: 0 0 6px; padding: 12px; border-radius: 10px; background: var(--trp-ivory); border: 1px solid var(--trp-border); }

/* Done */
.pcs-trp__ref { margin-top: 6px !important; font-size: 16px; }
.pcs-trp__ref strong { font-size: 20px; color: var(--trp-navy); letter-spacing: .03em; }
.pcs-trp__changed { margin-top: 12px !important; padding: 10px 12px; border-radius: 10px; background: #EEF4F7; border-left: 4px solid var(--trp-blue); font-size: 15px; }
.pcs-trp__done-text { margin-top: 12px !important; }

/* Tablet and up: the trip row becomes one compact line */
@media (min-width: 768px) {
	.pcs-trp { padding: 26px 28px 26px; }
	.pcs-trp .pcs-trp__title { font-size: 24px; }
	.pcs-trp .pcs-trp__seg { display: inline-grid; grid-template-columns: repeat(3, auto); }
	.pcs-trp__seg span { padding: 6px 18px; }
	.pcs-trp__grid { grid-template-columns: minmax(0, 2.2fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.05fr); align-items: start; }
	.pcs-trp__field--hotel, .pcs-trp__field--pax,
	.pcs-trp[data-trip="arrival"] .pcs-trp__field--date,
	.pcs-trp[data-trip="departure"] .pcs-trp__field--date { grid-column: auto; }
	.pcs-trp[data-trip="arrival"] .pcs-trp__trip .pcs-trp__grid,
	.pcs-trp[data-trip="departure"] .pcs-trp__trip .pcs-trp__grid { grid-template-columns: minmax(0, 2.2fr) minmax(0, 1.2fr) minmax(0, 1.05fr); }
	.pcs-trp__grid--two { grid-template-columns: 1fr 1fr; }
	.pcs-trp__grid--three { grid-template-columns: 1.3fr 1fr 1fr; }
	.pcs-trp__details .pcs-trp__grid--two > [data-trp-field="email"],
	.pcs-trp__details .pcs-trp__grid--two > [data-trp-field="phone"] { grid-column: auto; }
	.pcs-trp__details .pcs-trp__leg .pcs-trp__grid--three { grid-template-columns: 1.3fr 1fr 1fr; }
	.pcs-trp__details .pcs-trp__leg .pcs-trp__grid--three > :first-child { grid-column: auto; }
	.pcs-trp__details .pcs-trp__extra .pcs-trp__grid--two { grid-template-columns: 1fr 1fr; }
	.pcs-trp .pcs-trp__btn--primary { width: auto; min-width: 260px; }
	.pcs-trp__actions { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
	.pcs-trp__actions .pcs-trp__btn--link { width: auto; margin-top: 16px; }
	.pcs-trp__fine { text-align: left; }
	.pcs-trp .pcs-trp__points { grid-template-columns: 1fr 1fr; }
	.pcs-trp__amount { font-size: 46px; }
}

@media (prefers-reduced-motion: reduce) {
	.pcs-trp * { scroll-behavior: auto !important; transition: none !important; }
}

/* ---- Phase 3.1 ---------------------------------------------------------- */

/* The page shell now carries the main heading; the panel's own title is a compact label. */
.pcs-trp .pcs-trp__title { font-size: 18px; margin: 0; }
.pcs-trp__head { margin: 0 0 12px; }
.pcs-trp__later { margin: 14px 0 0; padding: 4px 12px 8px; border-radius: 10px; background: var(--trp-ivory); border: 1px solid var(--trp-border); }
.pcs-trp__later .pcs-trp__hint { margin: 0 0 4px !important; }

/* Contact Dock accommodation (phones only, this panel only; the dock itself is untouched).
   The dock is a 48px button fixed 16px from the right edge, so content scrolling past it
   has a 64px lane on the right where a small control could sit entirely underneath it.
   The only small right-edge control in the panel is the passengers "+" button, so on
   phones the stepper is kept compact and left-aligned, clear of that lane. Full-width
   fields and buttons keep their tap centre well clear of it. */
.pcs-trp__stepper { grid-template-columns: 48px minmax(64px, 96px) 48px; justify-content: start; }

/* Page shell (rendered by Elementor on the private transfer page). */
.pcs-trs { font-family: var(--font-body, "Manrope", -apple-system, "Segoe UI", Roboto, sans-serif); color: var(--pcs-text, #1E2933); font-size: 16px; line-height: 1.5; width: 100%; max-width: 880px; margin: 0 auto; }
.pcs-trs * { box-sizing: border-box; }
.pcs-trs .pcs-trs__h2 { margin: 0 0 14px; font-family: var(--font-body, "Manrope", sans-serif); font-size: 20px; line-height: 1.25; font-weight: 700; color: var(--pcs-navy, #0A2E4D); letter-spacing: 0; }
.pcs-trs .pcs-trs__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; margin: 0; padding: 0; list-style: none; }
.pcs-trs .pcs-trs__grid li { margin: 0; padding: 0 0 0 26px; position: relative; list-style: none; }
.pcs-trs .pcs-trs__grid li::before { content: ""; position: absolute; left: 2px; top: .42em; width: 12px; height: 7px; border-left: 2px solid var(--pcs-turquoise, #18B7B2); border-bottom: 2px solid var(--pcs-turquoise, #18B7B2); transform: rotate(-45deg); }
.pcs-trs .pcs-trs__grid strong { display: block; font-size: 15px; font-weight: 700; color: var(--pcs-navy, #0A2E4D); }
.pcs-trs .pcs-trs__grid span { display: block; font-size: 14px; color: var(--pcs-muted, #61707C); }
.pcs-trs .pcs-trs__steps { counter-reset: trs; display: grid; grid-template-columns: 1fr; gap: 12px; margin: 0; padding: 0; list-style: none; }
.pcs-trs .pcs-trs__steps li { counter-increment: trs; position: relative; margin: 0; padding: 2px 0 0 44px; min-height: 32px; list-style: none; font-size: 15px; }
.pcs-trs .pcs-trs__steps li::before { content: counter(trs); position: absolute; left: 0; top: 0; width: 32px; height: 32px; border-radius: 50%; background: var(--pcs-navy, #0A2E4D); color: #fff; font-weight: 700; font-size: 15px; line-height: 32px; text-align: center; }
.pcs-trs .pcs-trs__steps strong { display: block; color: var(--pcs-navy, #0A2E4D); font-weight: 700; }
.pcs-trs .pcs-trs__note { margin: 16px 0 0; padding: 12px 14px; border-radius: 10px; background: #fff; border: 1px solid var(--pcs-border, #DDE5EA); font-size: 14px; color: var(--pcs-text, #1E2933); }
.pcs-trs .pcs-trs__note p { margin: 0 0 6px; }
.pcs-trs .pcs-trs__note p:last-child { margin: 0; }
.pcs-trs .pcs-trs__help { margin: 0; font-size: 15px; color: var(--pcs-text, #1E2933); }
.pcs-trs .pcs-trs__help a { color: var(--pcs-blue, #0D6E8C); font-weight: 600; text-decoration: underline; }
body.pcs-transfer-page .pcs-trp { margin-bottom: 0; }

/* shell-2 (0.4.2): static information sections below the panel. Shell selectors only;
   nothing here matches an element inside the panel (.pcs-trp). */
.pcs-trs .pcs-trs__p { margin: 0 0 12px; font-size: 15px; color: var(--pcs-text, #1E2933); }
.pcs-trs .pcs-trs__p:last-child { margin-bottom: 0; }
.pcs-trs .pcs-trs__prices { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 0 0 14px; padding: 0; list-style: none; max-width: 520px; }
.pcs-trs .pcs-trs__prices li { margin: 0; padding: 14px 16px; list-style: none; border: 1px solid var(--pcs-border, #DDE5EA); border-radius: 10px; background: #F4F8FB; }
.pcs-trs .pcs-trs__prices span { display: block; font-size: 14px; font-weight: 600; color: var(--pcs-muted, #61707C); }
.pcs-trs .pcs-trs__prices strong { display: block; font-size: 28px; line-height: 1.2; font-weight: 700; color: var(--pcs-navy, #0A2E4D); }
.pcs-trs .pcs-trs__prices em { display: block; font-style: normal; font-size: 13px; color: var(--pcs-muted, #61707C); }
.pcs-trs .pcs-trs__list { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.pcs-trs .pcs-trs__list li { position: relative; margin: 0; padding: 0 0 0 20px; list-style: none; font-size: 15px; }
.pcs-trs .pcs-trs__list li::before { content: ""; position: absolute; left: 2px; top: .62em; width: 6px; height: 6px; border-radius: 50%; background: var(--pcs-turquoise, #18B7B2); }
.pcs-trs .pcs-trs__list strong { color: var(--pcs-navy, #0A2E4D); font-weight: 700; }
.pcs-trs .pcs-trs__p a { color: var(--pcs-blue, #0D6E8C); font-weight: 600; text-decoration: underline; }
.pcs-trs .pcs-trs__policy { margin: 0 0 12px; padding: 14px 16px; border-left: 4px solid var(--pcs-navy, #0A2E4D); border-radius: 0 10px 10px 0; background: #F4F8FB; font-size: 15px; font-weight: 600; color: var(--pcs-navy, #0A2E4D); }
.pcs-trs .pcs-trs__faq { border-top: 1px solid var(--pcs-border, #DDE5EA); }
.pcs-trs .pcs-trs__faq:last-child { border-bottom: 1px solid var(--pcs-border, #DDE5EA); }
.pcs-trs .pcs-trs__faq summary { cursor: pointer; padding: 14px 28px 14px 0; position: relative; list-style: none; font-size: 15px; font-weight: 700; color: var(--pcs-navy, #0A2E4D); min-height: 48px; }
.pcs-trs .pcs-trs__faq summary::-webkit-details-marker { display: none; }
.pcs-trs .pcs-trs__faq summary::after { content: ""; position: absolute; right: 6px; top: 20px; width: 8px; height: 8px; border-right: 2px solid var(--pcs-navy, #0A2E4D); border-bottom: 2px solid var(--pcs-navy, #0A2E4D); transform: rotate(45deg); }
.pcs-trs .pcs-trs__faq[open] summary::after { transform: rotate(-135deg); top: 24px; }
.pcs-trs .pcs-trs__faq summary:focus-visible { outline: 2px solid var(--pcs-blue, #0D6E8C); outline-offset: 2px; }
.pcs-trs .pcs-trs__faq p { margin: 0 0 14px; padding-right: 28px; font-size: 15px; color: var(--pcs-text, #1E2933); }

@media (min-width: 768px) {
	.pcs-trp .pcs-trp__title { font-size: 20px; }
	.pcs-trs .pcs-trs__grid { grid-template-columns: repeat(4, 1fr); }
	.pcs-trs .pcs-trs__steps { grid-template-columns: repeat(3, 1fr); gap: 20px; }
	.pcs-trs .pcs-trs__h2 { font-size: 22px; }
}

/* Tablets and small desktops (the panel is narrower here, see the safe-area rule below):
   the hotel field takes the first row; dates and passengers share the second, so the
   date fields are wide enough to show a full date. The one-row layout returns at 1200px. */
@media (min-width: 768px) and (max-width: 1199.98px) {
	.pcs-trp .pcs-trp__trip .pcs-trp__grid,
	.pcs-trp[data-trip="arrival"] .pcs-trp__trip .pcs-trp__grid,
	.pcs-trp[data-trip="departure"] .pcs-trp__trip .pcs-trp__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.25fr); }
	.pcs-trp .pcs-trp__trip .pcs-trp__field--hotel { grid-column: 1 / -1; }
	.pcs-trp .pcs-trp__trip .pcs-trp__field--pax { grid-column: auto; }
}
@media (min-width: 1200px) {
	.pcs-trp__stepper { grid-template-columns: 48px minmax(0, 1fr) 48px; justify-content: stretch; }
}

/* Phase 3.2 - chat control safe area on tablets and small desktops.
   From 768px the site's chat control is a 125px labelled button, 16px from the right edge,
   while the page is at the top (it folds to a 48px square after scrolling). That is a
   141px strip on the right. Between 768px and about 1194px the panel would reach into
   that strip, so its right edge is held 157px from the viewport edge (141px + air, with
   room for a desktop scrollbar). The left edge stays where it was, in line with the page
   text. Below 768px the chat control is the small phone square and the phone layout
   applies unchanged; from 1200px the panel is clear of the strip and is not touched. */
@media (min-width: 768px) and (max-width: 1199.98px) {
	body.pcs-transfer-page .pcs-trp {
		margin-left: max(0px, calc((100% - 880px) / 2)); margin-right: auto;
		max-width: min(880px, calc(100vw - 157px - (100vw - 100%) / 2 - max(0px, (100% - 880px) / 2)));
	}
}

/* The page heading and intro share the panel's 880px column, so they line up with it at
   every width. */
body.pcs-transfer-page .pcs-trs-hero .elementor-widget-heading,
body.pcs-transfer-page .pcs-trs-hero .elementor-widget-text-editor { width: 100%; max-width: 880px !important; margin-left: auto !important; margin-right: auto !important; }
