/* Extracted from site_page/test.html homepage design - preserve exact visual for storefront home per approved plan. */

/* Make sure the homepage design controls the layout fully (inside <main> from base.html) */
main {
  margin: 0;
  padding: 0;
  width: 100%;
}

.bd-home-main {
      width: 100%;
      margin: 0 0 64px;
      font-family: var(--font-sans);
      color: #1f2f3d;
      background:
        radial-gradient(circle at 8% 4%, rgba(0, 104, 183, 0.10), transparent 30%),
        radial-gradient(circle at 92% 16%, rgba(0, 104, 183, 0.12), transparent 32%),
        linear-gradient(180deg, #f4f9ff 0%, #ffffff 42%, #f4f9ff 100%);
    }

    .bd-home-main *,
    .bd-home-main *::before,
    .bd-home-main *::after {
      box-sizing: border-box;
    }

    .bd-home-main a {
      text-decoration: none;
    }

    .bd-home-main__wrap {
      max-width: var(--storefront-content-max, 1248px);
      margin: 0 auto;
      padding: 0 0 24px;
    }

    .bd-home-main__shell {
      position: relative;
      overflow: hidden;
      background:
        radial-gradient(circle at 0% 0%, rgba(0, 104, 183, 0.12), transparent 28%),
        radial-gradient(circle at 100% 10%, rgba(0, 47, 102, 0.11), transparent 30%),
        radial-gradient(circle at 10% 100%, rgba(0, 104, 183, 0.08), transparent 28%),
        #ffffff;
      border: 1px solid #dceaf7;
      border-radius: 30px;
      box-shadow: 0 28px 70px rgba(0, 47, 102, 0.14);
    }

    .bd-home-main__shell::before {
      content: "";
      position: absolute;
      inset: -80px;
      pointer-events: none;
      background:
        radial-gradient(circle at 10% 20%, rgba(0, 104, 183, 0.16), transparent 24%),
        radial-gradient(circle at 90% 25%, rgba(0, 104, 183, 0.12), transparent 26%);
      filter: blur(18px);
      opacity: 0.9;
    }

    .bd-home-main__inner {
      position: relative;
      z-index: 2;
    }

    .bd-home-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 18px;
      width: calc(100% - 56px);
      margin: 22px auto 0;
      padding: 18px;
      background: rgba(255, 255, 255, 0.86);
      border: 1px solid rgba(220, 234, 247, 0.92);
      border-radius: 22px;
      box-shadow: 0 16px 36px rgba(0, 47, 102, 0.08);
      backdrop-filter: blur(12px);
    }

    .bd-home-logo {
      display: flex;
      align-items: center;
      gap: 12px;
      min-width: 210px;
    }

    .bd-home-logo__mark {
      display: grid;
      place-items: center;
      width: 46px;
      height: 46px;
      flex: 0 0 46px;
      color: #ffffff;
      background: linear-gradient(135deg, #0068b7 0%, #002f66 100%);
      border-radius: 16px;
      box-shadow: 0 12px 24px rgba(0, 104, 183, 0.24);
    }

    .bd-home-logo__mark .material-symbols-outlined {
      font-size: var(--text-3xl);
    }

    .bd-home-logo__text {
      display: flex;
      flex-direction: column;
      gap: 2px;
    }

    .bd-home-logo__title {
      color: #002f66;
      font-size: var(--text-xl);
      font-weight: var(--fw-title);
      letter-spacing: 0.02em;
      line-height: 1.1;
    }

    .bd-home-logo__sub {
      color: #667085;
      font-size: var(--text-caption);
      line-height: 1.2;
    }

    .bd-home-nav {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 7px;
      flex: 1;
    }

    .bd-home-nav__link {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 10px 11px;
      border-radius: 999px;
      color: #1f2f3d;
      font-size: var(--text-body);
      font-weight: 700;
      line-height: 1;
      transition: color 0.2s ease, background 0.2s ease, transform 0.2s ease;
    }

    .bd-home-nav__link:hover {
      color: #0068b7;
      background: #eef7ff;
      transform: translateY(-1px);
    }

    .bd-home-nav__link--active {
      color: #0068b7;
      background: #eef7ff;
    }

    .bd-home-header__actions {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      gap: 9px;
    }

    .bd-home-icon-btn {
      display: grid;
      place-items: center;
      width: 42px;
      height: 42px;
      color: #004f91;
      background: #f4f9ff;
      border: 1px solid #dceaf7;
      border-radius: 14px;
      transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
    }

    .bd-home-icon-btn:hover {
      background: #ffffff;
      transform: translateY(-2px);
      box-shadow: 0 12px 22px rgba(0, 47, 102, 0.10);
    }

    .bd-home-icon-btn .material-symbols-outlined {
      font-size: var(--text-2xl);
    }

    .bd-home-hero {
      display: grid;
      grid-template-columns: minmax(0, 1.02fr) minmax(360px, 0.98fr);
      gap: 34px;
      align-items: center;
      width: calc(100% - 56px);
      margin: 24px auto 0;
      min-height: 520px;
      padding: 48px;
      overflow: hidden;
      position: relative;
      border-radius: 28px;
      background:
        linear-gradient(135deg, rgba(0, 104, 183, 0.96) 0%, rgba(0, 47, 102, 0.95) 100%),
        radial-gradient(circle at 20% 20%, rgba(255, 255, 255, 0.22), transparent 35%);
      box-shadow: 0 26px 60px rgba(0, 47, 102, 0.22);
    }

    .bd-home-hero::before {
      content: "";
      position: absolute;
      inset: 0;
      opacity: 0.18;
      background-image:
        linear-gradient(rgba(255, 255, 255, 0.22) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.22) 1px, transparent 1px);
      background-size: 46px 46px;
      mask-image: linear-gradient(90deg, #000 0%, rgba(0, 0, 0, 0.78) 45%, transparent 100%);
    }

    .bd-home-hero::after {
      content: "";
      position: absolute;
      width: 420px;
      height: 420px;
      right: -140px;
      top: -130px;
      border-radius: 50%;
      background: rgba(255, 255, 255, 0.12);
      filter: blur(2px);
    }

    .bd-home-hero__content {
      position: relative;
      z-index: 2;
    }

    .bd-home-badge {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      margin: 0 0 18px;
      padding: 8px 13px;
      border: 1px solid rgba(255, 255, 255, 0.25);
      border-radius: 999px;
      color: #ffffff;
      background: rgba(255, 255, 255, 0.13);
      font-size: var(--text-caption);
      font-weight: 800;
      line-height: 1;
      text-transform: uppercase;
      letter-spacing: 0.08em;
    }

    .bd-home-badge .material-symbols-outlined {
      font-size: var(--text-xl);
    }

    .bd-home-hero h1 {
      margin: 0;
      color: #ffffff;
      font-size: clamp(36px, 4.5vw, 48px);
      line-height: 1.04;
      font-weight: var(--fw-display);
      letter-spacing: -0.035em;
      text-transform: uppercase;
    }

    .bd-home-hero p {
      max-width: 590px;
      margin: 20px 0 0;
      color: #eef7ff;
      font-size: var(--text-xl);
      line-height: 1.65;
    }

    .bd-home-hero__buttons {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      margin-top: 30px;
    }

    .bd-home-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 9px;
      min-height: 48px;
      padding: 13px 20px;
      border-radius: 999px;
      font-size: var(--text-body);
      font-weight: 800;
      line-height: 1;
      transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, color 0.2s ease;
    }

    .bd-home-btn .material-symbols-outlined {
      font-size: var(--text-2xl);
    }

    .bd-home-btn--light {
      color: #004f91;
      background: #ffffff;
      box-shadow: 0 15px 30px rgba(0, 0, 0, 0.16);
    }

    .bd-home-btn--light:hover {
      transform: translateY(-2px);
      box-shadow: 0 20px 38px rgba(0, 0, 0, 0.22);
    }

    .bd-home-btn--ghost {
      color: #ffffff;
      background: rgba(255, 255, 255, 0.10);
      border: 1px solid rgba(255, 255, 255, 0.26);
    }

    .bd-home-btn--ghost:hover {
      background: rgba(255, 255, 255, 0.16);
      transform: translateY(-2px);
    }

    .bd-home-hero__stats {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 10px;
      margin-top: 34px;
      max-width: 620px;
    }

    .bd-home-stat {
      min-height: 86px;
      padding: 14px;
      border-radius: 18px;
      background: rgba(255, 255, 255, 0.12);
      border: 1px solid rgba(255, 255, 255, 0.18);
    }

    .bd-home-stat strong {
      display: block;
      color: #ffffff;
      font-size: var(--text-2xl);
      line-height: 1.1;
      font-weight: 800;
    }

    .bd-home-stat span {
      display: block;
      margin-top: 5px;
      color: rgba(238, 247, 255, 0.86);
      font-size: var(--text-caption);
      line-height: 1.35;
    }

    .bd-home-hero__visual {
      position: relative;
      z-index: 2;
      min-height: 430px;
    }

    .bd-home-door-scene {
      position: absolute;
      inset: 0;
    }

    .bd-home-door-card {
      position: absolute;
      overflow: hidden;
      border-radius: 28px;
      background: rgba(255, 255, 255, 0.16);
      border: 1px solid rgba(255, 255, 255, 0.24);
      box-shadow: 0 28px 50px rgba(0, 0, 0, 0.20);
      backdrop-filter: blur(10px);
    }

    .bd-home-door-card--main {
      left: 56px;
      top: 12px;
      width: 220px;
      height: 380px;
      background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.10), transparent 24%),
        linear-gradient(135deg, #263b50 0%, #101a25 100%);
    }

    .bd-home-door-card--side {
      right: 12px;
      bottom: 12px;
      width: 210px;
      height: 330px;
      background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.12), transparent 24%),
        linear-gradient(135deg, #f4f9ff 0%, #c9d9e9 100%);
      transform: rotate(2deg);
    }

    .bd-home-door-card--small {
      left: 0;
      bottom: 30px;
      width: 158px;
      height: 250px;
      background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.12), transparent 24%),
        linear-gradient(135deg, #8b5736 0%, #3f2115 100%);
      transform: rotate(-5deg);
    }

    .bd-home-door-card::before {
      content: "";
      position: absolute;
      inset: 20px;
      border: 2px solid rgba(255, 255, 255, 0.22);
      border-radius: 20px;
    }

    .bd-home-door-card::after {
      content: "";
      position: absolute;
      top: 50%;
      right: 24px;
      width: 12px;
      height: 12px;
      border-radius: 50%;
      background: rgba(255, 255, 255, 0.75);
      box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.12);
    }

    .bd-home-floating {
      position: absolute;
      z-index: 3;
      display: flex;
      align-items: center;
      gap: 10px;
      max-width: 230px;
      padding: 13px 14px;
      color: #1f2f3d;
      background: #ffffff;
      border-radius: 18px;
      box-shadow: 0 18px 38px rgba(0, 47, 102, 0.18);
    }

    .bd-home-floating--one {
      top: 36px;
      right: 0;
    }

    .bd-home-floating--two {
      left: 22px;
      bottom: 0;
    }

    .bd-home-floating .material-symbols-outlined {
      display: grid;
      place-items: center;
      width: 38px;
      height: 38px;
      flex: 0 0 38px;
      color: #ffffff;
      background: linear-gradient(135deg, #0068b7 0%, #002f66 100%);
      border-radius: 13px;
      font-size: var(--text-2xl);
    }

    .bd-home-floating strong {
      display: block;
      color: #002f66;
      font-size: var(--text-small);
      line-height: 1.25;
      font-weight: 800;
    }

    .bd-home-floating span {
      display: block;
      margin-top: 2px;
      color: #667085;
      font-size: var(--text-caption);
      line-height: 1.35;
    }

    .bd-home-section {
      width: calc(100% - 56px);
      margin: 56px auto 0;
    }

    .bd-home-main__inner > .bd-home-section:first-of-type {
      margin-top: 40px;
    }

    .bd-home-section__head {
      display: flex;
      align-items: flex-end;
      justify-content: space-between;
      gap: 22px;
      margin-bottom: 24px;
    }

    .bd-home-section__label {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      margin-bottom: 10px;
      color: #0068b7;
      font-size: var(--text-caption);
      line-height: 1;
      font-weight: 800;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }

    .bd-home-section__label .material-symbols-outlined {
      font-size: var(--text-xl);
    }

    .bd-home-section h2 {
      margin: 0;
      color: #002f66;
      font-size: clamp(22px, 3vw, 28px);
      line-height: 1.14;
      font-weight: var(--fw-title);
      letter-spacing: -0.025em;
    }

    .bd-home-section__text {
      max-width: 520px;
      margin: 0;
      color: #667085;
      font-size: var(--text-md);
      line-height: 1.6;
    }

    .bd-home-categories {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 18px;
    }

    .bd-home-cat {
      position: relative;
      overflow: hidden;
      min-height: 250px;
      padding: 22px;
      border: 1px solid #dceaf7;
      border-radius: 24px;
      background:
        radial-gradient(circle at 100% 0%, rgba(0, 104, 183, 0.10), transparent 38%),
        linear-gradient(135deg, #ffffff 0%, #f4f9ff 100%);
      box-shadow: 0 14px 34px rgba(0, 47, 102, 0.08);
      transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
    }

    .bd-home-cat:hover {
      transform: translateY(-6px);
      border-color: rgba(0, 104, 183, 0.34);
      box-shadow: 0 24px 46px rgba(0, 47, 102, 0.14);
    }

    .bd-home-cat__icon {
      display: grid;
      place-items: center;
      width: 54px;
      height: 54px;
      margin-bottom: 18px;
      color: #ffffff;
      background: linear-gradient(135deg, #0068b7 0%, #002f66 100%);
      border-radius: 18px;
      box-shadow: 0 14px 26px rgba(0, 104, 183, 0.22);
    }

    .bd-home-cat__icon .material-symbols-outlined {
      font-size: var(--text-3xl);
    }

    .bd-home-cat h3 {
      position: relative;
      z-index: 2;
      margin: 0;
      color: #004f91;
      font-size: clamp(16px, 1.5vw, 18px);
      line-height: 1.22;
      font-weight: var(--fw-title);
    }

    .bd-home-cat p {
      position: relative;
      z-index: 2;
      margin: 12px 0 0;
      color: #344054;
      font-size: var(--text-body);
      line-height: 1.58;
    }

    .bd-home-cat__link {
      position: relative;
      z-index: 2;
      display: inline-flex;
      align-items: center;
      gap: 6px;
      margin-top: 18px;
      color: #0068b7;
      font-size: var(--text-body);
      font-weight: 800;
    }

    .bd-home-cat__link .material-symbols-outlined {
      font-size: var(--text-xl);
    }

    .bd-home-cat__shape {
      position: absolute;
      right: -18px;
      bottom: -32px;
      width: 128px;
      height: 190px;
      border-radius: 24px;
      background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.20), transparent 28%),
        linear-gradient(135deg, rgba(0, 104, 183, 0.18), rgba(0, 47, 102, 0.08));
      transform: rotate(8deg);
    }

    /* Catalog page — bento grid (creative category layout) */
    .bd-catalog-page h1 {
      margin: 0;
      color: #002f66;
      font-size: clamp(28px, 4vw, 36px);
      line-height: 1.14;
      font-weight: var(--fw-display);
      letter-spacing: -0.025em;
    }

    .bd-catalog-bento {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      grid-auto-rows: minmax(200px, auto);
      gap: 18px;
    }

    .bd-catalog-bento__cell {
      display: flex;
      flex-direction: column;
      min-height: 250px;
    }

    .bd-catalog-bento__cell:nth-child(6n + 1) {
      grid-column: span 2;
      grid-row: span 2;
      min-height: 320px;
    }

    .bd-catalog-bento__cell:nth-child(6n + 4) {
      grid-column: span 2;
    }

    .bd-catalog-bento__cell:nth-child(6n + 5) {
      grid-row: span 2;
    }

    .bd-catalog-bento__card-link {
      position: relative;
      display: flex;
      flex: 1;
      flex-direction: column;
      overflow: hidden;
      padding: 22px;
      border: 1px solid #dceaf7;
      border-radius: 24px;
      background:
        radial-gradient(circle at 100% 0%, rgba(0, 104, 183, 0.10), transparent 38%),
        linear-gradient(135deg, #ffffff 0%, #f4f9ff 100%);
      box-shadow: 0 14px 34px rgba(0, 47, 102, 0.08);
      transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
    }

    .bd-catalog-bento__cell:hover .bd-catalog-bento__card-link {
      transform: translateY(-6px);
      border-color: rgba(0, 104, 183, 0.34);
      box-shadow: 0 24px 46px rgba(0, 47, 102, 0.14);
    }

    .bd-catalog-bento__card-link h2 {
      position: relative;
      z-index: 2;
      margin: 0;
      color: #004f91;
      font-size: var(--text-2xl);
      line-height: 1.22;
      font-weight: var(--fw-title);
    }

    .bd-catalog-bento__cell:nth-child(6n + 1) .bd-catalog-bento__card-link h2 {
      font-size: clamp(22px, 3vw, 28px);
    }

    .bd-catalog-bento__children {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-top: 10px;
      padding: 0 4px 4px;
    }

    .bd-catalog-bento__chip {
      display: inline-flex;
      align-items: center;
      padding: 7px 12px;
      border: 1px solid #dceaf7;
      border-radius: 999px;
      color: #004f91;
      font-size: var(--text-small);
      font-weight: 700;
      background: #ffffff;
      transition: color 0.2s ease, background 0.2s ease, border-color 0.2s ease;
    }

    .bd-catalog-bento__chip:hover {
      color: #0068b7;
      border-color: rgba(0, 104, 183, 0.34);
      background: #eef7ff;
    }

    .bd-catalog-empty {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 14px;
      padding: 48px 28px;
      text-align: center;
      border: 1px dashed #dceaf7;
      border-radius: 24px;
      background: linear-gradient(135deg, #ffffff 0%, #f4f9ff 100%);
    }

    .bd-catalog-empty .material-symbols-outlined {
      font-size: var(--text-5xl);
      color: #0068b7;
    }

    .bd-catalog-empty h2 {
      margin: 0;
      color: #002f66;
      font-size: clamp(22px, 3vw, 28px);
      font-weight: var(--fw-title);
    }

    .bd-catalog-empty p {
      max-width: 420px;
      margin: 0;
      color: #667085;
      font-size: var(--text-md);
      line-height: 1.6;
    }

    .bd-home-products {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 16px;
    }

    .bd-home-product {
      position: relative;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      min-height: 360px;
      padding: 14px;
      border: 1px solid #dceaf7;
      border-radius: 22px;
      background: #ffffff;
      box-shadow: 0 13px 30px rgba(0, 47, 102, 0.07);
      transition: transform 0.22s ease, box-shadow 0.22s ease;
    }

    .bd-home-product:hover {
      transform: translateY(-6px);
      box-shadow: 0 22px 42px rgba(0, 47, 102, 0.13);
    }

    .bd-home-product__badge {
      position: absolute;
      z-index: 3;
      top: 18px;
      left: 18px;
      padding: 6px 9px;
      color: #ffffff;
      background: #0068b7;
      border-radius: 999px;
      font-size: var(--text-caption);
      font-weight: 800;
      line-height: 1;
    }

    .bd-home-product__image {
      position: relative;
      display: grid;
      place-items: center;
      height: 185px;
      overflow: hidden;
      border-radius: 18px;
      background:
        radial-gradient(circle at 50% 20%, rgba(0, 104, 183, 0.10), transparent 36%),
        linear-gradient(135deg, #eef7ff 0%, #ffffff 100%);
    }

    .bd-home-product__door {
      width: 72px;
      height: 140px;
      border-radius: 12px;
      background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.20), transparent 25%),
        linear-gradient(135deg, #2c3e50 0%, #101820 100%);
      box-shadow: 0 15px 30px rgba(0, 47, 102, 0.20);
      position: relative;
    }

    .bd-home-product:nth-child(2) .bd-home-product__door {
      background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.18), transparent 25%),
        linear-gradient(135deg, #9a633b 0%, #442313 100%);
    }

    .bd-home-product:nth-child(3) .bd-home-product__door {
      background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.18), transparent 25%),
        linear-gradient(135deg, #eef2f7 0%, #b7c5d5 100%);
    }

    .bd-home-product:nth-child(4) .bd-home-product__door {
      background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.18), transparent 25%),
        linear-gradient(135deg, #0068b7 0%, #002f66 100%);
    }

    .bd-home-product__door::before {
      content: "";
      position: absolute;
      inset: 13px;
      border: 1px solid rgba(255, 255, 255, 0.26);
      border-radius: 8px;
    }

    .bd-home-product__door::after {
      content: "";
      position: absolute;
      top: 50%;
      right: 10px;
      width: 7px;
      height: 7px;
      border-radius: 50%;
      background: rgba(255, 255, 255, 0.75);
    }

    .bd-home-product__body {
      display: flex;
      flex-direction: column;
      flex: 1;
      padding: 15px 4px 2px;
    }

    .bd-home-product__code {
      margin-bottom: 7px;
      color: #98a2b3;
      font-size: var(--text-caption);
      line-height: 1;
      font-weight: 700;
    }

    .bd-home-product h3 {
      margin: 0;
      color: #002f66;
      font-size: clamp(16px, 1.5vw, 18px);
      line-height: 1.32;
      font-weight: var(--fw-title);
    }

    .bd-home-product__props {
      display: grid;
      gap: 6px;
      margin: 12px 0 0;
      color: #667085;
      font-size: var(--text-small);
      line-height: 1.35;
    }

    .bd-home-product__price {
      display: flex;
      align-items: baseline;
      gap: 8px;
      margin-top: auto;
      padding-top: 16px;
    }

    .bd-home-product__price strong {
      color: #0068b7;
      font-size: var(--text-2xl);
      line-height: 1;
      font-weight: 800;
    }

    .bd-home-product__price span {
      color: #98a2b3;
      font-size: var(--text-small);
      text-decoration: line-through;
    }

    .bd-home-product__button {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 7px;
      margin-top: 14px;
      min-height: 42px;
      color: #ffffff;
      background: linear-gradient(135deg, #0068b7 0%, #002f66 100%);
      border-radius: 14px;
      font-size: var(--text-small);
      font-weight: 800;
      transition: transform 0.2s ease, box-shadow 0.2s ease;
    }

    .bd-home-product__button:hover {
      transform: translateY(-2px);
      box-shadow: 0 14px 24px rgba(0, 104, 183, 0.20);
    }

    .bd-home-product__button .material-symbols-outlined {
      font-size: var(--text-xl);
    }

    .bd-home-service {
      display: grid;
      grid-template-columns: minmax(0, 0.95fr) minmax(360px, 1.05fr);
      gap: 28px;
      align-items: stretch;
      padding: 28px;
      border: 1px solid #dceaf7;
      border-radius: 28px;
      background:
        radial-gradient(circle at 0% 0%, rgba(0, 104, 183, 0.10), transparent 30%),
        linear-gradient(135deg, #ffffff 0%, #f4f9ff 100%);
      box-shadow: 0 18px 44px rgba(0, 47, 102, 0.10);
    }

    .bd-home-service__visual {
      position: relative;
      overflow: hidden;
      min-height: 370px;
      border-radius: 24px;
      background:
        linear-gradient(135deg, rgba(0, 104, 183, 0.90), rgba(0, 47, 102, 0.94)),
        radial-gradient(circle at 30% 20%, rgba(255, 255, 255, 0.30), transparent 34%);
    }

    .bd-home-service__visual::before {
      content: "";
      position: absolute;
      left: 42px;
      bottom: 0;
      width: 150px;
      height: 300px;
      border-radius: 22px 22px 0 0;
      background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.15), transparent 28%),
        linear-gradient(135deg, #eef7ff 0%, #afc3d5 100%);
      box-shadow: 0 28px 55px rgba(0, 0, 0, 0.20);
    }

    .bd-home-service__visual::after {
      content: "";
      position: absolute;
      right: 42px;
      bottom: 42px;
      width: 176px;
      height: 176px;
      border-radius: 50%;
      background:
        radial-gradient(circle, rgba(255, 255, 255, 0.95) 0 20%, transparent 21%),
        conic-gradient(from 45deg, rgba(255, 255, 255, 0.30), rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.30));
      opacity: 0.85;
    }

    .bd-home-service__worker {
      position: absolute;
      left: 210px;
      bottom: 44px;
      width: 86px;
      height: 150px;
      border-radius: 42px 42px 18px 18px;
      background: #ffffff;
      box-shadow: 0 18px 34px rgba(0, 0, 0, 0.18);
    }

    .bd-home-service__worker::before {
      content: "";
      position: absolute;
      left: 20px;
      top: -42px;
      width: 46px;
      height: 46px;
      border-radius: 50%;
      background: #ffffff;
    }

    .bd-home-service__worker::after {
      content: "";
      position: absolute;
      left: -18px;
      top: 36px;
      width: 120px;
      height: 16px;
      border-radius: 999px;
      background: #ffffff;
      transform: rotate(-18deg);
    }

    .bd-home-service__content {
      padding: 8px 0;
    }

    .bd-home-service h2 {
      margin: 0;
      color: #002f66;
      font-size: clamp(22px, 3vw, 28px);
      line-height: 1.15;
      font-weight: var(--fw-title);
      letter-spacing: -0.025em;
    }

    .bd-home-service p {
      margin: 16px 0 0;
      color: #344054;
      font-size: var(--text-md);
      line-height: 1.7;
    }

    .bd-home-service__cards {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 12px;
      margin-top: 22px;
    }

    .bd-home-service-card {
      padding: 16px;
      border: 1px solid #dceaf7;
      border-radius: 18px;
      background: #ffffff;
      box-shadow: 0 10px 24px rgba(0, 47, 102, 0.06);
    }

    .bd-home-service-card .material-symbols-outlined {
      color: #0068b7;
      font-size: var(--text-3xl);
    }

    .bd-home-service-card strong {
      display: block;
      margin-top: 10px;
      color: #002f66;
      font-size: var(--text-body);
      line-height: 1.25;
      font-weight: 800;
    }

    .bd-home-service-card span {
      display: block;
      margin-top: 6px;
      color: #667085;
      font-size: var(--text-caption);
      line-height: 1.4;
    }

    .bd-home-service__actions {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      margin-top: 26px;
    }

    .bd-home-btn--blue {
      color: #ffffff;
      background: linear-gradient(135deg, #0068b7 0%, #002f66 100%);
      box-shadow: 0 16px 30px rgba(0, 104, 183, 0.22);
    }

    .bd-home-btn--blue:hover {
      transform: translateY(-2px);
      box-shadow: 0 20px 38px rgba(0, 104, 183, 0.28);
    }

    .bd-home-btn--white {
      color: #004f91;
      background: #ffffff;
      border: 1px solid #dceaf7;
    }

    .bd-home-btn--white:hover {
      transform: translateY(-2px);
      box-shadow: 0 14px 26px rgba(0, 47, 102, 0.10);
    }

    .bd-home-advantages {
      display: grid;
      grid-template-columns: repeat(5, minmax(0, 1fr));
      gap: 14px;
    }

    .bd-home-advantage {
      padding: 20px 16px;
      min-height: 190px;
      border: 1px solid #dceaf7;
      border-radius: 22px;
      background: #ffffff;
      box-shadow: 0 12px 28px rgba(0, 47, 102, 0.07);
      transition: transform 0.22s ease, box-shadow 0.22s ease;
    }

    .bd-home-advantage:hover {
      transform: translateY(-5px);
      box-shadow: 0 20px 40px rgba(0, 47, 102, 0.12);
    }

    .bd-home-advantage .material-symbols-outlined {
      display: grid;
      place-items: center;
      width: 46px;
      height: 46px;
      color: #ffffff;
      background: linear-gradient(135deg, #0068b7 0%, #002f66 100%);
      border-radius: 16px;
      font-size: var(--text-2xl);
    }

    .bd-home-advantage h3 {
      margin: 15px 0 0;
      color: #002f66;
      font-size: clamp(16px, 1.5vw, 18px);
      line-height: 1.25;
      font-weight: var(--fw-title);
    }

    .bd-home-advantage p {
      margin: 10px 0 0;
      color: #667085;
      font-size: var(--text-small);
      line-height: 1.5;
    }

    .bd-home-choice {
      display: grid;
      grid-template-columns: minmax(300px, 0.76fr) minmax(0, 1.24fr);
      gap: 24px;
      align-items: stretch;
    }

    .bd-home-choice__aside {
      padding: 28px;
      border-radius: 26px;
      color: #ffffff;
      background:
        linear-gradient(135deg, rgba(0, 104, 183, 0.96), rgba(0, 47, 102, 0.96)),
        radial-gradient(circle at 20% 20%, rgba(255, 255, 255, 0.20), transparent 35%);
      box-shadow: 0 18px 42px rgba(0, 47, 102, 0.18);
    }

    .bd-home-choice__aside h2 {
      margin: 0;
      color: #ffffff;
      font-size: clamp(22px, 3vw, 28px);
      line-height: 1.15;
      font-weight: var(--fw-title);
      letter-spacing: -0.025em;
    }

    .bd-home-choice__aside p {
      margin: 16px 0 0;
      color: #eef7ff;
      font-size: var(--text-md);
      line-height: 1.65;
    }

    .bd-home-choice__grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 14px;
    }

    .bd-home-choice-card {
      padding: 20px;
      border: 1px solid #dceaf7;
      border-radius: 22px;
      background:
        linear-gradient(135deg, #ffffff 0%, #f4f9ff 100%);
      box-shadow: 0 12px 28px rgba(0, 47, 102, 0.07);
    }

    .bd-home-choice-card .material-symbols-outlined {
      color: #0068b7;
      font-size: var(--text-3xl);
    }

    .bd-home-choice-card h3 {
      margin: 12px 0 0;
      color: #002f66;
      font-size: clamp(16px, 1.5vw, 18px);
      line-height: 1.25;
      font-weight: var(--fw-title);
    }

    .bd-home-choice-card p {
      margin: 9px 0 0;
      color: #667085;
      font-size: var(--text-small);
      line-height: 1.55;
    }

    .bd-home-production {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(320px, 0.82fr);
      gap: 24px;
      align-items: stretch;
      padding: 30px;
      border-radius: 28px;
      background:
        radial-gradient(circle at 0% 0%, rgba(0, 104, 183, 0.11), transparent 32%),
        linear-gradient(135deg, #ffffff 0%, #eef7ff 100%);
      border: 1px solid #dceaf7;
      box-shadow: 0 18px 44px rgba(0, 47, 102, 0.10);
    }

    .bd-home-production h2 {
      margin: 0;
      color: #002f66;
      font-size: clamp(22px, 3vw, 28px);
      line-height: 1.15;
      font-weight: var(--fw-title);
      letter-spacing: -0.025em;
    }

    .bd-home-production p {
      margin: 15px 0 0;
      color: #344054;
      font-size: var(--text-md);
      line-height: 1.65;
    }

    .bd-home-production__tags {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin-top: 22px;
    }

    .bd-home-production__tag {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      padding: 9px 12px;
      color: #004f91;
      background: #ffffff;
      border: 1px solid #dceaf7;
      border-radius: 999px;
      font-size: var(--text-small);
      font-weight: 800;
      line-height: 1;
    }

    .bd-home-production__tag .material-symbols-outlined {
      font-size: var(--text-xl);
      color: #0068b7;
    }

    .bd-home-production__visual {
      position: relative;
      overflow: hidden;
      min-height: 310px;
      border-radius: 24px;
      background:
        linear-gradient(135deg, rgba(0, 47, 102, 0.94), rgba(0, 104, 183, 0.86));
    }

    .bd-home-production__visual::before {
      content: "";
      position: absolute;
      inset: 24px;
      border-radius: 20px;
      border: 1px solid rgba(255, 255, 255, 0.20);
      background-image:
        linear-gradient(rgba(255, 255, 255, 0.16) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.16) 1px, transparent 1px);
      background-size: 26px 26px;
    }

    .bd-home-production__visual::after {
      content: "";
      position: absolute;
      left: 70px;
      bottom: 0;
      width: 150px;
      height: 250px;
      border-radius: 22px 22px 0 0;
      background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.16), transparent 28%),
        linear-gradient(135deg, #ffffff 0%, #b6c8d8 100%);
      box-shadow: 0 22px 44px rgba(0, 0, 0, 0.24);
    }

    .bd-home-steps {
      display: grid;
      grid-template-columns: repeat(5, minmax(0, 1fr));
      gap: 12px;
      counter-reset: step;
    }

    .bd-home-step {
      position: relative;
      min-height: 210px;
      padding: 18px;
      border: 1px solid #dceaf7;
      border-radius: 22px;
      background: #ffffff;
      box-shadow: 0 12px 28px rgba(0, 47, 102, 0.07);
      counter-increment: step;
    }

    .bd-home-step::before {
      content: "0" counter(step);
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 42px;
      height: 42px;
      margin-bottom: 14px;
      color: #ffffff;
      background: linear-gradient(135deg, #0068b7 0%, #002f66 100%);
      border-radius: 15px;
      font-size: var(--text-body);
      font-weight: 800;
    }

    .bd-home-step h3 {
      margin: 0;
      color: #002f66;
      font-size: clamp(16px, 1.5vw, 18px);
      line-height: 1.25;
      font-weight: var(--fw-title);
    }

    .bd-home-step p {
      margin: 9px 0 0;
      color: #667085;
      font-size: var(--text-small);
      line-height: 1.5;
    }

    .bd-home-cta {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 24px;
      align-items: center;
      padding: 34px;
      border-radius: 28px;
      color: #ffffff;
      background:
        linear-gradient(135deg, rgba(0, 104, 183, 0.98), rgba(0, 47, 102, 0.98)),
        radial-gradient(circle at 20% 30%, rgba(255, 255, 255, 0.22), transparent 34%);
      box-shadow: 0 24px 55px rgba(0, 47, 102, 0.22);
    }

    .bd-home-cta h2 {
      margin: 0;
      color: #ffffff;
      font-size: clamp(22px, 3vw, 28px);
      line-height: 1.16;
      font-weight: var(--fw-display);
      letter-spacing: -0.025em;
    }

    .bd-home-cta p {
      max-width: 680px;
      margin: 12px 0 0;
      color: #eef7ff;
      font-size: var(--text-md);
      line-height: 1.62;
    }

    .bd-home-cta__buttons {
      display: flex;
      flex-wrap: wrap;
      justify-content: flex-end;
      gap: 12px;
    }

    .bd-home-footer {
      width: calc(100% - 56px);
      margin: 56px auto 0;
      padding: 30px;
      border-top: 1px solid #dceaf7;
    }

    .bd-home-footer__grid {
      display: grid;
      grid-template-columns: 1.2fr 0.8fr 0.8fr 1fr;
      gap: 28px;
    }

    .bd-home-footer h3 {
      margin: 0 0 14px;
      color: #002f66;
      font-size: clamp(16px, 1.5vw, 18px);
      line-height: 1.2;
      font-weight: var(--fw-title);
    }

    .bd-home-footer p,
    .bd-home-footer a {
      color: #667085;
      font-size: var(--text-body);
      line-height: 1.55;
    }

    .bd-home-footer a {
      display: block;
      margin-top: 8px;
      transition: color 0.2s ease;
    }

    .bd-home-footer a:hover {
      color: #0068b7;
    }

    .bd-home-footer__contact {
      display: flex;
      align-items: flex-start;
      gap: 8px;
      margin-top: 9px;
      color: #667085;
      font-size: var(--text-body);
      line-height: 1.45;
    }

    .bd-home-footer__contact .material-symbols-outlined {
      color: #0068b7;
      font-size: var(--text-xl);
      margin-top: 1px;
    }

    .bd-home-footer__bottom {
      display: flex;
      justify-content: space-between;
      gap: 16px;
      margin-top: 28px;
      padding-top: 18px;
      border-top: 1px solid #dceaf7;
      color: #98a2b3;
      font-size: var(--text-small);
      line-height: 1.4;
    }

    @media (max-width: 1100px) {
      .bd-home-nav {
        display: none;
      }

      .bd-home-hero {
        grid-template-columns: 1fr;
        min-height: auto;
      }

      .bd-home-hero__visual {
        min-height: 360px;
      }

      .bd-home-products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .bd-home-advantages {
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }

      .bd-home-steps {
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }

      .bd-home-footer__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }

    @media (max-width: 840px) {
      .bd-home-main__wrap {
        padding: 0 12px 20px;
      }

      .bd-home-main__shell {
        border-radius: 22px;
      }

      .bd-home-header,
      .bd-home-hero,
      .bd-home-section,
      .bd-home-footer {
        width: calc(100% - 24px);
      }

      .bd-home-header {
        align-items: flex-start;
        flex-direction: column;
        padding: 14px;
        margin-top: 14px;
      }

      .bd-home-header__actions {
        width: 100%;
        justify-content: flex-start;
      }

      .bd-home-hero {
        padding: 30px 22px;
        border-radius: 22px;
      }

      .bd-home-hero h1 {
        font-size: clamp(36px, 4.5vw, 48px);
      }

      .bd-home-hero p {
        font-size: var(--text-md);
      }

      .bd-home-hero__stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .bd-home-categories {
        grid-template-columns: 1fr;
      }

      .bd-catalog-bento {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .bd-catalog-bento__cell:nth-child(6n + 1),
      .bd-catalog-bento__cell:nth-child(6n + 4),
      .bd-catalog-bento__cell:nth-child(6n + 5) {
        grid-column: span 1;
        grid-row: span 1;
        min-height: 250px;
      }

      .bd-catalog-bento__cell:nth-child(6n + 1) .bd-catalog-bento__card-link h2 {
        font-size: var(--text-2xl);
      }

      .bd-home-section__head {
        align-items: flex-start;
        flex-direction: column;
      }

      .bd-home-section h2,
      .bd-home-service h2,
      .bd-home-choice__aside h2,
      .bd-home-production h2,
      .bd-home-cta h2 {
        font-size: clamp(22px, 3vw, 28px);
      }

      .bd-home-service,
      .bd-home-choice,
      .bd-home-production,
      .bd-home-cta {
        grid-template-columns: 1fr;
      }

      .bd-home-service__cards {
        grid-template-columns: 1fr;
      }

      .bd-home-advantages,
      .bd-home-steps {
        grid-template-columns: 1fr;
      }

      .bd-home-choice__grid {
        grid-template-columns: 1fr;
      }

      .bd-home-cta__buttons {
        justify-content: flex-start;
      }
    }

    @media (max-width: 560px) {
      .bd-home-logo {
        min-width: 0;
      }

      .bd-home-logo__title {
        font-size: var(--text-lg);
      }

      .bd-home-products {
        grid-template-columns: 1fr;
      }

      .bd-catalog-bento {
        grid-template-columns: 1fr;
      }

      .bd-home-footer__grid {
        grid-template-columns: 1fr;
      }

      .bd-home-footer__bottom {
        flex-direction: column;
      }

      .bd-home-door-card--main {
        left: 76px;
        width: 170px;
        height: 300px;
      }

      .bd-home-door-card--side {
        right: 0;
        width: 150px;
        height: 250px;
      }

      .bd-home-door-card--small {
        width: 120px;
        height: 200px;
      }

      .bd-home-floating {
        position: relative;
        left: auto;
        right: auto;
        top: auto;
        bottom: auto;
        margin-top: 12px;
      }

      .bd-home-hero__visual {
        min-height: 320px;
      }
    }

/* ---------------------------------------------------------------------------
   Demo pages (импортированные товары: список + карточка)
   --------------------------------------------------------------------------- */
.bd-demo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 20px;
  margin-top: 8px;
}

.bd-demo-card {
  display: flex;
  flex-direction: column;
  background: #ffffff;
  border: 1px solid #dceaf7;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 47, 102, 0.08);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
  color: #1f2f3d;
}

.bd-demo-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 44px rgba(0, 47, 102, 0.16);
}

.bd-demo-card__media {
  aspect-ratio: 4 / 3;
  background: #f4f9ff;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.bd-demo-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.bd-demo-card__noimg {
  font-size: var(--text-5xl);
  color: #b8cfe6;
}

.bd-demo-card__body {
  padding: 14px 16px 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
}

.bd-demo-card__title {
  font-size: var(--text-md);
  font-weight: var(--fw-title);
  margin: 0;
  line-height: 1.3;
}

.bd-demo-card__meta {
  margin-top: auto;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}

.bd-demo-card__price {
  font-size: var(--text-xl);
  font-weight: 800;
  color: #0068b7;
}

.bd-demo-card__sku {
  font-size: var(--text-caption);
  color: #6b8298;
}

/* Detail */
.bd-demo-detail__back {
  margin-bottom: 18px;
}

.bd-demo-detail__top {
  display: grid;
  grid-template-columns: minmax(0, 420px) 1fr;
  gap: 28px;
  align-items: start;
}

.bd-demo-detail__main,
.bd-demo-detail__noimg {
  width: 100%;
  border-radius: 18px;
  border: 1px solid #dceaf7;
  background: #f4f9ff;
}

.bd-demo-detail__main {
  object-fit: cover;
}

.bd-demo-detail__noimg {
  aspect-ratio: 4 / 3;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--text-6xl);
  color: #b8cfe6;
}

