/*
    The payment summary — what you are paying for, and how much.

    Scoped entirely to .pay-summary. The payment page carries fourteen
    stylesheets already and this adds no rule that could reach any of them.
*/
.pay-summary {
    margin: 0 0 22px;
    padding: 18px 20px;
    background: #fff;
    border: 1px solid #e3e7ee;
    border-left: 4px solid #ef8821;
    border-radius: 10px;
}

.pay-summary__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #8a93a3;
}
.pay-summary__head code {
    font-size: 11.5px;
    color: #5e6b7a;
    background: #f4f6f9;
    padding: 2px 8px;
    border-radius: 4px;
    letter-spacing: 0;
    /* Booking codes are 32 hex characters and must not push the card wider. */
    word-break: break-all;
}

.pay-summary__trip {
    margin: 8px 0 0;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
    color: #16202b;
}

.pay-summary__facts {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 28px;
    margin: 14px 0 0;
    padding: 0;
}
.pay-summary__facts > div { margin: 0; }
.pay-summary__facts dt {
    margin: 0;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #8a93a3;
}
.pay-summary__facts dd {
    margin: 2px 0 0;
    font-size: 15px;
    font-weight: 600;
    color: #16202b;
}

/*
 | The one number the page exists to communicate, so it is the largest thing
 | in the card rather than a line in a form further down.
 */
.pay-summary__due {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid #eef1f5;
}
.pay-summary__due span { font-size: 13.5px; font-weight: 600; color: #5e6b7a; }
.pay-summary__due strong {
    font-size: 26px;
    font-weight: 700;
    letter-spacing: -.02em;
    color: #16202b;
}

.pay-summary__balance {
    margin: 8px 0 0;
    font-size: 12.5px;
    color: #8a93a3;
}

@media (max-width: 575px) {
    .pay-summary { padding: 15px 16px; }
    .pay-summary__due strong { font-size: 22px; }
}

/* ---------------------------------------------------------------------------
   How much to pay now.

   The share was a hidden field pinned at 100, so the deposit machinery behind
   this page reached nobody. Three options, the chosen one obvious at a glance,
   and the amount printed on each so the choice is made on figures rather than
   on percentages.
--------------------------------------------------------------------------- */
.pay-choice { border: 0; margin: 0 0 18px; padding: 0; min-width: 0; }
.pay-choice > legend {
    display: block; width: 100%; padding: 0 0 9px;
    font-size: 13.5px; font-weight: 700; color: #17202e;
}

.pay-choice__opt {
    display: grid;
    grid-template-columns: auto 1fr auto auto;
    align-items: center; gap: 10px;
    padding: 11px 14px; margin-bottom: 8px;
    background: #fff; border: 1.5px solid #ddd4c4; border-radius: 10px;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease;
}
.pay-choice__opt:hover { border-color: #bd5a0c; }

/* The selected row is stated by more than a dot, because on a payment screen
   "which one is this going to charge me" must be readable at a glance. */
.pay-choice__opt.is-on {
    border-color: #bd5a0c;
    background: rgba(239, 136, 33, .07);
}
.pay-choice__opt input[type="radio"] {
    width: 18px; height: 18px; margin: 0; accent-color: #bd5a0c; cursor: pointer;
}
.pay-choice__opt:focus-within {
    outline: 3px solid rgba(60, 89, 167, .45); outline-offset: 2px;
}

.pay-choice__label { font-weight: 700; color: #17202e; font-size: 14.5px; }
.pay-choice__pct   { font-size: 12.5px; color: #6b7383; font-variant-numeric: tabular-nums; }
.pay-choice__amt   {
    font-weight: 700; color: #17202e; font-size: 14.5px;
    font-variant-numeric: tabular-nums;
}

.pay-choice__go {
    margin-top: 4px; padding: 9px 16px; border: 0; border-radius: 8px;
    background: #bd5a0c; color: #fff; font-weight: 700; cursor: pointer;
}

/* The breakdown. A fee shown as its own line is a fee; the same fee folded
   silently into the total is a surprise. */
.pay-summary__lines { margin: 0 0 4px; padding: 0; }
.pay-summary__lines > div {
    display: flex; justify-content: space-between; align-items: baseline; gap: 16px;
    padding: 6px 0; font-size: 14px;
}
.pay-summary__lines dt { margin: 0; color: #5e6b7a; }
.pay-summary__lines dd {
    margin: 0; color: #17202e; font-weight: 600;
    font-variant-numeric: tabular-nums;
}

/* ---------------------------------------------------------------------------
   The payment form itself.

   Fields are the shared .hww-field system; only what is particular to this
   page lives here. The numbered legends replace "1. Your Details" headings
   that were orange text on white — #ee8722 at 2.56:1, which is the contrast
   this palette keeps having to be talked out of.
--------------------------------------------------------------------------- */
.hww-pay-set { border: 0; margin: 0 0 2rem; padding: 0; min-width: 0; }
.hww-pay-set > legend {
    display: flex; align-items: center; gap: .6rem; width: 100%;
    padding: 0 0 .9rem; margin-bottom: 1.3rem;
    border-bottom: 1px solid #e6e0d4;
    font-family: var(--hww-display, inherit); font-weight: 800;
    font-size: 1.1rem; color: #17202e;
}
.hww-pay-set > legend span {
    flex: none; width: 1.7rem; height: 1.7rem; border-radius: 50%;
    display: grid; place-items: center;
    background: #bd5a0c; color: #fff;
    font-size: .82rem; font-weight: 700;
}

/* The dollar sign belongs to the field, not beside it. */
.hww-pay-amount { position: relative; }
.hww-pay-amount > span {
    position: absolute; left: .9em; top: 50%; transform: translateY(-50%);
    color: #6b7383; font-weight: 700; pointer-events: none;
}
.hww-pay-amount input { padding-left: 2em !important; }

/* Read-only when a booking sets the figure: stated, not merely behaving. */
.hww-pay-amount input[readonly] {
    background: #f0ebe1; color: #46536b; cursor: not-allowed;
}

.hww-pay-terms { margin: 1.4rem 0; }
.hww-pay-captcha { margin-bottom: 1.4rem; }

.hww-pay-go { display: flex; flex-direction: column; gap: .7rem; align-items: flex-start; }

/* White type takes the deeper orange. The old .btn-payment was #ee8722 with
   white on it — 2.56:1 — and hovered to navy, which reads as a different
   button rather than the same one. */
.hww-pay-submit {
    display: inline-flex; align-items: center; gap: .55em;
    background: #bd5a0c; color: #fff; border: 0;
    font-family: var(--hww-display, inherit); font-weight: 800; font-size: 1rem;
    padding: .95em 2em; border-radius: 8px; cursor: pointer;
    transition: background .18s ease;
}
.hww-pay-submit:hover { background: #aa5b10; color: #fff; }
.hww-pay-submit:focus-visible { outline: 3px solid #3c59a7; outline-offset: 2px; }

.hww-pay-next { margin: 0; font-size: .88rem; color: #6b7383; }

/* The note under each option's name — "Reserves your seat" — so the choice is
   made on what it does rather than on a percentage. */
.pay-choice__label { display: flex; flex-direction: column; gap: 1px; }
.pay-choice__label small { font-size: 11.5px; font-weight: 400; color: #6b7383; }
