/* ==========================================================================
   RC Travels - inner pages restyle
   --------------------------------------------------------------------------
   cabList, CabBooking, Invoice, about and contact were still rendering with
   the original 2015-era stylesheets while the homepage had been redesigned,
   so the booking flow looked like a different product halfway through.

   Every rule is prefixed with .gogo (the body class) so it outranks the
   legacy single-class selectors in cablist.css / booknow.css / master.css
   without needing !important.

   Tokens come from gogo.css.
   ========================================================================== */

/* ------------------------------------------------------- page shell ---- */

.gogo .search-summary-section,
.gogo .cab-list-section,
.gogo .booking-page,
.gogo .invoice-page {
    background: var(--surface-2);
    padding: 30px 0 64px;
    font-family: var(--body-font);
}

.gogo .search-summary-section { padding-bottom: 0; }

/* CRITICAL OVERRIDE.
   master.css line 34 declares a GLOBAL rule:

       .container { display: flex; justify-content: space-between;
                    align-items: center; }

   It was written for the old header bar, but it hits every .container on the
   site. That is what turned the cab list into a row of narrow overlapping
   cards, and it also breaks any Bootstrap grid inside .container on the about
   and contact pages. Forcing display:block restores normal flow. */
.gogo .container,
.gogo .invoice-container,
.gogo .booking-container {
    display: block;
    max-width: var(--wrap);
    margin: 0 auto;
    padding: 0 18px;
    width: 100%;
    justify-content: initial;
    align-items: initial;
}

/* cabList wraps the filter and the results in .cab-wrapper, which legacy CSS
   also flexes. Keep it as a column so the results stack. */
.gogo .cab-wrapper {
    display: block;
}

/* ================================================ CAB LIST : SUMMARY ==== */

.gogo .search-summary-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    box-shadow: var(--shadow);
    padding: 20px 22px;
    margin-bottom: 26px;
}

.gogo .summary-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
    padding-bottom: 16px;
    margin-bottom: 16px;
    border-bottom: 1px solid var(--line);
}

.gogo .trip-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--brand-tint);
    color: var(--brand);
    border: 1px solid rgba(4, 60, 92, .2);
    border-radius: var(--r-pill);
    padding: 8px 18px;
    font-family: var(--head-font);
    font-weight: 800;
    font-size: 13px;
    letter-spacing: .02em;
}

.gogo .modify-search {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fff;
    border: 1.5px solid var(--line);
    border-radius: var(--r-pill);
    padding: 9px 20px;
    font-family: var(--head-font);
    font-weight: 700;
    font-size: 13.5px;
    color: var(--ink);
    text-decoration: none;
    transition: all .16s ease;
    min-height: 40px;
}

.gogo .modify-search:hover { border-color: var(--brand); color: var(--brand); background: var(--brand-tint); }
.gogo .modify-search i { color: var(--brand); font-size: 12px; }

/* summary values laid out as a responsive auto-fit grid instead of a
   fixed row, which is what used to break on narrow screens */
.gogo .summary-content {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
    gap: 14px 20px;
    align-items: start;
}

.gogo .summary-box { min-width: 0; }

.gogo .summary-box > span,
.gogo .summary-box span:first-child {
    display: block;
    font-family: var(--head-font);
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--muted-2);
    margin-bottom: 5px;
}

.gogo .summary-box label,
.gogo .summary-box b,
.gogo .summary-box strong {
    font-family: var(--head-font);
    font-size: 15px;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.35;
    word-break: break-word;
}

/* the arrow and vertical rule are decorative - hide them, the grid reads
   fine without and they were the main cause of mobile overflow */
.gogo .summary-icon,
.gogo .search-summary-card .divider { display: none; }

/* The Cab Type filter card was removed from cabList.aspx entirely, so all of
   its styling has been deleted with it. If any legacy stylesheet still targets
   these class names, hide them rather than leaving an empty box behind. */
.gogo .cab-filter,
.gogo .filter-card,
.gogo .cab-category-filter { display: none; }

/* ==================================================== CAB LIST : CARDS == */