.bd-demo-detail__thumbs {
  display: flex;
  gap: 10px;
  margin-top: 12px;
  flex-wrap: wrap;
}

.bd-demo-detail__thumbs img {
  width: 72px;
  height: 72px;
  object-fit: cover;
  border-radius: 10px;
  border: 1px solid #dceaf7;
}

.bd-demo-detail__info h1 {
  margin: 0 0 12px;
  font-size: clamp(28px, 4vw, 36px);
}

.bd-demo-detail__price {
  font-size: var(--text-3xl);
  font-weight: 800;
  color: #0068b7;
}

.bd-demo-detail__sku {
  margin-top: 6px;
  font-size: var(--text-small);
  color: #6b8298;
}

.bd-demo-detail__short {
  margin-top: 14px;
  color: #41566a;
}

.bd-demo-block {
  margin-top: 32px;
}

.bd-demo-block__title {
  font-size: var(--text-xl);
  margin: 0 0 14px;
  padding-bottom: 8px;
  border-bottom: 2px solid #dceaf7;
}

.bd-demo-richtext {
  line-height: 1.6;
  color: #2b3d4f;
}

.bd-demo-richtext img {
  max-width: 100%;
  height: auto;
  border-radius: 10px;
}

.bd-demo-table {
  width: 100%;
  border-collapse: collapse;
}

