@charset "utf-8";
/* CSS Document */
/* CSS Document */
.ab-designer-credit {
  margin-top: 26px;
  padding-top: 18px;
  color: rgba(255, 255, 255, .62);
  border-top: 1px solid rgba(255, 255, 255, .14);
  text-align: center;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.ab-designer-credit a {
  display: inline-block;
  margin-left: 4px;
  color: #ff8eb7;
  font-weight: 800;
  letter-spacing: .1em;
  transition: color .25s ease, transform .25s ease;
}

.ab-designer-credit a:hover,
.ab-designer-credit a:focus-visible {
  color: #ffffff;
  outline: none;
  transform: translateY(-1px);
}
.ab-flying-butterfly {
  width: 58px;
  position: absolute;
  left: 4%;
  top: 20%;
  z-index: 3;
  pointer-events: none;
  animation: ab-butterfly-flight 16s ease-in-out infinite;
}

.ab-flying-butterfly img {
  width: 100%;
  animation: ab-butterfly-wings .45s ease-in-out infinite alternate;
  transform-origin: center;
}

@keyframes ab-butterfly-flight {
  0% {
    left: 3%;
    top: 68%;
    transform: rotate(-8deg);
  }

  25% {
    left: 28%;
    top: 18%;
    transform: rotate(10deg);
  }

  50% {
    left: 58%;
    top: 42%;
    transform: rotate(-5deg);
  }

  75% {
    left: 82%;
    top: 14%;
    transform: rotate(8deg);
  }

  100% {
    left: 3%;
    top: 68%;
    transform: rotate(-8deg);
  }
}

@keyframes ab-butterfly-wings {
  from {
    transform: scaleX(1) translateY(0);
  }

  to {
    transform: scaleX(.72) translateY(-3px);
  }
}

@media only screen and (max-width: 560px) {
  .ab-flying-butterfly {
    width: 38px;
    animation-duration: 12s;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ab-flying-butterfly,
  .ab-flying-butterfly img {
    animation: none;
  }
}

  .ab-template,
    .ab-template * {
      box-sizing: border-box;
    }

    .ab-template {
      width: 100%;
      max-width: 1920px;
      margin: 0 auto;
      overflow: hidden;
      color: #102454;
      background: #ffffff;
      font-family: Arial, Helvetica, sans-serif;
      line-height: 1.55;
      -webkit-text-size-adjust: 100%;
    }

    .ab-template a {
      color: inherit;
      text-decoration: none;
    }

    .ab-template img {
      display: block;
      max-width: 100%;
      height: auto;
      border: 0;
    }

    .ab-shell {
      width: 92%;
      max-width: 1480px;
      margin: 0 auto;
    }

    .ab-utility {
      background: #071f5b;
      color: #ffffff;
      border-bottom: 3px solid #ef2f72;
    }

    .ab-utility-inner {
      min-height: 42px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 24px;
      font-size: 13px;
      font-weight: 700;
      letter-spacing: .04em;
    }

    .ab-utility-item {
      display: inline-flex;
      align-items: center;
      gap: 9px;
    }

    .ab-utility-dot {
      width: 8px;
      height: 8px;
      display: inline-block;
      border-radius: 50%;
      background: #ef2f72;
      box-shadow: 0 0 0 4px rgba(239, 47, 114, .18);
    }

    .ab-header {
      background: #ffffff;
      border-bottom: 1px solid #f4d5df;
    }

    .ab-header-inner {
      min-height: 118px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 34px;
    }

    .ab-brand {
      min-width: 270px;
      display: flex;
      align-items: center;
      gap: 13px;
    }

    .ab-brand-mark {
      width: 62px;
      height: 62px;
      position: relative;
      overflow: hidden;
      border-radius: 14px 14px 8px 8px;
      background: linear-gradient(145deg, #ff4b90 0%, #ef2f72 58%, #d7195e 100%);
      box-shadow: 0 10px 24px rgba(239, 47, 114, .22);
    }

    .ab-brand-mark::before {
      content: "A";
      position: absolute;
      left: 13px;
      top: 2px;
      color: #ffffff;
      font-family: Georgia, "Times New Roman", serif;
      font-size: 48px;
      font-weight: 700;
      line-height: 1;
    }

    .ab-brand-copy strong {
      display: block;
      color: #071f5b;
      font-size: 31px;
      line-height: 1;
      letter-spacing: .01em;
    }

    .ab-brand-copy span {
      display: block;
      margin-top: 6px;
      color: #ef2f72;
      font-size: 13px;
      font-weight: 700;
      letter-spacing: .08em;
      text-transform: uppercase;
    }

    .ab-nav {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      flex-wrap: wrap;
      gap: 12px;
    }

    .ab-nav a {
      display: inline-block;
      padding: 11px 16px;
      color: #071f5b;
      border: 1px solid transparent;
      border-radius: 999px;
      font-size: 13px;
      font-weight: 800;
      letter-spacing: .06em;
      text-transform: uppercase;
    }

    .ab-nav a:hover {
      color: #ef2f72;
      border-color: #f4c7d6;
      background: #fff7fa;
    }

    .ab-hero {
      min-height: 505px;
      position: relative;
      overflow: hidden;
      display: flex;
      align-items: center;
      background-color: #fff7fa;
      /* REPLACE the URL below with your HTTPS banner/background image URL. */
      background-image: url("../files/header-banner.jpg");
      background-repeat: no-repeat;
      background-size: cover;
      background-position: center right;
      border-bottom: 1px solid #f4d5df;
    }

    .ab-hero::before {
      content: "";
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      background: linear-gradient(90deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.86) 34%, rgba(255,255,255,.24) 62%, rgba(255,255,255,0) 100%);
    }

    .ab-hero > .ab-shell {
      position: relative;
      z-index: 1;
    }

    .ab-hero-copy {
      width: 55%;
      max-width: 700px;
      padding: 76px 0;
    }

    .ab-eyebrow {
      margin: 0 0 12px;
      color: #ef2f72;
      font-size: 14px;
      font-weight: 800;
      letter-spacing: .16em;
      text-transform: uppercase;
    }

    .ab-hero h1 {
      max-width: 650px;
      margin: 0;
      color: #071f5b;
      font-family: Georgia, "Times New Roman", serif;
      font-size: 60px;
      line-height: 1.04;
      letter-spacing: -.025em;
    }

    .ab-hero p {
      max-width: 600px;
      margin: 22px 0 0;
      color: #3f4b69;
      font-size: 20px;
    }

    .ab-button {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 52px;
      margin-top: 28px;
      padding: 0 25px;
      color: #ffffff !important;
      background: #ef2f72;
      border: 2px solid #ef2f72;
      border-radius: 999px;
      box-shadow: 0 12px 28px rgba(239, 47, 114, .22);
      font-size: 14px;
      font-weight: 800;
      letter-spacing: .08em;
      text-transform: uppercase;
    }

    .ab-button:hover {
      color: #ef2f72 !important;
      background: #ffffff;
    }

    .ab-main {
      padding: 52px 0 72px;
      background:
        radial-gradient(circle at 4% 10%, rgba(255, 221, 234, .55), transparent 28%),
        #ffffff;
    }

    .ab-trust-row {
      display: flex;
      flex-wrap: wrap;
      gap: 20px;
      margin-bottom: 36px;
    }

    .ab-trust-card {
      min-width: 250px;
      flex: 1 1 0;
      display: flex;
      align-items: center;
      gap: 17px;
      min-height: 96px;
      padding: 20px 24px;
      background: #ffffff;
      border: 1px solid #f1d7e0;
      border-radius: 18px;
      box-shadow: 0 12px 36px rgba(16, 36, 84, .06);
    }

    .ab-line-icon {
      width: 52px;
      height: 52px;
      flex: 0 0 52px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      color: #ef2f72;
      background: #fff7fa;
      border: 1px solid #ef2f72;
      border-radius: 50%;
      font-size: 24px;
      font-weight: 700;
    }

    .ab-trust-card strong {
      display: block;
      color: #071f5b;
      font-size: 15px;
      letter-spacing: .04em;
    }

    .ab-trust-card span:last-child {
      display: block;
      margin-top: 3px;
      color: #667087;
      font-size: 13px;
    }

    .ab-product-card {
      display: flex;
      flex-wrap: wrap;
      align-items: stretch;
      gap: 50px;
      padding: 42px;
      background: #ffffff;
      border: 1px solid #f2ccd9;
      border-radius: 24px;
      box-shadow: 0 18px 56px rgba(16, 36, 84, .08);
    }

    .ab-gallery,
    .ab-product-copy {
      width: calc(50% - 25px);
    }

    .ab-gallery-stage {
      min-height: 620px;
      position: relative;
      overflow: hidden;
      background-color: #fffafb;
      border: 1px solid #efdce3;
      border-radius: 19px;
    }

    .ab-gallery-slide {
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      z-index: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 20px;
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      background: #fffafb;
      transform: scale(.975);
      transition: opacity .42s ease, transform .48s cubic-bezier(.2,.75,.25,1), visibility 0s linear .48s;
    }

    .ab-gallery-slide:first-child {
      z-index: 1;
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
      transform: scale(1);
      transition-delay: 0s;
    }

    .ab-gallery-slide:target {
      z-index: 3;
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
      transform: scale(1);
      transition-delay: 0s;
      animation: ab-gallery-show .48s cubic-bezier(.2,.75,.25,1);
    }

    .ab-gallery-slide img {
      width: 100%;
      height: 100%;
      object-fit: contain;
      transition: transform .6s cubic-bezier(.2,.75,.25,1);
    }

    .ab-gallery-slide:hover img {
      transform: scale(1.025);
    }

    .ab-thumbnails {
      display: flex;
      gap: 14px;
      margin-top: 15px;
    }

    .ab-thumb {
      width: calc(25% - 10.5px);
      min-height: 105px;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
      position: relative;
      background-color: #fffafb;
      border: 2px solid #efdce3;
      border-radius: 12px;
      box-shadow: 0 8px 20px rgba(16, 36, 84, .05);
      transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease;
    }

    .ab-thumb img {
      width: 100%;
      height: 101px;
      object-fit: contain;
      padding: 6px;
      background: #ffffff;
      transition: transform .35s ease;
    }

    .ab-thumb:hover,
    .ab-thumb:focus-visible {
      outline: none;
      border-color: #ef2f72;
      box-shadow: 0 12px 25px rgba(239, 47, 114, .16);
      transform: translateY(-4px);
    }

    .ab-thumb:hover img,
    .ab-thumb:focus-visible img {
      transform: scale(1.06);
    }

    @keyframes ab-gallery-show {
      0% {
        opacity: 0;
        transform: scale(.96);
      }
      100% {
        opacity: 1;
        transform: scale(1);
      }
    }

    .ab-product-copy {
      display: flex;
      flex-direction: column;
      justify-content: center;
    }

    .ab-product-copy h2,
    .ab-section-title {
      margin: 0;
      color: #071f5b;
      font-family: Georgia, "Times New Roman", serif;
      font-size: 42px;
      line-height: 1.12;
      letter-spacing: -.015em;
    }

    .ab-title-rule {
      width: 74px;
      height: 3px;
      margin: 20px 0 23px;
      background: linear-gradient(90deg, #ef2f72, #d6a044);
      border-radius: 999px;
    }

    .ab-intro {
      margin: 0;
      color: #566078;
      font-size: 16px;
    }

    .ab-features {
      margin: 26px 0 34px;
      padding: 0;
      list-style: none;
    }

    .ab-features li {
      position: relative;
      margin: 12px 0;
      padding-left: 34px;
      color: #2e3955;
      font-size: 15px;
    }

    .ab-features li::before {
      content: "✓";
      width: 21px;
      height: 21px;
      position: absolute;
      left: 0;
      top: 1px;
      display: flex;
      align-items: center;
      justify-content: center;
      color: #ffffff;
      background: #ef2f72;
      border-radius: 50%;
      font-size: 12px;
      font-weight: 800;
    }

    .ab-description {
      color: #4f5971;
      font-size: 15px;
    }

    .ab-description p:first-child {
      margin-top: 0;
    }

    .ab-product-description-wide {
      width: 100%;
      flex: 0 0 100%;
      margin-top: 2px;
      padding: 40px 4px 2px;
      border-top: 1px solid #efdce3;
    }

    .ab-product-description-wide .ab-section-title {
      font-size: 36px;
    }

    .ab-product-description-wide .ab-description {
      width: 100%;
      color: #4f5971;
      font-size: 15px;
      line-height: 1.7;
    }

    .ab-product-description-wide .ab-description h3 {
      margin: 30px 0 14px;
      color: #071f5b;
      font-family: Georgia, "Times New Roman", serif;
      font-size: 25px;
      line-height: 1.2;
    }

    .ab-product-description-wide .ab-description h3:first-child {
      margin-top: 0;
    }

    .ab-product-description-wide .ab-description ol,
    .ab-product-description-wide .ab-description > ul {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 14px 18px;
      margin: 18px 0 28px;
      padding: 0;
      list-style: none;
    }

    .ab-product-description-wide .ab-description ol {
      counter-reset: ab-function;
    }

    .ab-product-description-wide .ab-description ol li,
    .ab-product-description-wide .ab-description > ul li {
      position: relative;
      margin: 0;
      padding: 17px 18px 17px 54px;
      background: #fffafb;
      border: 1px solid #efdce3;
      border-radius: 13px;
    }

    .ab-product-description-wide .ab-description ol li {
      counter-increment: ab-function;
    }

    .ab-product-description-wide .ab-description ol li::before {
      content: counter(ab-function);
    }

    .ab-product-description-wide .ab-description ol li::before,
    .ab-product-description-wide .ab-description > ul li::before {
      width: 27px;
      height: 27px;
      position: absolute;
      left: 16px;
      top: 16px;
      display: flex;
      align-items: center;
      justify-content: center;
      color: #ffffff;
      background: #ef2f72;
      border-radius: 50%;
      font-size: 12px;
      font-weight: 800;
    }

    .ab-product-description-wide .ab-description > ul li::before {
      content: "✓";
    }

    .ab-product-description-wide .ab-contact-strip {
      margin-top: 30px;
    }

    .ab-contact-strip {
      margin-top: 34px;
      padding: 20px 24px;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 14px;
      text-align: center;
      background: linear-gradient(90deg, #fff7fa, #ffffff);
      border: 1px solid #efb2c7;
      border-radius: 14px;
      color: #071f5b;
      font-size: 16px;
      font-weight: 700;
    }

    .ab-contact-strip b {
      width: 38px;
      height: 38px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      color: #ffffff;
      background: #ef2f72;
      border-radius: 50%;
      font-size: 19px;
    }

    .ab-contact-strip a {
      color: #ef2f72;
      border-bottom: 1px solid #ef2f72;
    }

    .ab-policies {
      display: flex;
      flex-wrap: wrap;
      gap: 18px;
      margin-top: 34px;
    }

    .ab-policy-card {
      min-width: 230px;
      flex: 1 1 0;
      padding: 28px 25px;
      text-align: center;
      background: #ffffff;
      border: 1px solid #efdce3;
      border-radius: 18px;
      box-shadow: 0 10px 30px rgba(16, 36, 84, .05);
    }

    .ab-policy-card .ab-line-icon {
      margin: 0 auto 15px;
    }

    .ab-policy-card h3 {
      margin: 0;
      color: #071f5b;
      font-size: 15px;
      letter-spacing: .08em;
      text-transform: uppercase;
    }

    .ab-policy-card p {
      margin: 10px 0 0;
      color: #677087;
      font-size: 13px;
    }

    .ab-category-section {
      padding: 66px 0 76px;
      background: linear-gradient(180deg, #fffafb 0%, #ffffff 100%);
      border-top: 1px solid #f4dce4;
    }

    .ab-category-heading {
      margin-bottom: 30px;
      text-align: center;
    }

    .ab-category-heading .ab-section-title {
      font-size: 38px;
    }

    .ab-category-heading p {
      margin: 9px 0 0;
      color: #6a7288;
      font-size: 14px;
    }

    .ab-category-grid {
      display: flex;
      flex-wrap: wrap;
      gap: 22px;
    }

    .ab-category-card {
      min-width: 280px;
      min-height: 440px;
      position: relative;
      overflow: hidden;
      isolation: isolate;
      flex: 1 1 0;
      display: flex;
      align-items: flex-end;
      padding: 28px;
      background-color: #fff3f7;
      border: 1px solid #f0cad7;
      border-radius: 22px;
      box-shadow: 0 15px 42px rgba(16, 36, 84, .09);
      transform: translateZ(0);
      transition:
        transform .48s cubic-bezier(.2,.75,.25,1),
        border-color .35s ease,
        box-shadow .48s ease;
      animation: ab-category-reveal .72s cubic-bezier(.2,.75,.25,1) backwards;
    }

    .ab-category-card:nth-child(2) {
      animation-delay: .12s;
    }

    .ab-category-card:nth-child(3) {
      animation-delay: .24s;
    }

    /* Product image layer: separated from the card so it can zoom smoothly. */
    .ab-category-card::before {
      content: "";
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      z-index: 0;
      background-color: #fff3f7;
      background-repeat: no-repeat;
      background-size: cover;
      background-position: center;
      transform: scale(1.001);
      transition: transform .75s cubic-bezier(.2,.75,.25,1), filter .55s ease;
    }

    /* Elegant diagonal light sweep. */
    .ab-category-card::after {
      content: "";
      width: 42%;
      height: 145%;
      position: absolute;
      left: -68%;
      top: -22%;
      z-index: 1;
      pointer-events: none;
      opacity: 0;
      background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,.72), rgba(255,255,255,0));
      transform: skewX(-18deg);
      transition: left .85s cubic-bezier(.2,.75,.25,1), opacity .25s ease;
    }

    .ab-category-card:hover,
    .ab-category-card:focus-visible {
      z-index: 3;
      outline: none;
      border-color: #ef2f72;
      box-shadow: 0 28px 60px rgba(16, 36, 84, .18), 0 10px 28px rgba(239, 47, 114, .14);
      transform: translateY(-10px) scale(1.012);
    }

    .ab-category-card:hover::before,
    .ab-category-card:focus-visible::before {
      filter: saturate(1.08) contrast(1.03);
      transform: scale(1.085);
    }

    .ab-category-card:hover::after,
    .ab-category-card:focus-visible::after {
      left: 128%;
      opacity: .88;
    }

    /* REPLACE these three URLs with your HTTPS category-image URLs. */
    .ab-category-1::before {
      background-image:
        linear-gradient(180deg, rgba(255,255,255,.03) 35%, rgba(7,31,91,.9) 100%),
        url("../files/category1.jpg");
    }

    .ab-category-2::before {
      background-image:
        linear-gradient(180deg, rgba(255,255,255,.03) 35%, rgba(7,31,91,.9) 100%),
        url("../files/category2.jpg");
    }

    .ab-category-3::before {
      background-image:
        linear-gradient(180deg, rgba(255,255,255,.03) 35%, rgba(7,31,91,.9) 100%),
        url("../files/category3.jpg");
    }

    .ab-category-copy {
      width: 100%;
      position: relative;
      z-index: 2;
      display: flex;
      align-items: flex-end;
      justify-content: space-between;
      gap: 18px;
    }

    .ab-category-copy h3 {
      margin: 0;
      color: #ffffff;
      font-family: Georgia, "Times New Roman", serif;
      font-size: 27px;
      line-height: 1.05;
    }

    .ab-category-copy h3::after {
      content: "";
      width: 42px;
      height: 2px;
      display: block;
      margin-top: 11px;
      background: linear-gradient(90deg, #ef2f72, #f2c56b);
      border-radius: 99px;
      transform-origin: left center;
      transition: width .45s ease;
    }

    .ab-category-copy span {
      flex: 0 0 auto;
      display: inline-block;
      padding: 9px 14px;
      color: #ffffff;
      background: #ef2f72;
      border-radius: 999px;
      font-size: 11px;
      font-weight: 800;
      letter-spacing: .08em;
      text-transform: uppercase;
      box-shadow: 0 8px 20px rgba(239, 47, 114, .28);
      transition: color .35s ease, background-color .35s ease, transform .35s ease, box-shadow .35s ease;
    }

    .ab-category-copy span::after {
      content: "→";
      display: inline-block;
      margin-left: 7px;
      transition: transform .35s ease;
    }

    .ab-category-card:hover .ab-category-copy h3::after,
    .ab-category-card:focus-visible .ab-category-copy h3::after {
      width: 72px;
    }

    .ab-category-card:hover .ab-category-copy span,
    .ab-category-card:focus-visible .ab-category-copy span {
      color: #ef2f72;
      background-color: #ffffff;
      box-shadow: 0 10px 25px rgba(7, 31, 91, .22);
      transform: translateY(-3px);
    }

    .ab-category-card:hover .ab-category-copy span::after,
    .ab-category-card:focus-visible .ab-category-copy span::after {
      transform: translateX(5px);
    }

    @keyframes ab-category-reveal {
      0% {
        opacity: 0;
        transform: translateY(28px) scale(.98);
      }
      100% {
        opacity: 1;
        transform: translateY(0) scale(1);
      }
    }

    .ab-footer {
      padding: 32px 0;
      color: #ffffff;
      background: #071f5b;
      border-top: 4px solid #ef2f72;
    }

    .ab-footer-inner {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 28px;
    }

    .ab-footer-brand strong {
      display: block;
      font-size: 18px;
      letter-spacing: .05em;
    }

    .ab-footer-brand span {
      display: block;
      margin-top: 2px;
      color: #f6b2cb;
      font-size: 12px;
    }

    .ab-footer-links {
      display: flex;
      flex-wrap: wrap;
      justify-content: flex-end;
      gap: 10px 22px;
    }

    .ab-footer-links a {
      color: #ffffff;
      font-size: 12px;
      font-weight: 700;
      letter-spacing: .06em;
      text-transform: uppercase;
    }

    .ab-footer-links a:hover {
      color: #ff8eb7;
    }

    @media only screen and (max-width: 1100px) {
      .ab-shell {
        width: 94%;
      }

      .ab-hero {
        min-height: 430px;
      }

      .ab-hero h1 {
        font-size: 48px;
      }

      .ab-product-card {
        gap: 30px;
        padding: 30px;
      }

      .ab-gallery-stage {
        min-height: 500px;
      }

      .ab-product-copy h2,
      .ab-section-title {
        font-size: 35px;
      }
    }

    @media only screen and (max-width: 820px) {
      .ab-utility-inner,
      .ab-header-inner,
      .ab-footer-inner {
        justify-content: center;
        text-align: center;
      }

      .ab-utility-inner,
      .ab-header-inner,
      .ab-footer-inner,
      .ab-product-card {
        flex-direction: column;
      }

      .ab-utility-inner {
        padding: 10px 0;
      }

      .ab-header-inner {
        padding: 24px 0;
      }

      .ab-brand {
        min-width: 0;
        justify-content: center;
      }

      .ab-nav,
      .ab-footer-links {
        justify-content: center;
      }

      .ab-hero {
        min-height: 460px;
        background-position: 65% center;
      }

      .ab-hero::before {
        background: linear-gradient(90deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.82) 63%, rgba(255,255,255,.38) 100%);
      }

      .ab-hero-copy {
        width: 80%;
        padding: 60px 0;
      }

      .ab-gallery,
      .ab-product-copy {
        width: 100%;
      }

      .ab-gallery-stage {
        min-height: 560px;
      }

      .ab-product-copy {
        padding-top: 8px;
      }

      .ab-product-description-wide {
        padding-top: 32px;
      }

      .ab-category-card {
        flex-basis: calc(50% - 11px);
      }
    }

    @media only screen and (max-width: 560px) {
      .ab-shell {
        width: 92%;
      }

      .ab-utility-item:last-child {
        display: none;
      }

      .ab-brand-mark {
        width: 52px;
        height: 52px;
      }

      .ab-brand-mark::before {
        left: 11px;
        font-size: 41px;
      }

      .ab-brand-copy strong {
        font-size: 26px;
      }

      .ab-brand-copy span {
        font-size: 10px;
      }

      .ab-nav {
        gap: 4px;
      }

      .ab-nav a {
        padding: 8px 9px;
        font-size: 10px;
      }

      .ab-hero {
        min-height: 390px;
      }

      .ab-hero::before {
        background: linear-gradient(90deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.86) 100%);
      }

      .ab-hero-copy {
        width: 100%;
        padding: 46px 0;
      }

      .ab-eyebrow {
        font-size: 11px;
      }

      .ab-hero h1 {
        font-size: 37px;
      }

      .ab-hero p {
        font-size: 16px;
      }

      .ab-main {
        padding: 34px 0 48px;
      }

      .ab-trust-row,
      .ab-policies,
      .ab-category-grid {
        gap: 13px;
      }

      .ab-trust-card,
      .ab-policy-card,
      .ab-category-card {
        min-width: 100%;
        flex-basis: 100%;
      }

      .ab-product-card {
        padding: 18px;
        border-radius: 17px;
      }

      .ab-gallery-stage {
        min-height: 370px;
      }

      .ab-thumb {
        min-height: 70px;
      }

      .ab-thumb img {
        height: 66px;
        padding: 3px;
      }

      .ab-product-copy h2,
      .ab-section-title {
        font-size: 30px;
      }

      .ab-product-description-wide .ab-description ol,
      .ab-product-description-wide .ab-description > ul {
        grid-template-columns: 1fr;
      }

      .ab-product-description-wide .ab-description ol li,
      .ab-product-description-wide .ab-description > ul li {
        padding: 15px 15px 15px 49px;
      }

      .ab-contact-strip {
        align-items: flex-start;
        padding: 17px;
        font-size: 14px;
      }

      .ab-category-section {
        padding: 48px 0 54px;
      }

      .ab-category-card {
        min-height: 390px;
      }

      .ab-category-copy h3 {
        font-size: 23px;
      }
    }

    /* Accessibility and performance fallback. */
    @media (prefers-reduced-motion: reduce) {
      .ab-category-card,
      .ab-category-card::before,
      .ab-category-card::after,
      .ab-category-copy h3::after,
      .ab-category-copy span,
      .ab-category-copy span::after,
      .ab-gallery-slide,
      .ab-gallery-slide img,
      .ab-thumb,
      .ab-thumb img {
        animation: none !important;
        transition: none !important;
      }

      .ab-category-card:hover,
      .ab-category-card:focus-visible {
        transform: none;
      }

      .ab-category-card:hover::before,
      .ab-category-card:focus-visible::before {
        transform: scale(1.001);
      }
    }
