:root {
  --tp-brown: #6E0C1C;
  --tp-brown-dark: #3d0710;
  --tp-brown-soft: #b46370;
  --tp-cream: #f7f1eb;
  --tp-latte: #ead9ca;
  --tp-mint: #d8e7dc;
  --tp-ink: #2e2520;
  --tp-muted: #756760;
  --tp-line: #eadfd6;
}

body {
  background: #fff;
  color: var(--tp-ink);
  font-family: "Manrope", "Helvetica Neue", Arial, sans-serif;
}

a {
  color: var(--tp-brown);
}

.site-header {
  background: rgba(255, 255, 255, .96);
  border-bottom: 1px solid var(--tp-line);
  backdrop-filter: blur(8px);
}

.navbar-brand {
  color: var(--tp-brown-dark);
  font-weight: 700;
}

.brand-logo {
  display: block;
  width: 205px;
  height: 86px;
  object-fit: contain;
}

.nav-link {
  color: var(--tp-ink);
  font-weight: 600;
}

.nav-link:hover,
.nav-link:focus {
  color: var(--tp-brown);
}

.products-dropdown {
  min-width: 320px;
  max-width: min(360px, calc(100vw - 2rem));
  padding: .45rem;
  border: 1px solid var(--tp-line);
  border-radius: 8px;
  box-shadow: 0 18px 45px rgba(46, 37, 32, .14);
}

.products-dropdown .dropdown-item {
  border-radius: 6px;
  padding: .52rem .65rem;
  color: var(--tp-ink);
  font-weight: 600;
  white-space: normal;
  line-height: 1.2;
}

.products-dropdown .dropdown-item:hover,
.products-dropdown .dropdown-item:focus {
  background: var(--tp-latte);
  color: var(--tp-brown-dark);
}

.products-dropdown-all {
  margin-bottom: .25rem;
  padding-bottom: .25rem;
  border-bottom: 1px solid var(--tp-line);
}

.products-dropdown-all .dropdown-item {
  background: rgba(110, 12, 28, .08);
  color: var(--tp-brown-dark);
}

.site-search {
  display: flex;
  align-items: stretch;
  gap: .45rem;
  width: min(360px, 100%);
  margin: 0 1rem;
}

.search-nav-item {
  display: flex;
  align-items: center;
  order: 4;
}

.navbar-nav > .nav-item:not(.search-nav-item) {
  order: 1;
}

.navbar-nav > .nav-item.ms-lg-2 {
  order: 5;
}

.search-input-wrap {
  position: relative;
  flex: 1 1 auto;
}

.site-search .form-control {
  height: 42px;
  border-color: var(--tp-line);
  border-radius: 8px;
  font-size: .92rem;
}

.site-search .btn {
  width: 46px;
  min-width: 46px;
  border-radius: 8px;
}

.search-autocomplete {
  position: absolute;
  z-index: 1050;
  top: calc(100% + .45rem);
  left: 0;
  right: 0;
  display: none;
  max-height: 380px;
  overflow-y: auto;
  padding: .35rem;
  background: #fff;
  border: 1px solid var(--tp-line);
  border-radius: 8px;
  box-shadow: 0 18px 45px rgba(46, 37, 32, .18);
}

.search-autocomplete.is-visible {
  display: block;
}

.search-suggestion {
  display: grid;
  grid-template-columns: 58px 1fr;
  gap: .75rem;
  align-items: center;
  padding: .5rem;
  border-radius: 7px;
  color: var(--tp-ink);
  text-decoration: none;
}

.search-suggestion:hover,
.search-suggestion:focus,
.search-suggestion.is-active {
  background: var(--tp-cream);
  color: var(--tp-brown-dark);
}

.search-suggestion img,
.search-suggestion-thumb {
  width: 58px;
  height: 58px;
  object-fit: cover;
  border-radius: 7px;
  background: var(--tp-latte);
}

.search-suggestion-thumb {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--tp-brown);
  font-size: 1.35rem;
}

.search-suggestion strong,
.search-suggestion span {
  display: block;
}

.search-suggestion strong {
  line-height: 1.2;
  font-size: .95rem;
}

.search-suggestion span {
  margin-top: .2rem;
  color: var(--tp-muted);
  font-size: .82rem;
}

.search-autocomplete-empty {
  margin: 0;
  padding: .7rem .8rem;
  color: var(--tp-muted);
  font-size: .9rem;
}

@media (max-width: 991.98px) {
  .navbar-collapse {
    padding-top: .75rem;
  }

  .products-dropdown {
    display: block;
    position: static;
    min-width: 0;
    max-width: none;
    width: 100%;
    max-height: 42vh;
    overflow-y: auto;
    margin: .25rem 0 .75rem;
    padding: .35rem;
    border-radius: 8px;
    box-shadow: none;
    background: rgba(255, 255, 255, .9);
  }

  .products-dropdown .dropdown-item {
    padding: .58rem .65rem;
    font-size: .95rem;
  }

  .site-search {
    width: 100%;
    margin: 0 0 .75rem;
  }

  .search-nav-item {
    order: -1;
    width: 100%;
  }

  .search-autocomplete {
    top: auto;
    bottom: calc(100% + .45rem);
    max-height: min(54vh, 420px);
  }
}

.btn-primary,
.btn-cart,
.btn-coffee {
  background: var(--tp-brown);
  border-color: var(--tp-brown);
  color: #fff;
}

.btn-primary:hover,
.btn-cart:hover,
.btn-coffee:hover {
  background: var(--tp-brown-dark);
  border-color: var(--tp-brown-dark);
  color: #fff;
}

.btn-outline-coffee {
  border-color: var(--tp-brown-soft);
  color: var(--tp-brown-dark);
}

.btn-outline-coffee:hover {
  background: var(--tp-latte);
  border-color: var(--tp-brown);
  color: var(--tp-brown-dark);
}

.cart-count {
  display: inline-flex;
  min-width: 22px;
  height: 22px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #fff;
  color: var(--tp-brown-dark);
  font-size: .78rem;
  font-weight: 700;
  margin-left: .25rem;
}

.mobile-nav-actions {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: .5rem;
}

.mobile-cart-link {
  position: relative;
  width: 46px;
  height: 46px;
  border-radius: 8px;
  background: var(--tp-brown);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.12rem;
  text-decoration: none;
  box-shadow: 0 8px 22px rgba(110, 12, 28, .22);
}

.mobile-cart-link:hover,
.mobile-cart-link:focus {
  background: var(--tp-brown-dark);
  color: #fff;
}

.mobile-cart-link .cart-count {
  position: absolute;
  top: -8px;
  right: -8px;
  margin-left: 0;
  background: #fff;
  color: var(--tp-brown);
  border: 2px solid var(--tp-brown);
}

.mobile-menu-toggle {
  width: 46px;
  height: 46px;
  border: 1px solid var(--tp-line);
  border-radius: 8px;
  padding: 0;
}