.gogo .cab-card {
    display: grid;
    grid-template-columns: 1fr 286px;
    gap: 0;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    overflow: hidden;
    margin-bottom: 20px;
    transition: box-shadow .2s ease, border-color .2s ease, transform .2s ease;
}

.gogo .cab-card:hover {
    box-shadow: var(--shadow-lg);
    border-color: rgba(4, 60, 92, .26);
    transform: translateY(-2px);
}

.gogo .cab-info { padding: 22px; min-width: 0; }

.gogo .cab-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 16px;
}

.gogo .cab-left { min-width: 0; }

.gogo .cab-tag {
    display: inline-block;
    background: var(--brand-tint);
    color: var(--brand);
    border-radius: var(--r-pill);
    padding: 5px 14px;
    font-family: var(--head-font);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: 8px;
}

.gogo .cab-left h3,
.gogo .cab-left h4,
.gogo .cab-features h5 {
    font-family: var(--head-font);
    font-size: 19px;
    font-weight: 800;
    color: var(--ink);
    margin: 0 0 4px;
    letter-spacing: -.02em;
}

.gogo .cab-icons {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.gogo .cab-icons span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--surface-3);
    border: 1px solid var(--line);
    border-radius: var(--r-pill);
    padding: 6px 13px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--ink-2);
    white-space: nowrap;
}

.gogo .cab-icons i { color: var(--brand); font-size: 11.5px; }

.gogo .cab-body {
    display: grid;
    grid-template-columns: 190px 1fr;
    gap: 22px;
    align-items: start;
}

.gogo .cab-image {
    background: var(--surface-2);
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    padding: 14px;
    display: grid;
    place-items: center;
    min-height: 120px;
}

.gogo .cab-image img { max-width: 100%; height: auto; object-fit: contain; }

.gogo .cab-features { min-width: 0; }

.gogo .cab-features ul { list-style: none; margin: 10px 0 0; padding: 0; }

.gogo .cab-features li {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    font-size: 13.5px;
    color: var(--body);
    margin-bottom: 9px;
    line-height: 1.5;
}

.gogo .cab-features li i {
    color: var(--brand);
    font-size: 12px;
    margin-top: 3px;
    flex: none;
    width: 14px;
}

.gogo .cab-features li strong { color: var(--ink); font-weight: 700; }

.gogo .cab-offer {
    display: flex;
    align-items: center;
    gap: 8px;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: var(--r-sm);
    padding: 10px 14px;
    margin-top: 14px;
    font-size: 13px;
    font-weight: 600;
    color: #15803d;
}

.gogo .cab-offer i { color: var(--ok); }

/* ---- price column ---- */

.gogo .price-card {
    background: var(--surface-2);
    border-left: 1px solid var(--line);
    padding: 22px 20px;
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.gogo .top-rating {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.gogo .certified {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1d4ed8;
    border-radius: var(--r-pill);
    padding: 4px 11px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .04em;
}

.gogo .rating {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r-pill);
    padding: 4px 11px;
    font-size: 12.5px;
    font-weight: 700;
    color: var(--ink);
}

.gogo .price-card .old-price {
    font-size: 14px;
    color: var(--muted);
    text-decoration: line-through;
    margin-bottom: 2px;
}

.gogo .price-card .old-price span {
    display: inline-block;
    margin-left: 7px;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    color: #15803d;
    border-radius: 6px;
    padding: 2px 8px;
    font-size: 11px;
    font-weight: 800;
    text-decoration: none;
}

.gogo .price-card .new-price {
    font-family: var(--head-font);
    font-size: 30px;
    font-weight: 800;
    color: var(--ink);
    letter-spacing: -.03em;
    line-height: 1.1;
    margin-bottom: 4px;
}

.gogo .price-card p {
    font-size: 12.5px;
    color: var(--muted);
    margin: 0 0 10px;
}

.gogo .book-btn,
.gogo .more-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    min-height: 48px;
    border-radius: var(--r-pill);
    font-family: var(--head-font);
    font-weight: 800;
    font-size: 15px;
    text-decoration: none;
    transition: all .18s ease;
}

