/* Split from site-bundle-group-a.css — core — Speed Phase 4 */
/* ===== enterprise-navigation-v2.css ===== */
/* ==========================================================
   Sprint 366C.27 — Enterprise Marketplace Mega Menu V2
   One canonical desktop dropdown layer. Mobile untouched.
   Solid colors only — no gradients.
   ========================================================== */

@media (min-width:1025px){
  /* Anchor every marketplace dropdown to one predictable shell. */
  .premium-header .nav-row{
    position:relative !important;
    z-index:1200 !important;
    overflow:visible !important;
  }
  .premium-header .nav-inner{
    position:relative !important;
    overflow:visible !important;
  }
  .premium-header .tf-market-nav{
    position:static !important;
  }
  .premium-header .tf-market-nav-item{
    position:static !important;
    isolation:auto !important;
  }

  /* Active trigger: compact and clear. */
  .premium-header .tf-market-nav-item>button{
    position:relative !important;
    min-height:42px !important;
    padding:0 15px !important;
    border:0 !important;
    border-radius:8px !important;
    background:transparent !important;
    color:#172a46 !important;
    font-size:13px !important;
    font-weight:800 !important;
  }
  .premium-header .tf-market-nav-item>button:hover,
  .premium-header .tf-market-nav-item>button[aria-expanded="true"]{
    background:#f3f7fc !important;
    color:#0759ca !important;
  }
  .premium-header .tf-market-nav-item>button[aria-expanded="true"]::after{
    content:"" !important;
    position:absolute !important;
    right:15px !important;
    bottom:2px !important;
    left:15px !important;
    height:2px !important;
    border-radius:999px !important;
    background:#f4b72f !important;
  }
  .premium-header .tf-chevron{
    margin-left:5px !important;
    transition:transform .16s ease !important;
  }
  .premium-header .tf-market-nav-item>button[aria-expanded="true"] .tf-chevron{
    transform:rotate(180deg) !important;
  }

  /* Full enterprise panel, constrained to the header shell. */
  .premium-header .tf-nav-dropdown{
    position:absolute !important;
    z-index:1320 !important;
    top:calc(100% + 1px) !important;
    right:0 !important;
    left:0 !important;
    display:grid !important;
    grid-template-columns:240px minmax(0,1fr) 260px !important;
    gap:18px !important;
    width:100% !important;
    max-width:none !important;
    min-height:0 !important;
    margin:0 !important;
    padding:18px !important;
    transform:none !important;
    border:1px solid #dce5ef !important;
    border-top:2px solid #f4b72f !important;
    border-radius:0 0 16px 16px !important;
    background:#ffffff !important;
    box-shadow:0 18px 42px rgba(7,27,70,.14) !important;
    animation:tfEnterpriseMenuIn .14s ease-out both !important;
    overflow:hidden !important;
  }
  .premium-header .tf-nav-dropdown[hidden]{
    display:none !important;
  }

  /* Left explanation block. */
  .premium-header .tf-nav-panel-intro{
    display:flex !important;
    min-width:0 !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    justify-content:center !important;
    padding:6px 17px 6px 2px !important;
    border-right:1px solid #e6ecf3 !important;
    background:#fff !important;
  }
  .premium-header .tf-nav-eyebrow{
    margin:0 0 10px !important;
    color:#0759ca !important;
    font-size:9px !important;
    font-weight:900 !important;
    letter-spacing:.13em !important;
    text-transform:uppercase !important;
  }
  .premium-header .tf-nav-panel-intro h3{
    max-width:210px !important;
    margin:0 !important;
    color:#0b1f3a !important;
    font-size:22px !important;
    line-height:1.08 !important;
    letter-spacing:-.025em !important;
  }
  .premium-header .tf-nav-panel-intro p{
    max-width:215px !important;
    margin:9px 0 15px !important;
    color:#61758c !important;
    font-size:10px !important;
    line-height:1.48 !important;
  }
  .premium-header .tf-nav-panel-cta{
    display:inline-flex !important;
    min-height:36px !important;
    align-items:center !important;
    border:1px solid #cbd9e8 !important;
    border-radius:9px !important;
    background:#fff !important;
    padding:0 11px !important;
    color:#0759ca !important;
    font-size:9px !important;
    font-weight:900 !important;
    text-decoration:none !important;
  }
  .premium-header .tf-nav-panel-cta:hover{
    border-color:#f4b72f !important;
    background:#fff8e6 !important;
  }

  /* Six actions: consistent 2 × 3 compact grid. */
  .premium-header .tf-nav-panel-grid{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    align-content:center !important;
    gap:8px !important;
    min-width:0 !important;
  }
  .premium-header .tf-nav-panel-grid>a{
    display:grid !important;
    grid-template-columns:38px minmax(0,1fr) 16px !important;
    min-width:0 !important;
    min-height:62px !important;
    align-items:center !important;
    gap:9px !important;
    margin:0 !important;
    border:1px solid #dfe7f0 !important;
    border-radius:11px !important;
    background:#fff !important;
    padding:8px 9px !important;
    color:#0b1f3a !important;
    text-decoration:none !important;
    transition:border-color .15s ease,background .15s ease,transform .15s ease !important;
  }
  .premium-header .tf-nav-panel-grid>a::after{
    content:"›" !important;
    justify-self:end !important;
    color:#7790aa !important;
    font-size:17px !important;
    font-weight:500 !important;
  }
  .premium-header .tf-nav-panel-grid>a:hover{
    transform:translateY(-1px) !important;
    border-color:#adc7e8 !important;
    background:#f8fbff !important;
  }
  .premium-header .tf-nav-menu-icon{
    display:grid !important;
    width:38px !important;
    min-width:38px !important;
    height:38px !important;
    min-height:38px !important;
    place-items:center !important;
    border-radius:10px !important;
    background:#eef5fd !important;
    color:#0759ca !important;
  }
  .premium-header .tf-nav-menu-icon svg{
    width:17px !important;
    height:17px !important;
  }
  .premium-header .tf-nav-panel-grid>a>span:last-of-type{
    display:flex !important;
    min-width:0 !important;
    flex-direction:column !important;
    gap:2px !important;
  }
  .premium-header .tf-nav-panel-grid strong{
    overflow:hidden !important;
    color:#102344 !important;
    font-size:11px !important;
    line-height:1.2 !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
  }
  .premium-header .tf-nav-panel-grid small{
    overflow:hidden !important;
    color:#75879a !important;
    font-size:8px !important;
    line-height:1.25 !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
  }

  /* Semantic icon accents without redesigning card geometry. */
  .premium-header .tf-nav-dropdown--secure .tf-nav-menu-icon{
    background:#eaf7ef !important;
    color:#16834a !important;
  }
  .premium-header .tf-nav-dropdown--rfq .tf-nav-menu-icon,
  .premium-header .tf-nav-dropdown--new .tf-nav-menu-icon{
    background:#fff3d1 !important;
    color:#8b6200 !important;
  }

  /* Right contextual CTA — solid premium blocks, no gradients. */
  .premium-header .tf-nav-panel-promo{
    display:flex !important;
    min-width:0 !important;
    min-height:210px !important;
    flex-direction:column !important;
    justify-content:flex-end !important;
    border-radius:14px !important;
    background:#0b2f66 !important;
    padding:18px !important;
    color:#fff !important;
  }
  .premium-header .tf-nav-panel-promo>span{
    margin-bottom:auto !important;
    color:#f4b72f !important;
    font-size:8px !important;
    font-weight:900 !important;
    letter-spacing:.12em !important;
  }
  .premium-header .tf-nav-panel-promo strong{
    margin:12px 0 7px !important;
    color:#fff !important;
    font-size:17px !important;
    line-height:1.15 !important;
  }
  .premium-header .tf-nav-panel-promo p{
    margin:0 0 13px !important;
    color:#d4e0ed !important;
    font-size:9px !important;
    line-height:1.45 !important;
  }
  .premium-header .tf-nav-panel-promo a{
    display:inline-flex !important;
    width:max-content !important;
    min-height:35px !important;
    align-items:center !important;
    border-radius:8px !important;
    background:#f4b72f !important;
    padding:0 11px !important;
    color:#0b1f3a !important;
    font-size:9px !important;
    font-weight:900 !important;
    text-decoration:none !important;
  }
  .premium-header .tf-nav-panel-promo--green{
    background:#087052 !important;
  }
  .premium-header .tf-nav-panel-promo--dark{
    background:#172943 !important;
  }
  .premium-header .tf-nav-panel-promo--yellow{
    background:#f4b72f !important;
    color:#0b1f3a !important;
  }
  .premium-header .tf-nav-panel-promo--yellow>span,
  .premium-header .tf-nav-panel-promo--yellow strong{
    color:#0b1f3a !important;
  }
  .premium-header .tf-nav-panel-promo--yellow p{
    color:#594718 !important;
  }
  .premium-header .tf-nav-panel-promo--yellow a{
    background:#0b1f3a !important;
    color:#fff !important;
  }
  .premium-header .tf-nav-panel-promo--blue{
    background:#0759ca !important;
  }

  /* All Categories gets the same shell/radius/visual density. */
  .premium-header .tf-category-mega{
    position:absolute !important;
    z-index:1325 !important;
    top:100% !important;
    right:0 !important;
    left:0 !important;
    width:100% !important;
    padding:0 !important;
  }
  .premium-header .tf-category-mega[hidden]{
    display:none !important;
  }
  .premium-header .tf-category-mega-backdrop{
    position:fixed !important;
    inset:0 !important;
    z-index:-1 !important;
    border:0 !important;
    background:rgba(7,27,70,.10) !important;
    backdrop-filter:none !important;
  }
  .premium-header .tf-category-mega-dialog{
    position:relative !important;
    display:grid !important;
    grid-template-columns:220px minmax(0,1fr) !important;
    width:100% !important;
    max-width:none !important;
    height:min(390px,calc(100vh - 180px)) !important;
    margin:0 !important;
    overflow:hidden !important;
    border:1px solid #dce5ef !important;
    border-top:2px solid #f4b72f !important;
    border-radius:0 0 16px 16px !important;
    background:#fff !important;
    box-shadow:0 18px 42px rgba(7,27,70,.14) !important;
  }
  .premium-header .tf-category-mega-mobile-head{
    display:none !important;
  }
  .premium-header .tf-category-mega-sidebar{
    overflow:hidden !important;
    border-right:1px solid #e4ebf3 !important;
    background:#f8fafc !important;
    padding:11px !important;
  }
  .premium-header .tf-category-mega-search{
    min-height:39px !important;
    border:1px solid #dce5ef !important;
    border-radius:9px !important;
    background:#fff !important;
  }
  .premium-header .tf-category-mega-list{
    gap:3px !important;
    margin-top:7px !important;
  }
  .premium-header .tf-category-mega-parent{
    min-height:39px !important;
    border-radius:8px !important;
    padding:5px 7px !important;
    font-size:10px !important;
  }
  .premium-header .tf-category-mega-parent.is-active{
    background:#eaf3ff !important;
    color:#0759ca !important;
  }
  .premium-header .tf-category-mega-parent-media{
    width:29px !important;
    height:29px !important;
    border-radius:8px !important;
  }
  .premium-header .tf-category-mega-content{
    overflow:auto !important;
    padding:15px 17px 18px !important;
  }
  .premium-header .tf-category-mega-title{
    padding-bottom:10px !important;
  }
  .premium-header .tf-category-mega-title h2{
    font-size:20px !important;
  }
  .premium-header .tf-category-mega-title p{
    font-size:9px !important;
  }
  .premium-header .tf-category-mega-grid{
    display:grid !important;
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    gap:7px !important;
    margin-top:9px !important;
  }
  .premium-header .tf-category-mega-card{
    min-height:55px !important;
    border:1px solid #dfe7f0 !important;
    border-radius:10px !important;
    background:#fff !important;
    padding:7px !important;
  }
  .premium-header .tf-category-mega-card:hover{
    border-color:#adc7e8 !important;
    background:#f8fbff !important;
  }

  @keyframes tfEnterpriseMenuIn{
    from{opacity:0;transform:translateY(-4px)}
    to{opacity:1;transform:translateY(0)}
  }
}