.hero {
  background:
    linear-gradient(135deg, rgba(255,255,255,.94) 0%, rgba(247,241,235,.94) 100%),
    url("/img/pattern.svg") center / 520px auto repeat;
  border-bottom: 1px solid var(--tp-line);
}

.hero-title {
  font-size: clamp(2.25rem, 6vw, 4.75rem);
  line-height: 1;
  font-weight: 800;
  color: var(--tp-brown-dark);
}

.hero-media {
  min-height: 360px;
  border-radius: 8px;
  background:
    radial-gradient(circle at 35% 35%, rgba(255,255,255,.8) 0 9%, transparent 10%),
    linear-gradient(135deg, #8a6042, #d8b89e);
  position: relative;
  overflow: hidden;
}

.hero-media:before,
.hero-media:after {
  content: "";
  position: absolute;
  border-radius: 50%;
  border: 28px solid rgba(255,255,255,.48);
}

.hero-media:before {
  width: 260px;
  height: 260px;
  left: 14%;
  top: 20%;
}

.hero-media:after {
  width: 160px;
  height: 160px;
  right: 16%;
  bottom: 14%;
}

.section-title {
  font-weight: 800;
  color: var(--tp-brown-dark);
}

.soft-band {
  background:
    linear-gradient(rgba(247,241,235,.92), rgba(247,241,235,.92)),
    url("/img/pattern.svg") center / 460px auto repeat;
  border-top: 1px solid var(--tp-line);
  border-bottom: 1px solid var(--tp-line);
}

.product-card {
  height: 100%;
  border: 1px solid var(--tp-line);
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
  transition: transform .18s ease, box-shadow .18s ease;
}

.product-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 35px rgba(61, 40, 28, .12);
}

.product-image {
  aspect-ratio: 1 / 1;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--tp-brown);
  font-size: 3rem;
  border-bottom: 1px solid var(--tp-line);
}

.product-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 8px;
  transition: transform .18s ease;
}

.product-card:hover .product-image img {
  transform: scale(1.035);
}

.product-image-detail {
  aspect-ratio: 1 / 1;
  border: 1px solid var(--tp-line);
  overflow: hidden;
}

.product-image-detail img {
  padding: 4px;
}

.product-main-link {
  width: 100%;
  height: 100%;
  display: block;
  border: 0;
  background: transparent;
  padding: 0;
  cursor: zoom-in;
}

.product-main-link img {
  transition: opacity .16s ease, transform .2s ease;
}

.product-main-link:hover img {
  transform: scale(1.02);
}

.product-lightbox .modal-content {
  border: 0;
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
}

.product-lightbox .modal-body {
  padding: 1rem;
  min-height: min(78vh, 760px);
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    linear-gradient(rgba(255,255,255,.96), rgba(255,255,255,.96)),
    url("/img/pattern.svg") center / 420px auto repeat;
}

.product-lightbox img {
  max-width: 100%;
  max-height: 78vh;
  object-fit: contain;
  display: block;
}

.product-lightbox-close {
  position: absolute;
  top: .75rem;
  right: .75rem;
  z-index: 2;
  background-color: #fff;
  border-radius: 999px;
  opacity: 1;
  box-shadow: 0 8px 24px rgba(46, 37, 32, .16);
}

.product-gallery {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .65rem;
  margin-top: .8rem;
}

.product-gallery-thumb {
  aspect-ratio: 1 / 1;
  border: 1px solid var(--tp-line);
  border-radius: 8px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  padding: 0;
  cursor: pointer;
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.product-gallery-thumb:hover,
.product-gallery-thumb:focus {
  border-color: var(--tp-brown-soft);
  box-shadow: 0 8px 20px rgba(62, 7, 16, .12);
  outline: none;
}

.product-gallery-thumb.active {
  border-color: var(--tp-brown);
  box-shadow: 0 0 0 2px rgba(110, 12, 28, .12);
}

.product-gallery-thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 5px;
}

.breadcrumb {
  --bs-breadcrumb-divider-color: var(--tp-muted);
  margin-bottom: 0;
}

.breadcrumb a {
  color: var(--tp-muted);
  text-decoration: none;
}

.breadcrumb .active {
  color: var(--tp-brown-dark);
  font-weight: 700;
}

.catalog-hero .breadcrumb {
  font-size: .88rem;
}

.catalog-hero {
  background:
    linear-gradient(rgba(255,255,255,.97), rgba(255,255,255,.97)),
    url("/img/pattern.svg") center / 360px auto repeat;
  border-bottom: 1px solid var(--tp-line);
  min-height: 0;
  padding: clamp(.85rem, 2vw, 1.35rem) 0;
}

.catalog-toolbar {
  border: 1px solid var(--tp-line);
  border-radius: 8px;
  background: #fff;
}

.category-list .nav-link {
  border-radius: 6px;
  padding: .55rem .7rem !important;
  color: var(--tp-ink);
}

.category-list .nav-link:hover,
.category-list .nav-link.active {
  background: var(--tp-latte);
  color: var(--tp-brown-dark);
}

.catalog-page {
  background: #fbfaf8;
}

.catalog-page .catalog-hero {
  min-height: 0;
  padding: clamp(.7rem, 1.8vw, 1.15rem) 0;
  background:
    linear-gradient(rgba(255,255,255,.98), rgba(255,255,255,.98)),
    url("/img/pattern.svg") center / 360px auto repeat;
  border-bottom: 1px solid var(--tp-line);
}

.catalog-hero-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
}

.catalog-hero-copy {
  max-width: 850px;
}

.catalog-hero-copy h1 {
  margin: 0;
  color: var(--tp-brown-dark);
  font-size: clamp(1.35rem, 2.25vw, 2rem);
  line-height: 1.05;
  font-weight: 850;
}

.catalog-hero-copy p {
  max-width: 680px;
  margin: .25rem 0 0;
  color: var(--tp-muted);
  font-size: .92rem;
  line-height: 1.35;
}

.catalog-hero-tags,
.catalog-service-strip {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}

.catalog-hero-tags {
  margin-top: 1.35rem;
}

.catalog-hero-tags span,
.catalog-service-strip span {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  border: 1px solid rgba(110, 12, 28, .13);
  border-radius: 999px;
  background: rgba(255, 255, 255, .7);
  color: var(--tp-brown-dark);
  padding: .48rem .75rem;
  font-size: .88rem;
  font-weight: 700;
}

.catalog-service-strip span {
  border-color: rgba(58, 104, 76, .18);
  background: rgba(216, 231, 220, .48);
}

.catalog-cart-link {
  display: grid;
  grid-template-columns: auto auto auto;
  align-items: center;
  gap: .55rem;
  min-width: 0;
  padding: .62rem .78rem;
  border: 1px solid rgba(110, 12, 28, .18);
  border-radius: 8px;
  background: #fff;
  color: var(--tp-brown-dark);
  text-decoration: none;
  box-shadow: none;
  font-size: .9rem;
}

