.tuf-b2-products .tuf-digital-products{width:min(calc(100% - 48px), var(--tuf-content-width));padding:0 0 54px}.tuf-b2-products .tuf-digital-products__intro{text-align:center;justify-items:center;padding:18px 20px 14px;display:grid}.tuf-b2-products .tuf-digital-products__intro>span{color:#f05a18;letter-spacing:.18em;font-size:10px;font-weight:820}.tuf-b2-products .tuf-digital-products__intro h1{color:var(--tuf-ink);font-family:var(--tuf-serif);letter-spacing:-.052em;margin:6px 0 3px;font-size:clamp(46px,5vw,68px);font-weight:500;line-height:.98}.tuf-b2-products .tuf-digital-products__intro p{max-width:760px;color:var(--tuf-muted);margin:0;font-size:14px;line-height:1.5}.tuf-b2-products .tuf-digital-products__banners{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:2px;display:grid}.tuf-b2-products .tuf-digital-banner{color:#fff;isolation:isolate;background:#03182b;border:1px solid #102d47;border-radius:7px;min-width:0;min-height:242px;display:grid;position:relative;overflow:hidden}.tuf-b2-products .tuf-digital-banner:after{z-index:-1;content:"";background:linear-gradient(90deg,#03182b 0%,#03182bf5 42%,#03182b14 78%);position:absolute;inset:0}.tuf-b2-products .tuf-digital-banner--premium{border-color:color-mix(in srgb, var(--tuf-gold) 38%, #102d47)}.tuf-b2-products .tuf-digital-banner__copy{z-index:2;align-content:center;justify-items:start;max-width:54%;padding:28px 0 28px 34px;display:grid;position:relative}.tuf-b2-products .tuf-digital-banner h2{color:#fff;font-family:var(--tuf-serif);letter-spacing:-.04em;margin:0;font-size:clamp(30px,3vw,40px);font-weight:500;line-height:1}.tuf-b2-products .tuf-digital-banner p{color:#e5edf4;margin:13px 0 22px;font-size:13px;line-height:1.55}.tuf-b2-products .tuf-digital-banner__copy>span{color:#061627;background:#fff;border-radius:5px;align-items:center;gap:16px;min-height:42px;padding:0 18px;font-size:11px;font-weight:780;display:inline-flex}.tuf-b2-products .tuf-digital-banner--premium .tuf-digital-banner__copy>span{background:var(--tuf-gold-pale)}.tuf-b2-products .tuf-digital-banner>img{z-index:-2;object-fit:cover;object-position:right center;width:68%;height:100%;position:absolute;top:0;right:0}.tuf-b2-products .tuf-digital-banner:hover,.tuf-b2-products .tuf-digital-banner:focus-visible{border-color:var(--tuf-control-accent);outline:none;box-shadow:0 10px 28px #04192c1c}.tuf-b2-products .tuf-digital-banner--premium:hover,.tuf-b2-products .tuf-digital-banner--premium:focus-visible{border-color:var(--tuf-gold)}.tuf-b2-products .tuf-digital-categories{border:1px solid var(--tuf-line);background:var(--tuf-paper);border-radius:6px;grid-template-columns:repeat(6,minmax(0,1fr));margin-top:16px;display:grid;overflow:hidden}.tuf-b2-products .tuf-digital-categories button{min-width:0;min-height:54px;color:var(--tuf-ink);cursor:pointer;white-space:nowrap;background:0 0;border:0;justify-content:center;align-items:center;gap:10px;padding:0 12px;font-size:10px;font-weight:700;display:inline-flex;position:relative}.tuf-b2-products .tuf-digital-categories button+button{border-left:1px solid var(--tuf-line)}.tuf-b2-products .tuf-digital-categories button:after{background:var(--tuf-control-accent);content:"";opacity:0;height:2px;position:absolute;bottom:0;left:10px;right:10px}.tuf-b2-products .tuf-digital-categories button:hover,.tuf-b2-products .tuf-digital-categories button.is-active{color:var(--tuf-control-accent)}.tuf-b2-products .tuf-digital-categories button.is-active:after{opacity:1}.tuf-b2-products .tuf-digital-categories svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;flex:none;width:20px;height:20px}.tuf-b2-products .tuf-digital-products__sections{gap:12px;margin-top:14px;display:grid}.tuf-b2-products .tuf-digital-section{scroll-margin-top:20px}.tuf-b2-products .tuf-digital-section__header{justify-content:space-between;align-items:center;gap:24px;min-height:54px;display:flex}.tuf-b2-products .tuf-digital-section__header h2{color:var(--tuf-ink);font-family:var(--tuf-serif);letter-spacing:-.035em;margin:0;font-size:28px;font-weight:500;line-height:1}.tuf-b2-products .tuf-digital-section__header p{color:var(--tuf-muted);margin:4px 0 0;font-size:10px}.tuf-b2-products .tuf-digital-section__header>a{color:var(--tuf-link-accent);flex:none;font-size:10px;font-weight:760}.tuf-b2-products .tuf-digital-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;display:grid}.tuf-b2-products .tuf-digital-card{border:1px solid var(--tuf-line);background:var(--tuf-paper);border-radius:5px;min-width:0;overflow:hidden}.tuf-b2-products .tuf-digital-card[hidden]{display:none}.tuf-b2-products .tuf-digital-card__media{background:#03182b;border-radius:4px;min-height:104px;margin:10px 10px 0;position:relative;overflow:hidden}.tuf-b2-products .tuf-digital-card__media>span{z-index:2;color:#fff;letter-spacing:.04em;background:#0869db;border-radius:0 0 4px;padding:3px 8px;font-size:8px;font-weight:840;position:absolute;top:0;left:0}.tuf-b2-products .tuf-digital-card--premium .tuf-digital-card__media>span{color:#07131f;background:#ffc928}.tuf-b2-products .tuf-digital-card__media img{object-fit:cover;width:100%;height:104px}.tuf-b2-products .tuf-digital-card__media img[src$=start-coding-with-python\.png]{object-fit:contain;padding:7px}.tuf-b2-products .tuf-digital-card__copy{padding:9px 12px 13px}.tuf-b2-products .tuf-digital-card h3{color:var(--tuf-ink);margin:0;font-size:13px;font-weight:740;line-height:1.25}.tuf-b2-products .tuf-digital-card h3 a{color:inherit}.tuf-b2-products .tuf-digital-card__meta{color:var(--tuf-link-accent);flex-wrap:wrap;justify-content:space-between;gap:4px 10px;margin:3px 0 4px;font-size:9px;display:flex}.tuf-b2-products .tuf-digital-card__meta span:last-child{color:var(--tuf-muted)}.tuf-b2-products .tuf-digital-card__copy>p:last-child{color:var(--tuf-muted);margin:0;font-size:10px;line-height:1.45}.tuf-b2-products .tuf-digital-section__empty{border:1px solid var(--tuf-line);color:var(--tuf-muted);text-align:center;background:var(--tuf-paper);margin:0;padding:26px;font-size:12px}.tuf-b2-products .tuf-digital-products :focus-visible{outline:2px solid var(--tuf-focus);outline-offset:2px}@media (width<=1000px){.tuf-b2-products .tuf-digital-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tuf-b2-products .tuf-digital-categories{grid-template-columns:none;grid-auto-columns:minmax(170px,auto);grid-auto-flow:column;overflow-x:auto}}@media (width<=820px){.tuf-b2-products .tuf-digital-products__banners{grid-template-columns:1fr}}@media (width<=600px){.tuf-b2-products .tuf-digital-products{width:min(calc(100% - 28px), var(--tuf-content-width));padding-bottom:38px}.tuf-b2-products .tuf-digital-products__intro{padding:22px 5px 18px}.tuf-b2-products .tuf-digital-products__intro h1{font-size:clamp(42px,13vw,54px)}.tuf-b2-products .tuf-digital-products__intro p{font-size:13px}.tuf-b2-products .tuf-digital-banner{min-height:260px}.tuf-b2-products .tuf-digital-banner__copy{max-width:72%;padding:26px 0 26px 24px}.tuf-b2-products .tuf-digital-banner>img{opacity:.68;width:92%;right:-50px}.tuf-b2-products .tuf-digital-categories{grid-auto-columns:minmax(155px,auto);margin-top:12px}.tuf-b2-products .tuf-digital-categories button{min-height:50px}.tuf-b2-products .tuf-digital-section__header{gap:10px;padding:10px 0;display:grid}.tuf-b2-products .tuf-digital-section__header>a{align-items:center;min-height:40px;display:inline-flex}.tuf-b2-products .tuf-digital-grid{grid-template-columns:1fr}.tuf-b2-products .tuf-digital-card__media,.tuf-b2-products .tuf-digital-card__media img{height:124px}.tuf-b2-products .tuf-digital-card__media{min-height:124px}.tuf-b2-products .tuf-digital-card__copy{padding:11px 13px 15px}.tuf-b2-products .tuf-digital-card h3{font-size:15px}.tuf-b2-products .tuf-digital-card__copy>p:last-child{font-size:11px}}
/* TUF_DIGITAL_PRODUCTS_FREE_BANNER_FINAL_V1
   Approved full-image Free Library collection banner.
   The original semantic copy remains in the DOM for accessibility/SEO,
   but the approved banner artwork is the visible desktop presentation. */
.tuf-b2-products .tuf-digital-banner--free{
  aspect-ratio:1698 / 696;
}
.tuf-b2-products .tuf-digital-banner--free .tuf-digital-banner__copy{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  margin:-1px!important;
  padding:0!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  clip-path:inset(50%)!important;
  white-space:nowrap!important;
  max-width:none!important;
}
.tuf-b2-products .tuf-digital-banner--free:after{
  display:none;
}
.tuf-b2-products .tuf-digital-banner--free>img{
  z-index:0;
  width:100%;
  height:100%;
  top:0;
  right:0;
  opacity:1;
  object-fit:cover;
  object-position:center;
}
@media (width<=600px){
  .tuf-b2-products .tuf-digital-banner--free{
    aspect-ratio:auto;
    min-height:260px;
  }
  .tuf-b2-products .tuf-digital-banner--free>img{
    width:100%;
    right:0;
    opacity:1;
    object-position:left center;
  }
}
/* TUF_DIGITAL_PRODUCTS_PREMIUM_BANNER_FINAL_V2_GEOMETRY_MATCH
   Approved full-image Premium Collection banner. */
.tuf-b2-products .tuf-digital-banner--premium{
  aspect-ratio:1698 / 696;
}
.tuf-b2-products .tuf-digital-banner--premium .tuf-digital-banner__copy{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  margin:-1px!important;
  padding:0!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  clip-path:inset(50%)!important;
  white-space:nowrap!important;
  max-width:none!important;
}
.tuf-b2-products .tuf-digital-banner--premium:after{
  display:none;
}
.tuf-b2-products .tuf-digital-banner--premium>img{
  z-index:0;
  width:100%;
  height:100%;
  top:0;
  right:0;
  opacity:1;
  object-fit:cover;
  object-position:center;
}
@media (width<=600px){
  .tuf-b2-products .tuf-digital-banner--premium{
    aspect-ratio:auto;
    min-height:260px;
  }
  .tuf-b2-products .tuf-digital-banner--premium>img{
    width:100%;
    right:0;
    opacity:1;
    object-position:center;
  }
}
