/**
 * Parkbus brand styles for reservation & change-trip flows.
 * Scoped under .pb-checkout-page so other site pages are unaffected.
 */
@import url('https://fonts.googleapis.com/css2?family=Figtree:wght@400;500;600;700&display=swap');

:root {
  --pb-green-dark: #21452E;
  --pb-green-sage: #637752;
  --pb-green-light-sage: #C8D6B8;
  --pb-green-muted-sage: #8A9E7D;
  --pb-green-divider: #3A5C42;
  --pb-cream: #F9F7F1;
  --pb-white: #FFFFFF;
  --pb-text: #3A3A3A;
  --pb-blue: #2196F3;
  --pb-amber: #C17817;
  --pb-radius-card: 20px;
  --pb-radius-input: 10px;
  --pb-radius-pill: 50px;
  --pb-border: 3px solid var(--pb-green-sage);
  --pb-heading: 'true_northregular', 'Trebuchet MS', 'Segoe UI', Helvetica, Arial, sans-serif;
  --pb-body: 'Figtree', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
}

/* Page shell */
body.pb-checkout-page {
  background: var(--pb-cream) !important;
  background-image: none !important;
  color: var(--pb-text);
  font-family: var(--pb-body);
  font-size: 18px;
  line-height: 1.55;
  padding-top: 24px !important;
  text-align: left;
}

body.pb-checkout-page.partner-embed-checkout {
  padding-top: 12px !important;
}

/* main.css pulls .main up for hero pages — reset on checkout */
body.pb-checkout-page .main {
  padding-top: 24px !important;
  top: 0 !important;
}

.pb-checkout-page .container {
  max-width: 900px;
}

.pb-checkout-page .destinations,
.pb-checkout-page .destinations-container,
.pb-checkout-page .regularcontent {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  display: block !important;
  margin: 0 auto !important;
  overflow: visible !important;
  width: 100% !important;
}

/* Fragment pages (order details) */
.main.pb-checkout-page {
  background: var(--pb-cream);
  color: var(--pb-text);
  font-family: var(--pb-body);
  min-height: 100vh;
  padding-top: 24px !important;
  top: 0 !important;
}

/* Main card — single green-outlined container */
.pb-checkout-page .reservationbox,
.pb-checkout-page .regularcontent .content.reservationbox {
  background: var(--pb-white) !important;
  border: var(--pb-border) !important;
  border-radius: var(--pb-radius-card) !important;
  box-sizing: border-box;
  margin: 0 auto 32px !important;
  overflow: visible !important;
  padding: 36px 40px !important;
  text-align: left;
  width: 100%;
}

.pb-checkout-page .pb-checkout-page-title {
  color: var(--pb-green-dark);
  font-family: var(--pb-heading);
  font-size: 34px;
  font-weight: 700;
  letter-spacing: 0.8px;
  line-height: 1.15;
  margin: 0 0 12px;
  text-align: center;
  text-transform: uppercase;
}

/* Headings */
.pb-checkout-page .reservationbox .pb-checkout-title,
.pb-checkout-page .reservationbox h1,
.pb-checkout-page .reservationbox h2,
.pb-checkout-page .reservationbox h3 {
  color: var(--pb-green-dark);
  font-family: var(--pb-heading);
  font-weight: 700;
  letter-spacing: 0.5px;
  text-align: left;
  text-transform: uppercase;
}

.pb-checkout-page .reservationbox .pb-checkout-title {
  color: var(--pb-green-sage);
  font-size: 22px;
  line-height: 1.3;
  margin: 0 0 28px;
}

.pb-checkout-page .reservationbox h3 {
  font-size: 24px;
  line-height: 1.25;
  margin: 24px 0 12px;
}

.pb-checkout-page .reservationbox h1 {
  font-size: 30px;
  margin: 0 0 16px;
}

.pb-checkout-page .reservationbox h2 {
  font-size: 24px;
  margin: 24px 0 12px;
}

.pb-checkout-page .reservationbox h3 a,
.pb-checkout-page .reservationbox .pb-checkout-title a {
  color: var(--pb-green-sage);
  font-family: var(--pb-body);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
}

/* Dividers between sections */
.pb-checkout-page .reservationbox .pb-divider-wrap {
  box-sizing: border-box;
  clear: both;
  display: block;
  margin: 0;
  padding: 0;
  width: 100%;
}

.pb-checkout-page .reservationbox hr.pb-divider,
.pb-checkout-page .reservationbox .pb-divider-wrap hr.pb-divider {
  border: none;
  border-top: 1px solid var(--pb-green-divider);
  clear: both;
  display: block;
  margin: 28px 0;
  max-width: 100%;
  opacity: 0.45;
  width: 100%;
}