.catalog-cart-link:hover,
.catalog-cart-link:focus {
  color: var(--tp-brown);
  border-color: var(--tp-brown-soft);
}

.catalog-cart-link strong {
  display: inline-flex;
  min-width: 24px;
  height: 24px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--tp-brown);
  color: #fff;
  font-size: .82rem;
}

.catalog-section {
  padding: clamp(2rem, 5vw, 4.25rem) 0;
}

.catalog-page .catalog-toolbar {
  padding: 1rem;
  border: 1px solid rgba(110, 12, 28, .11);
  border-radius: 8px;
  background: rgba(255, 255, 255, .88);
  box-shadow: 0 16px 40px rgba(46, 37, 32, .07);
}

.catalog-sidebar {
  backdrop-filter: blur(8px);
}

.catalog-sidebar-head {
  padding-bottom: .9rem;
  margin-bottom: .65rem;
  border-bottom: 1px solid var(--tp-line);
}

.catalog-sidebar-head span,
.catalog-results-eyebrow,
.catalog-product-category {
  color: var(--tp-brown);
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.catalog-sidebar-head h2,
.catalog-results-head h2 {
  margin: .15rem 0 0;
  color: var(--tp-brown-dark);
  font-weight: 850;
}

.catalog-sidebar-head h2 {
  font-size: 1.2rem;
}

.catalog-page .category-list {
  gap: .18rem;
}

.catalog-page .category-list .nav-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-radius: 8px;
  padding: .72rem .8rem !important;
  color: var(--tp-ink);
  font-weight: 750;
}

.catalog-page .category-list .nav-link:hover,
.catalog-page .category-list .nav-link.active {
  background: #f7f1eb;
  color: var(--tp-brown-dark);
}

.catalog-page .category-list .nav-link.active {
  box-shadow: inset 3px 0 0 var(--tp-brown);
}

.catalog-mobile-filter {
  margin-bottom: 1.25rem;
}

.catalog-filter-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.5rem;
  padding: .85rem 0;
  border-top: 1px solid var(--tp-line);
  border-bottom: 1px solid var(--tp-line);
}

.catalog-filter-summary {
  display: grid;
  gap: .12rem;
}

.catalog-filter-summary span {
  color: var(--tp-muted);
  font-size: .75rem;
  font-weight: 850;
  text-transform: uppercase;
}

.catalog-filter-summary strong {
  color: var(--tp-brown-dark);
  font-size: 1rem;
}

.catalog-category-select {
  width: min(360px, 100%);
  min-height: 44px;
  border: 1px solid var(--tp-line);
  border-radius: 7px;
  background: #fff;
  color: var(--tp-ink);
  padding: 0 2.4rem 0 .9rem;
  font-weight: 750;
  appearance: none;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--tp-brown-dark) 50%),
    linear-gradient(135deg, var(--tp-brown-dark) 50%, transparent 50%);
  background-position:
    calc(100% - 18px) 50%,
    calc(100% - 12px) 50%;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
}

.catalog-category-select:focus {
  border-color: var(--tp-brown-soft);
  outline: 0;
  box-shadow: 0 0 0 .2rem rgba(110, 12, 28, .1);
}

.catalog-results-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.catalog-results-head h2 {
  font-size: clamp(1.5rem, 3vw, 2.15rem);
}

.catalog-results-head p {
  margin: 0;
  color: var(--tp-muted);
  text-align: right;
}

.catalog-results-head p strong {
  color: var(--tp-brown-dark);
}

.catalog-results-head p span {
  display: block;
  font-size: .85rem;
}

.catalog-service-strip {
  margin-bottom: 1.35rem;
}

@media (max-width: 991.98px) {
  .catalog-hero-layout,
  .catalog-results-head {
    display: grid;
    grid-template-columns: 1fr;
  }

  .catalog-cart-link {
    width: fit-content;
  }

  .catalog-results-head p {
    text-align: left;
  }
}

@media (max-width: 575.98px) {
  .catalog-page .catalog-hero {
    padding: .7rem 0 .9rem;
  }

  .catalog-hero-copy h1 {
    font-size: 1.45rem;
  }

  .catalog-hero-tags span,
  .catalog-service-strip span {
    width: 100%;
    border-radius: 8px;
  }

  .catalog-filter-bar {
    display: grid;
    gap: .7rem;
    padding: .75rem 0;
  }

  .catalog-category-select {
    width: 100%;
  }

  .catalog-cart-link {
    width: 100%;
    justify-content: center;
  }

}

.product-detail-panel {
  border: 1px solid var(--tp-line);
  border-radius: 8px;
  background: #fff;
}

.related-products {
  border-top: 1px solid var(--tp-line);
}

.related-product-body {
  padding: 1rem;
  min-height: 220px;
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: .55rem;
}

.related-product-body h3,
.related-product-body p {
  margin-bottom: 0;
}

.related-product-body p {
  font-size: .92rem;
  line-height: 1.42;
}

.product-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
}

.product-meta span {
  border: 1px solid var(--tp-line);
  border-radius: 999px;
  padding: .35rem .7rem;
  color: var(--tp-muted);
  font-size: .9rem;
}

.about-hero {
  min-height: 320px;
  background: linear-gradient(rgba(61, 40, 28, .28), rgba(61, 40, 28, .28)), url("/img/about/breadcrumbs5.png") center / cover no-repeat;
  color: #fff;
  display: flex;
  align-items: end;
}

.about-photo {
  border-radius: 8px;
  border: 1px solid var(--tp-line);
  background: #fff;
  overflow: hidden;
}

.about-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.about-story-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
}

.about-story-grid .about-photo {
  aspect-ratio: 4 / 3;
}

.about-production {
  background:
    linear-gradient(rgba(255,255,255,.84), rgba(255,255,255,.84)),
    url("/img/pattern.svg") center / 520px auto repeat,
    url("/img/about/chisiamo_px.jpg") center / cover no-repeat;
  border-top: 1px solid var(--tp-line);
  border-bottom: 1px solid var(--tp-line);
}

.brand-strip {
  border-top: 1px solid var(--tp-line);
  border-bottom: 1px solid var(--tp-line);
  background:
    linear-gradient(rgba(255,255,255,.94), rgba(255,255,255,.94)),
    url("/img/pattern.svg") center / 520px auto repeat;
}

.brand-pill {
  border: 1px solid var(--tp-line);
  border-radius: 8px;
  padding: 1rem;
  text-align: center;
  color: var(--tp-brown-dark);
  font-weight: 800;
  background: #fff;
}

.brand-pill img {
  width: 100%;
  height: 64px;
  object-fit: contain;
  display: block;
}

.cart-qty-control {
  display: grid;
  grid-template-columns: 36px minmax(58px, 72px) 36px;
  gap: .35rem;
  align-items: center;
}

.cart-qty-control .form-control {
  text-align: center;
  padding-left: .35rem;
  padding-right: .35rem;
}

.price {
  color: var(--tp-brown-dark);
  font-weight: 800;
}