@media (min-width:1025px) and (max-width:1280px){
  .premium-header .tf-nav-dropdown{
    grid-template-columns:205px minmax(0,1fr) 220px !important;
    gap:12px !important;
    padding:14px !important;
  }
  .premium-header .tf-nav-panel-intro h3{font-size:18px !important}
  .premium-header .tf-nav-panel-grid>a{min-height:58px !important}
  .premium-header .tf-nav-panel-promo{min-height:195px !important;padding:15px !important}
  .premium-header .tf-category-mega-dialog{
    grid-template-columns:205px minmax(0,1fr) !important;
  }
  .premium-header .tf-category-mega-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
}


/* ===== mobile-bottom-space-ownership-1.0.276.css ===== */
/* TradesFolks Sprint 875 — global mobile bottom spacing ownership
   Keep only the clearance actually required by the fixed marketplace dock.
   Package detail pages opt out completely because their dock is server-side disabled. */
@media(max-width:760px){
  body{
    padding-bottom:calc(74px + env(safe-area-inset-bottom))!important;
  }

  body.tf-hide-mobile-market-dock{
    padding-bottom:env(safe-area-inset-bottom)!important;
  }

  /* Remove stacked/duplicate footer clearance that creates blank space. */
  body:not(.supplier-store-body) .tf-premium-footer{
    margin-bottom:0!important;
  }

  body:not(.supplier-store-body) main:last-of-type,
  body:not(.supplier-store-body) #main-content:last-of-type{
    margin-bottom:0;
  }
}