.gogo .book-btn {
    background: var(--brand);
    color: #fff !important;
    border: none;
    box-shadow: 0 8px 20px rgba(4, 60, 92, .28);
    margin-top: auto;
}

.gogo .book-btn:hover { background: var(--brand-hover); transform: translateY(-1px); }

.gogo .more-btn {
    background: transparent;
    color: var(--muted) !important;
    border: none;
    font-size: 13px;
    font-weight: 700;
    min-height: 38px;
    margin-top: 6px;
}

.gogo .more-btn:hover { color: var(--brand) !important; }

/* ================================================= CAB LIST responsive == */

@media (max-width: 980px) {
    .gogo .cab-card { grid-template-columns: 1fr; }

    .gogo .price-card {
        border-left: none;
        border-top: 1px solid var(--line);
        flex-direction: row;
        flex-wrap: wrap;
        align-items: flex-end;
        gap: 12px;
    }

    .gogo .price-card .top-rating { width: 100%; margin-bottom: 4px; }
    .gogo .price-card .old-price,
    .gogo .price-card .new-price,
    .gogo .price-card p { margin-bottom: 0; }

    .gogo .price-card .new-price { flex: 1 1 auto; }
    .gogo .book-btn { width: auto; flex: 0 0 auto; padding: 0 34px; margin-top: 0; }
    .gogo .more-btn { width: 100%; }
}

@media (max-width: 620px) {
    .gogo .cab-body { grid-template-columns: 1fr; }
    .gogo .cab-image { min-height: 150px; }
    .gogo .cab-info { padding: 18px 16px; }
    .gogo .price-card { padding: 18px 16px; }
    .gogo .book-btn { width: 100%; }
    .gogo .search-summary-card { padding: 16px; }
    .gogo .summary-content { grid-template-columns: repeat(auto-fit, minmax(112px, 1fr)); gap: 12px 14px; }
    .gogo .price-card .new-price { font-size: 26px; }
}

/* ==================================================== BOOKING PAGE ====== */

.gogo .booking-header {
    background: linear-gradient(120deg, var(--brand) 0%, var(--brand-hover) 100%);
    border-radius: var(--r-lg);
    padding: 28px 30px;
    margin-bottom: 24px;
    box-shadow: 0 12px 30px rgba(4, 60, 92, .22);
}

.gogo .booking-header h2 {
    font-family: var(--head-font);
    font-size: clamp(21px, 3vw, 29px);
    font-weight: 800;
    color: #fff !important;
    margin: 0 0 6px;
    letter-spacing: -.02em;
}

.gogo .booking-header p { color: rgba(255, 255, 255, .9); font-size: 14.5px; margin: 0; }

/* ---- step indicator ---- */

.gogo .booking-steps {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    padding: 18px 22px;
    margin-bottom: 24px;
    overflow-x: auto;
}

.gogo .booking-step {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: none;
    font-family: var(--head-font);
    font-size: 13.5px;
    font-weight: 700;
    color: var(--muted-2);
    white-space: nowrap;
}

.gogo .booking-step.active { color: var(--ink); }

.gogo .step-number {
    width: 30px; height: 30px;
    border-radius: 50%;
    background: var(--surface-3);
    color: var(--muted);
    display: grid;
    place-items: center;
    font-size: 13px;
    font-weight: 800;
    flex: none;
    border: 1.5px solid var(--line);
}

.gogo .booking-step.active .step-number {
    background: var(--brand);
    border-color: var(--brand);
    color: #fff;
}

.gogo .step-line {
    flex: 1 1 auto;
    min-width: 24px;
    height: 2px;
    background: var(--line);
    border-radius: 2px;
}

/* ---- layout ---- */

.gogo .booking-grid {
    display: grid;
    grid-template-columns: 1fr 366px;
    gap: 22px;
    align-items: start;
}

.gogo .booking-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    padding: 22px;
    margin-bottom: 20px;
    box-shadow: var(--shadow-sm);
}

.gogo .card-title {
    display: flex;
    align-items: center;
    gap: 11px;
    padding-bottom: 14px;
    margin-bottom: 18px;
    border-bottom: 1px solid var(--line);
}