.page-kicker {
  color: var(--tp-brown);
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: .78rem;
}

.checkout-box,
.summary-box {
  border: 1px solid var(--tp-line);
  border-radius: 8px;
  background:
    linear-gradient(rgba(255,255,255,.96), rgba(255,255,255,.96)),
    url("/img/pattern.svg") center / 420px auto repeat;
}

.checkout-subbox {
  border: 1px solid var(--tp-line);
  border-radius: 8px;
  background: rgba(255, 255, 255, .86);
}

.checkout-choice-group {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
}

.contact-card a {
  text-decoration: none;
}

.contact-item {
  display: flex;
  gap: .9rem;
  align-items: flex-start;
}

.contact-item > i {
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: var(--tp-latte);
  color: var(--tp-brown);
  flex: 0 0 auto;
}

.contact-label {
  color: var(--tp-brown);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  margin-bottom: .2rem;
}

.btn-whatsapp {
  background: #25d366;
  border-color: #25d366;
  color: #fff;
}

.btn-whatsapp:hover {
  background: #1fb758;
  border-color: #1fb758;
  color: #fff;
}

.legal-page {
  line-height: 1.72;
}

.legal-page h2 {
  color: var(--tp-brown-dark);
  font-size: 1.25rem;
  font-weight: 800;
  margin-top: 2rem;
  margin-bottom: .75rem;
}

.cookie-banner {
  position: fixed;
  left: 1rem;
  right: 1rem;
  bottom: 1rem;
  z-index: 1080;
  display: none;
}

.cookie-banner.show {
  display: block;
}

.cookie-banner-inner {
  max-width: 1120px;
  margin: 0 auto;
  border: 1px solid var(--tp-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 18px 45px rgba(46, 37, 32, .18);
  padding: 1rem;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 1rem;
  align-items: center;
}

.cookie-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  justify-content: flex-end;
}

.cookie-modal {
  border: 0;
  border-radius: 8px;
}

.cookie-option {
  border: 1px solid var(--tp-line);
  border-radius: 8px;
  padding: .9rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: .8rem;
}

.cookie-option p {
  margin: .15rem 0 0;
  color: var(--tp-muted);
  font-size: .92rem;
}

.form-control,
.form-select {
  border-color: var(--tp-line);
  border-radius: 6px;
}

.form-control:focus,
.form-select:focus {
  border-color: var(--tp-brown-soft);
  box-shadow: 0 0 0 .2rem rgba(185, 147, 116, .2);
}

.pagination .page-link {
  border-color: var(--tp-line);
  color: var(--tp-brown-dark);
  border-radius: 6px;
}

.pagination .page-item.active .page-link {
  background: var(--tp-brown);
  border-color: var(--tp-brown);
  color: #fff;
}

.site-footer {
  background:
    linear-gradient(rgba(62,7,16,.96), rgba(62,7,16,.96)),
    url("/img/pattern.svg") center / 520px auto repeat;
  color: #f8eee6;
}

.site-footer a {
  color: #f8eee6;
  display: block;
  text-decoration: none;
  margin-bottom: .35rem;
}

.site-footer a:hover {
  color: var(--tp-latte);
}

.home-hero {
  min-height: min(620px, calc(100vh - 96px));
  display: flex;
  align-items: center;
  color: #fff;
  background:
    linear-gradient(90deg, rgba(34, 10, 12, .78) 0%, rgba(62, 7, 16, .58) 45%, rgba(62, 7, 16, .18) 100%),
    url("/img/homepage/C22C9685.jpg") center / cover no-repeat;
  border-bottom: 1px solid var(--tp-line);
}

.home-hero-content {
  max-width: 760px;
  padding: 5rem 0;
}

.home-hero .hero-title,
.home-hero .page-kicker {
  color: #fff;
}

.home-hero .lead {
  max-width: 650px;
  color: rgba(255,255,255,.9);
}

.home-featured-categories {
  background: transparent;
}

.home-page {
  background:
    linear-gradient(rgba(255,255,255,.96), rgba(255,255,255,.96)),
    url("/img/pattern.svg") center / 520px auto repeat;
}

.home-category-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.home-category-tile {
  min-height: 270px;
  position: relative;
  display: flex;
  align-items: end;
  overflow: hidden;
  border-radius: 8px;
  border: 1px solid var(--tp-line);
  color: #fff;
  text-decoration: none;
  background: var(--tp-brown-dark);
}

.home-category-tile img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .22s ease;
}

.home-category-tile:after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(18, 9, 8, .08) 0%, rgba(34, 10, 12, .78) 100%);
}

.home-category-tile:hover img {
  transform: scale(1.045);
}

.home-category-tile:hover,
.home-category-tile:focus {
  color: #fff;
}

.home-category-tile-body {
  position: relative;
  z-index: 1;
  display: grid;
  gap: .35rem;
  padding: 1.1rem;
}

.home-category-tile-body strong {
  font-size: 1.18rem;
  line-height: 1.1;
}

.home-category-tile-body span:last-child {
  color: rgba(255,255,255,.88);
  line-height: 1.35;
}

.home-category-kicker {
  font-size: .76rem;
  font-weight: 800;
  text-transform: uppercase;
  color: var(--tp-latte);
}

.home-category-rail {
  padding: 4.5rem 0;
  background: transparent;
}

.home-category-rail-soft {
  background: rgba(247,241,235,.74);
  border-top: 1px solid var(--tp-line);
  border-bottom: 1px solid var(--tp-line);
}

.home-rail-head {
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr) auto;
  gap: 1.2rem;
  align-items: center;
  margin-bottom: 1.35rem;
}

.home-rail-image {
  aspect-ratio: 4 / 3;
  display: block;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid var(--tp-line);
  background: #fff;
}

.home-rail-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.home-rail-title {
  max-width: 680px;
}

.home-rail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  justify-content: flex-end;
}