@media(max-width:430px){
  body{
    padding-bottom:calc(72px + env(safe-area-inset-bottom))!important;
  }
  body.tf-hide-mobile-market-dock{
    padding-bottom:env(safe-area-inset-bottom)!important;
  }
}

/* Do not interfere with screens that own a dedicated commerce action bar. */
@media(max-width:760px){
  body.supplier-store-body{
    padding-bottom:calc(82px + env(safe-area-inset-bottom))!important;
  }
  body:has([data-product-detail]){
    padding-bottom:calc(84px + env(safe-area-inset-bottom))!important;
  }
}


/* ===== frontend-fullwidth.css ===== */
/* TradesFolks 18.3.70 — balanced full-width public marketplace gutters
   Desktop keeps the premium full-width presentation without content touching
   the viewport edges. Admin/Seller/Employee workspaces remain untouched. */
:root{
  --tf-public-edge-gutter:24px;
}

/* Canonical public layout shell. Loaded last so historical max-width rules
   cannot pull the marketplace back into a narrow centered container. */
body .shell{
  width:calc(100% - (var(--tf-public-edge-gutter) * 2))!important;
  max-width:none!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Homepage V3 wrappers which are not standard `.shell` containers. */
body:has(.tf-home-v3) .tf-home-v3-hero,
body:has(.tf-home-v3) .tf-home-v3-trust{
  width:calc(100% - (var(--tf-public-edge-gutter) * 2))!important;
  max-width:none!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Feature sections that historically carry their own high-specificity widths. */
body:has(.tf-home-v3) :where(
  .country-network-premium,
  .curated-b2b-market,
  .easy-sourcing-section,
  .home-category-showcases,
  .festival-marketplace,
  .marketplace-products,
  .section-soft,
  .new-arrivals,
  .rfq-market-board,
  .trade-services,
  .industry-collections,
  .marketplace-insights,
  .home-reels,
  .home-content-hub
) > .shell{
  width:calc(100% - (var(--tf-public-edge-gutter) * 2))!important;
  max-width:none!important;
}

/* Responsive horizontal rhythm:
   large desktop 28px | desktop 24px | tablet 16px | mobile 12px */
@media (min-width:1600px){
  :root{--tf-public-edge-gutter:28px}
}
@media (min-width:768px) and (max-width:1100px){
  :root{--tf-public-edge-gutter:16px}
}
@media (max-width:767px){
  :root{--tf-public-edge-gutter:12px}
}

/* ==========================================================
   TradesFolks 18.3.71 — Homepage Source-by-Country responsive repair
   Keeps the country artwork at its native ~2:1 presentation and prevents
   the full-width layout from turning the market rail into oversized or
   overflowing cards. Scoped only to the homepage country section.
   ========================================================== */
body.tf-homepage:has(.tf-home-v3) .country-network-premium{
  overflow:hidden;
}
body.tf-homepage:has(.tf-home-v3) .country-network-premium > .shell{
  min-width:0;
}
body.tf-homepage:has(.tf-home-v3) .country-network-premium .country-network-head{
  min-width:0;
}
body.tf-homepage:has(.tf-home-v3) .country-network-premium .country-network-head > div{
  min-width:0;
}
body.tf-homepage:has(.tf-home-v3) .country-network-premium .country-network-head > a{
  max-width:100%;
  white-space:nowrap;
}

/* Desktop/tablet: true responsive grid, never an overflowing horizontal rail. */
body.tf-homepage:has(.tf-home-v3) .country-network-premium .country-market-rail{
  display:grid!important;
  grid-auto-flow:row!important;
  grid-auto-columns:auto!important;
  grid-template-rows:none!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:14px!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow:visible!important;
  padding:2px 0 0!important;
  margin:0!important;
  scroll-snap-type:none!important;
}
body.tf-homepage:has(.tf-home-v3) .country-network-premium .country-market-card{
  min-width:0!important;
  width:100%!important;
  max-width:100%!important;
  border-radius:14px!important;
}

/* Market images were generated around 2:1. Preserve that ratio instead of
   stretching them into shallow banners when the page becomes full width. */
body.tf-homepage:has(.tf-home-v3) .country-network-premium .country-market-visual,
body.tf-homepage:has(.tf-home-v3) .country-network-premium .country-market-visual.has-market-image{
  position:relative!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  aspect-ratio:2 / 1!important;
  padding:0!important;
  overflow:hidden!important;
  background:#eef2f7!important;
}
body.tf-homepage:has(.tf-home-v3) .country-network-premium .country-market-artwork{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:cover!important;
  object-position:center center!important;
  display:block!important;
  background:#eef2f7!important;
  z-index:1!important;
}
body.tf-homepage:has(.tf-home-v3) .country-network-premium .country-market-visual.has-market-image::before,
body.tf-homepage:has(.tf-home-v3) .country-network-premium .country-market-visual.has-market-image::after{
  display:none!important;
}
body.tf-homepage:has(.tf-home-v3) .country-network-premium .country-flag.country-flag-image{
  position:absolute!important;
  top:12px!important;
  left:12px!important;
  width:46px!important;
  height:30px!important;
  min-width:46px!important;
  min-height:30px!important;
  padding:0!important;
  border-radius:5px!important;
  overflow:hidden!important;
  z-index:4!important;
}
body.tf-homepage:has(.tf-home-v3) .country-network-premium .country-flag.country-flag-image img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  display:block!important;
}
body.tf-homepage:has(.tf-home-v3) .country-network-premium .country-market-mark{
  top:12px!important;
  right:12px!important;
  z-index:4!important;
}
body.tf-homepage:has(.tf-home-v3) .country-network-premium .country-market-body{
  min-width:0;
  padding:11px 12px 12px!important;
}
body.tf-homepage:has(.tf-home-v3) .country-network-premium .country-market-body > strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* Compact laptops / smaller desktops. */
@media (max-width:1449px) and (min-width:1100px){
  body.tf-homepage:has(.tf-home-v3) .country-network-premium .country-market-rail{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }
}

/* Tablets and narrow laptops. */
@media (max-width:1099px) and (min-width:768px){
  body.tf-homepage:has(.tf-home-v3) .country-network-premium .country-market-rail{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:12px!important;
  }
}

/* Mobile: app-like horizontal discovery rail, sized from the actual viewport. */
@media (max-width:767px){
  body.tf-homepage:has(.tf-home-v3) .country-network-premium .country-network-head{
    align-items:flex-end!important;
    gap:10px!important;
  }
  body.tf-homepage:has(.tf-home-v3) .country-network-premium .country-network-head > a{
    min-height:34px!important;
    padding:0 9px!important;
    font-size:8px!important;
  }
  body.tf-homepage:has(.tf-home-v3) .country-network-premium .country-market-rail{
    display:grid!important;
    grid-auto-flow:column!important;
    grid-auto-columns:min(78vw,290px)!important;
    grid-template-columns:none!important;
    grid-template-rows:1fr!important;
    gap:10px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    overscroll-behavior-inline:contain;
    -webkit-overflow-scrolling:touch;
    scroll-snap-type:x mandatory!important;
    scrollbar-width:none;
    padding:2px 0 8px!important;
  }
  body.tf-homepage:has(.tf-home-v3) .country-network-premium .country-market-rail::-webkit-scrollbar{
    display:none;
  }
  body.tf-homepage:has(.tf-home-v3) .country-network-premium .country-market-card{
    scroll-snap-align:start!important;
  }
  body.tf-homepage:has(.tf-home-v3) .country-network-premium .country-flag.country-flag-image{
    top:9px!important;
    left:9px!important;
    width:40px!important;
    height:26px!important;
    min-width:40px!important;
    min-height:26px!important;
  }
  body.tf-homepage:has(.tf-home-v3) .country-network-premium .country-market-mark{
    top:9px!important;
    right:9px!important;
  }
}

@media (max-width:420px){
  body.tf-homepage:has(.tf-home-v3) .country-network-premium .country-market-rail{
    grid-auto-columns:82vw!important;
  }
}

/* ==========================================================
   Sprint 18.3.72 — Curated for Business / Amazon-style 4-card row
   Desktop: exactly four primary cards in one row.
   Internal products: 2 x 2 visual tiles, image-first hierarchy.
   ========================================================== */
body.tf-homepage:has(.tf-home-v3) .curated-b2b-market{
  overflow:hidden!important;
  background:#f3f6f9!important;
}
body.tf-homepage:has(.tf-home-v3) .curated-b2b-market>.shell{
  width:var(--tf-page-width,calc(100% - 48px))!important;
  max-width:none!important;
  margin-inline:auto!important;
  padding-inline:0!important;
}
body.tf-homepage:has(.tf-home-v3) .curated-b2b-heading{
  margin:0 0 16px!important;
}
body.tf-homepage:has(.tf-home-v3) .curated-b2b-rail{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  grid-auto-flow:row!important;
  gap:16px!important;
  width:100%!important;
  overflow:visible!important;
  align-items:stretch!important;
}
body.tf-homepage:has(.tf-home-v3) .curated-b2b-card{
  display:flex!important;
  flex-direction:column!important;
  min-width:0!important;
  height:100%!important;
  padding:18px!important;
  border:1px solid #e0e6ed!important;
  border-radius:4px!important;
  background:#fff!important;
  box-shadow:none!important;
  overflow:hidden!important;
}
body.tf-homepage:has(.tf-home-v3) .curated-b2b-card>h3{
  min-height:48px!important;
  margin:0 0 14px!important;
  color:#0f1f36!important;
  font-size:clamp(18px,1.15vw,24px)!important;
  font-weight:800!important;
  line-height:1.18!important;
  letter-spacing:-.025em!important;
}
body.tf-homepage:has(.tf-home-v3) .curated-b2b-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  grid-template-rows:repeat(2,auto)!important;
  gap:16px 14px!important;
  width:100%!important;
  min-width:0!important;
  flex:1 1 auto!important;
  overflow:visible!important;
}
body.tf-homepage:has(.tf-home-v3) .curated-b2b-item{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  justify-content:flex-start!important;
  min-width:0!important;
  min-height:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#101828!important;
  text-decoration:none!important;
  overflow:visible!important;
}
body.tf-homepage:has(.tf-home-v3) .curated-b2b-item:hover{
  border:0!important;
  background:transparent!important;
}
body.tf-homepage:has(.tf-home-v3) .curated-b2b-image{
  position:relative!important;
  display:block!important;
  width:100%!important;
  height:auto!important;
  aspect-ratio:1.42 / 1!important;
  margin:0 0 7px!important;
  overflow:hidden!important;
  border-radius:2px!important;
  background:#f3f5f7!important;
}
body.tf-homepage:has(.tf-home-v3) .curated-b2b-image img{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  display:block!important;
  object-fit:cover!important;
  object-position:center!important;
  transition:transform .22s ease!important;
}
body.tf-homepage:has(.tf-home-v3) .curated-b2b-item:hover .curated-b2b-image img{
  transform:scale(1.025)!important;
}
body.tf-homepage:has(.tf-home-v3) .curated-b2b-image.is-missing,
body.tf-homepage:has(.tf-home-v3) .curated-b2b-image:has(.curated-b2b-placeholder){
  background:#f0f3f7!important;
}
body.tf-homepage:has(.tf-home-v3) .curated-b2b-item>strong{
  display:-webkit-box!important;
  min-height:34px!important;
  margin:0!important;
  overflow:hidden!important;
  color:#17233a!important;
  font-size:13px!important;
  font-weight:600!important;
  line-height:1.3!important;
  text-overflow:ellipsis!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:2!important;
}
body.tf-homepage:has(.tf-home-v3) .curated-b2b-item>small{
  display:none!important;
}
body.tf-homepage:has(.tf-home-v3) .curated-b2b-cta{
  display:inline-flex!important;
  align-items:center!important;
  gap:6px!important;
  align-self:flex-start!important;
  margin:20px 0 0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:#0b63ce!important;
  font-size:13px!important;
  font-weight:700!important;
  line-height:1.2!important;
  text-decoration:none!important;
}
body.tf-homepage:has(.tf-home-v3) .curated-b2b-cta:hover{
  text-decoration:underline!important;
}