/* Form layout */
.pb-checkout-page .reservationbox .form-horizontal .control-label,
.pb-checkout-page .reservationbox .form-group > label.control-label {
  color: var(--pb-green-dark);
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 0.2px;
  line-height: 1.35;
  margin-bottom: 8px;
  padding-top: 4px;
}

.pb-checkout-page .reservationbox .form-group {
  margin-bottom: 22px;
}

.pb-checkout-page .reservationbox .help-block {
  color: var(--pb-green-muted-sage);
  font-size: 16px;
  line-height: 1.45;
}

.pb-checkout-page .reservationbox .form-control,
.pb-checkout-page .reservationbox select.form-control,
.pb-checkout-page .reservationbox textarea.form-control,
.pb-checkout-page .reservationbox input.form-control {
  background: var(--pb-white);
  border: 2px solid var(--pb-green-sage);
  border-radius: var(--pb-radius-input);
  box-shadow: none;
  color: var(--pb-text);
  font-family: var(--pb-body);
  font-size: 17px;
  height: auto;
  line-height: 1.4;
  min-height: 48px;
  padding: 12px 16px;
}

.pb-checkout-page .reservationbox .form-control:focus,
.pb-checkout-page .reservationbox select.form-control:focus,
.pb-checkout-page .reservationbox textarea.form-control:focus,
.pb-checkout-page .reservationbox input.form-control:focus {
  border-color: var(--pb-green-dark);
  box-shadow: 0 0 0 3px rgba(99, 119, 82, 0.2);
  outline: none;
}

.pb-checkout-page .reservationbox .form-control.has-error,
.pb-checkout-page .reservationbox .error-field {
  border-color: #c0392b;
}

.pb-checkout-page .reservationbox .error-field-text-large {
  color: #b42318;
  font-size: 16px;
  font-weight: 500;
  margin-top: 8px;
}

.pb-checkout-page .reservationbox .field-label,
.pb-checkout-page .reservationbox .text-muted {
  color: var(--pb-green-muted-sage);
  font-size: 16px;
}

/* Primary CTA */
.pb-checkout-page .reservationbox .btn-primary,
.pb-checkout-page .reservationbox input[type="submit"].btn-primary {
  background: var(--pb-blue) !important;
  border: none !important;
  border-radius: var(--pb-radius-pill) !important;
  color: var(--pb-white) !important;
  font-family: var(--pb-heading);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 1px;
  min-height: 52px;
  padding: 14px 36px;
  text-transform: uppercase;
  width: auto;
}

.pb-checkout-page .reservationbox .btn-primary:hover,
.pb-checkout-page .reservationbox input[type="submit"].btn-primary:hover {
  background: #1b86dc !important;
  color: var(--pb-white) !important;
}

.pb-checkout-page .reservationbox .btn-danger {
  background: transparent;
  border: 2px solid #c0392b;
  border-radius: var(--pb-radius-pill);
  color: #c0392b;
  font-family: var(--pb-heading);
  font-size: 14px;
  letter-spacing: 0.5px;
  padding: 8px 20px;
  text-transform: uppercase;
}

.pb-checkout-page .reservationbox .checkbox label {
  color: var(--pb-text);
  font-size: 17px;
  font-weight: 400;
  line-height: 1.55;
}

.pb-checkout-page .reservationbox .alert-success {
  background: rgba(99, 119, 82, 0.12);
  border: 2px solid var(--pb-green-sage);
  border-radius: var(--pb-radius-card);
  color: var(--pb-green-dark);
  font-size: 17px;
}

/* Footer: submit + call-us centred in card */
.pb-checkout-page .reservationbox .pb-checkout-footer {
  margin-bottom: 0;
  margin-top: 12px;
  text-align: center;
}

.pb-checkout-page .reservationbox .pb-checkout-footer__actions {
  margin-bottom: 16px;
}

.pb-checkout-page .reservationbox .pb-checkout-footer__help {
  color: var(--pb-green-muted-sage);
  font-size: 17px;
  line-height: 1.5;
  margin: 0 auto;
  max-width: 36em;
  text-align: center;
}

/* Review / confirm + change-trip order details summary rows */
.pb-checkout-page .reservationbox .row {
  font-size: 17px;
  line-height: 1.55;
  margin-bottom: 10px;
}

.pb-checkout-page .reservationbox .row b,
.pb-checkout-page .reservationbox .row strong {
  color: var(--pb-green-dark);
}

