/* Final artwork integration layer. Loaded after the base and mobile styles. */

/* ---------- Shared SVG icon system ---------- */
.ui-icon,
.asset-icon {
  display: inline-block;
  flex: 0 0 auto;
  width: 1em;
  height: 1em;
  background: currentColor;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
}

.icon-menu { -webkit-mask-image: url("assets/menu.svg"); mask-image: url("assets/menu.svg"); }
.icon-search { -webkit-mask-image: url("assets/search.svg"); mask-image: url("assets/search.svg"); }
.icon-account { -webkit-mask-image: url("assets/account.svg"); mask-image: url("assets/account.svg"); }
.icon-cart { -webkit-mask-image: url("assets/cart.svg"); mask-image: url("assets/cart.svg"); }
.icon-arrow-right { -webkit-mask-image: url("assets/arrow_right.svg"); mask-image: url("assets/arrow_right.svg"); }
.icon-chevron-down { -webkit-mask-image: url("assets/chevron_down.svg"); mask-image: url("assets/chevron_down.svg"); }
.icon-close { -webkit-mask-image: url("assets/close.svg"); mask-image: url("assets/close.svg"); }
.icon-mail { -webkit-mask-image: url("assets/mail.svg"); mask-image: url("assets/mail.svg"); }
.icon-rocket { -webkit-mask-image: url("assets/rocket.svg"); mask-image: url("assets/rocket.svg"); }
.icon-planet { -webkit-mask-image: url("assets/planet.svg"); mask-image: url("assets/planet.svg"); }
.icon-coffee-mug { -webkit-mask-image: url("assets/coffee_mug.svg"); mask-image: url("assets/coffee_mug.svg"); }
.icon-observatory { -webkit-mask-image: url("assets/observatory.svg"); mask-image: url("assets/observatory.svg"); }

.inline-arrow {
  width: 1.05em;
  height: .72em;
  margin-left: .25em;
}

/* ---------- Header and brand ---------- */
.brand-mark-image {
  width: 43px;
  height: 43px;
  object-fit: contain;
  filter: brightness(0) saturate(100%) invert(91%) sepia(15%) saturate(477%) hue-rotate(353deg) brightness(101%) contrast(89%);
}

.icon-button .ui-icon {
  width: 100%;
  height: 100%;
}

.menu-toggle .ui-icon {
  width: 25px !important;
  height: 25px !important;
  background: currentColor !important;
  transform: none !important;
}

.menu-toggle[aria-expanded="true"] .icon-menu {
  -webkit-mask-image: url("assets/close.svg");
  mask-image: url("assets/close.svg");
}

.nav-chevron {
  width: .72em;
  height: .48em;
  margin-left: .35em;
  vertical-align: .02em;
}

.site-nav a:first-child {
  display: inline-flex;
  align-items: center;
}

