/* Opt-in public-home presentation. Phone rules and commerce stay unchanged. */
.home-rail-controls, .home-rail-arrow { display: none; }

@media (min-width: 821px) {
  .public-body--home {
    --desktop-home-tone: 252, 231, 226;
    --home-width: 1320px;
    --home-gutter: 40px;
    color: #172033;
    background: #f6f7fa;
  }
  .public-body--home .public-topbar { background: #172033; }
  .public-body--home .public-header {
    background: rgb(var(--desktop-home-tone));
    border-bottom: 1px solid #1720330a;
    box-shadow: none;
  }
  .public-body--home .public-header__main { min-height: 100px; gap: 28px; }
  .public-body--home .public-header .portal-brand__logo { width: 74px; height: 74px; }
  .public-body--home .public-header-search {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto 50px;
    height: 56px;
    border: 1px solid #c6c5cc;
    border-radius: 18px;
    background: white;
    box-shadow: 0 6px 20px #17203306;
  }
  .public-body--home .public-header-search input { padding-left: 20px; font-size: 16px; }
  .public-body--home .public-header-search > button[type=submit] {
    margin: 5px 0;
    padding: 0 19px;
    border-radius: 12px;
    color: white;
    background: #b5121b;
  }
  .public-body--home .public-header-search .mobile-photo-trigger {
    display: grid;
    place-items: center;
    margin: 5px;
    padding: 0;
    min-width: 40px;
    border: 0;
    border-radius: 12px;
    color: #172033;
    background: transparent;
  }
  .public-body--home .public-header-search .mobile-photo-trigger:hover { background: #fff1f0; }
  .public-body--home .public-nav { background: transparent; border-top-color: #ffffff80; }
  .public-body--home .public-nav > div { min-height: 51px; gap: 5px; padding: 4px 0 8px; }
  .public-body--home .public-nav a { border: 0; border-radius: 12px; padding: 10px 15px; }
  .public-body--home .public-nav a:hover,
  .public-body--home .public-nav a.is-active { color: #9c1720; background: #ffffffc9; }
  .public-body--home .public-nav a.public-nav__quote { margin-block: 0; color: white; background: #b5121b; }
  .public-body--home .public-client-dock { display: none; }
  .public-body--home #main-content { display: flex; flex-direction: column; }
  .public-body--home .commerce-hero,
  .public-body--home .material-section,
  .public-body--home .product-section { display: none; }

  .public-body--home .mobile-discovery,
  .public-body--home .mobile-shopping,
  .public-body--home .mobile-price-section { display: block; min-width: 0; }
  .public-body--home .mobile-discovery {
    order: -3;
    padding: 35px 0 28px;
    background: linear-gradient(180deg, #ffffff00, #ffffff70), rgb(var(--desktop-home-tone));
  }
  .public-body--home .mobile-discovery__intro,
  :is(.public-body--home, .public-related) .mobile-shopping__heading,
  .public-body--home .mobile-discovery__foot,
  .public-body--home .mobile-price-subcategories {
    box-sizing: border-box;
    width: min(calc(100% - var(--home-gutter) * 2), var(--home-width));
    margin-inline: auto;
  }
  .public-body--home .mobile-discovery__intro,
  :is(.public-body--home, .public-related) .mobile-shopping__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 0;
    margin-bottom: 22px;
    text-align: left;
  }
  .public-body--home .mobile-discovery__intro h1 {
    margin: 0;
    color: #172033;
    font-size: clamp(36px, 3.7vw, 54px);
    font-weight: 850;
    letter-spacing: -.045em;
    line-height: 1.08;
  }
  :is(.public-body--home, .public-related) .mobile-shopping__heading h2 {
    margin: 0;
    color: #172033;
    font-size: clamp(29px, 2.8vw, 39px);
    font-weight: 850;
    line-height: 1.1;
    letter-spacing: -.04em;
  }
  .public-body--home .mobile-application-track,
  .public-body--home .mobile-technical-track,
  :is(.public-body--home, .public-related) .mobile-priced-track {
    box-sizing: border-box;
    display: flex;
    align-items: stretch;
    gap: 20px;
    width: min(calc(100% - var(--home-gutter) * 2), var(--home-width));
    margin-inline: auto;
    padding: 3px 2px 15px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 2px;
    scrollbar-width: none;
    scroll-margin-top: 180px;
  }
  .public-body--home .mobile-application-track::-webkit-scrollbar,
  .public-body--home .mobile-technical-track::-webkit-scrollbar,
  :is(.public-body--home, .public-related) .mobile-priced-track::-webkit-scrollbar { display: none; }
  .public-body--home .home-rail-stage {
    position: relative;
    width: min(calc(100% - var(--home-gutter) * 2), var(--home-width));
    margin-inline: auto;
  }
  .public-body--home .home-rail-stage > :is(.mobile-application-track, .mobile-technical-track, .mobile-priced-track) {
    width: 100%;
    margin-inline: 0;
  }
  .public-body--home .mobile-application-tile,
  .public-body--home .mobile-technical-group {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    flex: 0 0 calc((100% - 40px) / 3);
    min-width: 0;
    max-width: none;
    padding: 24px;
    border: 1px solid #ffffff80;
    border-radius: 26px;
    color: #232536;
    background: #f4c6be;
    scroll-snap-align: start;
    text-decoration: none;
  }
  .public-body--home [data-theme=amber].mobile-application-tile,
  .public-body--home [data-theme=amber].mobile-technical-group { background: #ffdc8f; }
  .public-body--home [data-theme=blue].mobile-application-tile,
  .public-body--home [data-theme=blue].mobile-technical-group { background: #b7d5f5; }
  .public-body--home [data-theme=mint].mobile-application-tile,
  .public-body--home [data-theme=mint].mobile-technical-group { background: #b5decb; }
  .public-body--home [data-theme=lilac].mobile-application-tile,
  .public-body--home [data-theme=lilac].mobile-technical-group { background: #d3c0ed; }
  .public-body--home [data-theme=peach].mobile-application-tile,
  .public-body--home [data-theme=peach].mobile-technical-group { background: #f4c5a6; }
  .public-body--home .mobile-application-tile { min-height: 476px; }
  .public-body--home .mobile-application-tile:hover { box-shadow: 0 10px 22px #1720330c; }
  .public-body--home .mobile-application-tile h2 {
    min-height: 2.05em;
    margin: 0 0 12px;
    font-size: clamp(30px, 3.05vw, 43px);
    font-weight: 850;
    line-height: 1.02;
    letter-spacing: -.045em;
    white-space: pre-line;
    color: #232536;
  }
  .public-body--home .mobile-application-tile p { min-height: 2.8em; margin: 0 0 16px; font-size: 14px; line-height: 1.4; }
  .public-body--home .mobile-application-tile__photo {
    position: relative;
    flex: 1;
    min-height: 214px;
    overflow: hidden;
    border-radius: 17px;
    background: #ffffff70;
  }
  .public-body--home .mobile-application-tile__photo img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
  .public-body--home .mobile-application-tile > strong,
  .public-body--home .mobile-shopping__all { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; padding-top: 14px; color: #232536; font-size: 15px; font-weight: 800; text-decoration: none; }
  .public-body--home .mobile-application-tile > strong > span,
  .public-body--home .mobile-shopping__all > span { display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid #17203330; border-radius: 50%; }
  .public-body--home .mobile-application-tile--custom > .eyebrow { display: none; }
  .public-body--home .mobile-discovery__foot { display: none; }
  .public-body--home .mobile-shopping { order: -2; padding: 28px 0 34px; background: linear-gradient(180deg, #ffffff70, #ffffffaa), rgb(var(--desktop-home-tone)); }
  .public-body--home .mobile-technical-group { background: #d3c0ed; padding: 22px; }
  .public-body--home .mobile-technical-group__heading h2 { margin: 0 0 18px; color: #232536; font-size: 32px; font-weight: 850; line-height: 1.08; letter-spacing: -.04em; text-transform: lowercase; }
  .public-body--home .mobile-technical-group__heading h2::first-letter { text-transform: uppercase; }
  .public-body--home .mobile-technical-group__products { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; margin-bottom: 10px; }
  :is(.public-body--home, .public-related) .mobile-mini-product.public-product-card { position: relative; display: flex; flex-direction: column; min-width: 0; margin: 0; padding: 0; border: 0; border-radius: 16px; color: #172033; background: white; box-shadow: none; transform: none; opacity: 1; }
  :is(.public-body--home, .public-related) .mobile-mini-product::before,
  :is(.public-body--home, .public-related) .mobile-mini-product::after { display: none; }
  :is(.public-body--home, .public-related) .mobile-mini-product > a { display: flex; flex-direction: column; flex: 1; min-width: 0; padding: 12px; color: inherit; text-decoration: none; }
  :is(.public-body--home, .public-related) .mobile-mini-product__image { box-sizing: border-box; position: relative; display: grid; place-items: center; flex: none; height: 126px; min-height: 0; overflow: hidden; background: white; }
  :is(.public-body--home, .public-related) .mobile-mini-product__image img { position: absolute; inset: 8px; display: block; width: calc(100% - 16px); height: calc(100% - 16px); min-width: 0; min-height: 0; max-width: 100%; max-height: 100%; object-fit: contain; object-position: center; transform: none; }
  :is(.public-body--home, .public-related) .mobile-mini-product__image > span { color: #aeb6c3; font-size: 24px; }
  :is(.public-body--home, .public-related) .mobile-mini-product h3 { display: block; height: 1.4em; min-height: 1.4em; overflow: hidden; margin: 10px 0 3px; color: #172033; font-size: 13px; font-weight: 750; line-height: 1.4; white-space: nowrap; text-overflow: ellipsis; overflow-wrap: normal; }
  :is(.public-body--home, .public-related) .mobile-mini-product > [data-card-purchase-status] { margin: 0; padding: 0 12px 10px; font-size: 12px; }
  .public-body--home .mobile-shopping__all { margin-top: auto; }
  .public-body--home .mobile-price-section { order: -1; padding: 26px 0 44px; background: linear-gradient(180deg, #ffffffaa, #f6f7fa), rgb(var(--desktop-home-tone)); }
  .public-body--home .mobile-price-section .mobile-shopping__heading { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 8px 26px; }
  .public-body--home .mobile-price-section .mobile-shopping__heading h2 { grid-column: 1; }
  .public-body--home .mobile-price-section .mobile-shopping__heading p { grid-column: 1; grid-row: 2; margin: 0; font-size: 13px; color: #657085; }
  .public-body--home .mobile-price-section .mobile-shopping__heading > a { grid-column: 2; grid-row: 1; min-height: 44px; display: flex; align-items: center; color: #a1131d; font-size: 14px; font-weight: 800; text-decoration: none; }
  .public-body--home .mobile-price-section .home-rail-controls { grid-column: 3; grid-row: 1; }
  .public-body--home .mobile-price-subcategories { display: flex; flex-wrap: nowrap; gap: 8px; padding: 0 0 6px; margin-bottom: 16px; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; }
  .public-body--home .mobile-price-subcategories > a { display: flex; flex: 0 0 auto; align-items: center; min-height: 44px; padding: 10px 12px; border: 1px solid #d7dce4; border-radius: 13px; color: #5c3340; background: #ffffffdf; font-size: 12px; font-weight: 750; white-space: nowrap; text-decoration: none; }
  .public-body--home .mobile-price-subcategories > [aria-pressed=true] { color: white; border-color: #b5121b; background: #b5121b; }
  .public-body--home .mobile-price-subcategories > [aria-pressed=true]::before { content: '✓'; margin-right: 7px; }
  :is(.public-body--home, .public-related) .mobile-mini-product--price.public-product-card { flex: 0 0 calc((100% - 80px) / 5); max-width: none; border: 1px solid #e0e4eb; border-radius: 20px; scroll-snap-align: start; }
  :is(.public-body--home, .public-related) .mobile-mini-product--price > a { padding: 17px; }
  :is(.public-body--home, .public-related) .mobile-mini-product--price .mobile-mini-product__image { height: 155px; }
  :is(.public-body--home, .public-related) .mobile-mini-product--price h3 { min-height: 1.4em; margin-bottom: 12px; font-size: 14px; }
  :is(.public-body--home, .public-related) .mobile-mini-product__price-label { min-height: 18px; margin-top: auto; color: #6c7483; font-size: 12px; line-height: 18px; }
  :is(.public-body--home, .public-related) .mobile-mini-product__price { display: block; margin-top: 5px; color: #b5121b; font-size: 25px; font-weight: 850; line-height: 1.3; white-space: nowrap; }

  .public-body--home .home-rail-controls { display: flex; flex: none; align-items: center; gap: 9px; }
  .public-body--home .home-rail-controls__count { min-width: 45px; margin-right: 5px; color: #667085; font-size: 12px; font-variant-numeric: tabular-nums; text-align: right; }
  .public-body--home .home-rail-arrow {
    position: absolute;
    top: 50%;
    z-index: 3;
    display: grid;
    place-items: center;
    width: 60px;
    height: 116px;
    padding: 0;
    border: 1px solid #dce0e6;
    border-radius: 18px;
    color: #172033;
    background: white;
    box-shadow: 0 5px 22px #17203326;
    transform: translateY(-50%);
    cursor: pointer;
  }
  .public-body--home .home-rail-arrow--previous { left: -18px; }
  .public-body--home .home-rail-arrow--next { right: -18px; }
  .public-body--home .home-rail-arrow:hover:enabled { border-color: #b5121b; color: #b5121b; background: #fff9f8; }
  .public-body--home .home-rail-arrow:disabled { visibility: hidden; pointer-events: none; }
  .public-body--home .home-rail-arrow svg { width: 30px; height: 38px; fill: none; stroke: currentColor; stroke-width: 2.1; stroke-linecap: round; stroke-linejoin: round; }
  .public-body--home :is(.mobile-discovery, .mobile-shopping, .mobile-price-section) :focus-visible { outline: 3px solid #b5121b; outline-offset: 3px; }
  .public-body--home .service-showcase { padding: 48px 0; background: #f6f7fa; }
  .public-body--home .service-showcase__heading { text-align: left; }
  .public-body--home .service-slide { border-radius: 24px; }
}

@media (min-width: 821px) and (max-width: 1100px) {
  .public-body--home { --home-gutter: 25px; }
  .public-body--home .public-header__main { grid-template-columns: minmax(0, 1fr) auto; gap: 12px 20px; padding-block: 12px; }
  .public-body--home .public-header-search { grid-column: 1 / -1; grid-row: 2; }
  .public-body--home .public-header__tools { grid-column: 2; grid-row: 1; }
  .public-body--home .public-nav > div { gap: 2px; flex-wrap: wrap; }
  .public-body--home .public-nav a { padding-inline: 10px; }
  .public-body--home .mobile-application-tile,
  .public-body--home .mobile-technical-group { flex-basis: calc((100% - 20px) / 2); }
  :is(.public-body--home, .public-related) .mobile-mini-product--price.public-product-card { flex-basis: calc((100% - 40px) / 3); }
}