/* Narrow desktop: preserve four cards, reduce typography and spacing. */
@media (max-width:1399px) and (min-width:1100px){
  body.tf-homepage:has(.tf-home-v3) .curated-b2b-rail{
    gap:12px!important;
  }
  body.tf-homepage:has(.tf-home-v3) .curated-b2b-card{
    padding:14px!important;
  }
  body.tf-homepage:has(.tf-home-v3) .curated-b2b-card>h3{
    min-height:42px!important;
    font-size:17px!important;
  }
  body.tf-homepage:has(.tf-home-v3) .curated-b2b-grid{
    gap:13px 10px!important;
  }
  body.tf-homepage:has(.tf-home-v3) .curated-b2b-item>strong{
    font-size:12px!important;
  }
}

/* Tablet: two cards per row, each card still keeps its internal 2x2 layout. */
@media (max-width:1099px) and (min-width:700px){
  body.tf-homepage:has(.tf-home-v3) .curated-b2b-rail{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:14px!important;
  }
  body.tf-homepage:has(.tf-home-v3) .curated-b2b-card>h3{
    min-height:auto!important;
  }
}

/* Mobile: one-card-at-a-time app-like rail. */
@media (max-width:699px){
  body.tf-homepage:has(.tf-home-v3) .curated-b2b-market>.shell{
    width:calc(100% - 24px)!important;
  }
  body.tf-homepage:has(.tf-home-v3) .curated-b2b-heading{
    margin-bottom:12px!important;
  }
  body.tf-homepage:has(.tf-home-v3) .curated-b2b-rail{
    display:grid!important;
    grid-auto-flow:column!important;
    grid-auto-columns:min(88vw,360px)!important;
    grid-template-columns:none!important;
    gap:10px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    padding:1px 0 8px!important;
    scroll-snap-type:x mandatory!important;
    overscroll-behavior-inline:contain!important;
    -webkit-overflow-scrolling:touch!important;
    scrollbar-width:none!important;
  }
  body.tf-homepage:has(.tf-home-v3) .curated-b2b-rail::-webkit-scrollbar{
    display:none!important;
  }
  body.tf-homepage:has(.tf-home-v3) .curated-b2b-card{
    scroll-snap-align:start!important;
    padding:14px!important;
  }
  body.tf-homepage:has(.tf-home-v3) .curated-b2b-card>h3{
    min-height:auto!important;
    margin-bottom:12px!important;
    font-size:18px!important;
  }
  body.tf-homepage:has(.tf-home-v3) .curated-b2b-grid{
    gap:13px 10px!important;
  }
  body.tf-homepage:has(.tf-home-v3) .curated-b2b-item>strong{
    min-height:32px!important;
    font-size:12px!important;
  }
  body.tf-homepage:has(.tf-home-v3) .curated-b2b-cta{
    margin-top:16px!important;
  }
}