.home-scroll-btn {
  width: 42px;
  height: 42px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.home-product-strip {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(238px, 270px);
  gap: 1rem;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: inline mandatory;
  scroll-padding-inline: .25rem;
  padding: .25rem .25rem 1rem;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.home-product-strip::-webkit-scrollbar {
  display: none;
}

.home-product-card {
  scroll-snap-align: start;
  min-width: 0;
}

.home-product-card .product-image {
  aspect-ratio: 1 / 1;
}

.home-product-body {
  padding: 1rem;
  display: grid;
  min-height: 230px;
  grid-template-rows: auto 1fr auto;
  gap: .55rem;
}

.home-product-body h3 {
  margin-bottom: 0;
  line-height: 1.25;
}

.home-product-body p {
  margin-bottom: 0;
  font-size: .92rem;
  line-height: 1.42;
}

.home-product-bottom {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: .75rem;
}

.home-product-bottom .btn {
  width: 42px;
  height: 38px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.home-empty-strip {
  width: min(420px, 80vw);
  border: 1px solid var(--tp-line);
  border-radius: 8px;
  background: #fff;
  padding: 1.5rem;
  color: var(--tp-muted);
}

.home2-page {
  background:
    linear-gradient(rgba(255,255,255,.96), rgba(255,255,255,.96)),
    url("/img/pattern.svg") center / 520px auto repeat;
}

.home2-hero {
  min-height: min(680px, calc(100vh - 96px));
  display: flex;
  align-items: center;
  color: #fff;
  background:
    linear-gradient(90deg, rgba(34, 10, 12, .82) 0%, rgba(62, 7, 16, .54) 48%, rgba(62, 7, 16, .12) 100%),
    url("/img/homepage/Torrefazione%20Pagnini%20-%20C22C9727.jpg") center / cover no-repeat;
}

.home2-hero-copy {
  max-width: 820px;
  padding: 5.4rem 0;
}

.home2-hero .hero-title,
.home2-hero .page-kicker {
  color: #fff;
}

.home2-hero .lead {
  max-width: 680px;
  color: rgba(255,255,255,.9);
}

.home2-intro {
  border-bottom: 1px solid var(--tp-line);
}

.home2-intro-gallery {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.home2-intro-gallery img,
.home2-product-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 8px;
  border: 1px solid var(--tp-line);
}

.home2-intro-gallery img {
  aspect-ratio: 4 / 3;
}

.home2-product-section {
  padding: 5rem 0;
  border-bottom: 1px solid var(--tp-line);
}

.home2-product-section:nth-of-type(odd) {
  background: rgba(247,241,235,.68);
}

.home2-product-layout {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(330px, 1.1fr) minmax(280px, .78fr);
  gap: 1.5rem;
  align-items: center;
}

.home2-product-section-reverse .home2-product-copy {
  order: 2;
}

.home2-product-section-reverse .home2-product-visual {
  order: 1;
}

.home2-product-section-reverse .home2-product-preview {
  order: 3;
}

.home2-product-copy p {
  font-size: 1.05rem;
  line-height: 1.68;
}

.home2-product-visual {
  position: relative;
  min-height: 430px;
}

.home2-product-photo-main {
  position: absolute;
  inset: 0 13% 9% 0;
}

.home2-product-photo-small {
  position: absolute;
  width: 42%;
  height: 44%;
  right: 0;
  bottom: 0;
  box-shadow: 0 18px 45px rgba(46, 37, 32, .18);
}

.home2-product-preview {
  display: grid;
  gap: .85rem;
}

.home2-mini-product,
.home2-empty-product {
  border: 1px solid var(--tp-line);
  border-radius: 8px;
  background: #fff;
}

.home2-mini-product {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: .85rem;
  padding: .75rem;
  align-items: center;
}

.home2-mini-product-image {
  aspect-ratio: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  border: 1px solid var(--tp-line);
  background: #fff;
  color: var(--tp-brown);
  overflow: hidden;
  text-decoration: none;
}

.home2-mini-product-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 5px;
}

.home2-mini-product h3 {
  font-size: .98rem;
  line-height: 1.24;
  margin-bottom: .25rem;
}

.home2-mini-product h3 a {
  color: var(--tp-ink);
  text-decoration: none;
}

.home2-mini-price {
  color: var(--tp-brown-dark);
  font-weight: 800;
}

.home2-empty-product {
  padding: 1rem;
  color: var(--tp-muted);
}

.home2-closing {
  background: #fff;
}

.home2-pedron .home2-pedron-hero {
  min-height: min(720px, calc(100vh - 96px));
  background:
    linear-gradient(90deg, rgba(34, 10, 12, .76) 0%, rgba(62, 7, 16, .46) 46%, rgba(62, 7, 16, .08) 100%),
    url("/img/homepage/Torrefazione%20Pagnini%20-%20C22C9727.jpg") center / cover no-repeat;
}

.home2-story,
.home2-coffee-intro,
.home2-category-showcase,
.home2-business {
  background:
    linear-gradient(rgba(255,255,255,.95), rgba(255,255,255,.95)),
    url("/img/pattern.svg") center / 520px auto repeat;
}

.home2-story-grid {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  gap: 4rem;
  align-items: start;
}

.home2-story-heading {
  grid-column: 1 / -1;
}

.home2-display-title {
  color: var(--tp-brown-dark);
  font-size: clamp(2.35rem, 5vw, 5.2rem);
  line-height: .96;
  font-weight: 800;
  margin-bottom: 0;
}

.home2-story-text {
  color: var(--tp-muted);
  font-size: 1.08rem;
  line-height: 1.78;
}

.home2-wide-photo {
  aspect-ratio: 16 / 7;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid var(--tp-line);
}

.home2-wide-photo img,
.home2-coffee-image img,
.home2-editorial-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.home2-coffee-intro {
  border-top: 1px solid var(--tp-line);
  border-bottom: 1px solid var(--tp-line);
}

.home2-coffee-grid {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: 3rem;
  align-items: center;
}

.home2-coffee-copy p {
  color: var(--tp-muted);
  font-size: 1.08rem;
  line-height: 1.78;
}

.home2-coffee-image {
  aspect-ratio: 4 / 3;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid var(--tp-line);
}

.home2-category-showcase {
  padding: 5.8rem 0;
  border-bottom: 1px solid var(--tp-line);
}

.home2-category-showcase:nth-of-type(even) {
  background:
    linear-gradient(rgba(247,241,235,.86), rgba(247,241,235,.86)),
    url("/img/pattern.svg") center / 520px auto repeat;
}

.home2-category-layout {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(360px, 1.08fr);
  gap: 3.5rem;
  align-items: center;
}

.home2-category-showcase-reverse .home2-category-copy {
  order: 2;
}

.home2-category-showcase-reverse .home2-category-media {
  order: 1;
}

.home2-category-copy p {
  color: var(--tp-muted);
  font-size: 1.07rem;
  line-height: 1.76;
  margin: 1.4rem 0 1.65rem;
}

.home2-category-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: center;
}

.home2-category-actions span {
  color: var(--tp-muted);
  font-weight: 700;
}

.home2-category-media {
  min-height: 520px;
  position: relative;
}

.home2-editorial-photo {
  position: absolute;
  display: block;
  border-radius: 8px;
  border: 1px solid var(--tp-line);
  overflow: hidden;
  background: #fff;
}

.home2-editorial-photo-large {
  inset: 0 18% 10% 0;
}

.home2-editorial-photo-small {
  width: 38%;
  height: 44%;
  right: 0;
  bottom: 0;
  box-shadow: 0 22px 55px rgba(46, 37, 32, .18);
}

.home2-editorial-photo-small img {
  object-fit: contain;
  padding: 10px;
  background: #fff;
}

.home2-business {
  padding-bottom: 5.5rem;
}

.home2-business-panel {
  border: 1px solid var(--tp-line);
  border-radius: 8px;
  background: #fff;
  padding: 2rem;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1.5rem;
  align-items: center;
}

.home3-page {
  background:
    linear-gradient(rgba(255,255,255,.96), rgba(255,255,255,.96)),
    url("/img/pattern.svg") center / 520px auto repeat;
}

.home3-promo-strip {
  overflow: hidden;
  background: var(--tp-brown);
  color: #fff;
  font-size: .82rem;
  font-weight: 800;
  text-transform: uppercase;
  white-space: nowrap;
}

.home3-promo-track {
  display: flex;
  width: 100%;
  justify-content: center;
  text-align: center;
}

.home3-promo-track span {
  padding: .68rem 1rem;
}

.home3-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
  min-height: 640px;
  border-bottom: 1px solid var(--tp-line);
}