.gogo .card-title i {
    width: 34px; height: 34px;
    border-radius: var(--r-sm);
    background: var(--brand-tint);
    color: var(--brand);
    display: grid;
    place-items: center;
    font-size: 14px;
    flex: none;
}

.gogo .card-title h3 {
    font-family: var(--head-font);
    font-size: 17px;
    font-weight: 800;
    color: var(--ink);
    margin: 0;
}

/* ---- route ---- */

.gogo .trip-route {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 14px;
    align-items: center;
    background: var(--surface-2);
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    padding: 16px 18px;
    margin-bottom: 18px;
}

.gogo .route-box { min-width: 0; }

.gogo .route-box > span:first-child {
    display: block;
    font-family: var(--head-font);
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--muted-2);
    margin-bottom: 4px;
}

.gogo .route-box label,
.gogo .route-box b,
.gogo .route-box strong {
    font-family: var(--head-font);
    font-size: 16px;
    font-weight: 700;
    color: var(--ink);
    word-break: break-word;
}

.gogo .route-arrow {
    width: 34px; height: 34px;
    border-radius: 50%;
    background: var(--brand);
    color: #fff;
    display: grid;
    place-items: center;
    font-size: 13px;
    flex: none;
}

/* ---- trip facts ---- */

.gogo .trip-info-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 12px;
}

.gogo .trip-info-box {
    background: var(--surface-2);
    border: 1px solid var(--line);
    border-radius: var(--r-sm);
    padding: 12px 14px;
    min-width: 0;
}

.gogo .trip-info-box > span:first-child {
    display: block;
    font-family: var(--head-font);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--muted-2);
    margin-bottom: 5px;
}

.gogo .trip-info-box label,
.gogo .trip-info-box b,
.gogo .trip-info-box strong {
    font-family: var(--head-font);
    font-size: 14.5px;
    font-weight: 700;
    color: var(--ink);
}

/* ---- selected cab ---- */

.gogo .cab-summary {
    display: grid;
    grid-template-columns: 150px 1fr;
    gap: 18px;
    align-items: center;
}

.gogo .cab-summary-image {
    background: var(--surface-2);
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    padding: 12px;
    display: grid;
    place-items: center;
    min-height: 104px;
}

.gogo .cab-summary-image img { max-width: 100%; height: auto; object-fit: contain; }
.gogo .cab-summary-info { min-width: 0; }

.gogo .cab-summary-info .cab-category {
    display: inline-block;
    background: var(--brand-tint);
    color: var(--brand);
    border-radius: var(--r-pill);
    padding: 4px 13px;
    font-family: var(--head-font);
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: 7px;
}

.gogo .cab-summary-info h3,
.gogo .cab-summary-info h4 {
    font-family: var(--head-font);
    font-size: 19px;
    font-weight: 800;
    color: var(--ink);
    margin: 0 0 10px;
}

.gogo .cab-meta { display: flex; gap: 8px; flex-wrap: wrap; }

.gogo .cab-meta span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--surface-3);
    border: 1px solid var(--line);
    border-radius: var(--r-pill);
    padding: 5px 12px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--ink-2);
}

.gogo .cab-meta i { color: var(--brand); font-size: 11.5px; }

/* ---- form ---- */

.gogo .form-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(216px, 1fr));
    gap: 16px;
}

.gogo .form-group { min-width: 0; }
.gogo .form-group.full { grid-column: 1 / -1; }

.gogo .form-label {
    display: block;
    font-family: var(--head-font);
    font-size: 12.5px;
    font-weight: 700;
    color: var(--ink-2);
    margin-bottom: 6px;
}

.gogo .form-label .required { color: var(--brand); margin-left: 2px; }