/* ---------- Hero artwork ---------- */
.hero {
  min-height: 760px;
  background-image:
    linear-gradient(90deg, rgba(3, 9, 18, .96) 0%, rgba(3, 9, 18, .83) 27%, rgba(3, 9, 18, .30) 57%, rgba(3, 9, 18, .08) 100%),
    linear-gradient(180deg, rgba(3, 9, 18, .38), rgba(3, 9, 18, .10) 58%, rgba(3, 9, 18, .48)),
    url("assets/hero_artwork.PNG");
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

.hero::before,
.hero-stars,
.meteor-field,
.lava-horizon {
  display: none;
}

.hero-grid {
  min-height: 760px;
  padding-top: 142px;
  padding-bottom: 70px;
  grid-template-columns: minmax(420px, .9fr) 1.2fr;
  align-items: center;
}

.hero-copy {
  max-width: 550px;
  padding: 22px 0;
}

.hero h1 {
  text-shadow: 0 8px 35px rgba(0, 0, 0, .72);
}

.hero-lede {
  color: #eee7dc;
  text-shadow: 0 2px 12px rgba(0, 0, 0, .9);
}

.hero-art-spacer {
  min-height: 440px;
}

/* ---------- Product artwork ---------- */
.product-card {
  align-content: start;
}

.product-visual {
  width: 100%;
  min-height: 350px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 8px;
  background: #05070b;
  box-shadow: 0 24px 50px rgba(0, 0, 0, .34);
}

.product-bag-image {
  display: block;
  width: 100%;
  height: 350px;
  object-fit: contain;
  object-position: center;
  transition: transform .3s ease, filter .3s ease;
}

.product-card:hover .product-bag-image {
  transform: translateY(-5px) scale(1.015);
  filter: brightness(1.06);
}

.product-card .coffee-bag {
  display: none;
}

/* ---------- Story artwork ---------- */
.story-grid {
  grid-template-columns: 1.28fr .88fr .62fr;
  min-height: 360px;
}

.story-art {
  min-height: 360px;
  background: #080b10;
}

.story-image {
  width: 100%;
  height: 100%;
  min-height: 360px;
  object-fit: cover;
  object-position: center;
}

.value-icon {
  border: 0;
  color: var(--paper);
}

.value-icon.asset-icon {
  width: 38px;
  height: 38px;
}

/* ---------- Brew guide icons ---------- */
.method-icon.asset-icon {
  width: 52px;
  height: 52px;
  min-height: 52px;
  margin: 0 auto 10px;
  color: var(--paper-soft);
}

/* ---------- Subscription artwork ---------- */
.subscription {
  min-height: 210px;
  padding: 38px 0;
  background-image:
    linear-gradient(90deg, rgba(4, 11, 20, .25), rgba(4, 11, 20, .66) 29%, rgba(4, 11, 20, .84) 48%, rgba(4, 11, 20, .68) 72%, rgba(4, 11, 20, .18)),
    url("assets/subscription_banner.PNG");
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

.subscription-art {
  display: none;
}

.subscription-grid {
  min-height: 134px;
  grid-template-columns: 1fr auto;
  padding-inline: 245px 70px;
}

.subscription-copy {
  max-width: 700px;
  padding: 18px 24px;
  border-left: 2px solid rgba(255, 74, 23, .68);
  background: linear-gradient(90deg, rgba(5, 13, 23, .88), rgba(5, 13, 23, .28));
  backdrop-filter: blur(2px);
}

.subscription h2,
.subscription p {
  text-shadow: 0 2px 13px rgba(0, 0, 0, .9);
}

/* ---------- Footer ---------- */
.footer-brand .brand-mark-image {
  width: 40px;
  height: 40px;
}

.newsletter button {
  display: grid;
  place-items: center;
}

.newsletter button .ui-icon {
  width: 19px;
  height: 19px;
}

@media (max-width: 1000px) {
  .hero,
  .hero-grid {
    min-height: 690px;
  }

  .hero-grid {
    grid-template-columns: minmax(370px, 1fr) 1fr;
  }

  .product-visual,
  .product-bag-image {
    min-height: 330px;
    height: 330px;
  }

  .subscription-grid {
    padding-inline: 150px 36px;
  }
}

@media (max-width: 760px) {
  .brand-mark-image {
    width: 31px;
    height: 31px;
  }

  .hero {
    min-height: 720px;
    background-color: #050c16;
    background-image:
      linear-gradient(180deg, rgba(3, 9, 18, .94) 0%, rgba(3, 9, 18, .72) 39%, rgba(3, 9, 18, .12) 70%, rgba(3, 9, 18, .38) 100%),
      url("assets/hero_artwork.PNG");
    background-position: 70% bottom;
  }

  .hero-grid {
    min-height: 720px;
    grid-template-columns: 1fr;
    grid-template-rows: auto 1fr;
    padding-top: 48px;
    padding-bottom: 24px;
  }

  .hero-copy {
    padding: 0;
  }

  .hero-art-spacer {
    min-height: 225px;
  }

  .product-visual,
  .product-bag-image {
    min-height: 315px;
    height: 315px;
  }

  .story-grid {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .story-art {
    width: 100%;
    min-height: 0;
    height: auto;
    aspect-ratio: 16 / 10;
  }

  .story-image {
    width: 100%;
    min-height: 0;
    height: 100%;
    object-position: 50% center;
  }

  .brew-methods article {
    min-height: 185px;
  }

  .subscription {
    min-height: 390px;
    padding: 42px 0 34px;
    background-color: #050c16;
    background-image:
      linear-gradient(180deg, rgba(4, 11, 20, .42), rgba(4, 11, 20, .78) 52%, rgba(4, 11, 20, .96)),
      url("assets/subscription_banner.PNG");
    background-size: auto 84%;
    background-position: center bottom;
    background-repeat: no-repeat;
  }

  .subscription-grid {
    min-height: 310px;
    grid-template-columns: 1fr;
    align-content: end;
    padding: 0;
  }

  .subscription-copy {
    padding: 18px 16px;
    border-left-width: 1px;
  }

  .subscription-cta {
    padding-left: 16px;
  }
}

@media (max-width: 440px) {
  .brand-copy strong {
    font-size: .88rem;
  }

  .hero,
  .hero-grid {
    min-height: 690px;
  }

  .hero {
    background-position: 72% bottom;
  }

  .product-card {
    flex-basis: min(78vw, 280px);
  }

  .product-visual,
  .product-bag-image {
    min-height: 305px;
    height: 305px;
  }

  .story-art {
    aspect-ratio: 4 / 3;
  }

  .subscription {
    background-size: auto 80%;
    background-position: 53% bottom;
  }
}