.home3-hero a {
  color: #fff;
  text-decoration: none;
}

.home3-hero-main,
.home3-hero-card,
.home3-window,
.home3-category-card {
  position: relative;
  overflow: hidden;
  display: block;
  background: var(--tp-brown-dark);
}

.home3-hero-main img,
.home3-hero-card img,
.home3-window img,
.home3-category-card img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .26s ease;
}

.home3-hero-main:after,
.home3-hero-card:after,
.home3-window:after,
.home3-category-card:after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(22, 8, 9, .08) 0%, rgba(34, 10, 12, .82) 100%);
}

.home3-hero-main:hover img,
.home3-hero-card:hover img,
.home3-window:hover img,
.home3-category-card:hover img {
  transform: scale(1.045);
}

.home3-hero-copy {
  position: absolute;
  z-index: 1;
  left: clamp(1.2rem, 6vw, 5.5rem);
  bottom: clamp(1.6rem, 6vw, 5rem);
  max-width: 720px;
  display: grid;
  gap: .9rem;
}

.home3-hero-copy .page-kicker {
  color: #fff;
}

.home3-hero-copy strong {
  font-size: clamp(2.4rem, 6vw, 5.7rem);
  line-height: .92;
  font-weight: 800;
}

.home3-hero-copy span:not(.page-kicker) {
  max-width: 560px;
  color: rgba(255,255,255,.9);
  font-size: 1.05rem;
}

.home3-hero-copy em,
.home3-hero-card em,
.home3-window em {
  font-style: normal;
  font-weight: 800;
}

.home3-hero-side {
  display: grid;
  grid-template-rows: 1fr 1fr;
}

.home3-hero-card span {
  position: absolute;
  z-index: 1;
  left: 1.4rem;
  right: 1.4rem;
  bottom: 1.4rem;
  display: grid;
  gap: .3rem;
}

.home3-hero-card strong {
  font-size: 1.55rem;
  line-height: 1.02;
}

.home3-featured {
  background: #fff;
}

.home3-section-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2rem;
  align-items: end;
  margin-bottom: 2rem;
}

.home3-section-head h1,
.home3-reviews h2 {
  color: var(--tp-brown-dark);
  font-size: clamp(2.2rem, 5vw, 4.8rem);
  line-height: .95;
  font-weight: 800;
  margin-bottom: 1rem;
  text-transform: uppercase;
}

.home3-section-head p {
  max-width: 820px;
  color: var(--tp-muted);
  font-size: 1.05rem;
  line-height: 1.68;
  margin-bottom: 0;
}

.home3-category-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.home3-category-card {
  min-height: 360px;
  border-radius: 8px;
  border: 1px solid var(--tp-line);
  color: #fff;
  text-decoration: none;
}

.home3-category-card:hover {
  color: #fff;
}

.home3-category-card span {
  position: absolute;
  z-index: 1;
  left: 1.2rem;
  right: 1.2rem;
  bottom: 1.2rem;
  display: grid;
  gap: .35rem;
}

.home3-category-card strong {
  font-size: 1.55rem;
  line-height: 1.05;
}

.home3-category-card em {
  color: rgba(255,255,255,.9);
  font-style: normal;
  line-height: 1.38;
}

.home3-shop-windows {
  padding: 1rem 0 5rem;
}

.home3-window-grid {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  grid-template-rows: repeat(2, 280px);
  gap: 1rem;
}

.home3-window {
  border-radius: 8px;
  border: 1px solid var(--tp-line);
  color: #fff;
  text-decoration: none;
}

.home3-window:hover {
  color: #fff;
}

.home3-window-large {
  grid-row: span 2;
}

.home3-window span {
  position: absolute;
  z-index: 1;
  left: 1.4rem;
  right: 1.4rem;
  bottom: 1.4rem;
  display: grid;
  gap: .35rem;
}

.home3-window strong {
  font-size: clamp(1.5rem, 3vw, 2.8rem);
  line-height: 1;
}

.home3-window em {
  color: rgba(255,255,255,.9);
}

.home3-reviews {
  background:
    linear-gradient(rgba(247,241,235,.86), rgba(247,241,235,.86)),
    url("/img/pattern.svg") center / 520px auto repeat;
  border-top: 1px solid var(--tp-line);
}

.home3-review-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.home3-review-grid article {
  border: 1px solid var(--tp-line);
  border-radius: 8px;
  background: #fff;
  padding: 1.4rem;
}

.home3-review-grid h3 {
  color: var(--tp-brown-dark);
  font-size: 1.05rem;
  font-weight: 800;
}

.home3-review-grid p {
  color: var(--tp-muted);
  margin-bottom: 0;
  line-height: 1.58;
}

.home3-stars {
  color: var(--tp-brown);
  margin-bottom: .8rem;
}

.home3-bonci .home3-slider,
.home3-bonci .carousel-inner,
.home3-bonci .carousel-item {
  min-height: min(720px, calc(100vh - 96px));
}

.home3-video-hero {
  min-height: min(720px, calc(100vh - 96px));
  position: relative;
  display: flex;
  align-items: end;
  overflow: hidden;
  background: #1f1712 url("/img/homepage/C22C9685.jpg") center / cover no-repeat;
}

.home3-hero-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.home3-slide {
  min-height: min(720px, calc(100vh - 96px));
  position: relative;
  display: flex;
  align-items: end;
  color: #fff;
  text-decoration: none;
  overflow: hidden;
}

.home3-slide:hover {
  color: #fff;
}

.home3-slide img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.home3-slide:after {
  display: none;
}

.home3-slide-copy {
  position: relative;
  z-index: 1;
  width: min(920px, calc(100vw - 2rem));
  margin: 0 0 clamp(2rem, 7vw, 6rem) clamp(1rem, 7vw, 6rem);
  display: grid;
  gap: .9rem;
  text-shadow: 0 4px 18px rgba(0,0,0,.55);
}

.home3-slide-copy .page-kicker {
  color: #fff;
}

.home3-slide-copy strong {
  font-size: clamp(2.5rem, 7vw, 6.4rem);
  line-height: .9;
  font-weight: 800;
  text-transform: uppercase;
}

.home3-slide-copy span:not(.page-kicker) {
  max-width: 660px;
  color: rgba(255,255,255,.9);
  font-size: 1.08rem;
}