/* 16px keeps iOS Safari from zooming the viewport on focus */
.gogo .booking-input,
.gogo .booking-page input[type="text"],
.gogo .booking-page input[type="email"],
.gogo .booking-page input[type="tel"],
.gogo .booking-page input[type="number"],
.gogo .booking-page textarea,
.gogo .booking-page select {
    width: 100%;
    min-height: 48px;
    background: var(--surface-2);
    border: 1.5px solid var(--line);
    border-radius: var(--r-sm);
    padding: 12px 14px;
    font-family: var(--body-font);
    font-size: 16px;
    color: var(--ink);
    outline: none;
    transition: border-color .16s ease, background .16s ease, box-shadow .16s ease;
}

.gogo .booking-page textarea { min-height: 96px; resize: vertical; }

.gogo .booking-input:focus,
.gogo .booking-page input:focus,
.gogo .booking-page textarea:focus,
.gogo .booking-page select:focus {
    border-color: var(--brand);
    background: #fff;
    box-shadow: 0 0 0 4px rgba(4, 60, 92, .1);
}

.gogo .booking-page input::placeholder,
.gogo .booking-page textarea::placeholder { color: var(--muted-2); }

.gogo .phone-group { display: flex; gap: 9px; }
.gogo .phone-group input:first-child { max-width: 88px; flex: none; text-align: center; }

/* ---- fare panel (right column) ---- */

.gogo .booking-grid > div:last-child .booking-card { position: sticky; top: 92px; }

.gogo .booking-page table { width: 100%; border-collapse: collapse; }

.gogo .booking-page table td {
    padding: 9px 0;
    font-size: 14px;
    color: var(--body);
    border-bottom: 1px solid var(--surface-3);
}

.gogo .booking-page table td:last-child {
    text-align: right;
    font-family: var(--head-font);
    font-weight: 700;
    color: var(--ink);
    white-space: nowrap;
}

.gogo .booking-page table tr:last-child td {
    border-bottom: none;
    border-top: 2px solid var(--line);
    padding-top: 13px;
    font-family: var(--head-font);
    font-size: 17px;
    font-weight: 800;
    color: var(--ink);
}

.gogo .booking-page input[type="checkbox"] {
    width: 18px; height: 18px;
    min-height: 0;
    accent-color: var(--brand);
    cursor: pointer;
    flex: none;
}

.gogo .booking-page input[type="submit"],
.gogo .booking-page .confirm-btn {
    width: 100%;
    min-height: 52px;
    background: var(--brand);
    color: #fff;
    border: none;
    border-radius: var(--r-pill);
    font-family: var(--head-font);
    font-size: 16px;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 10px 26px rgba(4, 60, 92, .3);
    transition: background .18s ease, transform .18s ease;
    margin-top: 8px;
}

.gogo .booking-page input[type="submit"]:hover { background: var(--brand-hover); transform: translateY(-1px); }

@media (max-width: 980px) {
    .gogo .booking-grid { grid-template-columns: 1fr; }
    .gogo .booking-grid > div:last-child .booking-card { position: static; }
}

@media (max-width: 620px) {
    .gogo .booking-header { padding: 22px 18px; }
    .gogo .booking-card { padding: 18px 16px; }
    .gogo .trip-route { grid-template-columns: 1fr; gap: 12px; text-align: left; }
    .gogo .route-arrow { transform: rotate(90deg); margin-left: 4px; }
    .gogo .cab-summary { grid-template-columns: 1fr; }
    .gogo .booking-steps { padding: 14px 16px; }
    .gogo .booking-step span:not(.step-number) { display: none; }
}

/* ==================================================== INVOICE ========== */

.gogo .invoice-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    padding: 34px;
    box-shadow: var(--shadow);
}

.gogo .print-btn {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    background: #fff;
    border: 1.5px solid var(--line);
    border-radius: var(--r-pill);
    padding: 11px 24px;
    min-height: 44px;
    font-family: var(--head-font);
    font-weight: 700;
    font-size: 14px;
    color: var(--ink);
    cursor: pointer;
    margin-bottom: 18px;
    transition: all .16s ease;
}

.gogo .print-btn:hover { border-color: var(--brand); color: var(--brand); background: var(--brand-tint); }
.gogo .print-btn i { color: var(--brand); }

.gogo .invoice-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
    padding-bottom: 22px;
    margin-bottom: 24px;
    border-bottom: 2px solid var(--line);
}

