/* Home bento modal shell */

.home-bento-modal[hidden] {
  display: none !important;
}

.home-bento-modal {
  position: fixed;
  inset: 0;
  z-index: 2147483100;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 32px 16px 48px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

body.home-bento-modal-open {
  overflow: hidden;
}

.home-bento-modal__backdrop {
  position: fixed;
  inset: 0;
  background: rgba(10, 37, 64, 0.55);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.home-bento-modal__panel {
  position: relative;
  z-index: 1;
  flex-shrink: 0;
  width: min(1120px, 100%);
  margin: 0 auto;
  border-radius: 12px;
  background: #fff;
  box-shadow:
    0 0 0 1px rgba(10, 37, 64, 0.06),
    0 24px 64px rgba(10, 37, 64, 0.18);
  overflow: hidden;
}

.home-bento-modal__drawer-handle {
  display: none;
}

.home-bento-modal__close {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 5;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: #f6f9fc;
  color: #635bff;
  cursor: pointer;
}

.home-bento-modal__close:hover {
  background: #eef2f7;
}

.home-bento-modal__content {
  max-height: calc(100vh - 64px);
  overflow: auto;
  --bento-dialog-columns: 4;
}

@media (min-width: 640px) {
  .home-bento-modal__content {
    --bento-dialog-columns: 8;
  }
}

@media (min-width: 940px) {
  .home-bento-modal__content {
    --bento-dialog-columns: 12;
  }
}

.home-bento-modal__content .hds-color-mode.section {
  margin: 0;
}

.home-bento-modal__content .bento-dialog-layout {
  padding-top: 8px;
}

.home-bento-modal__content > .hds-color-mode.section {
  padding: 20px 16px 28px;
}

html body .modular-solutions-bento-card__graphic:has(.mw-bento-card-graphic),
html body .modular-solutions-bento-card__background:has(.mw-bento-card-graphic) {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  overflow: hidden;
  background: #fff;
}

html body .mw-bento-card-graphic {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center bottom;
}

html body .modular-solutions-bento__card-issuing .modular-solutions-bento-card__graphic {
  overflow: hidden;
}

html body .modular-solutions-bento__card-issuing .mw-bento-card-graphic {
  object-fit: cover;
  object-position: center bottom;
  clip-path: inset(18% 0 0 0);
}

@media (min-width: 640px) {
  .home-bento-modal__content > .hds-color-mode.section {
    padding: 24px 24px 32px;
  }
}

@media (min-width: 940px) {
  .home-bento-modal__content > .hds-color-mode.section {
    padding: 32px 40px 40px;
  }
}

@media (min-width: 640px) and (max-width: 939px) {
  .home-bento-modal {
    align-items: flex-start;
    padding: 24px 16px 32px;
    overflow-y: auto;
  }

  .home-bento-modal__panel {
    width: min(1120px, 100%);
    max-height: calc(100vh - 48px);
    margin: 0 auto;
    border-radius: 12px;
  }

  .home-bento-modal__drawer-handle {
    display: none;
  }

  .home-bento-modal__content {
    max-height: calc(100vh - 96px);
  }
}

@media (max-width: 639px) {
  .home-bento-modal {
    display: block;
    padding: 0;
    overflow: hidden;
  }

  .home-bento-modal__panel {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    top: 10%;
    display: flex;
    flex-direction: column;
    width: 100%;
    height: auto;
    min-height: 0;
    max-height: none;
    margin: 0;
    border-radius: 16px 16px 0 0;
    transform: translateY(0);
    animation: home-bento-drawer-in 0.28s cubic-bezier(0.32, 0.72, 0, 1);
  }

  .home-bento-modal__drawer-handle {
    display: block;
    flex-shrink: 0;
    width: 32px;
    height: 4px;
    margin: 10px auto 0;
    border-radius: 999px;
    background: #d4dee9;
  }

  .home-bento-modal__close {
    top: 12px;
    right: 12px;
  }

  .home-bento-modal__content {
    flex: 1;
    min-height: 0;
    max-height: none;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
  }

  .home-bento-modal__content .bento-dialog-layout__header {
    grid-template-columns: 1fr;
  }

  .home-bento-modal__content .bento-dialog-layout__list {
    order: 3;
  }

  .home-bento-modal__content .hds-button-group {
    flex-direction: column;
    align-items: stretch;
  }

  .home-bento-modal__content .hds-button-group .hds-button {
    width: 100%;
  }

  /* Mobile graphics carousel — equal slide size, fix fraud offset only */
  .home-bento-modal__content .bento-dialog-graphics-container {
    width: 100%;
  }

  .home-bento-modal__content .bento-dialog-graphics--has-multiple {
    gap: 0;
    scroll-padding-inline: 0;
  }

  .home-bento-modal__content .bento-dialog-graphics--has-multiple .bento-dialog-graphics__item {
    flex: 0 0 100%;
    width: 100%;
    min-width: 100%;
    scroll-snap-align: center;
    box-sizing: border-box;
  }

  .home-bento-modal__content .bento-dialog-graphics--has-multiple .bento-dialog-graphics__item-inner {
    min-height: 540px;
    display: flex;
    flex-direction: column;
  }

  .home-bento-modal__content .bento-dialog-graphics--has-multiple .bento-dialog-graphic {
    flex: 1;
    width: 100%;
    aspect-ratio: auto !important;
    min-height: 540px;
    height: auto;
    overflow: visible !important;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px 16px 28px;
    background-color: var(--hds-color-surface-bg-subdued, #f6f9fc);
    box-sizing: border-box;
  }

  /* Slide 1 — phone checkout (Stripe default width) */
  .home-bento-modal__content .bento-dialog-graphics--has-multiple .mobile-payments-graphic {
    width: 61%;
    max-width: 266px;
    margin: 0 auto;
  }

  /* Slide 2 — authorization boost */
  .home-bento-modal__content .bento-dialog-graphics--has-multiple .authorization-boost-graphic {
    width: 92%;
    max-width: 340px;
    margin: 0 auto;
  }

  .home-bento-modal__content .bento-dialog-graphics--has-multiple .authorization-boost-graphic .dom-graphic {
    width: 100%;
    max-width: 370px;
    margin: 0 auto;
  }

  /* Slide 3 — fraud chart */
  .home-bento-modal__content .bento-dialog-graphics--has-multiple .fraud-and-risk-graphic {
    position: relative !important;
    right: auto !important;
    left: auto !important;
    width: 92% !important;
    max-width: 340px;
    margin: 0 auto;
  }

  .home-bento-modal__content .bento-dialog-graphics--has-multiple .fraud-and-risk-graphic__dom-graphic {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    --graphic-max-width: 100%;
  }

  .home-bento-modal__content .bento-dialog-graphics--has-multiple .fraud-and-risk-graphic__container {
    padding: 20px 16px 28px !important;
  }

  .home-bento-modal__content .bento-dialog-graphics__pagination {
    padding-inline: 16px;
  }

  /* Billing modal — two-slide carousel (invoice + pay-as-you-go) */
  .home-bento-modal__content .bento-dialog-graphics--billing.bento-dialog-graphics--has-multiple .usage-based-billing-invoice {
    width: 92%;
    max-width: 360px;
    margin: 0 auto;
  }

  .home-bento-modal__content .bento-dialog-graphics--billing.bento-dialog-graphics--has-multiple .usage-based-billing-invoice__graphic {
    --graphic-max-width: 100%;
    width: 100%;
  }

  .home-bento-modal__content .bento-dialog-graphics--billing.bento-dialog-graphics--has-multiple .pay-as-you-go-graphic {
    width: 92%;
    max-width: 340px;
    margin: 0 auto;
  }

  .home-bento-modal__content .bento-dialog-graphics--billing.bento-dialog-graphics--has-multiple .pay-as-you-go-graphic .dom-graphic {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
  }

  /* Billing discover cards — keep previews centered on small screens */
  .home-bento-modal__content .bento-dialog-cards__grid {
    row-gap: var(--hds-space-core-500, 32px);
  }

  .home-bento-modal__content .bento-dialog-card__graphic {
    min-height: 220px;
  }

  .home-bento-modal__content .testimonial-card {
    padding-inline: 8px;
  }

  .home-bento-modal__content .bento-dialog-footer .hds-button-group {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }

  .home-bento-modal__content .bento-dialog-footer .hds-button-group .hds-button {
    width: 100%;
  }

  /* Agentic commerce modal — hero graphic + discover cards on mobile */
  .home-bento-modal__content .bento-dialog-graphics--agentic-commerce.bento-dialog-graphics--single-column .bento-dialog-graphic {
    min-height: 480px;
    padding: 20px 12px 24px;
  }

  .home-bento-modal__content .bento-dialog-graphics--agentic-commerce .agentic-commerce-bento-modal-graphic {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    overflow: visible;
  }

  .home-bento-modal__content .bento-dialog-graphics--agentic-commerce .agentic-commerce-bento-modal-graphic__checkout-graphic {
    width: 72%;
    max-width: 260px;
    right: 0;
    bottom: 2%;
  }

  .home-bento-modal__content .bento-dialog-graphics--agentic-commerce .dom-graphic {
    --graphic-max-width: 100%;
    width: 100%;
  }

  /* Issuing modal — two-slide carousel on mobile */
  .home-bento-modal__content .bento-dialog-graphics--issuing.bento-dialog-graphics--has-multiple .dom-graphic {
    width: 92%;
    max-width: 360px;
    margin: 0 auto;
    --graphic-max-width: 100%;
  }

  .home-bento-modal__content .bento-dialog-graphics--issuing.bento-dialog-graphics--has-multiple .bento-dialog-graphic {
    min-height: 520px;
    padding: 24px 12px 28px;
  }

  /* Crypto modal — three-slide carousel on mobile */
  .home-bento-modal__content .bento-dialog-graphics--crypto.bento-dialog-graphics--has-multiple .crypto-payment-flow-graphic {
    width: 72%;
    max-width: 280px;
    margin: 0 auto;
  }

  .home-bento-modal__content .bento-dialog-graphics--crypto.bento-dialog-graphics--has-multiple .crypto-issuing-graphic,
  .home-bento-modal__content .bento-dialog-graphics--crypto.bento-dialog-graphics--has-multiple .crypto-account-balance-graphic {
    width: 92%;
    max-width: 360px;
    margin: 0 auto;
  }

  .home-bento-modal__content .bento-dialog-graphics--crypto.bento-dialog-graphics--has-multiple .crypto-issuing-graphic .dom-graphic,
  .home-bento-modal__content .bento-dialog-graphics--crypto.bento-dialog-graphics--has-multiple .crypto-account-balance-graphic .dom-graphic {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    --graphic-max-width: 100%;
  }

  .home-bento-modal__content .bento-dialog-graphics--crypto.bento-dialog-graphics--has-multiple .bento-dialog-graphic {
    min-height: 540px;
    padding: 24px 12px 28px;
  }

  /* Connect modal — hero graphic on mobile */
  .home-bento-modal__content .bento-dialog-graphics--connect.bento-dialog-graphics--single-column .bento-dialog-graphic {
    min-height: 480px;
    padding: 20px 12px 24px;
  }

  .home-bento-modal__content .bento-dialog-graphics--connect .connect-payments-graphic {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    overflow: visible;
  }

  .home-bento-modal__content .bento-dialog-graphics--connect .connect-payments-graphic__dom-graphic {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    --graphic-max-width: 100%;
  }

  .home-bento-modal__content .bento-dialog-graphics--connect .dom-graphic {
    --graphic-max-width: 100%;
    width: 100%;
  }

  /* Mobile drawer typography — match stripe.com live sizes + prevent iOS shrink */
  .home-bento-modal__content {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    font-family: var(--hds-font-family, "sohne-var", "Helvetica Neue", Arial, sans-serif);
  }

  .home-bento-modal__content .bento-dialog-intro__title.hds-heading--lg {
    font-size: 1.375rem; /* 22px — Stripe mobile */
    line-height: 1.2;
    font-weight: 400;
  }

  .home-bento-modal__content .bento-dialog-intro__body.hds-text--lg,
  .home-bento-modal__content .bento-dialog-list__item-text,
  .home-bento-modal__content .bento-dialog-detail__text,
  .home-bento-modal__content .bento-dialog-card__text,
  .home-bento-modal__content .bento-dialog-card__link,
  .home-bento-modal__content .testimonial-card__author-role,
  .home-bento-modal__content .testimonial-card a,
  .home-bento-modal__content .hds-button {
    font-size: 1rem; /* 16px — descriptions / body */
    line-height: 1.4;
    font-weight: 400;
  }

  .home-bento-modal__content .bento-dialog-cards__heading.hds-heading--md,
  .home-bento-modal__content .bento-dialog-footer .hds-heading--md {
    font-size: 1.25rem; /* 20px — section headings */
    line-height: 1.2;
    font-weight: 400;
  }

  .home-bento-modal__content .testimonial-card__quote {
    font-size: 1.125rem; /* 18px — quote */
    line-height: 1.4;
    font-weight: 400;
  }
}

@media (max-width: 639px) {
  .modular-solutions-bento-card__dialog-entry {
    right: 12px !important;
    top: 12px !important;
    width: 44px;
    height: 44px;
  }
}

.home-bento-modal__content .bento-dialog-card__content {
  overflow: visible;
}

/* Bento modal links — hover arrow animation without crop */
.home-bento-modal__content .bento-dialog-card__link,
.home-bento-modal__content .testimonial-card a,
.home-bento-modal__content .bento-dialog-footer a {
  overflow: visible;
}

.home-bento-modal__content .hds-nowrap-svg {
  display: inline;
  white-space: nowrap;
  overflow: visible;
}

.home-bento-modal__content .hds-icon-hover-arrow {
  display: inline-block;
  vertical-align: -0.08em;
  overflow: visible;
  margin-inline-start: 0.15em;
  margin-inline-end: 0;
  width: 12px;
  min-width: 12px;
  flex-shrink: 0;
}

.home-bento-modal__content :is(.hds-link, .hds-button):hover .hds-icon-hover-arrow {
  --hds-hover-active: 1;
}

.home-bento-modal__content .hds-icon-hover-arrow .shaft {
  opacity: var(--hds-hover-active, 0);
}

.home-bento-modal__content .hds-icon-hover-arrow .arrow-group {
  transform: translateX(calc(var(--hds-hover-active, 0) * 6px));
}

@media (prefers-reduced-motion: no-preference) {
  .home-bento-modal__content .hds-icon-hover-arrow .shaft {
    transition: opacity 0.3s cubic-bezier(0.25, 1, 0.5, 1);
  }

  .home-bento-modal__content .hds-icon-hover-arrow .arrow-group {
    transition: transform 0.3s cubic-bezier(0.25, 1, 0.5, 1);
  }
}

@keyframes home-bento-drawer-in {
  from {
    transform: translateY(100%);
  }

  to {
    transform: translateY(0);
  }
}

/* Bento expand icon — restore Stripe placement; enable clicks (source CSS sets pointer-events:none) */
.modular-solutions-bento-card__dialog-entry {
  position: absolute !important;
  right: 16px !important;
  top: 16px !important;
  width: 38px;
  height: 38px;
  z-index: 10 !important;
  pointer-events: auto !important;
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.modular-solutions-bento-card__dialog-entry-wrapper {
  pointer-events: auto !important;
  cursor: pointer;
}

.modular-solutions-bento-card[data-bento-ready="true"] .modular-solutions-bento-card__dialog-entry:hover {
  opacity: 1;
}

.modular-solutions-bento-card__dialog-entry:focus-visible {
  outline: 2px solid #635bff;
  outline-offset: 2px;
}

.modular-solutions-bento-card[data-bento-ready="false"] .modular-solutions-bento-card__dialog-entry {
  opacity: 0.45;
  cursor: not-allowed;
  pointer-events: auto !important;
}

/* Homepage bento cards have a direct product route plus a separate details
   control. These resets preserve the captured card appearance after the outer
   interactive element becomes an article and the expand affordance becomes a
   native button. */
article.modular-solutions-bento-card {
  margin: 0;
  padding: 0;
  border: 0;
  color: inherit;
  font: inherit;
  text-align: start;
}

button.modular-solutions-bento-card__dialog-entry {
  appearance: none;
  border: 0;
  background: transparent;
  padding: 0;
  color: inherit;
  display: grid;
  place-items: center;
}

.modular-solutions-bento-card__text {
  z-index: 11 !important;
}

.home-bento-card__cta {
  position: relative;
  z-index: 12;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: 7px;
  padding: 4px 0;
  color: #635bff;
  font: 600 0.875rem/1.3 var(--hds-font-family, inherit);
  letter-spacing: -0.01em;
  text-decoration: none;
  pointer-events: auto !important;
}

.home-bento-card__cta-icon {
  width: 12px;
  height: 12px;
  flex: 0 0 12px;
  transition: transform 180ms ease;
}

.home-bento-card__cta:hover,
.home-bento-card__cta:focus-visible {
  color: #0a2540;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.home-bento-card__cta:hover .home-bento-card__cta-icon,
.home-bento-card__cta:focus-visible .home-bento-card__cta-icon {
  transform: translateX(2px);
}

.home-bento-card__cta:focus-visible {
  outline: 2px solid #635bff;
  outline-offset: 3px;
  border-radius: 2px;
}

@media (max-width: 639px) {
  .home-bento-card__cta {
    margin-top: 5px;
    padding-block: 7px;
  }
}