.home3-slide-copy em {
  width: fit-content;
  border: 1px solid rgba(255,255,255,.78);
  border-radius: 999px;
  padding: .7rem 1.25rem;
  color: #fff;
  font-style: normal;
  font-weight: 800;
}

.home3-full-intro {
  padding: clamp(3rem, 7vw, 6rem) clamp(1rem, 6vw, 5rem);
  background: #fff;
}

.home3-full-copy {
  max-width: 1280px;
}

.home3-full-copy h1,
.home3-products h2 {
  color: var(--tp-brown-dark);
  font-size: clamp(2.45rem, 6vw, 6rem);
  line-height: .92;
  font-weight: 800;
  text-transform: uppercase;
  margin-bottom: 1rem;
}

.home3-full-copy p {
  max-width: 880px;
  color: var(--tp-muted);
  font-size: 1.12rem;
  line-height: 1.72;
}

.home3-wide-categories {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: 360px;
  gap: 0;
}

.home3-wide-card {
  position: relative;
  display: flex;
  align-items: end;
  color: #fff;
  text-decoration: none;
  overflow: hidden;
  background: var(--tp-brown-dark);
  border: 1px solid rgba(255,255,255,.52);
}

.home3-wide-card:hover {
  color: #fff;
}

.home3-wide-card-large {
  grid-column: span 2;
  grid-row: span 2;
}

.home3-wide-card img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .26s ease;
}

.home3-wide-card:after {
  display: none;
}

.home3-wide-card:hover img {
  transform: scale(1.045);
}

.home3-wide-card span {
  position: relative;
  z-index: 1;
  display: grid;
  gap: .45rem;
  padding: clamp(1rem, 3vw, 2rem);
  text-shadow: 0 4px 18px rgba(0,0,0,.58);
}

.home3-wide-card strong {
  font-size: clamp(1.55rem, 3vw, 3.6rem);
  line-height: .98;
  font-weight: 800;
  text-transform: uppercase;
}

.home3-wide-card em {
  max-width: 430px;
  color: rgba(255,255,255,.9);
  font-style: normal;
  line-height: 1.4;
}

.home3-products {
  background:
    linear-gradient(rgba(255,255,255,.95), rgba(255,255,255,.95)),
    url("/img/pattern.svg") center / 520px auto repeat;
}

.home3-product-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

.home3-product-card {
  height: 100%;
}

.home3-product-body {
  padding: 1rem;
  min-height: 225px;
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: .6rem;
}

.home3-product-body h3 {
  font-size: 1.02rem;
  line-height: 1.24;
  margin-bottom: 0;
}

.home3-product-body h3 a {
  color: var(--tp-ink);
  text-decoration: none;
}

.home3-product-body p {
  color: var(--tp-muted);
  font-size: .92rem;
  line-height: 1.42;
  margin-bottom: 0;
}

.home3-product-bottom {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: .75rem;
}