.gogo .company-name {
    font-family: var(--head-font);
    font-size: 25px;
    font-weight: 800;
    color: var(--brand);
    letter-spacing: -.03em;
    margin-bottom: 6px;
}

.gogo .company-info { font-size: 13px; color: var(--muted); line-height: 1.7; }

.gogo .invoice-title { text-align: right; }

.gogo .invoice-title h1 {
    font-family: var(--head-font);
    font-size: 27px;
    font-weight: 800;
    color: var(--ink);
    letter-spacing: .06em;
    margin: 0 0 8px;
}

.gogo .invoice-number { font-size: 13px; color: var(--muted); margin-bottom: 3px; }
.gogo .invoice-number b,
.gogo .invoice-number label { color: var(--ink); font-weight: 700; }

.gogo .invoice-status {
    display: inline-block;
    background: #fffbeb;
    border: 1px solid #fde68a;
    color: #b45309;
    border-radius: var(--r-pill);
    padding: 5px 15px;
    font-family: var(--head-font);
    font-size: 11.5px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    margin-top: 8px;
}

.gogo .two-column {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 26px;
}

.gogo .info-box {
    background: var(--surface-2);
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    padding: 18px;
    min-width: 0;
}

.gogo .info-title {
    font-family: var(--head-font);
    font-size: 11.5px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--brand);
    padding-bottom: 10px;
    margin-bottom: 12px;
    border-bottom: 1px solid var(--line);
}

.gogo .info-row {
    display: flex;
    gap: 12px;
    font-size: 13.5px;
    color: var(--muted);
    margin-bottom: 8px;
    line-height: 1.6;
}

.gogo .info-row:last-child { margin-bottom: 0; }
.gogo .info-row > :first-child { flex: 0 0 108px; font-weight: 600; color: var(--ink-2); }
.gogo .info-row label,
.gogo .info-row b { color: var(--ink); font-weight: 600; word-break: break-word; }

.gogo .section-title {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--head-font);
    font-size: 15px;
    font-weight: 800;
    color: var(--ink);
    margin: 26px 0 14px;
}

.gogo .section-title i { color: var(--brand); font-size: 13px; }

.gogo .trip-table,
.gogo .amount-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13.5px;
}

.gogo .trip-table thead th {
    background: var(--surface-3);
    font-family: var(--head-font);
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--muted);
    padding: 11px 13px;
    text-align: left;
    border-bottom: 1px solid var(--line);
}

.gogo .trip-table tbody td {
    padding: 12px 13px;
    color: var(--ink-2);
    border-bottom: 1px solid var(--surface-3);
    vertical-align: top;
}

.gogo .amount-section {
    background: var(--surface-2);
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    padding: 18px 20px;
}

.gogo .amount-table td {
    padding: 9px 0;
    color: var(--body);
    border-bottom: 1px solid var(--surface-3);
}

.gogo .amount-table td:last-child {
    text-align: right;
    font-family: var(--head-font);
    font-weight: 700;
    color: var(--ink);
    white-space: nowrap;
}

.gogo .amount-table tr.total td {
    border-bottom: none;
    border-top: 2px solid var(--line);
    padding-top: 13px;
    font-family: var(--head-font);
    font-size: 19px;
    font-weight: 800;
    color: var(--brand);
}

.gogo .invoice-footer {
    margin-top: 28px;
    padding-top: 20px;
    border-top: 1px solid var(--line);
    text-align: center;
    font-size: 13px;
    color: var(--muted);
    line-height: 1.8;
}

@media (max-width: 780px) {
    .gogo .two-column { grid-template-columns: 1fr; }
    .gogo .invoice-title { text-align: left; }
    .gogo .invoice-card { padding: 22px 18px; }
    .gogo .info-row { flex-direction: column; gap: 2px; }
    .gogo .info-row > :first-child { flex: none; }

    /* let the trip table scroll rather than squash */
    .gogo .trip-table { display: block; overflow-x: auto; white-space: nowrap; }
}

