.payment-sheet[data-checkout-content]:not(.success-sheet, .tbank-sheet) {
  max-height: calc(100dvh - 16px);
  background: var(--surface-soft);
}
/* Keep the scrollable area behind the header white, including the Flex tabs. */
.payment-sheet[data-checkout-content]:not(.success-sheet, .tbank-sheet) .sheet-content {
  background: linear-gradient(var(--surface) 108px, transparent 108px);
}
@media (max-width: 599px) {
  .payment-sheet[data-checkout-collapsed]:not(.success-sheet, .tbank-sheet) { --sheet-fallback-height: 100dvh; }
}
.checkout-card {
  min-width: 0;
  overflow: hidden;
  border-radius: 24px;
  background: var(--surface);
}
.checkout-card + .checkout-card { margin-top: 4px; }
.checkout-payment { border-radius: 0 0 24px 24px; }
.checkout-scroll-end {
  position: absolute;
  bottom: calc(100% + 4px);
  left: 50%;
  translate: -50% 0;
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 12px;
  border: 0;
  border-radius: 16px;
  background: var(--surface);
  color: var(--text-primary);
  box-shadow: 0 -2px 12px rgb(0 0 0 / .08), 0 8px 12px rgb(0 0 0 / .1);
  font: 500 12px/16px var(--font-ui);
  white-space: nowrap;
}
.checkout-scroll-end img { margin: 2px; }
.checkout-payment:has(.checkout-coupons) .methods-scroll { padding-bottom: 12px; }
.checkout-strip {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-inline: 20px;
  scroll-padding-inline: 20px;
  scroll-snap-type: x mandatory;
  overscroll-behavior-inline: contain;
  scrollbar-width: none;
}
.checkout-strip::-webkit-scrollbar { display: none; }
.checkout-strip > * { scroll-snap-align: start; }
.checkout-coupons { padding-bottom: 20px; }
.checkout-coupon {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 12px;
  min-height: 68px;
  padding: 16px;
  border: 0;
  border-radius: 24px;
  background: #f3f9f5;
  color: var(--text-primary);
  font: 500 14px/18px var(--font-ui);
  text-align: left;
}
.checkout-coupon--cashback { background: #f4f2fe; }
.checkout-coupon img { flex: none; }
.checkout-coupon > span:nth-child(2) { min-width: 121px; }
.checkout-coupon--cashback > span:nth-child(2) { min-width: 135px; }
.checkout-coupon .flex-switch-track { flex-basis: 56px; height: 32px; margin-left: 8px; background: rgb(188 195 208 / .25); }
.checkout-coupon .flex-switch-track::after { inset: 4px auto auto 4px; width: 24px; height: 24px; box-shadow: none; }
.checkout-switch[aria-checked="true"] .flex-switch-track { background: #26cd58; }
.checkout-switch[aria-checked="true"] .flex-switch-track::after { transform: translateX(18px); }
.checkout-coupon[aria-checked="true"] .flex-switch-track::after { transform: translateX(24px); }
.checkout-heading {
  display: flex;
  width: 100%;
  min-height: 56px;
  align-items: center;
  gap: 4px;
  padding: 12px 20px;
  border: 0;
  background: transparent;
  color: var(--text-primary);
  font: 500 17px/24px var(--font-ui);
  text-align: left;
}
.checkout-heading:has(.checkout-coupon-badge) { min-height: 64px; }
.checkout-chevron { flex: none; transition: transform 200ms ease; }
.checkout-heading:not(.checkout-promo .checkout-heading) .checkout-chevron { transform: rotate(90deg); }
.checkout-heading:not(.checkout-promo .checkout-heading)[aria-expanded="true"] .checkout-chevron { transform: rotate(-90deg); }
.checkout-promo .checkout-heading[aria-expanded="true"] .checkout-chevron { transform: rotate(90deg); }
.checkout-coupon-badge {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-left: auto;
  white-space: nowrap;
  font-size: 14px;
}
.checkout-disclosure {
  display: grid;
  grid-template-rows: 1fr;
  transition: grid-template-rows 320ms cubic-bezier(.2,.8,.2,1);
}
.checkout-disclosure[inert] { grid-template-rows: 0fr; }
.checkout-disclosure > div { min-height: 0; overflow: hidden; }
.checkout-recommendations { display: grid; gap: 8px; padding: 16px 0; }
.checkout-heading + .checkout-disclosure .checkout-recommendations { padding-top: 0; }
.checkout-banners { position: relative; min-width: 0; }
.checkout-banner {
  position: relative;
  display: grid;
  flex: 0 0 100%;
  align-items: center;
  min-height: 88px;
  padding: 16px 20px;
  overflow: hidden;
  isolation: isolate;
  border-radius: 24px;
  background: #eeeefb;
  font: 500 14px/20px var(--font-ui);
}
.checkout-banner::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  background: url('../assets/checkout-banner-texture.png') bottom / cover no-repeat;
  mix-blend-mode: soft-light;
  opacity: .4;
}
.checkout-banner--donation { background: #f7effc; }
.checkout-banner > span { position: relative; z-index: 1; }
.checkout-banner-art {
  position: absolute;
  top: calc(50% - 76px);
  right: -14px;
  width: 163px;
  height: 163px;
  pointer-events: none;
}
.checkout-banner-art video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.checkout-banner:not(.checkout-banner--donation) video,
.checkout-banner--donation .checkout-banner-art {
  mix-blend-mode: darken;
}
.checkout-banner-art::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(54.478deg, rgb(193 189 238 / 0) 64.032%, rgb(193 189 238 / .2) 82.065%);
}
.checkout-banner--donation .checkout-banner-art {
  top: calc(50% - 55px);
  right: -7px;
  width: 132px;
  height: 132px;
}
.checkout-banner--donation .checkout-banner-art::after {
  background:
    linear-gradient(170.538deg, #fbf3f9 13.555%, rgb(251 243 249 / 0) 22.372%),
    linear-gradient(298.610deg, rgb(255 255 255 / 0) 65.562%, #fff 73.452%);
}
.checkout-banner-pagination {
  position: absolute;
  bottom: 0;
  left: 50%;
  display: flex;
  transform: translateX(-50%);
}
.checkout-banner-pagination::before {
  content: '';
  position: absolute;
  inset: auto 0 8px;
  height: 8px;
  background: url('../assets/checkout-dots.svg') center no-repeat;
  pointer-events: none;
}
.checkout-banner-pagination[data-slide="1"]::before { transform: scaleX(-1); }
.checkout-banner-pagination button { width: 24px; height: 24px; padding: 0; border: 0; background: transparent; }
.checkout-services { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 8px; padding-inline: 20px; }
.checkout-service {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 4px;
  min-height: 90px;
  padding: 12px 16px;
  border: 0;
  border-radius: 20px;
  background: #edeff7;
  color: var(--text-primary);
  text-align: left;
}
.checkout-service--cashback { padding-inline: 20px; background: #f4f2fe; }
.checkout-service-title { display: flex; align-items: center; min-height: 30px; font: 500 14px/18px var(--font-ui); white-space: nowrap; }
.checkout-insurance-art { object-fit: cover; }
.checkout-service .flex-switch-track { grid-area: 1 / 2; width: 42px; }
.checkout-service--cashback img { transform: rotate(30deg); }
.checkout-service-copy { grid-area: 2 / 1 / 3 / -1; font: 400 12px/16px var(--font-ui); }
.checkout-service-copy em { color: #7936c9; font-style: normal; }
.checkout-promo { border-radius: 32px; }
.checkout-promo-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 8px; padding: 0 20px 16px; }
.checkout-promo-field { display: grid; gap: 4px; font-size: 12px; }
.checkout-promo-field input, .checkout-promo-form button { min-height: 44px; border: 0; border-radius: 12px; background: var(--surface-soft); color: var(--text-primary); padding: 8px 12px; font-size: 16px; }
.checkout-promo-status { grid-column: 1 / -1; margin: 0; color: var(--text-secondary); font-size: 12px; }
.checkout-promo-status:empty { display: none; }
.checkout-card button:focus-visible, .checkout-banner-strip:focus-visible { outline-offset: -3px; }
@media (max-width: 360px) {
  .checkout-service--cashback { padding-inline: 12px; }
}
@media (min-width: 600px) {
  .payment-sheet[data-checkout-content]:not(.success-sheet, .tbank-sheet) { max-height: calc(100dvh - 48px); }
}
@media (prefers-reduced-motion: reduce) {
  .checkout-disclosure, .checkout-chevron, .checkout-switch .flex-switch-track, .checkout-switch .flex-switch-track::after { transition: none; }
}