.home3-product-bottom .btn {
  width: 42px;
  height: 38px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.footer-title,
.footer-heading {
  color: #fff;
  font-weight: 800;
}

.footer-heading {
  font-size: 1rem;
}

.footer-bottom {
  background: rgba(0,0,0,.16);
}

@media (max-width: 767.98px) {
  .brand-logo {
    width: 158px;
    height: 58px;
  }

  .home-hero {
    min-height: 470px;
    background-position: 58% center;
  }

  .home-hero-content {
    padding: 4rem 0;
  }

  .home-category-grid {
    grid-template-columns: 1fr;
  }

  .home-category-tile {
    min-height: 230px;
  }

  .home-rail-head {
    grid-template-columns: 1fr;
  }

  .home-rail-image {
    max-height: 220px;
  }

  .home-rail-actions {
    justify-content: flex-start;
  }

  .home-product-strip {
    grid-auto-columns: minmax(228px, 82vw);
  }

  .home2-hero {
    min-height: 520px;
    background-position: 48% center;
  }

  .home2-hero-copy {
    padding: 4rem 0;
  }

  .home2-intro-gallery,
  .home2-product-layout {
    grid-template-columns: 1fr;
  }

  .home2-product-layout {
    gap: 1.2rem;
  }

  .home2-product-section-reverse .home2-product-copy,
  .home2-product-section-reverse .home2-product-visual,
  .home2-product-section-reverse .home2-product-preview {
    order: initial;
  }

  .home2-product-section {
    padding: 3.8rem 0;
  }

  .home2-product-visual {
    min-height: 320px;
  }

  .home2-mini-product {
    grid-template-columns: 86px minmax(0, 1fr);
  }

  .home2-story-grid,
  .home2-coffee-grid,
  .home2-category-layout,
  .home2-business-panel {
    grid-template-columns: 1fr;
  }

  .home2-story-grid,
  .home2-coffee-grid,
  .home2-category-layout {
    gap: 1.6rem;
  }

  .home2-wide-photo {
    aspect-ratio: 4 / 3;
  }

  .home2-category-showcase {
    padding: 4rem 0;
  }

  .home2-category-showcase-reverse .home2-category-copy,
  .home2-category-showcase-reverse .home2-category-media {
    order: initial;
  }

  .home2-category-media {
    min-height: 350px;
  }

  .home2-editorial-photo-large {
    inset: 0 12% 12% 0;
  }

  .home2-editorial-photo-small {
    width: 42%;
    height: 42%;
  }

  .home2-business-panel .btn {
    width: 100%;
  }

  .home3-hero,
  .home3-section-head,
  .home3-category-grid,
  .home3-window-grid,
  .home3-review-grid {
    grid-template-columns: 1fr;
  }

  .home3-hero {
    min-height: 0;
  }

  .home3-hero-main {
    min-height: 520px;
  }

  .home3-hero-side {
    grid-template-rows: repeat(2, 260px);
  }

  .home3-category-card {
    min-height: 300px;
  }

  .home3-window-grid {
    grid-template-rows: none;
  }

  .home3-window,
  .home3-window-large {
    min-height: 300px;
    grid-row: auto;
  }

  .home3-section-head .btn {
    width: 100%;
  }

  .home3-bonci .home3-slider,
  .home3-bonci .carousel-inner,
  .home3-bonci .carousel-item,
  .home3-video-hero,
  .home3-slide {
    min-height: 520px;
  }

  .home3-slide-copy {
    margin: 0 1rem 4rem;
  }

  .home3-wide-categories,
  .home3-product-grid {
    grid-template-columns: 1fr;
  }

  .home3-wide-categories {
    grid-auto-rows: 310px;
  }

  .home3-wide-card-large {
    grid-column: auto;
    grid-row: auto;
  }

  .hero-media {
    min-height: 260px;
  }

  .btn-cart {
    width: 100%;
    margin-top: .5rem;
  }

  .mobile-cart-link {
    width: 46px;
    min-width: 46px;
    margin-top: 0;
  }

  .cookie-banner {
    left: .65rem;
    right: .65rem;
    bottom: .65rem;
  }

  .cookie-banner-inner {
    grid-template-columns: 1fr;
  }

  .cookie-actions .btn {
    flex: 1 1 auto;
  }

}

/* Lighter headings across public pages, including experimental layouts. */
body h1,body h2,body h3,body h4,body h5,body h6,body .section-title,body .hero-title,body .footer-title,body .footer-heading{font-weight:400!important}
.product-use{display:flex;gap:16px;align-items:flex-start;margin:24px 0;padding:20px 0;border-top:1px solid var(--tp-line);border-bottom:1px solid var(--tp-line)}
.product-use-copy{flex:1;min-width:0}.product-use-copy h2{font-size:18px;margin:0 0 10px}.product-use-copy p{font-size:13px;line-height:1.65;margin:0;color:var(--tp-muted)}
.product-video{flex:0 0 46%;aspect-ratio:16/9;overflow:hidden;border-radius:5px;background:#171713;scroll-margin-top:130px}
.product-video-play{position:relative;display:block;width:100%;height:100%;padding:0;border:0;background:#171713;cursor:pointer;color:white}.product-video-play img{width:100%;height:100%;object-fit:cover;opacity:.8}.product-video-play-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:32px;border-radius:7px;background:#6e0c1c;display:grid;place-items:center}.product-video iframe{display:block;width:100%;height:100%;border:0}
.product-video-gallery-link{display:inline-flex;position:relative;margin-top:16px;color:var(--tp-ink);text-decoration:none;align-items:center;gap:12px;font-size:13px}.product-video-gallery-link img{width:100px;aspect-ratio:16/9;object-fit:cover;border-radius:4px}.product-video-gallery-link:hover{color:var(--tp-brown)}
@media(max-width:420px){.product-use{flex-direction:column}.product-video{flex:auto;width:100%}}
.product-video.is-playing{flex:0 0 auto;width:100%;min-height:210px}.product-use:has(.product-video.is-playing){flex-direction:column}.product-video.is-playing iframe{min-height:210px}
.product-gallery-video-thumb{position:relative}.product-gallery-play{position:absolute;inset:0;display:grid;place-items:center;background:#0003;color:white}.product-gallery-play i{background:#6e0c1c;padding:9px 12px;border-radius:5px}.product-gallery-video-stage{aspect-ratio:1/1;display:grid;align-items:center;background:#171713;border-radius:5px;overflow:hidden}.product-gallery-video-stage[hidden]{display:none}.product-gallery-video-stage iframe{width:100%;height:100%;border:0}.product-gallery{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}.product-gallery-thumb{flex:0 0 85px}
@media(max-width:991.98px){.site-header .mobile-site-search{flex:0 0 100%;width:100%;padding-top:8px}.site-header .mobile-site-search .site-search{margin:0 0 6px;width:100%}.site-header .search-nav-item{display:none}.site-header .mobile-site-search .search-autocomplete{top:calc(100% + .45rem);bottom:auto}}

/* Dark overlay navigation for homepage video and about-page slideshow. */
.site-header.site-header--overlay{position:absolute;top:0;left:0;right:0;background:linear-gradient(to bottom,rgba(0,0,0,1) 0%,rgba(0,0,0,0) 100%);border-bottom:0;color:#fff;backdrop-filter:none}
.site-header--overlay .brand-logo{filter:brightness(0) invert(1)}
.site-header--overlay .nav-link,.site-header--overlay .navbar-brand,.site-header--overlay .mobile-cart-link{color:#fff}
.site-header--overlay .nav-link:hover,.site-header--overlay .nav-link:focus{color:#e8d9c9}
.site-header--overlay .site-search .form-control{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.5)}
.site-header--overlay .site-search .form-control::placeholder{color:rgba(255,255,255,.85)}
.site-header--overlay .site-search .btn,.site-header--overlay .btn-cart,.site-header--overlay .mobile-cart-link{background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.6);color:#fff}
.site-header--overlay .site-search .btn:hover,.site-header--overlay .btn-cart:hover{background:rgba(255,255,255,.2);color:#fff}
.site-header--overlay .navbar-toggler{border-color:rgba(255,255,255,.65)}
.site-header--overlay .navbar-toggler-icon{filter:brightness(0) invert(1)}
.site-header--overlay .products-dropdown{background:rgba(15,15,15,.97);border-color:rgba(255,255,255,.25)}
.site-header--overlay .products-dropdown .dropdown-item{color:#fff;background:transparent}
.site-header--overlay .products-dropdown .dropdown-item:hover,.site-header--overlay .products-dropdown .dropdown-item:focus{background:rgba(255,255,255,.16);color:#fff}
.site-header--overlay .products-dropdown-all{border-color:rgba(255,255,255,.2)}
.site-header--overlay .search-autocomplete{color:var(--tp-ink);background:#fff}
@media(max-width:991.98px){.site-header--overlay .navbar-collapse{max-height:65svh;overflow-y:auto}.site-header--overlay .products-dropdown{background:rgba(0,0,0,.25)}}
.site-header--overlay .nav-link{white-space:nowrap}.site-header--overlay .btn-cart{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.site-header--overlay .search-input-wrap{min-width:0}@media(min-width:992px) and (max-width:1199.98px){.site-header--overlay .brand-logo{width:165px}.site-header--overlay .site-search{margin:0 .5rem}.site-header--overlay .site-search .form-control{min-width:0}}


/* Category images fade naturally into the white page content. */
.page-category-banner{position:relative;height:450px;min-height:320px;max-height:450px;overflow:hidden;background:#fff;isolation:isolate}
.page-category-banner img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 45%}
.page-category-banner:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(255,255,255,0) 35%,rgba(255,255,255,.2) 60%,#fff 100%);pointer-events:none}
.page-category-banner + main .catalog-hero{background:#fff;border:0;padding-top:20px}
@media(max-width:650px){.page-category-banner{height:65vw;min-height:300px;max-height:420px}.page-category-banner img{object-position:center}}


.product-explainer-videos{display:grid;grid-template-columns:1fr;gap:14px;width:100%;flex:0 0 100%}
.product-use:has(.product-explainer-videos){flex-direction:column}
.product-explainer-videos .product-video{width:100%;min-height:210px;aspect-ratio:16/9}
.product-explainer-videos .product-video-play{min-height:210px}
.product-video-number{position:absolute;bottom:3px;right:4px;z-index:1;color:#fff;background:#171713;padding:0 5px;font-size:11px;border-radius:3px}
.product-zoom-toolbar{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;padding:12px 50px 12px 12px;background:#fff;position:relative;z-index:1}
.product-zoom-toolbar output{min-width:48px;text-align:center;color:#171713}
.product-lightbox .product-zoom-viewport{display:block;overflow:auto;max-height:75svh;overscroll-behavior:contain;text-align:center}
.product-lightbox .product-zoom-viewport img{display:block;margin:auto;max-width:100%;max-height:70svh;width:auto;height:auto;cursor:zoom-in}
.product-lightbox .product-lightbox-close{z-index:2}
.product-main-link{cursor:zoom-in}