@media print {
    .gogo .gogo-header,
    .gogo .gogo-footer,
    .gogo .print-btn { display: none !important; }

    .gogo .invoice-page { background: #fff; padding: 0; }
    .gogo .invoice-card { border: none; box-shadow: none; padding: 0; }
}

/* ============================================== ABOUT / CONTACT ======== */

.gogo .about-section,
.gogo .contact-section,
.gogo .aboutcontact { padding: 56px 0; }

.gogo .about-section h1, .gogo .about-section h2,
.gogo .contact-section h1, .gogo .contact-section h2 {
    font-family: var(--head-font);
    font-weight: 800;
    color: var(--ink);
    letter-spacing: -.02em;
}

.gogo .about-section p,
.gogo .contact-section p { font-size: 15.5px; color: var(--body); line-height: 1.8; }

.gogo .about-section img,
.gogo .contact-section img { border-radius: var(--r-lg); }

/* contact detail tiles */
.gogo .contact-section .content,
.gogo .contact-box,
.gogo .contact-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    padding: 16px 18px;
    font-size: 14.5px;
    color: var(--ink-2);
    word-break: break-word;
}

.gogo .contact-section input[type="text"],
.gogo .contact-section input[type="email"],
.gogo .contact-section input[type="tel"],
.gogo .contact-section textarea {
    width: 100%;
    min-height: 48px;
    background: var(--surface-2);
    border: 1.5px solid var(--line);
    border-radius: var(--r-sm);
    padding: 12px 14px;
    font-family: var(--body-font);
    font-size: 16px;
    color: var(--ink);
    outline: none;
    margin-bottom: 14px;
}

.gogo .contact-section textarea { min-height: 120px; resize: vertical; }

.gogo .contact-section input:focus,
.gogo .contact-section textarea:focus {
    border-color: var(--brand);
    background: #fff;
    box-shadow: 0 0 0 4px rgba(4, 60, 92, .1);
}

.gogo .contact-section input[type="submit"] {
    min-height: 50px;
    padding: 0 36px;
    background: var(--brand);
    color: #fff;
    border: none;
    border-radius: var(--r-pill);
    font-family: var(--head-font);
    font-size: 15.5px;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 8px 22px rgba(4, 60, 92, .26);
}

.gogo .contact-section input[type="submit"]:hover { background: var(--brand-hover); }

/* ============= CAB CARD: STOP CLIPPING THE PRICE COLUMN ================ */

/* The price column was being cut off mid-character. Two causes together:
   the column was 286px, and .cab-card { overflow:hidden } silently clipped
   anything wider instead of letting it wrap. Wider column, and text is now
   allowed to wrap. */
.gogo .cab-card {
    grid-template-columns: minmax(0, 1fr) 320px;
}

.gogo .price-card,
.gogo .price-card * {
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: normal;
}

/* Keep the rate / basis lines readable rather than nowrap-overflowing. */
.gogo .price-card > div {
    white-space: normal;
    text-align: right;
}

.gogo .price-card .billing-basis {
    text-align: left;
    font-size: 11.5px;
    padding: 7px 10px;
}

/* Long money figures should shrink a touch before they can ever clip. */
.gogo .price-card .new-price {
    font-size: clamp(22px, 2.2vw, 30px);
    overflow-wrap: anywhere;
}

/* The vehicle line art is an SVG now - give it room and keep it centred. */
.gogo .cab-image { min-height: 132px; padding: 10px; }
.gogo .cab-image img { max-height: 112px; width: auto; max-width: 100%; }

.gogo .cab-summary-image img { max-height: 96px; width: auto; }

@media (max-width: 1080px) {
    .gogo .cab-card { grid-template-columns: minmax(0, 1fr) 290px; }
}

@media (max-width: 980px) {
    .gogo .cab-card { grid-template-columns: 1fr; }
    .gogo .price-card > div { text-align: left; }
}

/* ======================================================================
   CAB LIST v2 - layout matched to the reference
   ----------------------------------------------------------------------
   Reference structure:
     sticky summary strip  : label/value pairs in a row + Modify button
     left sidebar          : Cab Type checkbox filter
     results               : card per cab, price rail on the right
   ====================================================================== */