.bd-demo-table th,
.bd-demo-table td {
  text-align: left;
  padding: 9px 12px;
  border-bottom: 1px solid #e7f0f9;
  vertical-align: top;
  font-size: var(--text-body);
}

.bd-demo-table th {
  width: 42%;
  font-weight: 600;
  color: #2b3d4f;
}

.bd-demo-table__group {
  color: #93a8bd;
  font-weight: 400;
  font-size: var(--text-caption);
}

.bd-demo-option {
  padding: 12px 0;
  border-bottom: 1px solid #e7f0f9;
}

.bd-demo-option__name {
  font-weight: var(--fw-title);
  margin-bottom: 8px;
}

.bd-demo-badge {
  display: inline-block;
  margin-left: 8px;
  padding: 2px 8px;
  font-size: var(--text-caption);
  font-weight: 600;
  color: #0068b7;
  background: #e7f1fb;
  border-radius: 999px;
}

.bd-demo-option__variants {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.bd-demo-option__variants li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: #f4f9ff;
  border: 1px solid #dceaf7;
  border-radius: 10px;
  font-size: var(--text-small);
}

.bd-demo-option__mod {
  font-weight: 700;
  color: #0068b7;
}

@media (max-width: 720px) {
  .bd-demo-detail__top {
    grid-template-columns: 1fr;
  }
}