/* Art-directed inventory banner, with a separate composition for phones. */
.v2-hero { padding: 0; background: #161614; color: #f8f8f1; }
.v2-banner { position: relative; isolation: isolate; min-height: 664px; overflow: hidden; }
.v2-banner-image, .v2-banner-shade { position: absolute; inset: 0; z-index: -1; }
.v2-banner-image img { width: 100%; height: 100%; object-fit: cover; object-position: center 59%; }
.v2-banner-shade { background: linear-gradient(90deg, #10110fde 0%, #10110f75 44%, #10110f00 75%), linear-gradient(0deg, #10110f65, transparent 55%); }
.v2-banner-content { width: 100%; max-width: 1360px; margin: auto; min-height: inherit; display: flex; flex-direction: column; justify-content: center; padding: 46px 36px; }
.v2-banner-intro { font-size: 16px; line-height: 1.5; letter-spacing: 1.4px; color: #e0e4d9; font-weight: 500; margin: 0 0 25px; }
.v2-hero h1 { font-size: clamp(68px, 6.3vw, 92px); line-height: 1.02; letter-spacing: -.06em; font-weight: 600; margin: 0; max-width: 900px; text-wrap: balance; }
.v2-hero h1 span { display: block; color: #adf28c; }
.v2-banner-bottom { display: flex; align-items: flex-end; justify-content: space-between; gap: 48px; margin-top: 38px; }
.v2-banner-copy { max-width: 495px; }
.v2-banner-description { font-size: 18px; line-height: 1.7; color: #f2f3ed; max-width: 44ch; margin: 0; text-wrap: pretty; }
.v2-banner-cta { background: #adf28c; color: #161614; min-width: 233px; min-height: 60px; justify-content: space-between; font-size: 16px; padding: 17px 24px; margin-top: 28px; border-radius: 5px; }
.v2-banner-cta:active { transform: translateY(1px); }
.v2-banner-qualification { font-size: 16px; line-height: 1.6; color: #dadfd3; margin: 14px 0 0; }
.v2-banner-process { display: flex; align-items: center; gap: 18px; font-size: 16px; font-weight: 600; margin-bottom: 10px; padding: 13px 18px; background: #fff; border: 1px solid #e2e5dc; border-radius: 7px; color: #20231e; transition: background .2s, border-color .2s; }
.v2-banner-process > span:first-child { max-width: 150px; text-wrap: balance; }
.v2-process-arrow { width: 46px; height: 46px; border: 1px solid #d7dfcd; border-radius: 50%; display: grid; place-items: center; background: #edf2e6; color: #20231e; transition: color .2s, background .2s; flex: none; }
.v2-process-arrow .v2-icon { width: 24px; height: 24px; }
.v2-banner-process:hover .v2-process-arrow { background: #adf28c; color: #161614; border-color: #adf28c; }
.v2-banner-process:hover { background: #f4f8f1; border-color: #adf28c; }
.v2-terms { background: #f7f7f2; color: #20231e; padding: 28px 36px 30px; border-bottom: 1px solid #dedfd7; }
.v2-terms-inner { max-width: 1288px; margin: auto; display: grid; grid-template-columns: 1.12fr 1fr 1fr; gap: 36px; }
.v2-term { min-width: 0; }
.v2-term + .v2-term { padding-left: 36px; border-left: 1px solid #d5d9cc; }
.v2-term-value { display: block; font-size: 46px; font-weight: 500; line-height: 1; letter-spacing: -.065em; font-variant-numeric: tabular-nums; margin-bottom: 15px; }
.v2-term-unit { font-size: .54em; letter-spacing: -.035em; margin-left: 3px; }
.v2-term strong { display: block; font-size: 16px; line-height: 1.45; font-weight: 600; text-wrap: balance; }
.v2-term p { font-size: 16px; line-height: 1.55; color: #666b61; margin-top: 5px; max-width: 32ch; text-wrap: pretty; }
.v2-banner-cta:focus-visible, .v2-banner-process:focus-visible { outline: 2px solid #adf28c; outline-offset: 5px; }
@media (min-width: 1800px) { .v2-banner-image img { object-position: center 64%; } }
@media (max-width: 1120px) { .v2-hero h1 { font-size: 70px; } .v2-banner { min-height: 650px; } .v2-banner-copy { max-width: 440px; } .v2-banner-process { gap: 14px; font-size: 16px; } .v2-terms-inner { gap: 24px; } .v2-term + .v2-term { padding-left: 24px; } .v2-term-value { font-size: 42px; } }
@media (max-width: 760px) {
  .v2-banner { min-height: 744px; }
  .v2-banner-image img { object-position: center 65%; }
  .v2-banner-shade { background: linear-gradient(180deg, #11120fe6 0%, #11120fc4 38%, #11120f14 78%, #11120f38 100%); }
  .v2-banner-content { padding: 36px 24px 205px; }
  .v2-banner-intro { font-size: 16px; letter-spacing: 1.1px; margin-bottom: 25px; max-width: 32ch; }
  .v2-hero h1 { font-size: clamp(46px, 12.8vw, 68px); line-height: 1.02; letter-spacing: -.055em; max-width: 600px; }
  .v2-banner-bottom { display: block; margin-top: 26px; }
  .v2-banner-copy { max-width: 440px; }
  .v2-banner-description { font-size: 18px; line-height: 1.65; max-width: 43ch; }
  .v2-banner-cta { width: 100%; min-height: 57px; padding: 16px 20px; margin-top: 23px; font-size: 16px; }
  .v2-banner-qualification { font-size: 16px; line-height: 1.6; margin-top: 12px; max-width: 36ch; }
  .v2-banner-process { display: inline-flex; align-items: center; gap: 12px; font-size: 16px; margin-top: 17px; margin-bottom: 0; min-height: 48px; padding: 9px 14px; }
  .v2-banner-process > span:first-child { max-width: none; }
  .v2-process-arrow { width: 36px; height: 36px; }
  .v2-process-arrow .v2-icon { width: 18px; height: 18px; }
  .v2-terms { padding: 25px 24px 29px; }
  .v2-terms-inner { grid-template-columns: 1fr 1fr; gap: 0; }
  .v2-term-nda { grid-column: 1 / -1; display: flex; align-items: center; gap: 24px; padding-bottom: 23px; margin-bottom: 24px; border-bottom: 1px solid #d5d9cc; }
  .v2-term-nda .v2-term-value { margin: 0; flex: none; }
  .v2-term-nda > div { max-width: 25ch; }
  .v2-term + .v2-term { padding-left: 0; border-left: 0; }
  .v2-term:nth-child(2) { padding-right: 20px; }
  .v2-term:nth-child(3) { padding-left: 20px; border-left: 1px solid #d5d9cc; }
  .v2-term-value { font-size: 43px; margin-bottom: 14px; }
  .v2-term strong { font-size: 16px; }
  .v2-term p { font-size: 16px; max-width: none; }
}
@media (max-width: 359px) { .v2-banner-content { padding-left: 20px; padding-right: 20px; } .v2-hero h1 { font-size: 44px; } }
@media (prefers-reduced-motion: reduce) { .v2-process-arrow { transition: none; } .v2-banner-cta:active { transform: none; } }

.v2-banner-cta { font-size:18px; }
.v2-banner-process { font-size:16px; }
.v2-banner-qualification { max-width:46ch; }
/* 21st / uiable Button Animated: sliding overlay, adapted to vanilla CSS. */
.v2-banner-cta { position:relative; isolation:isolate; overflow:hidden; transition:color .3s,background .3s,transform .15s; }
.v2-banner-cta::before { content:''; position:absolute; z-index:-1; inset:0; background:#fff; transform:scaleX(0); transform-origin:left; transition:transform .35s cubic-bezier(.25,1,.5,1); }
.v2-banner-cta > span:first-child { position:relative; }
.v2-banner-cta-arrow { position:relative; flex:none; width:24px; height:24px; overflow:hidden; }
.v2-banner-cta-arrow .v2-icon { position:absolute; top:3px; left:3px; transition:transform .35s cubic-bezier(.25,1,.5,1); }
.v2-banner-cta-arrow .v2-icon + .v2-icon { transform:translateX(-30px); }
.v2-banner-cta:is(:hover,:focus-visible) { color:#20231e; background:#fff; }
.v2-banner-cta:is(:hover,:focus-visible)::before { transform:scaleX(1); }
.v2-banner-cta:is(:hover,:focus-visible) .v2-icon:first-child { transform:translateX(30px); }
.v2-banner-cta:is(:hover,:focus-visible) .v2-icon + .v2-icon { transform:translateX(0); }
/* One short entrance sequence. Content remains visible when animations are unavailable. */
@media(prefers-reduced-motion:no-preference) {
  .v2-banner-intro { animation:v2-hero-enter .35s both; }
  .v2-hero h1 { animation:v2-hero-enter .5s both; }
  .v2-banner-bottom { animation:v2-hero-enter .5s .08s both; }
}
@keyframes v2-hero-enter { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
@media(prefers-reduced-motion:reduce) {
  .v2-banner-cta,.v2-banner-cta::before,.v2-banner-cta-arrow .v2-icon { transition:none; }
  .v2-banner-cta::before { display:none; }
  .v2-banner-cta:is(:hover,:focus-visible) { background:#fff; color:#20231e; }
  .v2-banner-cta-arrow .v2-icon { transform:none !important; }
  .v2-banner-cta-arrow .v2-icon + .v2-icon { display:none; }
}
@media(max-width:760px) { .v2-banner-content { padding-top:38px; padding-bottom:205px; } .v2-term-nda { gap:20px; } .v2-term:nth-child(2) { padding-right:14px; } .v2-term:nth-child(3) { padding-left:14px; } }