/* ---- sticky summary strip ---- */

.gogo .search-summary-section {
    position: sticky;
    top: 74px;
    z-index: 900;
    background: #fff;
    border-bottom: 1px solid var(--line);
    padding: 0;
    box-shadow: 0 2px 10px rgba(15, 23, 42, .05);
}

.gogo .search-summary-card {
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
    padding: 12px 0;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 18px;
    flex-wrap: wrap;
}

/* Trip type becomes the first label/value pair rather than a floating badge. */
.gogo .summary-header {
    order: 2;
    margin-left: auto;
    padding: 0;
    border-bottom: none;
    margin-bottom: 0;
    gap: 10px;
    flex: none;
}

.gogo .trip-badge {
    background: var(--surface-3);
    color: var(--ink);
    border-color: var(--line);
    font-size: 12px;
    padding: 7px 14px;
}

.gogo .modify-search {
    background: var(--brand);
    color: #fff;
    border-color: var(--brand);
    font-weight: 800;
    padding: 9px 24px;
}

.gogo .modify-search:hover {
    background: var(--brand-hover);
    border-color: var(--brand-hover);
    color: #fff;
}

.gogo .modify-search i { color: #fff; }

.gogo .summary-content {
    order: 1;
    flex: 1 1 auto;
    display: flex;
    gap: 26px;
    align-items: flex-start;
    flex-wrap: wrap;
}

.gogo .summary-box > span,
.gogo .summary-box span:first-child {
    font-size: 10px;
    letter-spacing: .09em;
    margin-bottom: 2px;
}

.gogo .summary-box label,
.gogo .summary-box b,
.gogo .summary-box strong { font-size: 13.5px; }

@media (max-width: 900px) {
    .gogo .search-summary-section { position: static; }
    .gogo .summary-content { gap: 14px 20px; }
    .gogo .summary-header { order: 3; width: 100%; margin-left: 0; }
    .gogo .modify-search { flex: 1 1 auto; justify-content: center; }
}

/* ---- single-column results shell ----
   The Cab Type filter was removed, so the sidebar column went with it. This
   overrides master.css's global `.container { display: flex }`, which would
   otherwise lay the cards out as a row. Cards are capped so they do not
   stretch to absurd widths on a desktop monitor. */

.gogo .cab-list-section .container {
    display: block;
    padding-top: 26px;
}

.gogo .cab-results {
    display: block;
    max-width: 980px;
    margin: 0 auto;
}

/* ---- card refinements to match the reference ---- */

.gogo .cab-left h3,
.gogo .cab-left h4,
.gogo .cab-features h5 {
    color: var(--brand);
    font-size: 17.5px;
}

.gogo .cab-tag {
    background: var(--surface-3);
    color: var(--ink-2);
    border: 1px solid var(--line);
    font-size: 10.5px;
}

/* feature bullets get distinct icon colours like the reference */
.gogo .cab-features li:nth-child(1) i { color: #f59e0b; }
.gogo .cab-features li:nth-child(2) i { color: #0ea5e9; }
.gogo .cab-features li:nth-child(3) i { color: #6366f1; }
.gogo .cab-features li:nth-child(4) i { color: var(--ok); }
.gogo .cab-features li:nth-child(5) i { color: var(--brand); }

/* "Exclusive Discount of Rs.X on this cab" as a full-width footer bar */
.gogo .cab-offer {
    background: var(--brand-tint);
    border: none;
    border-top: 1px solid var(--line);
    border-radius: 0;
    color: var(--brand);
    margin: 16px -22px -22px;
    padding: 12px 22px;
    font-size: 13px;
}

.gogo .cab-offer i { color: var(--brand); }

/* price rail */
.gogo .price-card h4 {
    font-family: var(--head-font);
    font-size: 12.5px;
    font-weight: 800;
    color: var(--brand);
    margin: 0 0 8px;
}

.gogo .price-card .new-price { color: var(--brand); }

@media (max-width: 640px) {
    .gogo .cab-offer { margin: 14px -16px -18px; padding: 11px 16px; }
}
