/* Payment Portal v2 (matches the current portal). .cht-pay-prefixed input rules outrank Avada's input[type=text]. */
.cht-pay {
  --c-blue: #007cba; --c-blue-dark: #005a87; --c-brand: #1070ff; --c-green: #28a745; --c-green-dark: #1e7e34;
  --c-ink: #2c3338; --c-ink-2: #1a1a1a; --c-muted: #5f6368; --c-line: #e0e0e0; --c-bg: #f5f7fa; --c-err: #b3261e;
  --c-focus: #1a1a1a; --r: 8px; --shadow: 0 2px 8px rgba(0,0,0,.08);
  font-family: var(--body_typography-font-family, Figtree), var(--awb-typography4-font-family, Inter), Arial, sans-serif;
  font-size: 15px; line-height: 1.5; color: var(--c-ink); background: var(--c-bg); padding: 0 0 8px;
}
.cht-pay *, .cht-pay *::before, .cht-pay *::after { box-sizing: border-box; }
.cht-pay [hidden] { display: none !important; }
.cht-pay :is(p, dl, ol, ul, h1, h2, h3) { margin: 0; }
.cht-pay :is(ol, ul) { padding-left: 0; list-style: none; }
.cht-pay fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.cht-pay legend { padding: 0; margin: 0; float: left; width: 100%; }
.cht-pay legend ~ * { clear: both; }
.cht-pay a { color: var(--c-blue); }
.cht-pay .cht-alert a:not(.cht-btn), .cht-pay .cht-check__label a, .cht-pay .cht-tel, .cht-badges__text a { color: var(--c-blue-dark); }
.cht-pay .cht-icon { width: 1.25em; height: 1.25em; flex: none; vertical-align: -0.3em; }
.cht-pay .cht-icon--sm { width: 1em; height: 1em; }
.cht-vh { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.cht-pay :focus { outline: none; }
.cht-pay :focus-visible { outline: 3px solid var(--c-focus); outline-offset: 2px; }
.cht-pay .cht-input:focus-visible { outline-offset: 0; border-color: var(--c-blue); box-shadow: 0 0 0 3px rgba(0,124,186,.2); outline-color: var(--c-blue); }

/* Wrapper and header */
.cht-wrap { max-width: 1200px; margin: 0 auto; background: #fff; border-top: 3px solid var(--c-brand); box-shadow: var(--shadow); }
.cht-header { padding: 20px 24px; border-bottom: 1px solid var(--c-line); }
.cht-header__title { font-family: inherit; font-size: 20px; font-weight: 600; color: var(--c-ink); letter-spacing: -0.3px; line-height: 1.3; margin: 0 0 4px; }
.cht-header__desc { color: var(--c-muted); font-size: 13px; }
.cht-testmode { margin: 0; padding: 10px 24px; background: #fff3cd; border-bottom: 1px solid #e0b93a; color: #4a3b00; font-size: 14px; }
.cht-content { padding: 24px; background: linear-gradient(135deg, #f5f7fa 0%, #e8eef3 100%); }
.cht-grid { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 24px; align-items: start; }
.cht-grid--single { grid-template-columns: minmax(0, 1fr); }
.cht-grid__main { min-width: 0; }
.cht-key { font-size: 13px; color: var(--c-muted); margin: 0 0 12px; }
.cht-req { color: var(--c-err); font-weight: 700; }
.cht-tel { white-space: nowrap; font-weight: 600; }

/* Alerts and error summary */
.cht-alert { display: flex; gap: 12px; padding: 16px; border-radius: 6px; margin: 0 0 20px; background: #e8f4f8; border-left: 4px solid var(--c-blue); color: var(--c-ink); }
.cht-alert > .cht-icon { color: var(--c-blue); width: 22px; height: 22px; margin-top: 2px; }
.cht-alert strong { display: block; margin-bottom: 4px; color: var(--c-ink-2); }
.cht-alert p + p { margin-top: 10px; }
.cht-alert--inline { margin: 16px 0 0; padding: 12px; background: #e7f5fe; border: 1px solid var(--c-blue); border-left-width: 4px; font-size: 14px; color: var(--c-blue-dark); align-items: center; }
.cht-alert--error { background: #fdf0ef; border-left-color: var(--c-err); }
.cht-alert--warn { background: #fff3cd; border-left-color: #b98700; }
.cht-errors { border: 3px solid var(--c-err); background: #fff; border-radius: var(--r); padding: 16px 20px; margin: 0 0 20px; }
.cht-errors__title { font-family: inherit; font-size: 18px; font-weight: 700; color: var(--c-ink); margin: 0 0 8px; }
.cht-errors__list li + li { margin-top: 6px; }
.cht-errors__list a { color: var(--c-err); font-weight: 600; text-decoration: underline; }

/* Gate */
.cht-gate { background: #fff; border-radius: 12px; box-shadow: var(--shadow); padding: 30px 24px; }
.cht-gate__title { font-family: inherit; font-size: 24px; font-weight: 600; color: var(--c-ink-2); margin: 0 0 8px; }
.cht-gate__lede { color: var(--c-muted); margin: 0 0 24px; }
.cht-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin: 0 0 24px; }
.cht-option { position: relative; }
.cht-option__input { position: absolute; top: 12px; left: 12px; width: 24px; height: 24px; margin: 0; opacity: 0; }
.cht-option__content { display: flex; align-items: center; gap: 20px; padding: 25px; border: 2px solid var(--c-line); background: #fafafa; border-radius: 6px; cursor: pointer; height: 100%; }
.cht-option__icon { flex: none; width: 50px; height: 50px; display: flex; align-items: center; justify-content: center; background: #fff; border: 2px solid var(--c-line); color: #666; border-radius: 4px; }
.cht-option__icon .cht-icon { width: 26px; height: 26px; }
.cht-option__text { display: flex; flex-direction: column; gap: 5px; }
.cht-option__text strong { font-size: 16px; color: var(--c-ink-2); }
.cht-option__text span { font-size: 13px; color: var(--c-muted); }
.cht-option__input:checked + .cht-option__content { border-color: var(--c-blue); background: #f0f8ff; }
.cht-option__input:checked + .cht-option__content .cht-option__icon { border-color: var(--c-blue); color: var(--c-blue); }
.cht-option__input:focus-visible + .cht-option__content { outline: 3px solid var(--c-focus); outline-offset: 2px; }
.cht-gate__actions { margin-top: 4px; }

/* Buttons */
.cht-pay .cht-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 24px; font: inherit; font-size: 15px; font-weight: 600; line-height: 1.2; border: 1px solid transparent; border-radius: 6px; cursor: pointer; text-decoration: none; -webkit-appearance: none; appearance: none; }
.cht-pay .cht-btn--primary { background: var(--c-blue); border-color: var(--c-blue-dark); color: #fff; }
.cht-pay .cht-btn--primary:hover { background: var(--c-blue-dark); }
.cht-pay .cht-btn--secondary { background: #646970; color: #fff; }
.cht-pay .cht-btn--outline, .cht-pay .cht-btn-back { background: #fff; border: 2px solid var(--c-blue); color: var(--c-blue); }
.cht-pay .cht-btn--outline:hover, .cht-pay .cht-btn-back:hover { background: var(--c-blue); color: #fff; }
.cht-pay .cht-btn--ghost { background: transparent; border: 1px solid var(--c-line); color: var(--c-ink); }
.cht-pay .cht-btn--large { padding: 14px 32px; font-size: 16px; }
.cht-pay .cht-btn--sm { min-height: 40px; padding: 6px 14px; font-size: 14px; }
.cht-pay .cht-btn-back { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 10px 20px; font: inherit; font-size: 15px; font-weight: 500; border-radius: 6px; cursor: pointer; }
.cht-pay .cht-submit { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 56px; padding: 14px 24px; font: inherit; font-size: 19px; font-weight: 700; color: #fff; background: linear-gradient(135deg, var(--c-green) 0%, #20803a 100%); border: 0; border-radius: var(--r); cursor: pointer; box-shadow: 0 4px 12px rgba(40,167,69,.3); }
.cht-pay .cht-submit:hover { background: linear-gradient(135deg, #24963e 0%, #1a6b30 100%); }
.cht-pay .cht-submit[data-state="incomplete"] { background: var(--c-line); color: #4d5156; box-shadow: none; }
.cht-pay .cht-submit:disabled { opacity: .7; cursor: default; }

/* Section cards */
.cht-form { display: flex; flex-direction: column; gap: 20px; }
.cht-card { background: #fff; border-radius: 12px; box-shadow: var(--shadow); overflow: hidden; }
.cht-card__header { display: flex; align-items: center; gap: 12px; padding: 16px 20px; background: linear-gradient(135deg, var(--c-blue) 0%, var(--c-blue-dark) 100%); border-bottom: 2px solid #00527a; }
.cht-card__num { flex: none; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border: 2px solid #fff; border-radius: 50%; background: rgba(0,0,0,.18); color: #fff; font-weight: 700; font-size: 16px; }
.cht-card__title { font-family: inherit; font-size: 18px; font-weight: 600; color: #fff; letter-spacing: -0.3px; line-height: 1.3; }
.cht-card__title:focus-visible { outline-color: #fff; }
.cht-card__body { padding: 24px; }

/* Fields */
.cht-group { margin: 0 0 18px; }
.cht-group:last-child { margin-bottom: 0; }
.cht-group--error { border-left: 4px solid var(--c-err); padding-left: 12px; }
.cht-label { display: block; font-size: 14px; font-weight: 600; color: var(--c-ink); margin: 0 0 6px; }
.cht-help { display: block; font-size: 13px; color: var(--c-muted); margin: 6px 0 0; }
.cht-help--lead { margin: 0 0 14px; }
.cht-help--center { text-align: center; margin-top: 10px; }
.cht-error { display: block; color: var(--c-err); font-weight: 600; font-size: 14px; margin: 0 0 6px; }
.cht-cols-2, .cht-cols-3 { display: grid; gap: 16px; }
.cht-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cht-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cht-pay .cht-input { display: block; width: 100%; height: 48px; min-height: 48px; padding: 10px 14px; margin: 0; font: inherit; font-size: 16px; line-height: 1.4; color: var(--c-ink); background: #fff; border: 2px solid var(--c-line); border-radius: var(--r); box-shadow: none; -webkit-appearance: none; appearance: none; }
.cht-pay .cht-input::placeholder { color: #767676; opacity: 1; }
.cht-pay .cht-input[aria-invalid="true"] { border-color: var(--c-err); }
.cht-pay .cht-select { appearance: none; -webkit-appearance: none; padding-right: 36px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 9L1 4h10z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; cursor: pointer; }
.cht-pay .cht-input[type="date"] { min-width: 0; }

/* Travellers */
.cht-travellers { display: flex; flex-direction: column; gap: 14px; }
.cht-traveller { border: 1px solid var(--c-line); border-radius: var(--r); padding: 14px 16px 12px; background: #f8f9fa; }
.cht-traveller__legend { padding: 0 0 10px; font-weight: 700; font-size: 15px; color: var(--c-blue-dark); }
.cht-traveller .cht-group { margin-bottom: 0; }
.cht-traveller__actions { display: flex; justify-content: flex-end; margin-top: 10px; }
.cht-travellers[data-count="1"] .cht-traveller__actions { display: none; }
.cht-travellers__add { margin-top: 16px; }

/* Amount */
.cht-amount-group { background: #f8f9fa; padding: 20px; border-radius: var(--r); border: 2px dashed var(--c-blue); }
.cht-amount-wrap { position: relative; display: flex; align-items: center; max-width: 320px; }
.cht-euro { position: absolute; left: 14px; font-size: 20px; font-weight: 700; color: var(--c-blue); pointer-events: none; }
.cht-pay .cht-input.cht-amount { height: 56px; padding-left: 38px; font-size: 24px; font-weight: 700; color: var(--c-blue); }
.cht-amount-live { margin-top: 10px; font-size: 14px; color: var(--c-ink); }
.cht-amount-live strong { color: var(--c-blue-dark); font-size: 16px; }
.cht-fee-notice { display: flex; gap: 12px; margin-top: 14px; padding: 12px; background: rgba(0,124,186,.06); border-left: 3px solid var(--c-blue); border-radius: 6px; }
.cht-fee-notice > .cht-icon { color: var(--c-blue); width: 22px; height: 22px; margin-top: 2px; }
.cht-fee-notice strong { display: block; font-size: 14px; color: var(--c-ink); margin-bottom: 2px; }
.cht-fee-notice small { font-size: 12.5px; line-height: 1.5; color: var(--c-muted); }

/* Terms, honeypot, footer card */
.cht-terms { margin: 0; padding: 16px; background: #f0f6fc; border: 1px solid #c3d9ec; border-left: 4px solid var(--c-blue); border-radius: 4px; }
.cht-check { display: flex; align-items: flex-start; gap: 12px; }
.cht-pay .cht-check__input { flex: none; width: 22px; height: 22px; margin: 2px 0 0; accent-color: var(--c-blue); cursor: pointer; }
.cht-check__label { font-size: 14px; line-height: 1.6; color: var(--c-ink); cursor: pointer; }
.cht-check__label a { font-weight: 600; text-decoration: none; }
.cht-check__label a:hover { text-decoration: underline; }
.cht-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cht-footer-card { background: #fff; padding: 24px; border-radius: 12px; box-shadow: var(--shadow); }

/* Sidebar */
.cht-sidebar { display: flex; flex-direction: column; gap: 16px; position: sticky; top: 24px; }
.cht-summary { background: rgba(255,255,255,.85); padding: 24px; border-radius: 16px; border: 1px solid rgba(0,124,186,.3); box-shadow: 0 8px 32px rgba(0,124,186,.15); }
.cht-summary__title { font-family: inherit; font-size: 16px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: var(--c-blue); margin: 0 0 16px; }
.cht-summary__row { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 10px 0; border-bottom: 1px solid rgba(0,124,186,.15); }
.cht-summary__row dt { font-size: 13px; color: var(--c-muted); font-weight: 500; flex: none; }
.cht-summary__row dd { margin: 0; font-size: 14px; font-weight: 600; color: var(--c-ink); text-align: right; overflow-wrap: anywhere; }
.cht-summary__breakdown { margin-top: 8px; }
.cht-summary__breakdown .cht-summary__row { padding: 8px 0; border-bottom: 0; }
.cht-summary__note { margin-top: 8px; padding: 12px; background: rgba(0,124,186,.05); border-left: 3px solid var(--c-blue); border-radius: 6px; font-size: 12px; line-height: 1.5; color: var(--c-muted); }
.cht-summary__total { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 20px 0 12px; margin-top: 16px; border-top: 2px solid rgba(0,124,186,.3); }
.cht-summary__total span { font-size: 14px; font-weight: 600; text-transform: uppercase; letter-spacing: .5px; color: var(--c-muted); }
.cht-summary__total strong { font-size: 30px; font-weight: 700; color: var(--c-blue); white-space: nowrap; }
.cht-summary__ref { margin-top: 12px; padding-top: 12px; border-top: 1px solid rgba(0,124,186,.15); font-size: 12px; color: var(--c-muted); }
.cht-summary__ref code { display: inline-block; margin-top: 4px; padding: 3px 8px; background: rgba(0,124,186,.1); border-radius: 4px; font-family: "Courier New", monospace; font-size: 12px; letter-spacing: .5px; color: var(--c-blue-dark); overflow-wrap: anywhere; }
.cht-secure { display: flex; gap: 12px; padding: 16px; background: #f8f9fa; border: 1px solid var(--c-line); border-radius: var(--r); }
.cht-secure__icon { color: var(--c-green); }
.cht-secure__icon .cht-icon { width: 30px; height: 30px; }
.cht-secure__text strong { display: block; font-size: 14px; color: var(--c-ink); margin-bottom: 4px; }
.cht-secure__text p { font-size: 12px; color: var(--c-muted); }

/* Card step */
.cht-card-step__nav { margin: 0 0 20px; }
.cht-card-box { background: #fff; padding: 24px; border-radius: 12px; box-shadow: var(--shadow); }
.cht-card-box__title { display: flex; align-items: center; gap: 10px; font-family: inherit; font-size: 18px; font-weight: 600; color: var(--c-ink); margin: 0 0 6px; }
.cht-card-box__title .cht-icon { color: var(--c-blue); }
.cht-card-box__note { font-size: 14px; color: var(--c-muted); margin: 0 0 18px; }
.cht-card-box__note .cht-icon { color: var(--c-green); }
.cht-card-box__loading { padding: 8px 0 16px; color: var(--c-muted); }
.cht-card-box[data-state="ready"] .cht-card-box__loading { display: none; }
.cht-card-box[data-state="loading"] .cht-card-form, .cht-card-box[data-state="error"] .cht-card-form { visibility: hidden; position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cht-card-form .cht-group { margin-bottom: 16px; }
.cht-stframe { min-height: 48px; border: 2px solid var(--c-line); border-radius: var(--r); background: #fff; padding: 0 4px; }
.cht-stframe iframe { display: block; width: 100%; border: 0; }
.cht-stnotify { margin: 0 0 12px; }
.cht-stnotify iframe { width: 100%; border: 0; }
.cht-licence { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--c-line); text-align: center; font-size: 12.5px; color: var(--c-muted); }

/* Trust badges */
.cht-badges { margin-top: 8px; padding: 24px; background: #f8f9fa; border-top: 1px solid #e9ecef; }
.cht-badges__row { display: flex; justify-content: center; flex-wrap: wrap; gap: 16px; margin: 0 0 16px; }
.cht-badge { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; background: #fff; border-radius: var(--r); box-shadow: 0 2px 4px rgba(0,0,0,.05); font-size: 13px; font-weight: 500; color: #495057; }
.cht-badge .cht-icon { color: var(--c-green); width: 18px; height: 18px; }
.cht-badges__text { text-align: center; font-size: 13px; color: var(--c-muted); }

/* Success page */
.cht-success { padding: 40px 20px; text-align: center; }
.cht-success__content { max-width: 640px; margin: 0 auto; }
.cht-success__icon { color: var(--c-green); margin-bottom: 20px; }
.cht-success__icon .cht-icon { width: 80px; height: 80px; }
.cht-success__title { font-family: inherit; font-size: 32px; font-weight: 700; color: var(--c-ink); margin: 0 0 12px; }
.cht-success__msg { font-size: 16px; color: #646970; margin: 0 0 32px; }
.cht-details { background: #f8f9fa; border: 1px solid var(--c-line); border-radius: var(--r); padding: 25px; margin-bottom: 24px; text-align: left; }
.cht-details__title { display: flex; align-items: center; justify-content: center; gap: 10px; font-family: inherit; font-size: 18px; font-weight: 600; color: var(--c-ink); margin: 0 0 16px; }
.cht-details__title .cht-icon { color: var(--c-blue); }
.cht-details__row { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--c-line); }
.cht-details__row:last-child { border-bottom: 0; }
.cht-details__row dt { font-size: 14px; color: #646970; font-weight: 500; }
.cht-details__row dd { margin: 0; font-size: 14px; color: var(--c-ink); font-weight: 600; text-align: right; overflow-wrap: anywhere; }
.cht-details__row--total dd { font-size: 18px; color: var(--c-green-dark); }
.cht-details__ref { font-family: "Courier New", monospace; letter-spacing: .5px; }
.cht-details__dob { font-weight: 400; color: #646970; }
.cht-success__actions p { font-size: 14px; color: #646970; margin: 0 0 20px; }
.cht-success__buttons { display: flex; gap: 15px; justify-content: center; flex-wrap: wrap; }

/* Responsive: the sidebar moves above the form below 1200px, like the current portal */
@media (max-width: 1200px) {
  .cht-grid { grid-template-columns: minmax(0, 1fr); }
  .cht-sidebar { position: static; order: -1; }
  .cht-cols-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
  .cht-header, .cht-content, .cht-badges { padding-left: 16px; padding-right: 16px; }
  .cht-content { padding-top: 16px; padding-bottom: 16px; }
  .cht-card__body, .cht-card-box, .cht-footer-card, .cht-gate, .cht-summary { padding: 16px; }
  .cht-cols-2, .cht-cols-3 { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .cht-options { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .cht-option__content { padding: 14px; gap: 12px; }
  .cht-option__icon { width: 40px; height: 40px; }
  .cht-pay .cht-input.cht-amount { font-size: 20px; height: 50px; }
  .cht-summary__total strong { font-size: 24px; }
  .cht-badges__row { flex-direction: column; gap: 10px; }
  .cht-badge { justify-content: center; }
  .cht-success { padding: 30px 12px; }
  .cht-success__title { font-size: 26px; }
  .cht-details { padding: 16px 12px; }
  .cht-details__row { flex-direction: column; gap: 4px; }
  .cht-details__row dd { text-align: left; }
  .cht-pay .cht-btn--large, .cht-success__buttons .cht-btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .cht-pay * { animation: none !important; transition: none !important; } }
@media print {
  .cht-pay { background: #fff; }
  .cht-wrap { box-shadow: none; border-top: 0; }
  .cht-success__buttons, .cht-badges, .cht-testmode { display: none !important; }
  .cht-details { page-break-inside: avoid; }
}

.cht-pay .cht-amount-scope{margin:0 0 8px;font-size:15px;font-weight:600;color:#005a87}

/* Sizing matched to the current portal (measured 2026-09-28): inputs 50px with a 1px border and 6px
   radius, card fields 45px in a 600px form, buttons 52px/17px, main column 720px beside the 380px summary. */
.cht-pay .cht-input, .cht-pay .cht-select { height: 50px; min-height: 50px; padding: 10px 15px; border-width: 1px; border-color: #d1d5db; border-radius: 6px; }
.cht-pay .cht-input.cht-amount { height: 56px; padding-left: 38px; }
.cht-pay .cht-stframe { min-height: 45px; padding: 0; border-width: 1px; border-color: #d1d5db; border-radius: 6px; }
.cht-pay #st-form { max-width: 600px; }
.cht-pay .cht-submit { min-height: 52px; padding: 16px 24px; font-size: 17px; }
@media (min-width: 1200px) { .cht-pay #cht-grid { grid-template-columns: minmax(0, 720px) 380px; column-gap: 40px; } }