/* ===== ai-chat-responsive-1.0.202.css ===== */

/* Sprint 778 — Mobile dock RFQ removal + AI Assistant responsive UI */

/* After RFQ moves to unified floating tools, the bottom navigation becomes one full-width pill. */
@media(max-width:767px){
  .tf-mobile-market-dock-row{
    grid-template-columns:minmax(0,1fr)!important;
    gap:0!important;
  }
  .tf-mobile-market-pill{
    width:100%!important;
    max-width:none!important;
  }
  .tf-mobile-rfq-side{
    display:none!important;
  }
}

/* AI Assistant: compact enterprise panel, independent of the removed standalone launcher. */
.ai-chat-widget{
  --tf-ai-navy:#082b67;
  --tf-ai-blue:#0d67d9;
  --tf-ai-border:#d9e4f1;
  --tf-ai-muted:#667a96;
}
.ai-chat-panel{
  display:flex!important;
  flex-direction:column!important;
  width:min(430px,calc(100vw - 28px))!important;
  height:min(690px,calc(100dvh - 36px))!important;
  max-height:calc(100dvh - 36px)!important;
  overflow:hidden!important;
  border:1px solid #d7e2ee!important;
  border-radius:22px!important;
  background:#fff!important;
  box-shadow:0 28px 75px rgba(4,26,63,.30)!important;
}
.ai-chat-panel[hidden]{
  display:none!important;
}
.ai-chat-panel>header{
  flex:0 0 auto!important;
  min-height:84px!important;
  padding:16px 18px!important;
  display:grid!important;
  grid-template-columns:54px minmax(0,1fr) 42px!important;
  gap:12px!important;
  align-items:center!important;
  background:#073170!important;
  background:linear-gradient(110deg,#07275c,#0b62d4)!important;
}
.ai-chat-panel>header .ai-chat-avatar{
  width:54px!important;
  height:54px!important;
  border-radius:15px!important;
  display:grid!important;
  place-items:center!important;
  background:#fff!important;
  color:#0c63d5!important;
  font-size:22px!important;
  font-weight:900!important;
}
.ai-chat-panel>header strong{
  display:block!important;
  color:#fff!important;
  font-size:17px!important;
  line-height:1.15!important;
}
.ai-chat-panel>header small{
  margin-top:4px!important;
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  color:#e6effc!important;
  font-size:11px!important;
}
.ai-chat-panel>header small i{
  width:8px!important;
  height:8px!important;
  border-radius:50%!important;
  background:#27c66b!important;
}
.ai-chat-panel>header [data-ai-chat-close]{
  width:40px!important;
  height:40px!important;
  border:0!important;
  border-radius:12px!important;
  background:rgba(255,255,255,.13)!important;
  color:#fff!important;
  font-size:25px!important;
  cursor:pointer!important;
}
.ai-chat-lead{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
  padding:20px 20px 14px!important;
  scrollbar-width:thin!important;
}
.ai-chat-lead-eyebrow{
  display:block!important;
  margin:0 0 6px!important;
  color:#0b68d5!important;
  font-size:10px!important;
  font-weight:900!important;
  letter-spacing:.13em!important;
}
.ai-chat-lead h3{
  margin:0!important;
  color:#0a2348!important;
  font-size:26px!important;
  line-height:1.08!important;
  letter-spacing:-.035em!important;
}
.ai-chat-lead>p{
  margin:8px 0 16px!important;
  max-width:370px!important;
  color:#687b96!important;
  font-size:12px!important;
  line-height:1.55!important;
}
.ai-chat-lead form{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:12px!important;
  padding:14px!important;
  border:1px solid var(--tf-ai-border)!important;
  border-radius:16px!important;
  background:#fbfdff!important;
}
.ai-chat-lead form label{
  display:grid!important;
  gap:6px!important;
  min-width:0!important;
  margin:0!important;
}
.ai-chat-lead form label:nth-of-type(3){
  grid-column:1/-1!important;
}
.ai-chat-lead form label>span{
  color:#17365f!important;
  font-size:10px!important;
  font-weight:850!important;
}
.ai-chat-lead input,
.ai-chat-lead textarea{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
  border:1px solid #cfdaea!important;
  border-radius:12px!important;
  background:#fff!important;
  color:#102b50!important;
  font:inherit!important;
  font-size:12px!important;
  outline:0!important;
  box-shadow:none!important;
}
.ai-chat-lead input{
  height:44px!important;
  padding:0 12px!important;
}
.ai-chat-lead textarea{
  min-height:92px!important;
  max-height:150px!important;
  padding:11px 12px!important;
  resize:vertical!important;
}
.ai-chat-lead input:focus,
.ai-chat-lead textarea:focus{
  border-color:#1770df!important;
  box-shadow:0 0 0 3px rgba(23,112,223,.10)!important;
}
.ai-chat-lead [data-ai-chat-lead-error]{
  grid-column:1/-1!important;
  min-height:0!important;
  margin:0!important;
  color:#b42318!important;
  font-size:10px!important;
}
.ai-chat-lead form>button[type="submit"]{
  grid-column:1/-1!important;
  justify-self:start!important;
  width:auto!important;
  min-width:118px!important;
  min-height:38px!important;
  padding:0 14px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  margin:2px 0 0!important;
  border:0!important;
  border-radius:10px!important;
  background:#0b66d8!important;
  color:#fff!important;
  font-size:11px!important;
  line-height:1!important;
  font-weight:850!important;
  white-space:nowrap!important;
  cursor:pointer!important;
}
.ai-chat-privacy{
  display:flex!important;
  align-items:flex-start!important;
  gap:7px!important;
  margin:10px 3px 0!important;
  color:#75869d!important;
  font-size:9px!important;
  line-height:1.4!important;
}
.ai-chat-conversation{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow:hidden!important;
}
.ai-chat-messages{
  min-height:0!important;
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
}
.ai-chat-panel>footer{
  flex:0 0 auto!important;
  padding:9px 14px!important;
  border-top:1px solid #e5ecf4!important;
  background:#fff!important;
  color:#75869d!important;
  text-align:center!important;
  font-size:9px!important;
  line-height:1.35!important;
}

/* Mobile: sit safely above the bottom nav/floating arrow and never exceed the viewport. */
@media(max-width:767px){
  .ai-chat-widget{
    position:fixed!important;
    right:10px!important;
    bottom:calc(86px + env(safe-area-inset-bottom))!important;
    left:auto!important;
    z-index:1400!important;
  }
  .ai-chat-panel{
    position:fixed!important;
    left:14px!important;
    right:14px!important;
    bottom:calc(82px + env(safe-area-inset-bottom))!important;
    top:auto!important;
    width:auto!important;
    height:min(540px,calc(100dvh - 122px - env(safe-area-inset-bottom)))!important;
    max-height:calc(100dvh - 122px - env(safe-area-inset-bottom))!important;
    border-radius:18px!important;
  }
  .ai-chat-panel>header{
    min-height:62px!important;
    grid-template-columns:40px minmax(0,1fr) 34px!important;
    padding:10px 12px!important;
    gap:9px!important;
  }
  .ai-chat-panel>header .ai-chat-avatar{
    width:40px!important;
    height:40px!important;
    border-radius:11px!important;
    font-size:16px!important;
  }
  .ai-chat-panel>header strong{font-size:14px!important}
  .ai-chat-panel>header small{font-size:8px!important}
  .ai-chat-panel>header [data-ai-chat-close]{
    width:32px!important;height:32px!important;border-radius:9px!important;font-size:18px!important
  }
  .ai-chat-lead{
    padding:12px 12px 8px!important;
  }
  .ai-chat-lead h3{
    font-size:19px!important;
  }
  .ai-chat-lead>p{
    margin:6px 0 10px!important;
    font-size:10px!important;
    line-height:1.42!important;
  }
  .ai-chat-lead form{
    grid-template-columns:1fr!important;
    gap:8px!important;
    padding:10px!important;
    border-radius:14px!important;
  }
  .ai-chat-lead form label:nth-of-type(3),
  .ai-chat-lead [data-ai-chat-lead-error],
  .ai-chat-lead form>button[type="submit"]{
    grid-column:1!important;
  }
  .ai-chat-lead input{
    height:38px!important;
    font-size:11px!important;
  }
  .ai-chat-lead textarea{
    min-height:66px!important;
    max-height:92px!important;
    font-size:11px!important;
  }
  .ai-chat-lead form>button[type="submit"]{
    min-width:104px!important;
    min-height:34px!important;
    padding:0 12px!important;
    font-size:10px!important;
    border-radius:9px!important;
  }
  .ai-chat-privacy{
    margin-top:7px!important;
    font-size:8px!important;
  }
  .ai-chat-panel>footer{
    padding:6px 9px!important;
    font-size:7.5px!important;
  }
}

@media(max-width:380px){
  .ai-chat-panel{
    left:10px!important;
    right:10px!important;
    bottom:calc(76px + env(safe-area-inset-bottom))!important;
    height:min(500px,calc(100dvh - 108px - env(safe-area-inset-bottom)))!important;
    max-height:calc(100dvh - 108px - env(safe-area-inset-bottom))!important;
  }
  .ai-chat-lead h3{font-size:18px!important}
}

.ai-chat-lead form>button[type="submit"] svg{
  width:15px!important;
  height:15px!important;
  flex:0 0 15px!important;
}


/* Sprint 780 — final compact AI modal proportions */
.ai-chat-panel{
  width:min(390px,calc(100vw - 32px))!important;
  height:min(560px,calc(100dvh - 52px))!important;
  max-height:calc(100dvh - 52px)!important;
  border-radius:18px!important;
}
.ai-chat-panel>header{
  min-height:68px!important;
  padding:12px 14px!important;
  grid-template-columns:44px minmax(0,1fr) 36px!important;
  gap:10px!important;
}
.ai-chat-panel>header .ai-chat-avatar{
  width:44px!important;
  height:44px!important;
  border-radius:12px!important;
  font-size:17px!important;
}
.ai-chat-panel>header strong{font-size:15px!important}
.ai-chat-panel>header small{font-size:9px!important}
.ai-chat-panel>header [data-ai-chat-close]{
  width:34px!important;
  height:34px!important;
  border-radius:9px!important;
  font-size:19px!important;
}
.ai-chat-lead{
  padding:14px 14px 10px!important;
}
.ai-chat-lead-eyebrow{
  margin-bottom:4px!important;
  font-size:8px!important;
}
.ai-chat-lead h3{
  font-size:21px!important;
}
.ai-chat-lead>p{
  margin:6px 0 11px!important;
  font-size:10px!important;
  line-height:1.42!important;
}
.ai-chat-lead form{
  gap:9px!important;
  padding:11px!important;
  border-radius:14px!important;
}
.ai-chat-lead form label>span{
  font-size:9px!important;
}
.ai-chat-lead input{
  height:38px!important;
  font-size:11px!important;
}
.ai-chat-lead textarea{
  min-height:72px!important;
  max-height:100px!important;
  font-size:11px!important;
}
.ai-chat-lead form>button[type="submit"]{
  min-width:106px!important;
  min-height:34px!important;
  padding:0 12px!important;
  border-radius:9px!important;
  font-size:10px!important;
}
.ai-chat-privacy{
  margin-top:7px!important;
  font-size:8px!important;
}
.ai-chat-panel>footer{
  padding:6px 9px!important;
  font-size:7.5px!important;
}

@media(max-width:767px){
  .ai-chat-panel{
    left:16px!important;
    right:16px!important;
    bottom:calc(78px + env(safe-area-inset-bottom))!important;
    width:auto!important;
    height:min(500px,calc(100dvh - 118px - env(safe-area-inset-bottom)))!important;
    max-height:calc(100dvh - 118px - env(safe-area-inset-bottom))!important;
    border-radius:16px!important;
  }
  .ai-chat-panel>header{
    min-height:56px!important;
    grid-template-columns:36px minmax(0,1fr) 30px!important;
    gap:8px!important;
    padding:9px 10px!important;
  }
  .ai-chat-panel>header .ai-chat-avatar{
    width:36px!important;
    height:36px!important;
    border-radius:10px!important;
    font-size:14px!important;
  }
  .ai-chat-panel>header strong{font-size:13px!important}
  .ai-chat-panel>header small{font-size:7.5px!important}
  .ai-chat-panel>header [data-ai-chat-close]{
    width:30px!important;
    height:30px!important;
    border-radius:8px!important;
    font-size:17px!important;
  }
  .ai-chat-lead{
    padding:10px 10px 7px!important;
  }
  .ai-chat-lead-eyebrow{
    font-size:7px!important;
    margin-bottom:3px!important;
  }
  .ai-chat-lead h3{
    font-size:17px!important;
  }
  .ai-chat-lead>p{
    margin:5px 0 8px!important;
    font-size:9px!important;
    line-height:1.38!important;
  }
  .ai-chat-lead form{
    gap:7px!important;
    padding:9px!important;
    border-radius:12px!important;
  }
  .ai-chat-lead form label>span{
    font-size:8px!important;
  }
  .ai-chat-lead input{
    height:35px!important;
    padding:0 10px!important;
    font-size:10px!important;
    border-radius:10px!important;
  }
  .ai-chat-lead textarea{
    min-height:60px!important;
    max-height:82px!important;
    padding:9px 10px!important;
    font-size:10px!important;
    border-radius:10px!important;
  }
  .ai-chat-lead form>button[type="submit"]{
    min-width:96px!important;
    min-height:32px!important;
    padding:0 11px!important;
    font-size:9px!important;
    border-radius:8px!important;
  }
  .ai-chat-privacy{
    margin-top:6px!important;
    font-size:7.5px!important;
  }
  .ai-chat-panel>footer{
    padding:5px 8px!important;
    font-size:7px!important;
  }
}

@media(max-width:390px){
  .ai-chat-panel{
    left:10px!important;
    right:10px!important;
    bottom:calc(72px + env(safe-area-inset-bottom))!important;
    height:min(470px,calc(100dvh - 102px - env(safe-area-inset-bottom)))!important;
    max-height:calc(100dvh - 102px - env(safe-area-inset-bottom))!important;
  }
}


/* Sprint 781 — remove desktop AI Assistant dead vertical space */
@media(min-width:768px){
  .ai-chat-panel{
    height:auto!important;
    min-height:0!important;
    max-height:min(640px,calc(100dvh - 52px))!important;
  }

  .ai-chat-lead{
    flex:0 1 auto!important;
    min-height:0!important;
    max-height:calc(100dvh - 150px)!important;
    overflow-y:auto!important;
  }

  .ai-chat-panel>footer{
    margin-top:0!important;
  }

  .ai-chat-privacy{
    margin-bottom:0!important;
  }

  .ai-chat-conversation{
    flex:0 1 auto!important;
    min-height:280px!important;
    max-height:500px!important;
  }
}


/* Sprint 782 — remove standalone AI launcher from all public pages.
   The AI runtime/panel remains available for controlled launchers/integrations. */
.ai-chat-widget > .ai-chat-launcher{
  display:none!important;
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
  width:0!important;
  height:0!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
}

/* Avoid reserving spacing for the hidden launcher. */
.ai-chat-widget{
  pointer-events:none;
}
.ai-chat-widget .ai-chat-panel{
  pointer-events:auto;
}