.pb-checkout-page .reservationbox table.organizer {
  font-size: 17px;
  line-height: 1.5;
  margin: 16px 0 24px;
  width: 100%;
}

.pb-checkout-page .reservationbox table.organizer td {
  padding: 10px 0;
  vertical-align: top;
}

.pb-checkout-page .reservationbox table.organizer td[style*="border-bottom"] {
  border-bottom-color: rgba(99, 119, 82, 0.35) !important;
}

/* All dividers on confirm / order-details pages */
.pb-checkout-page .reservationbox > hr,
.pb-checkout-page .reservationbox hr:not(.pb-divider) {
  border: none;
  border-top: 1px solid var(--pb-green-divider);
  margin: 24px 0;
  opacity: 0.45;
  width: 100%;
}

.pb-checkout-page .reservationbox .tnc {
  background: var(--pb-cream) !important;
  border: 2px solid var(--pb-green-sage) !important;
  border-radius: var(--pb-radius-input) !important;
  color: var(--pb-text) !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
}

.pb-checkout-page .reservationbox .boriscontent {
  background: transparent !important;
  border: none !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
}

.pb-checkout-page .reservationbox ol {
  font-size: 17px;
  line-height: 1.55;
  padding-left: 1.25em;
}

.pb-checkout-page .reservationbox .btn-success {
  background: var(--pb-green-sage) !important;
  border: none !important;
  border-radius: var(--pb-radius-pill) !important;
  color: var(--pb-white) !important;
  font-family: var(--pb-heading);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.5px;
  padding: 10px 22px;
  text-transform: uppercase;
}

/* Order complete / thank-you */
.pb-checkout-page .pb-checkout-complete__message {
  color: var(--pb-text);
  font-size: 18px;
  line-height: 1.6;
  margin: 0 0 24px;
}

.pb-checkout-page .pb-checkout-complete__actions {
  margin-top: 8px;
  text-align: center;
}

.pb-checkout-page .pb-checkout-ao-cta {
  background: var(--pb-green-dark);
  border-radius: var(--pb-radius-card);
  margin-top: 28px;
  padding: 24px;
  text-align: center;
}

.pb-checkout-page .pb-checkout-ao-cta a {
  color: var(--pb-white);
  text-decoration: none;
}

.pb-checkout-page .pb-checkout-ao-cta h2 {
  color: var(--pb-white);
  font-family: var(--pb-heading);
  font-size: 20px;
  letter-spacing: 0.5px;
  line-height: 1.3;
  margin: 0 0 8px;
  text-align: center;
  text-transform: uppercase;
}

.pb-checkout-page .pb-checkout-ao-cta p {
  color: var(--pb-green-light-sage);
  font-size: 17px;
  line-height: 1.5;
  margin: 0;
}

.pb-checkout-page .pb-pill {
  background: var(--pb-green-dark);
  border-radius: var(--pb-radius-pill);
  color: var(--pb-white);
  display: inline-block;
  font-family: var(--pb-heading);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1px;
  padding: 6px 14px;
  text-transform: uppercase;
}

.pb-checkout-page .pb-pill--accent {
  background: var(--pb-amber);
}

.pb-checkout-page .pb-pill--secondary {
  background: var(--pb-green-sage);
}

.pb-checkout-page .reservationbox .pb-trip-leg {
  border: 2px solid rgba(99, 119, 82, 0.35);
  border-radius: var(--pb-radius-card);
  margin-bottom: 20px;
  padding: 20px;
}

.pb-checkout-page .reservationbox .pb-trip-leg__title {
  color: var(--pb-green-dark);
  font-family: var(--pb-heading);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.5px;
  margin: 0 0 16px;
  text-transform: uppercase;
}

@media (max-width: 768px) {
  body.pb-checkout-page .main {
    padding-top: 16px !important;
  }

  .pb-checkout-page .reservationbox,
  .pb-checkout-page .regularcontent .content.reservationbox {
    padding: 24px 18px !important;
  }

  .pb-checkout-page .pb-checkout-page-title {
    font-size: 28px;
  }

  .pb-checkout-page .reservationbox .pb-checkout-title {
    font-size: 19px;
  }

  .pb-checkout-page .reservationbox h3 {
    font-size: 21px;
  }

  .pb-checkout-page .reservationbox .pb-divider-wrap {
    padding-left: 0;
    padding-right: 0;
  }

  .pb-checkout-page .reservationbox .form-horizontal .control-label {
    margin-bottom: 6px;
    text-align: left;
  }

  .pb-checkout-page .reservationbox .col-sm-offset-2 {
    margin-left: 0;
  }
}
