/* Customer-facing refresh: light canvas, spacious product cards. */
:root { --max: 1440px; }
html { background: #f5f6f3; }
body { background: #f5f6f3; }
body::before, body::after { display: none; }
.promo-tiles { display: grid; }
.homepage-product-section { background: white; padding: 28px; }
.homepage-section-grid { grid-auto-columns: minmax(245px, 270px); gap: 20px; }
.homepage-section-grid .product-card { min-height: 440px; }
.homepage-section-grid .product-card figure { height: 220px; }
.homepage-section-grid .product-card h3, .product-card h3 { font-size: 1.12rem; line-height: 1.35; }
.homepage-section-grid .product-card .body { padding: 18px; }
.product-grid { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 20px; }
.product-grid .product-card figure { height: 230px; }
.home-journal { width: min(var(--max), calc(100% - 32px)); margin: 40px auto; color: #172019; }
.home-journal h2 { font-size: clamp(28px, 3vw, 42px); }
.home-journal .homepage-section-head > a { color: #244a2d; font-weight: 700; }
.home-journal-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; margin-top: 24px; }
.home-journal-card { background: white; border: 1px solid #dfe4db; border-radius: 12px; color: inherit; text-decoration: none; overflow: hidden; }
.home-journal-card img { width: 100%; height: 190px; object-fit: cover; }
.home-journal-card > div { padding: 22px; }
.home-journal-card h3 { font-size: 1.2rem; line-height: 1.4; margin: 12px 0; }
.home-journal-card p { font-size: .95rem; line-height: 1.6; color: #586253; }
.home-journal-card span { font-weight: 700; color: #244a2d; }
.added-dialog { width: min(980px, calc(100% - 32px)); max-height: 90dvh; padding: 32px; border: 0; border-radius: 16px; color: #172019; background: #fff; overflow: auto; box-shadow: 0 24px 90px #0003; }
.added-dialog::backdrop { background: #12201799; }
.added-dialog h2 { padding-right: 30px; font-size: 1.6rem; line-height: 1.35; }
.added-close { position: absolute; top: 14px; right: 14px; width: 44px; height: 44px; border: 0; border-radius: 50%; font-size: 28px; cursor: pointer; background: #f0f3ed; color: #172019; }
.added-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 24px 0 32px; }
.added-recommendations { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.added-recommendations .product-card figure { height: 165px; }
.added-recommendations .product-card p { display: none; }
.category-bar .store-menu-item:first-child > .store-menu-primary > .store-menu-link { color: #174e2b; }
@media (max-width: 1000px) {
  .home-journal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .homepage-product-section { padding: 18px; }
  .homepage-section-grid { grid-auto-columns: minmax(230px, 76vw); gap: 16px; }
  .homepage-section-grid .product-card figure { height: 205px; }
  .product-grid { grid-template-columns: 1fr; }
  .product-grid .product-card figure { height: 250px; }
  .home-journal-grid, .added-recommendations { grid-template-columns: 1fr; }
  .home-journal .homepage-section-head { align-items: start; flex-direction: column; }
  .added-dialog { padding: 24px 18px; }
  .added-actions { flex-direction: column; }
  .added-recommendations .product-card figure { height: 200px; }
}

.homepage-section-grid .product-card h3, .product-grid .product-card h3, .added-recommendations .product-card h3 { -webkit-line-clamp: unset; overflow: visible; }

/* Quiet banner actions; the whole banner remains clickable. */
.promo-tiles .promo-copy small {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  max-width: 100%;
  min-height: 44px;
  margin-top: 22px;
  padding: 11px 18px;
  border: 1px solid rgba(255, 255, 255, .38);
  border-radius: 6px;
  background: rgba(255, 255, 255, .12);
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
}
.promo-tiles .promo-tile:hover small,
.promo-tiles .promo-tile:focus-visible small {
  background: rgba(255, 255, 255, .22);
  border-color: rgba(255, 255, 255, .65);
  color: #fff;
}

/* Horizontally scrollable homepage banners. */
.promo-carousel { position: relative; width: min(var(--max), calc(100% - 32px)); margin: 24px auto 0; }
.promo-carousel .promo-tiles {
  width: 100%; margin: 0; padding: 4px 0 20px;
  display: grid; grid-template-columns: none; grid-auto-flow: column;
  grid-auto-columns: calc((100% - 72px) / 4.25 * 1.08); gap: 20px;
  overflow-x: auto; overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory; scroll-padding-inline: 0;
  scrollbar-width: thin; scrollbar-color: #a6b7a8 transparent;
}
.promo-carousel .promo-tile { scroll-snap-align: start; min-height: 475.2px; height: 528px; aspect-ratio: auto; }
.promo-carousel .promo-copy { padding: 22px 18px; }
.promo-carousel .promo-copy strong { font-size: clamp(23px, 1.9vw, 29px); }
.promo-carousel .promo-copy small { margin-top: 18px; padding: 10px 14px; }
.promo-carousel .promo-tiles:focus-visible { outline: 2px solid #174e2b; outline-offset: 4px; }
/* Keep navigation level with the middle of the banners. */
.promo-carousel-controls { position: absolute; inset: 4px 0 20px; z-index: 2; display: flex; align-items: center; justify-content: space-between; pointer-events: none; }
.promo-carousel-controls button { display: grid; place-items: center; width: 46px; height: 46px; padding: 0; border: 1px solid rgba(255,255,255,.75); border-radius: 50%; background: rgba(250,251,248,.94); color: #243328; box-shadow: 0 2px 5px #0000000a, 0 6px 20px #00000014; backdrop-filter: blur(10px); cursor: pointer; pointer-events: auto; transition: background 160ms ease, box-shadow 160ms ease, scale 160ms ease; }
.promo-carousel-controls button svg { display: block; width: 22px; height: 22px; }
.promo-carousel-controls button:first-child { transform: translateX(50%); }
.promo-carousel-controls button:last-child { transform: translateX(-50%); }
.promo-carousel-controls button:hover:not(:disabled) { background: #fff; box-shadow: 0 4px 18px #00000024; scale: 1.06; }
.promo-carousel-controls button:active:not(:disabled) { scale: .96; }
.promo-carousel-controls button:disabled { opacity: .3; cursor: default; }
.promo-carousel-controls button:focus-visible { outline: 3px solid #c9eace; outline-offset: 3px; }
.promo-carousel-controls [data-promo-position] { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 560px) { .promo-carousel-controls button { width: 40px; height: 40px; } }
@media (max-width: 1050px) { .promo-carousel .promo-tiles { grid-auto-columns: 41.04%; gap: 18px; } }
@media (max-width: 560px) {
  .promo-carousel { width: calc(100% - 16px); margin-top: 12px; }
  .promo-carousel .promo-tiles { grid-auto-columns: 84.24%; gap: 14px; }
  .promo-carousel .promo-tile { min-height: 475.2px; height: 514.8px; }
}

/* Keep language, account and cart controls the same size. */
.shop-header .quick-nav { align-items: center; gap: 8px; overflow: visible; }
.shop-header .shop-language-switcher,
.shop-header .quick-nav > a,
.shop-header .header-main > .cart-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 112px;
  width: 112px;
  height: 44px;
  min-height: 44px;
  margin-top: 0;
  margin-bottom: 0;
  padding: 0 12px;
  border: 1px solid #d9ded7;
  border-radius: 8px;
  font-family: var(--font-main);
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  text-decoration: none;
  box-sizing: border-box;
}
.shop-header .shop-language-switcher select {
  width: 100%;
  min-height: 0;
  height: 100%;
  margin: 0;
  padding: 0 14px 0 4px;
  font: inherit;
  line-height: normal;
}
.shop-header .header-main > .cart-button strong {
  flex: 0 0 auto;
  min-width: 24px;
  height: 24px;
  margin-left: 6px;
  font-size: 13px;
}
@media (max-width: 600px) {
  .shop-header .quick-nav { gap: 5px; }
  .shop-header .shop-language-switcher,
  .shop-header .quick-nav > a,
  .shop-header .header-main > .cart-button {
    flex-basis: 76px;
    width: 76px;
    height: 40px;
    min-height: 40px;
    padding: 0 6px;
    font-size: 11px;
  }
  .shop-header .header-main > .cart-button strong {
    min-width: 18px;
    height: 18px;
    margin-left: 4px;
    font-size: 11px;
  }
}

/* Match the gap inside the account group to the adjacent cart gap. */
.shop-header .header-main { column-gap: 8px; }
@media (max-width: 600px) {
  .shop-header .header-main { column-gap: 5px; }
}

/* A looping carousel has no fixed scrollbar endpoints. */
.promo-carousel .promo-tiles { scrollbar-width: none; }
.promo-carousel .promo-tiles::-webkit-scrollbar { display: none; }

/* Product hierarchy: quiet headings, aligned copy and one clear purchase action. */
.homepage-section-grid .product-card,
.product-grid .product-card {
  background: transparent;
  border: 0;
  border-radius: 20px;
  box-shadow: none;
  overflow: visible;
  transition: box-shadow .18s ease, background-color .18s ease;
}
.homepage-section-grid .product-card:hover,
.product-grid .product-card:hover { box-shadow: none; transform: none; }
@media (hover: hover) and (pointer: fine) {
  .homepage-section-grid .product-card:hover,
  .product-grid .product-card:hover {
    background: #f2f6ef;
    box-shadow: none;
  }
}
.homepage-section-grid .product-card:focus-within,
.product-grid .product-card:focus-within {
  background: #f2f6ef;
  box-shadow: none;
}
.homepage-section-grid .product-card::after,
.product-grid .product-card::after {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid transparent;
  border-radius: 20px;
  pointer-events: none;
  z-index: 5;
}
.homepage-section-grid .product-card:hover::after,
.product-grid .product-card:hover::after { border-color: #c7d7c2; }
.homepage-section-grid .product-card:focus-within::after,
.product-grid .product-card:focus-within::after { border-color: #72966a; }
.homepage-section-grid .product-card figure,
.product-grid .product-card figure { transition: background-color .18s ease; }
.homepage-section-grid .product-card:hover figure,
.product-grid .product-card:hover figure,
.homepage-section-grid .product-card:focus-within figure,
.product-grid .product-card:focus-within figure { background: #edf3e9; }
.homepage-section-grid .product-card figure,
.product-grid .product-card figure {
  background: #f5f5f4;
  border-radius: 20px;
  overflow: hidden;
  margin: 0;
}
.product-card figure img { mix-blend-mode: multiply; }
.homepage-product-section .homepage-section-head h2 {
  max-width: none;
  font-size: 2.4rem;
  line-height: 1.12;
  letter-spacing: -.025em;
  text-wrap: pretty;
}
.homepage-section-grid { grid-auto-columns: minmax(280px, 300px); margin-top: 16px; }
.homepage-section-grid .product-card figure,
.product-grid .product-card figure { height: 180px; }
.product-card figure img { transform-origin: center; }
.homepage-section-grid .product-card .body,
.product-grid .product-card .body { padding: 14px 6px 12px; gap: 8px; }
.homepage-section-grid .product-card h3,
.product-grid .product-card h3,
.added-recommendations .product-card h3 {
  height: 2.4em;
  min-height: 2.4em;
  margin: 0;
  font-size: 1rem;
  line-height: 1.2;
}
.product-card h3 button { -webkit-line-clamp: 2; line-clamp: 2; overflow-wrap: anywhere; }
.homepage-section-grid .product-card p,
.product-grid .product-card p {
  display: block;
  min-height: 2.9em;
  margin: 0 0 4px;
  font-size: .875rem;
  line-height: 1.45;
  color: #526052;
  overflow: visible;
  -webkit-line-clamp: unset;
}
.product-card .product-badges,
.product-card .product-badges:empty {
  display: flex;
  align-items: center;
  min-height: 26px;
  margin: 0 0 4px;
  gap: 5px;
}
.product-card .product-badge,
.product-card .tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: 24px;
  padding: 4px 8px;
  border-radius: 5px;
  font-size: 11px;
  font-weight: 600;
  line-height: 16px;
  background: #edf3e9;
  color: #385032;
}
.product-card .price-row { align-items: stretch; flex-direction: column; gap: 12px; }
.product-card .price-row .price { color: #17291c; font-size: 1.3rem; font-weight: 900; }
.product-card .price-row > button {
  width: 100%;
  min-height: 44px;
  padding: 10px 14px;
  border: 1px solid #7a9975;
  border-radius: 7px;
  background: #cee7c8;
  color: #18351f;
  font-size: .95rem;
  font-weight: 800;
  line-height: 1.35;
}
.product-card .price-row > button:hover:not(:disabled) { background: #bcdcb5; border-color: #557951; transform: none; }
.product-card .price-row > button[data-detail-open] { background: #f0f5ed; border-color: #a6b89f; font-weight: 700; }
.product-card .price-row > button:disabled { background: #edf0eb; border-color: #cbd2c7; color: #667160; opacity: 1; cursor: not-allowed; }
.product-card .detail-link { width: fit-content; min-height: 32px; margin-top: 8px; color: #576452; font-size: .8rem; font-weight: 500; text-decoration-color: #a9b3a4; }
.product-card .detail-link:hover { color: #18351f; }
.product-card button:focus-visible { outline: 2px solid #365e37; outline-offset: 3px; }
@media (max-width: 600px) {
  .homepage-product-section .homepage-section-head h2 { font-size: 1.48rem; }
  .homepage-section-grid { grid-auto-columns: minmax(260px, 82vw); gap: 14px; }
  .homepage-section-grid .product-card figure,
  .product-grid .product-card figure { height: 170px; }
}
@media (prefers-reduced-motion: reduce) {
  .homepage-section-grid .product-card,
  .product-grid .product-card { transition: none; }
}

/* Compact the complete card, including the text and purchase controls. */
.homepage-section-grid .product-card,
.product-grid .product-card { min-height: 0; }
.homepage-section-grid .product-card .body,
.product-grid .product-card .body { padding: 10px 6px; gap: 6px; }
.homepage-section-grid .product-card p,
.product-grid .product-card p {
  min-height: 0;
  height: 1.45em;
  margin: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: .8rem;
}
.product-card .product-badges,
.product-card .product-badges:empty { min-height: 24px; margin-bottom: 0; }
.homepage-section-grid .product-card .price-row,
.product-grid .product-card .price-row {
  flex-direction: row;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
}
.homepage-section-grid .product-card .price-row > button,
.product-grid .product-card .price-row > button {
  width: auto;
  min-height: 38px;
  padding: 8px 10px;
  font-size: .8rem;
}
.homepage-section-grid .product-card .detail-link,
.product-grid .product-card .detail-link { display: none; }
@media (max-width: 600px) {
  .homepage-section-grid .product-card .price-row,
  .product-grid .product-card .price-row { flex-wrap: wrap; }
}

/* Narrow portrait cards: size the grid by card width rather than four columns. */
.product-card figure { position: relative; }
.product-image-badge { position: absolute; top: 12px; left: 12px; z-index: 3; padding: 6px 9px; border-radius: 6px; background: #e3ecdf; color: #244a2d; font: 700 11px/1.2 Arial,sans-serif; text-transform: uppercase; pointer-events: none; }
.product-grid { grid-template-columns: repeat(auto-fill, minmax(190px, 220px)); gap: 24px 18px; justify-content: start; }
.homepage-section-grid { grid-auto-columns: 220px; gap: 18px; }
.homepage-section-grid .product-card,
.product-grid .product-card { min-height: 410px; border-radius: 14px; }
.homepage-section-grid .product-card::after,
.product-grid .product-card::after { border-radius: 14px; }
.homepage-section-grid .product-card figure,
.product-grid .product-card figure { height: 210px; border-radius: 14px; }
.homepage-section-grid .product-card .body,
.product-grid .product-card .body { padding: 12px 10px; gap: 7px; }
.homepage-section-grid .product-card h3,
.product-grid .product-card h3 { font-size: .9rem; height: 2.6em; min-height: 2.6em; line-height: 1.3; overflow: hidden; }
.product-card h3 button { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; max-height: 2.6em; line-height: 1.3; padding: 0; }
.product-card .product-badges { flex-wrap: wrap; }
.product-card .product-badge,
.product-card .tag { font-size: 10px; padding: 3px 6px; min-height: 21px; }
.homepage-section-grid .product-card .price-row,
.product-grid .product-card .price-row { flex-direction: column; align-items: stretch; margin-top: auto; gap: 8px; }
.homepage-section-grid .product-card .price-row > button,
.product-grid .product-card .price-row > button { width: 100%; }
@media (max-width: 600px) {
  .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 10px; }
  .homepage-section-grid { grid-auto-columns: 180px; }
  .homepage-section-grid .product-card figure,
  .product-grid .product-card figure { height: 180px; }
  .homepage-section-grid .product-card,
  .product-grid .product-card { min-height: 370px; }
}

/* Product benefits remain in the detail; cards keep only the image promotion. */
.homepage-section-grid .product-card .product-badges,
.product-grid .product-card .product-badges,
.added-recommendations .product-card .product-badges { display: none; }

/* Unified UP editorial cover typography; photographs remain independently editable. */
.blog-card-image, .home-journal-cover { position: relative; isolation: isolate; }
.home-journal-cover { margin: 0; height: 190px; overflow: hidden; }
.blog-card-image::after, .home-journal-cover::after { display: none; }
.blog-card-image .editorial-cover-title, .home-journal-cover .editorial-cover-title { display: none; }

/* Empty carousel state must not override page-level visibility. */
.promo-carousel[data-empty="true"] { display: none !important; }

/* A focused basket confirmation, with a compact optional discovery shelf. */
.added-dialog {
  width: min(840px, calc(100% - 32px));
  max-height: calc(100dvh - 48px);
  padding: 0;
  border: 1px solid #dbe2d8;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 32px 100px #1022183d;
  overscroll-behavior: contain;
}
.added-dialog::backdrop { background: #122219a3; backdrop-filter: blur(5px); }
.added-header { display: flex; align-items: center; gap: 16px; padding: 26px 32px; color: #fff; background: #183b2b; }
.added-success-icon { flex: 0 0 46px; width: 46px; height: 46px; display: grid; place-items: center; border: 1px solid #b5d8b65c; border-radius: 50%; color: #d5edc5; background: #ffffff0d; }
.added-success-icon svg { width: 26px; height: 26px; }
.added-dialog .added-kicker { margin: 0 0 6px; color: #c4d4c7; font-size: 10px; font-weight: 600; letter-spacing: .15em; line-height: 1.4; text-transform: uppercase; }
.added-dialog h2 { max-width: none; margin: 0; padding: 0; color: inherit; font-size: 26px; font-weight: 750; line-height: 1.2; letter-spacing: -.025em; }
.added-dialog .added-close { position: static; flex: 0 0 38px; display: grid; place-items: center; width: 38px; height: 38px; min-height: 38px; margin-left: auto; padding: 8px; border: 1px solid #ffffff38; border-radius: 50%; background: transparent; color: #fff; }
.added-close svg { width: 20px; height: 20px; }
.added-dialog .added-close:hover { background: #ffffff15; }
.added-content { padding: 26px 32px 28px; }
.added-product-summary { display: grid; grid-template-columns: 104px minmax(0,1fr) auto; align-items: center; gap: 20px; }
.added-product-summary figure { overflow: hidden; display: grid; place-items: center; height: 108px; margin: 0; padding: 10px; border-radius: 12px; background: #f4f6f0; }
.added-product-summary figure img { width: 100%; height: 88px; object-fit: contain; mix-blend-mode: multiply; }
.added-quantity { display: inline-flex; align-items: center; gap: 5px; color: #42664b; font-size: 12px; font-weight: 600; }
.added-quantity svg { width: 14px; height: 14px; }
.added-product-copy h3 { margin: 7px 0 6px; font-size: 20px; font-weight: 750; line-height: 1.3; letter-spacing: -.015em; }
.added-product-copy p { margin: 0; color: #697568; font-size: 13px; }
.added-product-price { font-size: 22px; font-weight: 800; white-space: nowrap; }
.added-checkout-row { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-top: 24px; padding-top: 22px; border-top: 1px solid #e7ebe3; }
.added-cart-summary { display: grid; gap: 4px; }
.added-cart-summary > span { display: flex; align-items: center; gap: 8px; color: #52634f; font-size: 13px; }
.added-cart-summary > span small { padding: 2px 7px; border-radius: 12px; background: #edf2e8; color: #43603e; font-size: 11px; }
.added-cart-summary > strong { color: #193b2a; font-size: 27px; font-weight: 800; line-height: 1.2; letter-spacing: -.03em; }
.added-cart-summary > small { color: #778174; font-size: 11px; }
.added-dialog .added-actions { display: grid; justify-items: stretch; gap: 8px; min-width: 246px; margin: 0; }
.added-cart-button { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 48px; padding: 12px 18px; border: 1px solid #183b2b; border-radius: 9px; background: #183b2b; color: #fff; font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; }
.added-cart-button svg { width: 20px; height: 20px; }
.added-cart-button:hover { background: #28523b; }
.added-back-button { min-height: 32px; padding: 4px 12px; border: 0; border-radius: 6px; background: transparent; color: #52634f; font: inherit; font-size: 12px; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: #b3c0ac; cursor: pointer; }
.added-back-button:hover { color: #193b2a; }
.added-related { padding: 24px 32px 28px; border-top: 1px solid #e4e9de; background: #f5f7f1; }
.added-related-heading { display: flex; justify-content: space-between; align-items: end; gap: 16px; margin-bottom: 16px; }
.added-related .added-kicker { color: #7b8a72; font-size: 9px; }
.added-related-heading h3 { margin: 0; font-size: 20px; font-weight: 750; line-height: 1.3; letter-spacing: -.02em; }
.added-related-heading > span { padding-bottom: 2px; color: #7b8775; font-size: 11px; white-space: nowrap; }
.added-dialog .added-recommendations { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.added-recommendation { overflow: hidden; border: 1px solid #e2e8dc; border-radius: 12px; background: #fff; transition: border-color .16s, box-shadow .16s; }
.added-recommendation:hover { border-color: #b0c1a7; box-shadow: 0 4px 14px #243b2310; }
.added-recommendation-image { display: block; width: 100%; padding: 0; border: 0; background: #fff; cursor: pointer; }
.added-recommendation figure { position: relative; height: 116px; margin: 0; overflow: hidden; }
.added-recommendation figure img { position: absolute; inset: 10px; width: calc(100% - 20px); height: calc(100% - 20px); object-fit: contain; transform-origin: center; }
.added-recommendation-copy { padding: 8px 12px 12px; }
.added-recommendation h4 { min-height: 2.7em; margin: 0 0 12px; font-size: 13px; font-weight: 700; line-height: 1.35; }
.added-recommendation h4 button { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; width: 100%; padding: 0; border: 0; color: #273c2a; background: transparent; font: inherit; text-align: left; cursor: pointer; }
.added-recommendation-bottom { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.added-recommendation-bottom > strong { font-size: 16px; font-weight: 800; color: #213e2a; }
.added-quick-add { display: inline-flex; align-items: center; justify-content: center; gap: 5px; min-height: 36px; padding: 6px 10px; border: 1px solid #c4d3b9; border-radius: 7px; background: #edf4e6; color: #2d4d2c; font: inherit; font-size: 11px; font-weight: 700; cursor: pointer; }
.added-quick-add span { font-size: 19px; font-weight: 400; line-height: 1; }
.added-quick-add:hover { border-color: #9ab38b; background: #deebd4; }
.added-dialog button:focus-visible { outline: 2px solid #86a67b; outline-offset: 3px; }
.added-header button:focus-visible { outline-color: #e1efc9; }
@media (max-width: 600px) {
  .added-dialog { width: calc(100% - 20px); max-height: calc(100dvh - 24px); border-radius: 18px; }
  .added-header { gap: 12px; padding: 20px; }
  .added-success-icon { flex-basis: 36px; width: 36px; height: 36px; }
  .added-success-icon svg { width: 21px; height: 21px; }
  .added-dialog h2 { font-size: 20px; }
  .added-dialog .added-kicker { font-size: 8px; }
  .added-dialog .added-close { flex-basis: 32px; width: 32px; height: 32px; min-height: 32px; padding: 6px; }
  .added-content { padding: 20px; }
  .added-product-summary { grid-template-columns: 76px minmax(0,1fr); gap: 14px; }
  .added-product-summary figure { grid-row: 1 / 3; height: 88px; padding: 7px; }
  .added-product-summary figure img { height: 74px; }
  .added-product-copy h3 { font-size: 16px; }
  .added-product-copy p { font-size: 12px; }
  .added-product-price { grid-column: 2; font-size: 19px; }
  .added-checkout-row { align-items: stretch; flex-direction: column; gap: 18px; margin-top: 20px; padding-top: 18px; }
  .added-cart-summary { grid-template-columns: 1fr auto; align-items: center; }
  .added-cart-summary > strong { grid-column: 2; grid-row: 1 / 3; font-size: 24px; }
  .added-cart-summary > small { grid-column: 1; font-size: 10px; }
  .added-related { padding: 20px; }
  .added-related-heading h3 { font-size: 17px; }
  .added-related-heading > span { display: none; }
  .added-dialog .added-recommendations { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(160px,58vw); overflow-x: auto; gap: 10px; padding: 0 2px 8px; scroll-snap-type: x proximity; }
  .added-recommendation { scroll-snap-align: start; }
}
@media (prefers-reduced-motion: reduce) { .added-recommendation { transition: none; } }

/* A centered product page with a comfortable reading measure for long copy. */
.product-detail {
  width: min(1120px, calc(100% - 48px));
  margin-inline: auto;
}
.product-detail .detail-tabs > article {
  box-sizing: border-box;
  width: 100%;
  max-width: 900px;
  margin-inline: auto;
  padding: 34px 40px;
}
.product-detail .detail-tabs > article + article { border-top: 1px solid #e6ebe1; }
.product-detail .product-description-content,
.product-detail .detail-parameters-panel,
.product-detail .detail-facts { min-width: 0; }
.product-detail .product-description-content table,
.product-detail .detail-parameters-table { max-width: 100%; }
@media (max-width: 720px) {
  .product-detail { width: calc(100% - 24px); }
  .product-detail .detail-tabs > article { padding: 24px; }
}
@media (max-width: 480px) {
  .product-detail { width: calc(100% - 16px); }
  .product-detail .detail-tabs > article { padding: 22px 16px; }
}

.customer-login-dialog { box-sizing:border-box; width:min(500px,calc(100% - 32px)); max-height:calc(100dvh - 32px); padding:32px; border:0; border-radius:22px; background:#fff; color:#18221a; box-shadow:0 24px 90px #0003; }
.customer-login-dialog::backdrop { background:rgba(14,25,18,.55); backdrop-filter:blur(4px); }
.login-dialog-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:24px; }
.login-dialog-heading .eyebrow { margin:0 0 6px; font-size:11px; letter-spacing:.14em; color:#667264; }
.login-dialog-heading h2 { margin:0; font-size:30px; line-height:1.2; }
.login-dialog-close { width:38px; height:38px; padding:0; border:0; border-radius:50%; background:#f1f4ef; color:#344735; font-size:28px; cursor:pointer; }
.customer-login-dialog .customer-login-card { display:flex; flex-direction:column; gap:16px; padding:0; border:0; box-shadow:none; background:none; max-width:none; }
.customer-login-dialog label { display:flex; flex-direction:column; gap:8px; font-size:14px; font-weight:600; }
.customer-login-dialog input { box-sizing:border-box; width:100%; padding:14px; border:1px solid #bac5b8; border-radius:10px; background:#fff; font:inherit; font-size:16px; }
.customer-login-dialog input:focus { outline:2px solid #426b48; outline-offset:2px; }
.customer-login-dialog .login-password-toggle { align-self:flex-end; padding:4px 0; border:0; background:none; color:#52674f; font-size:12px; cursor:pointer; }
.customer-login-dialog .btn { width:100%; box-sizing:border-box; min-height:46px; justify-content:center; border-radius:10px; }
.customer-login-dialog a.btn.secondary { min-height:0; padding:3px; border:0; background:none; font-size:13px; text-decoration:underline; }
.customer-login-dialog [data-storefront-social-status]:empty { display:none; }
.customer-login-dialog [data-storefront-social-status] { margin:0; font-size:13px; color:#9d3029; }
@media(max-width:480px) { .customer-login-dialog { padding:24px; border-radius:18px; } }
.customer-login-dialog .login-registration-line { display:flex; flex-wrap:wrap; justify-content:center; gap:5px; margin:8px 0 0; font-size:14px; color:#566052; }
.customer-login-dialog .login-registration-line a.btn.secondary { display:inline; width:auto; padding:0; min-height:0; font-size:inherit; font-weight:700; color:#244b30; }
.customer-login-dialog .social-login-button { background:#f5f6f3; border-color:transparent; min-height:52px; }
.customer-login-dialog .social-login-button small { font-size:10px; font-weight:500; margin-left:auto; }
.customer-login-dialog [data-social-provider=apple] .social-provider-mark { color:#171b18; }
.customer-login-dialog [hidden] { display:none !important; }
.customer-login-dialog .login-mode-back { border:0; background:none; color:#244b30; text-decoration:underline; cursor:pointer; padding:8px; }

/* Anchor desktop dropdowns to the navigation width, not the individual label. */
@media (min-width:1081px) {
  .shop-header .category-bar { position:relative; }
  .shop-header .category-bar .store-menu-item { position:static; }
  .shop-header .category-bar .store-menu-item > .store-submenu {
    box-sizing:border-box;
    left:50%; right:auto; transform:translateX(-50%);
    width:min(960px, calc(100% - 24px));
    max-width:calc(100vw - 32px);
    grid-template-columns:repeat(3,minmax(0,1fr));
    padding:18px; gap:8px;
    overflow-x:hidden;
  }
  /* Keep the first panel directly beneath UP POWER LINE with no hover gap. */
  .shop-header .category-bar .store-menu-item:first-child > .store-submenu {
    top:100%; left:0; right:auto; transform:none;
  }
  .shop-header .category-bar .store-submenu button { min-width:0; }
  .shop-header .category-bar .store-submenu button > span { min-width:0; overflow-wrap:anywhere; }
}

/* Discounted prices should stand out from ordinary prices and the old price. */
.product-card .sale-price,
.product-detail .sale-price,
.added-recommendation .sale-price {
  color:#b52d28;
  font-size:1.45rem;
  font-weight:900;
  line-height:1.15;
}
.product-card .old-price,
.product-detail .old-price {
  color:#747a72;
  font-size:.82rem;
  font-weight:600;
  text-decoration-thickness:1px;
}
.product-detail .sale-price { font-size:2rem; }
.product-card .price.sale-price,
.product-card .product-price.sale-price,
.product-card .sale-price { color:#b52d28 !important; font-size:1.45rem !important; }
.product-detail .sale-price { color:#b52d28 !important; font-size:2rem !important; }

/* Preserve the complete logo artwork and its clear space in the header. */
.shop-header .brand img { display:block; height:auto; object-fit:contain; }

/* Free-delivery threshold in the add-to-cart confirmation. */
.added-shipping-progress { margin-top:22px; padding:16px 18px; border:1px solid #dce5d7; border-radius:12px; background:#f3f6ef; color:#263f2b; }
.added-shipping-progress > div { display:flex; justify-content:space-between; align-items:baseline; gap:8px 20px; flex-wrap:wrap; }
.added-shipping-progress p { margin:0; font-size:15px; line-height:1.5; }
.added-shipping-progress small { color:#64725f; font-size:12px; }
.added-shipping-progress progress { display:block; width:100%; height:8px; margin-top:12px; overflow:hidden; border:0; border-radius:20px; background:#dce5d7; accent-color:#416b48; }
.added-shipping-progress progress::-webkit-progress-bar { background:#dce5d7; border-radius:20px; }
.added-shipping-progress progress::-webkit-progress-value { background:#416b48; border-radius:20px; }
.added-shipping-progress progress::-moz-progress-bar { background:#416b48; border-radius:20px; }
.added-shipping-progress.is-complete { background:#eaf3e5; border-color:#b8cdb0; }
.added-shipping-progress.is-complete p { font-weight:700; }
@media(max-width:600px) { .added-shipping-progress { padding:13px 14px; margin-top:18px; } .added-shipping-progress p { font-size:14px; } }

/* Calm cart layout: product rows and a separate order summary. */
#checkout .cart-page-layout { grid-template-columns:minmax(0,1fr) 355px; align-items:start; gap:48px; padding:36px 28px 64px; background:#fff; }
#checkout .cart-main { min-width:0; }
#checkout #cart-page-title { margin:0 0 24px; font-size:30px; line-height:1.2; letter-spacing:-.03em; color:#2c302e; text-transform:none; }
#checkout .cart-lines { gap:14px; }
#checkout .cart-line { grid-template-columns:65px 110px minmax(0,1fr) 94px 24px; grid-template-rows:auto auto; gap:12px 16px; padding:20px; border:0; border-radius:14px; background:#f7f7f8; }
#checkout .cart-line > img { grid-column:1; grid-row:1/3; width:65px; height:84px; object-fit:contain; border-radius:8px; background:transparent; }
#checkout .cart-line-title { grid-column:2/5; grid-row:1; gap:3px; padding-right:10px; }
#checkout .cart-line-title strong { font-size:16px; font-weight:600; line-height:1.45; color:#303532; }
#checkout .cart-line-title span, #checkout .cart-stock { display:none; }
#checkout .qty-controls { grid-column:2; grid-row:2; grid-template-columns:34px 40px 34px; min-height:36px; width:110px; border:1px solid #d9dcde; border-radius:8px; background:transparent; }
#checkout .qty-controls button { min-height:34px; height:34px; width:34px; font-size:18px; font-weight:500; color:#596360; }
#checkout .qty-controls strong { min-width:0; font-size:14px; font-weight:500; text-align:center; border-inline:1px solid #d9dcde; line-height:34px; background:#fff; }
#checkout .cart-unit-price { grid-column:3; grid-row:2; font-size:14px; font-weight:400; color:#66706b; }
#checkout .cart-line-total { grid-column:4; grid-row:2; font-size:16px; font-weight:600; white-space:nowrap; color:#303532; }
#checkout .cart-remove { grid-column:5; grid-row:1; align-self:start; width:24px; height:24px; font-size:23px; color:#a1a9a5; }
#checkout .cart-continue-link { display:inline-block; margin-top:32px; color:#6a7470; font-size:15px; text-decoration:none; }
#checkout .cart-continue-link:hover { color:#242a27; text-decoration:underline; }
#checkout .cart-delivery-note { display:block; justify-self:start; min-height:0; padding:0; margin-top:20px; border-radius:0; background:none; color:#8a918d; font-size:12px; }
#checkout .cart-delivery-note strong { font-weight:400; }
#checkout .cart-sidebar { display:grid; grid-template-columns:1fr; gap:20px; min-width:0; position:sticky; top:100px; }
#checkout .cart-summary { min-height:0; align-content:start; padding:22px; gap:16px; border:1px solid #e6e8e6; border-radius:16px; background:#fff; box-shadow:0 3px 12px #1c281303; }
#checkout .cart-summary h2 { margin:0; padding-bottom:16px; border-bottom:1px solid #eceeec; font-size:19px; line-height:1.3; font-weight:700; text-transform:none; color:#303532; }
#checkout .cart-summary > span { align-items:baseline; color:#535d57; font-size:14px; font-weight:400; line-height:1.5; }
#checkout .cart-summary > span strong { font-size:14px; font-weight:500; color:#303532; text-align:right; }
#checkout .cart-summary > span[hidden] { display:none; }
#checkout .cart-summary .cart-shipping-estimate strong { color:#858e88; font-size:12px; font-weight:400; }
#checkout .cart-summary > .total { border-top:1px solid #eceeec; padding-top:16px; font-size:15px; color:#303532; }
#checkout .cart-summary > .total strong { font-size:21px; font-weight:700; color:#303532; }
#checkout .free-shipping-panel { display:grid; gap:10px; min-height:0; padding:0; border-radius:0; background:none; box-shadow:none; }
#checkout .free-shipping-panel p { max-width:none; font-size:13px; font-weight:400; color:#59615b; line-height:1.6; }
#checkout .free-shipping-panel strong { font-weight:700; color:#303532; }
#checkout .free-shipping-panel progress { appearance:none; display:block; width:100%; height:8px; border:0; border-radius:20px; overflow:hidden; background:#e2e4e2; accent-color:#e9b04c; }
#checkout .free-shipping-panel progress::-webkit-progress-bar { background:#e2e4e2; border-radius:20px; }
#checkout .free-shipping-panel progress::-webkit-progress-value { background:#e9b04c; border-radius:20px; }
#checkout .free-shipping-panel progress::-moz-progress-bar { background:#e9b04c; border-radius:20px; }
#checkout .coupon-panel { display:block; min-height:0; padding:0 4px; border:0; border-radius:0; background:transparent; }
#checkout .coupon-panel summary { display:flex; align-items:center; justify-content:space-between; gap:8px; cursor:pointer; list-style:none; color:#59615b; font-size:14px; font-weight:500; }
#checkout .coupon-panel summary::-webkit-details-marker { display:none; }
#checkout .coupon-panel summary span { font-size:20px; font-weight:400; }
#checkout .coupon-panel[open] summary span { transform:rotate(45deg); }
#checkout .coupon-panel > div { grid-template-columns:minmax(0,1fr) auto; gap:8px; margin-top:14px; }
#checkout .coupon-panel input { width:100%; min-width:0; min-height:42px; padding:10px 12px; border:1px solid #dce0dc; border-radius:7px; box-shadow:none; font-size:14px; font-weight:400; }
#checkout .coupon-panel button { min-width:0; min-height:42px; padding:10px 14px; border:1px solid #dce0dc; border-radius:7px; box-shadow:none; background:#f4f5f4; color:#39433c; font-size:13px; font-weight:600; }
#checkout .cart-next-button { display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; min-height:58px; padding:16px 20px; border:1px solid #303633; border-radius:9px; background:#303633; color:#fff; font-size:14px; font-weight:600; line-height:1.4; box-shadow:none; }
#checkout .cart-next-button:hover { background:#1e2420; }
#checkout .cart-next-button:disabled { opacity:.45; cursor:not-allowed; }
#checkout .cart-payment-hint { margin:-8px 6px 0; font-size:11px; line-height:1.6; color:#8b938e; text-align:center; }
@media(max-width:1000px) { #checkout .cart-page-layout { grid-template-columns:minmax(0,1fr) 320px; gap:24px; padding-inline:16px; } }
@media(max-width:800px) { #checkout .cart-page-layout { grid-template-columns:1fr; gap:32px; padding:24px 12px 40px; } #checkout .cart-sidebar { position:static; } #checkout .cart-main { width:100%; } }
@media(max-width:500px) { #checkout .cart-line { grid-template-columns:46px 92px minmax(0,1fr) 22px; padding:14px 12px; gap:10px; } #checkout .cart-line > img { width:46px; height:68px; } #checkout .cart-line-title { grid-column:2/4; } #checkout .cart-line-title strong { font-size:14px; } #checkout .qty-controls { grid-column:2; width:92px; grid-template-columns:28px 34px 28px; } #checkout .qty-controls button { width:28px; } #checkout .cart-unit-price { grid-column:3; font-size:12px; text-align:right; } #checkout .cart-line-total { grid-column:3; grid-row:3; font-size:14px; } #checkout .cart-remove { grid-column:4; } #checkout .cart-summary { padding:20px; } }
#checkout .cart-unit-price { display:grid; }
#checkout.checkout-page { border:0; border-radius:0; box-shadow:none; background:#fff; }
#checkout .cart-summary h2 { max-width:none; width:100%; grid-column:1/-1; }
/* The confirmation dialog follows the same light, neutral visual style. */
.added-header { background:#fff; color:#303633; border-bottom:1px solid #eceeec; }
.added-dialog .added-kicker { color:#869087; }
.added-success-icon { border-color:#dce0db; color:#47574a; background:#f5f6f4; }
.added-dialog .added-close { color:#646e67; border-color:#e1e5e0; background:#fff; }
.added-dialog .added-close:hover { background:#f3f4f2; }
.added-cart-summary > strong { color:#303633; }
.added-cart-button { background:#303633; border-color:#303633; }
.added-cart-button:hover { background:#1e2420; }
.added-related { background:#f8f8f7; border-color:#eceeeb; }
.added-shipping-progress, .added-shipping-progress.is-complete { background:#fafaf9; border-color:#e3e6df; color:#4b564d; }
.added-shipping-progress progress { accent-color:#e9b04c; background:#e2e4e2; }
.added-shipping-progress progress::-webkit-progress-bar { background:#e2e4e2; }
.added-shipping-progress progress::-webkit-progress-value { background:#e9b04c; }
.added-shipping-progress progress::-moz-progress-bar { background:#e9b04c; }

/* The delivery, payment and contact steps share the cart's neutral styling. */
#checkout .checkout-step-panel { grid-template-columns:minmax(0,1fr) 355px; gap:48px; padding:36px 28px 64px; background:#fff; }
#checkout .checkout-methods-main { min-width:0; gap:32px; }
#checkout .checkout-method-group, #checkout .checkout-customer-form { min-width:0; gap:16px; }
#checkout .checkout-method-group h3, #checkout .checkout-customer-form h3 { max-width:none; margin:0 0 4px; color:#303633; font-size:21px; line-height:1.4; font-weight:650; letter-spacing:-.02em; text-transform:none; }
#checkout .checkout-customer-form h3:not(:first-child) { padding-top:18px; border-top:1px solid #eceeeb; }
#checkout .checkout-contact-grid { gap:18px; margin:0; }
#checkout .checkout-contact-grid label, #checkout .checkout-customer-form > label { min-width:0; color:#59635c; font-size:13px; line-height:1.6; font-weight:500; }
#checkout .checkout-contact-grid input, #checkout .checkout-contact-grid select, #checkout .checkout-customer-form textarea { width:100%; min-width:0; min-height:46px; box-sizing:border-box; padding:11px 13px; border:1px solid #dce0dc; border-radius:8px; background:#fff; color:#303633; font:inherit; font-size:15px; font-weight:400; box-shadow:none; }
#checkout .checkout-contact-grid select:disabled { background:#f7f8f6; color:#747e76; opacity:1; }
#checkout .checkout-contact-grid input:focus-visible, #checkout .checkout-customer-form textarea:focus-visible, #checkout .method-option:focus-visible { outline:2px solid #7a877c; outline-offset:3px; }
#checkout .checkout-customer-form textarea { display:block; margin-top:8px; min-height:100px; resize:vertical; }
#checkout .checkout-customer-form > p { margin:0; color:#889189; font-size:12px; line-height:1.65; font-weight:400; }
#checkout .checkout-customer-form .checkout-choice { gap:10px; margin:4px 0; color:#535e56; font-size:14px; line-height:1.6; font-weight:400; }
#checkout .checkout-choice input { flex:0 0 18px; width:18px; height:18px; accent-color:#39483c; }
#checkout .method-list { gap:10px; }
#checkout .method-option { grid-template-columns:20px minmax(0,1fr) auto; min-height:62px; padding:16px 18px; gap:14px; border:1px solid #e1e5e0; border-radius:10px; background:#fff; color:#303633; box-shadow:none; }
#checkout .method-option:hover { border-color:#b5bfb4; background:#fafbf9; }
#checkout .method-option.is-selected { border-color:#879586; background:#f3f5f1; box-shadow:0 0 0 1px #879586 inset; }
#checkout .method-option > span { width:18px; height:18px; border:1.5px solid #c4cbc3; background:#fff; }
#checkout .method-option.is-selected > span { border-color:#566950; background:radial-gradient(circle at center,#566950 0 43%,transparent 46%),#fff; }
#checkout .method-option strong { color:#38433a; font-size:15px; line-height:1.5; font-weight:550; }
#checkout .method-option b { color:#5b685b; font-size:14px; font-weight:600; white-space:nowrap; }
#checkout .packeta-pickup-panel { grid-template-columns:minmax(0,1fr) auto; padding:16px; gap:12px; border:1px solid #e1e5e0; border-radius:9px; background:#f8f9f7; color:#5b665d; }
#checkout .packeta-pickup-panel strong { color:#424e44; font-size:14px; font-weight:600; }
#checkout .packeta-pickup-panel span { display:block; margin-top:4px; color:#818b81; font-size:12px; line-height:1.5; }
#checkout .packeta-pickup-panel button { min-height:40px; padding:9px 12px; border:1px solid #d9dfd6; border-radius:7px; background:#fff; color:#4c5b4d; font-size:13px; font-weight:500; }
#checkout .checkout-step-summary { top:100px; min-width:0; padding:22px; gap:18px; border:1px solid #e6e8e6; border-radius:16px; background:#fff; box-shadow:0 3px 12px #1c281303; }
#checkout .checkout-step-summary h3 { max-width:none; margin:0; padding-bottom:16px; border-bottom:1px solid #eceeec; font-size:19px; line-height:1.4; font-weight:700; letter-spacing:-.02em; color:#303532; }
#checkout .checkout-step-summary [data-checkout-recap-lines] { gap:14px; }
#checkout .checkout-step-summary [data-checkout-recap-lines] > span { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:4px 14px; align-items:start; color:#5d685e; font-size:13px; font-weight:400; }
#checkout .checkout-step-summary em { grid-column:1; grid-row:1; color:#455046; font-size:13px; line-height:1.55; font-style:normal; font-weight:500; overflow-wrap:anywhere; }
#checkout .checkout-step-summary em small { display:block; margin-top:3px; font-size:11px; font-weight:400; color:#889287; }
#checkout .checkout-step-summary [data-checkout-recap-lines] > span > strong { grid-column:1; grid-row:2; color:#889287; font-size:12px; font-weight:400; }
#checkout .checkout-step-summary [data-checkout-recap-lines] > span > b { grid-column:2; grid-row:1/3; color:#455046; font-size:13px; font-weight:600; white-space:nowrap; }
#checkout .checkout-step-totals { gap:12px; padding-top:16px; border-color:#eceeec; }
#checkout .checkout-step-totals > span { display:flex; justify-content:space-between; gap:14px; font-size:13px; line-height:1.6; color:#6d776d; font-weight:400; }
#checkout .checkout-step-totals > span > strong { color:#414d42; font-size:14px; font-weight:500; white-space:nowrap; }
#checkout .checkout-step-totals > [data-checkout-shipping-label], #checkout .checkout-step-totals > [data-checkout-payment-label] { display:block; color:#8b9388; font-size:12px; }
#checkout .checkout-step-totals > span:last-child { padding-top:14px; border-top:1px solid #eceeec; color:#303633; font-size:14px; }
#checkout .checkout-step-totals > span:last-child strong { color:#303633; font-size:22px; font-weight:700; }
#checkout .checkout-step-summary .btn { display:flex; justify-content:center; align-items:center; min-height:54px; padding:14px 16px; border-radius:9px; font-size:14px; line-height:1.5; font-weight:600; box-shadow:none; }
#checkout .checkout-step-summary .btn.primary { border:1px solid #303633; background:#303633; color:#fff; }
#checkout .checkout-step-summary .btn.primary:hover { background:#1e2420; }
#checkout .checkout-step-summary .btn.secondary { min-height:36px; padding:5px; border:0; border-radius:0; background:transparent; color:#7d887e; font-size:13px; font-weight:400; text-decoration:underline; text-underline-offset:4px; }
#checkout .checkout-steps { gap:0; padding:16px 28px; background:#fff; border-bottom:1px solid #e9ece7; }
#checkout .checkout-steps > strong { gap:10px; padding:14px 8px; border:0; border-radius:0; background:#fff; color:#a0a69c; font-size:14px; font-weight:500; }
#checkout .checkout-steps > strong span { display:grid; place-items:center; width:28px; height:28px; min-width:28px; border-radius:50%; background:#ecefe8; color:#7d8876; font-size:13px; font-weight:500; }
#checkout .checkout-steps > .is-active { color:#303633; font-weight:650; }
#checkout .checkout-steps > .is-active span { background:#303633; color:#fff; }
#checkout .checkout-steps > .is-done span { background:#dfe6da; color:#586b51; }
@media(max-width:1000px) { #checkout .checkout-step-panel { grid-template-columns:minmax(0,1fr) 320px; padding-inline:16px; gap:24px; } }
@media(max-width:800px) { #checkout .checkout-step-panel { grid-template-columns:1fr; gap:28px; padding:24px 16px 40px; } #checkout .checkout-step-summary { position:static; } #checkout .checkout-steps { padding-inline:8px; } #checkout .checkout-steps > strong { display:flex; flex-direction:column; align-items:center; gap:7px; font-size:11px; text-align:center; } }
@media(max-width:500px) { #checkout .checkout-contact-grid { grid-template-columns:1fr; gap:16px; } #checkout .checkout-method-group h3, #checkout .checkout-customer-form h3 { font-size:19px; } #checkout .method-option { padding:13px 12px; gap:10px; } #checkout .method-option strong { font-size:14px; } #checkout .method-option b { font-size:13px; } #checkout .packeta-pickup-panel { grid-template-columns:1fr; } }

#checkout .checkout-login-prompt{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px;background:#f5f6f4;border:1px solid #e0e4de;border-radius:12px;margin-bottom:28px}#checkout .checkout-login-prompt p{margin:6px 0 0;font-size:14px;line-height:1.5}#checkout .checkout-login-prompt .btn{white-space:nowrap;min-height:44px}@media(max-width:500px){#checkout .checkout-login-prompt{align-items:stretch;flex-direction:column;gap:12px}}

/* Match the quick cart summary to the checkout. */
.cart-drawer .cart-drawer-panel{background:#fff;color:#303632;padding:26px;gap:20px;min-height:0;height:100dvh;box-shadow:-12px 0 40px #00000014;grid-template-rows:auto minmax(0,1fr) auto auto auto}
.cart-drawer .cart-drawer-head{align-items:center}
.cart-drawer .cart-drawer-head .eyebrow{font-size:11px;letter-spacing:.14em;color:#7d857e;margin:0 0 6px}
.cart-drawer .cart-drawer-head h2{font-size:27px;line-height:1.2;font-weight:700;margin:0}
.cart-drawer .cart-drawer-head button{width:36px;height:36px;font-size:24px;color:#68716a;border-color:#e1e4e1}
.cart-drawer .cart-preview-line{grid-template-columns:56px minmax(0,1fr) auto;gap:12px;border:0;border-radius:10px;background:#f7f8f7;padding:14px 12px}
.cart-drawer .cart-preview-line img{width:56px;height:62px;object-fit:contain;background:transparent;border-radius:4px}
.cart-drawer .cart-preview-line strong{font-size:14px;line-height:1.45;font-weight:600;overflow-wrap:anywhere}
.cart-drawer .cart-preview-line span{font-size:13px;font-weight:400;color:#788078;line-height:1.4}
.cart-drawer .cart-preview-line b{font-size:14px;font-weight:600;color:#303632;grid-column:auto}
.cart-drawer .cart-drawer-free{padding:0;background:none;box-shadow:none;border-radius:0;font-weight:400}
.cart-drawer .added-shipping-progress{margin:0;padding:15px;background:#fafaf9;display:grid;gap:12px;border:1px solid #e3e6df;border-radius:10px}
.cart-drawer .added-shipping-progress p{font-size:14px;line-height:1.5;font-weight:400;margin:0}
.cart-drawer .added-shipping-progress strong{font-weight:600}
.cart-drawer .added-shipping-progress small{display:none}
.cart-drawer .added-shipping-progress progress{width:100%;height:7px}
.cart-drawer .cart-drawer-summary{background:#fff;border:1px solid #e1e4e1;border-radius:12px;padding:18px;gap:15px}
.cart-drawer .cart-drawer-summary span{font-size:14px;font-weight:400;color:#798078}
.cart-drawer .cart-drawer-summary span strong{font-weight:500}
.cart-drawer .cart-drawer-summary span:last-child{border-top:1px solid #eceeeb;padding-top:15px;color:#303632;font-size:16px}
.cart-drawer .cart-drawer-summary span:last-child strong{color:#303632;font-size:24px;font-weight:700}
.cart-drawer .cart-drawer-actions .btn{font-size:14px;font-weight:600;min-height:48px;border-radius:9px}
.cart-drawer .cart-drawer-actions .primary{background:#303632;border-color:#303632;color:#fff}
.cart-drawer .cart-drawer-actions .secondary{background:transparent;border-color:transparent;color:#788078;text-decoration:underline;text-underline-offset:4px;box-shadow:none}
.has-cart-drawer .up-chat-launch{visibility:hidden}
@media(max-width:500px){.cart-drawer .cart-drawer-panel{padding:20px 16px;gap:16px}.cart-drawer .cart-preview-line{gap:9px;grid-template-columns:48px minmax(0,1fr) auto}.cart-drawer .cart-preview-line img{width:48px}.cart-drawer .cart-preview-line b{font-size:13px}}

/* Compact account and basket icons, shared across storefront pages. */
.shop-header .quick-nav > .header-icon-control,
.shop-header .header-main > .cart-button.header-icon-control {
 position: relative; flex: 0 0 44px; width: 44px; height: 44px; min-width: 44px;
 padding: 10px; border: 0; background: transparent; border-radius: 8px; gap: 0;
}
.shop-header .header-icon-control svg { display: block; width: 24px; height: 24px; flex: 0 0 24px; }
.shop-header .header-main > .cart-button.header-icon-control strong {
 position: absolute; top: -2px; right: -3px; display: grid; place-items: center;
 min-width: 19px; width: auto; height: 19px; margin: 0; padding: 0 4px;
 border-radius: 20px; font-size: 11px; line-height: 1; background: #c9eace; color: #183b2b;
}
.shop-header .header-icon-control:focus-visible { outline: 2px solid #174e2b; outline-offset: 3px; }
.shop-header .quick-nav > .header-icon-control:hover,
.shop-header .header-main > .cart-button.header-icon-control:hover { background: #edf3eb; }

/* Direct language switching without a select menu. */
.shop-header .shop-language-switcher.shop-language-toggle {
 display: inline-flex; gap: 3px; width: auto; flex: 0 0 auto; height: 40px;
 min-height: 40px; padding: 3px; border-radius: 9px; background: #f5f6f3;
}
.shop-header .shop-language-toggle[hidden] { display: none; }
.shop-header .shop-language-toggle button {
 display: grid; place-items: center; min-width: 38px; height: 32px;
 padding: 0 9px; border: 0; border-radius: 6px; font: inherit; font-size: 12px;
 font-weight: 700; line-height: 1; color: #666b63; background: transparent; cursor: pointer;
}
.shop-header .shop-language-toggle button[aria-pressed="true"] { background: #183b2b; color: #fff; }
.shop-header .shop-language-toggle button:hover:not([aria-pressed="true"]) { background: #e4ebe1; color: #183b2b; }
.shop-header .shop-language-toggle button:focus-visible { outline: 2px solid #174e2b; outline-offset: 2px; }

/* UP privacy controls: light surfaces, restrained green and readable copy. */
.cookie-banner {
 z-index: 900; width: min(1180px, calc(100% - 40px)); bottom: 20px;
 padding: 25px 28px; gap: 28px; align-items: center;
 background: #fff; color: #1c3425; border: 1px solid #dfe6db;
 border-radius: 16px; box-shadow: 0 10px 45px rgba(24, 49, 32, .14);
}
.cookie-banner-copy { max-width: 590px; }
.cookie-banner .eyebrow, .cookie-preferences-card .eyebrow {
 color: #58745a; font-size: 10px; font-weight: 700; letter-spacing: 1.6px; margin: 0 0 8px;
}
.cookie-banner h2, .cookie-preferences-card h2 {
 color: #1c3425; font-size: 23px; line-height: 1.2; letter-spacing: -.5px; margin: 0 0 10px;
}
.cookie-banner p:not(.eyebrow), .cookie-preferences-card > p:not(.eyebrow) {
 color: #647060; font-size: 13px; font-weight: 400; line-height: 1.65;
}
.cookie-banner-actions, .cookie-preferences-actions { gap: 8px; }
.cookie-banner-actions .btn, .cookie-preferences-actions .btn {
 min-width: auto; min-height: 44px; padding: 12px 16px; border-radius: 8px;
 font-size: 12px; font-weight: 700; line-height: 1.3; box-shadow: none;
}
.cookie-banner-actions .secondary, .cookie-preferences-actions .secondary {
 background: #fff; color: #264a31; border: 1px solid #9aaf94;
}
.cookie-banner-actions .primary, .cookie-preferences-actions .primary {
 background: #244831; color: #fff; border: 1px solid #244831;
}
.cookie-banner-actions .secondary:hover, .cookie-preferences-actions .secondary:hover { background: #eff4eb; }
.cookie-banner-actions .primary:hover, .cookie-preferences-actions .primary:hover { background: #345d40; }
.cookie-preferences { z-index: 920; }
.cookie-preferences-backdrop { background: rgba(20, 36, 26, .35); backdrop-filter: blur(3px); }
.cookie-preferences-card {
 border: 1px solid #dfe6db; border-radius: 18px; padding: 34px; color: #1c3425;
 background: #fff; box-shadow: 0 24px 90px rgba(24, 49, 32, .2);
}
.cookie-preferences-close { color: #36543c; border-color: #dfe6db; background: #f4f6f1; }
.cookie-preferences-card h2 { padding-right: 35px; }
.cookie-preference-list, .cookie-preference-list label { border-color: #e2e8dd; }
.cookie-preference-list strong { font-size: 14px; color: #25442d; }
.cookie-preference-list small { font-size: 12px; font-weight: 400; line-height: 1.5; color: #6c7867; }
.cookie-preference-list input { accent-color: #315e3d; width: 21px; height: 21px; }
@media(max-width:1050px) {
 .cookie-banner { grid-template-columns: 1fr; gap: 20px; }
 .cookie-banner-copy { max-width: none; }
 .cookie-banner-actions { justify-content: flex-end; }
}
@media(max-width:600px) {
 .cookie-banner { width: calc(100% - 24px); bottom: 12px; padding: 22px; gap: 18px; border-radius: 14px; max-height: calc(100dvh - 24px); overflow: auto; }
 .cookie-banner h2 { font-size: 21px; }
 .cookie-banner-actions { display: grid; grid-template-columns: 1fr 1fr; }
 .cookie-banner-actions [data-cookie-settings] { grid-column: 1 / -1; }
 .cookie-banner-actions .btn { width: 100%; padding: 12px 9px; white-space: normal; }
 .cookie-preferences-card { padding: 28px 22px; }
 .cookie-preferences-actions { flex-wrap: wrap; }
 .cookie-preferences-actions .btn { flex: 1 1 180px; }
}
.cookie-banner h2, .cookie-preferences-card h2 { width: auto; max-width: none; }

/* Promotions stand out through a muted red label, without a badge. */
.shop-header .category-bar .store-menu-link[data-shop-nav-category="Akce"] {
  color:#a3443f;
  background:transparent;
  border-bottom-color:transparent;
}
.shop-header .category-bar .store-menu-link[data-shop-nav-category="Akce"]:hover,
.shop-header .category-bar .store-menu-link[data-shop-nav-category="Akce"].is-active {
  color:#873630;
  background:transparent;
  border-bottom-color:transparent;
}
.shop-header .category-bar .store-menu-link[data-shop-nav-category="Akce"]:focus-visible {
  outline:2px solid #a3443f;
  outline-offset:3px;
}

/* Catalogue filters share the soft surfaces and green accents of product cards. */
.shop-layout > .filters {
  background:#fff;
  border:1px solid #dfe5da;
  border-radius:20px;
  padding:22px;
  box-shadow:0 4px 18px #213f2a05;
  color:#213629;
}
.filters .filter-head { align-items:flex-start; gap:12px; padding-bottom:18px; margin-bottom:18px; border-bottom:1px solid #e9ede5; }
.filters .filter-head .eyebrow { color:#708168; font-size:10px; letter-spacing:.14em; margin:0 0 6px; }
.filters .filter-head h2 { font-size:20px; line-height:1.25; margin:0; letter-spacing:-.025em; }
.filters .filter-head button { min-height:32px; padding:6px 9px; border:0; border-radius:8px; background:#f1f5ed; color:#52674b; font-size:11px; font-weight:600; box-shadow:none; }
.filters .filter-head button:hover { background:#e2ecd9; color:#203d28; }
.filters .catalog-category-panel > strong { display:block; font-size:12px; color:#687962; margin-bottom:10px; font-weight:600; }
.filters .catalog-kind-filters { display:grid; grid-template-columns:1fr; gap:4px; }
.filters .catalog-kind-option { border:1px solid transparent; border-radius:10px; padding:10px; margin:0; font-size:13px; font-weight:500; color:#40503d; transition:background .15s,border-color .15s; }
.filters .catalog-kind-option:hover { background:#f5f7f1; }
.filters .catalog-kind-option:has(input:checked) { background:#edf4e6; border-color:#cfdfc0; color:#23462b; font-weight:700; }
.filters .catalog-kind-option:has(input:focus-visible) { outline:2px solid #416747; outline-offset:2px; }
.filters .catalog-kind-option input { accent-color:#315f3d; }
.filters .catalog-kind-option small { background:#f1f4ed; border-radius:6px; min-width:25px; padding:2px 5px; text-align:center; color:#6d7d65; font-size:11px; }
.filters .catalog-kind-option:has(input:checked) small { background:#dceacb; color:#315337; }
.filters .catalog-sale-option { margin:0 0 4px; border-bottom:1px solid transparent; padding-bottom:10px; }
.filters > label:not(.catalog-category-select) { display:grid; gap:8px; margin-top:18px; font-size:12px; font-weight:600; color:#687962; }
.filters > label select { width:100%; min-height:42px; padding:9px 12px; background:#f7f9f4; border:1px solid #dfe5da; border-radius:10px; color:#263b2b; font:inherit; font-size:13px; }
.filters > label select:focus-visible { outline:2px solid #416747; outline-offset:2px; }
@media(max-width:760px) {
  .shop-layout > .filters { padding:18px; border-radius:16px; }
  .filters .filter-head { flex-direction:row; align-items:center; }
  .filters .catalog-kind-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .filters .catalog-kind-option { padding:9px 7px; font-size:12px; gap:7px; }
}
@media(max-width:380px) { .filters .catalog-kind-filters { grid-template-columns:1fr; } }

/* Keep desktop filters below the sticky header, with every option reachable. */
body:not(.is-admin) { overflow-x:clip; }
@media(min-width:1081px) {
  .shop-layout > .filters {
    position:sticky;
    top:160px;
    max-height:calc(100dvh - 180px);
    overflow-y:auto;
    align-self:start;
    scrollbar-width:thin;
    scrollbar-color:#c5d4bb transparent;
    overscroll-behavior-y:contain;
  }
}
.catalog-purpose-panel{margin-top:18px;padding-top:18px;border-top:1px solid #e9ede5}.catalog-purpose-panel>strong{display:block;font-size:12px;font-weight:600;color:#687962;margin-bottom:10px}.purpose-chips{display:flex;flex-wrap:wrap;gap:7px}.purpose-chips button{border:1px solid #dfe5da;border-radius:9px;padding:8px 10px;background:#f7f9f4;color:#40503d;font-size:12px;font-weight:600;min-height:34px}.purpose-chips button[aria-pressed=true]{background:#dceacb;border-color:#9db88d;color:#23462b}.purpose-chips button:focus-visible{outline:2px solid #416747;outline-offset:2px}

/* Voucher photographs use the same presentation as diagnostic vouchers. */
.gift-voucher-detail .detail-image-stage{padding:12px;border:1px solid #dfe4db;border-radius:20px;overflow:hidden;background:#f1f4ed;box-shadow:none;align-self:start;min-height:0}
.gift-voucher-detail .detail-image-stage .detail-image-open{display:block;width:100%;height:auto;min-height:0;aspect-ratio:1;padding:0;border:0;background:#eee9df;overflow:hidden;border-radius:12px}
.gift-voucher-detail .detail-image-stage .detail-image-open img,
.gift-voucher-detail .detail-image-stage .detail-image-open:hover img{display:block;width:100%;height:100%;min-height:0;max-height:none;object-fit:contain;transform:none;mix-blend-mode:normal;border:0;border-radius:0;filter:none;box-shadow:none}
.product-card .gift-voucher-packshot{background:#f3efe7;overflow:hidden}
.product-card .gift-voucher-packshot img{width:100%;height:100%;object-fit:cover;transform:none;mix-blend-mode:normal}
.gift-voucher-detail .detail-image-stage{display:block;height:auto;max-height:none}
.gift-voucher-detail .detail-image-stage .detail-image-open{position:relative;flex:none;height:auto!important;aspect-ratio:1;max-height:none}
.gift-voucher-detail .detail-image-stage .detail-image-open img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* Consistent, readable typography across every product detail and card. */
.product-detail .detail-copy > h2 {
  font-size:clamp(25px,2.6vw,36px);line-height:1.22;font-weight:700;
  text-transform:none;letter-spacing:-.025em;margin:10px 0 18px;
  overflow-wrap:normal;word-break:normal;text-wrap:pretty;
}
.product-detail .detail-copy .rating,
.product-detail .detail-copy .delivery,
.product-detail .detail-copy .detail-unit {font-size:14px;line-height:1.65;font-weight:400;color:#677363;}
.product-detail .detail-copy label{font-size:12px;font-weight:600;line-height:1.5;letter-spacing:.025em}
.product-detail .detail-copy select{font-size:14px;font-weight:500;line-height:1.5;min-height:44px}
.product-detail .detail-price-stack{margin:20px 0 10px}
.product-detail .detail-price{font-size:30px;line-height:1.2;font-weight:700;letter-spacing:-.02em}
.product-detail .detail-copy .old-price{font-size:15px;font-weight:500}
.product-detail .detail-tabs > article > h3{font-size:22px;line-height:1.35;font-weight:700;margin:0 0 24px;text-transform:none;letter-spacing:-.015em}
.product-detail .product-description-content,
.product-detail .rich-product-description,
.product-detail .basic-description{font-size:15px;line-height:1.8;color:#485343;gap:16px;text-align:left}
.product-detail :is(.product-description-content,.rich-product-description,.basic-description) :is(p,li,div,span){font-family:inherit!important;font-size:inherit!important;line-height:1.8!important;font-weight:400!important;text-transform:none}
.product-detail :is(.product-description-content,.rich-product-description,.basic-description) :is(p,ul,ol){font-weight:400;color:#485343;line-height:1.8;margin:0 0 16px}
.product-detail :is(.product-description-content,.rich-product-description,.basic-description) :is(h1,h2,h3,h4,h5){font-family:inherit!important;font-size:20px!important;font-weight:650!important;line-height:1.4!important;letter-spacing:-.015em;text-transform:none;margin:24px 0 12px!important;color:#263b2b}
.product-detail :is(.product-description-content,.rich-product-description,.basic-description) :is(strong,b){font-weight:650!important;font-size:inherit!important;line-height:inherit!important}
.product-detail :is(.product-description-content,.rich-product-description,.basic-description) li{margin:5px 0;padding-left:3px}
.product-detail :is(.product-description-content,.rich-product-description,.basic-description) :is(ul,ol){padding-left:22px}
.product-detail :is(.product-description-content,.detail-parameters-table) :is(td,th){font-size:13px!important;line-height:1.6!important}
.product-detail .detail-facts{font-size:13px;line-height:1.6;font-weight:400;color:#677363}
.product-detail .detail-facts strong{font-size:12px;font-weight:600}
.product-card h3,.product-card h3 button{font-size:17px;line-height:1.4;font-weight:650;text-transform:none;letter-spacing:-.015em}
.product-card .body>p{font-size:14px;line-height:1.65;font-weight:400;color:#677363}
@media(max-width:600px){.product-detail .detail-copy>h2{font-size:25px;margin-bottom:14px}.product-detail .detail-price{font-size:28px}.product-detail .detail-tabs>article>h3{font-size:20px}.product-detail :is(.product-description-content,.rich-product-description,.basic-description){font-size:14px}}

/* Product detail photos follow their own proportions instead of a fixed tall frame. */
.detail-shell .detail-main figure.detail-image-stage {
  display:block;
  align-self:start;
  width:100%;
  height:auto;
  min-height:0;
  max-height:none;
  aspect-ratio:auto;
  margin:0;
  padding:0;
  border:0;
  border-radius:16px;
  background:transparent;
  box-shadow:none;
}
.detail-shell .detail-main figure.detail-image-stage .detail-image-open {
  display:block;
  position:relative;
  flex:none;
  width:100%;
  height:auto!important;
  min-height:0;
  max-height:none;
  aspect-ratio:auto;
  padding:0;
  border:0;
  border-radius:16px;
  background:#fff;
}
.detail-shell .detail-main figure.detail-image-stage .detail-image-open img,
.detail-shell .detail-main figure.detail-image-stage .detail-image-open:hover img,
.detail-shell .detail-main figure.detail-image-stage .detail-image-open:focus-visible img {
  display:block;
  position:static;
  width:100%;
  height:auto;
  min-height:0;
  max-height:none;
  aspect-ratio:auto;
  object-fit:contain;
  padding:0;
  border:0;
  border-radius:0;
  transform:none;
  filter:none;
  mix-blend-mode:normal;
  box-shadow:none;
}
.detail-shell .detail-main figure.detail-image-stage .detail-gallery-thumbs {margin-top:12px;}

/* Reserve whole text lines: never crop a heading halfway through a row. */
.homepage-section-grid .product-card h3,
.product-grid .product-card h3 {
  height:auto;
  min-height:4.2em;
  max-height:none;
  margin:0 0 6px;
  overflow:visible;
  font-size:16px;
  line-height:1.4;
}
.homepage-section-grid .product-card h3 button,
.product-grid .product-card h3 button {
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  max-height:none;
  height:auto;
  overflow:hidden;
  white-space:normal;
  overflow-wrap:anywhere;
  font-size:inherit;
  line-height:inherit;
}
.homepage-section-grid .product-card .body > p,
.product-grid .product-card .body > p {
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  height:3em;
  min-height:3em;
  max-height:none;
  margin:0;
  overflow:hidden;
  white-space:normal;
  text-overflow:ellipsis;
  font-size:14px;
  line-height:1.5;
}

#checkout .cart-continue-link { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:12px 20px; border:1px solid #263d2e; border-radius:10px; background:#263d2e; color:#fff; font-size:16px; font-weight:700; text-decoration:none; cursor:pointer; }
#checkout .cart-continue-link:hover { background:#354f3e; color:#fff; text-decoration:none; }
#checkout .cart-continue-link:focus-visible { outline:3px solid #8da77b; outline-offset:3px; }

/* Keep product names readable and quantities attached to their units. */
.product-card h3 button {
  overflow-wrap:normal;
  word-break:normal;
  text-wrap:pretty;
}
.homepage-section-grid .product-card h3 button,
.product-grid .product-card h3 button {
  overflow-wrap:normal;
}

.bestseller-controls { display:flex; align-items:center; justify-content:flex-end; gap:8px; margin:0 0 16px; }
[data-bestseller-track].homepage-section-grid { position:relative; display:grid; grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:calc((100% - 100px) / 6); overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; }
[data-bestseller-track] > .product-card { scroll-snap-align:start; min-width:0; }
[data-bestseller-track]::-webkit-scrollbar { display:none; }
@media(max-width:1200px) { [data-bestseller-track].homepage-section-grid { grid-auto-columns:calc((100% - 60px) / 4); } }
@media(max-width:800px) { [data-bestseller-track].homepage-section-grid { grid-auto-columns:calc((100% - 20px) / 2); } }
@media(max-width:480px) { [data-bestseller-track].homepage-section-grid { grid-auto-columns:80%; } }

/* Overlay navigation on the first and last product images. */
.product-carousel { position:relative; }
.product-carousel .bestseller-controls { position:absolute; inset:0; margin:0; display:block; pointer-events:none; }
.product-carousel .bestseller-controls button { position:absolute; top:110px; z-index:2; width:56px; height:56px; padding:15px; border:2px solid #fff; border-radius:50%; background:#eef0eb; color:#29372b; box-shadow:0 3px 12px #0002; pointer-events:auto; transform:translateY(-50%); }
.product-carousel .bestseller-controls button:first-child { left:12px; }
.product-carousel .bestseller-controls button:last-child { right:12px; }
.product-carousel .bestseller-controls button:hover { background:#dce8d5; color:#174e2b; border-color:#fff; }
.product-carousel .bestseller-controls button:focus-visible { outline:3px solid #174e2b; outline-offset:3px; }
.product-carousel .bestseller-controls svg { display:block; width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; }
@media(max-width:480px) { .product-carousel .bestseller-controls button { width:44px; height:44px; padding:11px; } }

.product-carousel .bestseller-controls[hidden] { display:none; }
[data-bestseller-track].homepage-section-grid { gap:20px; }

/* Home ambassadors: a quiet, consistent finish below the journal. */
.up-ambassadors { width: min(var(--max), calc(100% - 32px)); margin: 56px auto 64px; color: #17291e; }
.up-ambassadors h2 { max-width: 780px; font-size: clamp(28px, 3vw, 42px); line-height: 1.12; }
.up-ambassadors-intro { margin: 14px 0 0; color: #667267; font-size: 1rem; }
.up-ambassadors-grid { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 72px) / 4); gap: 22px; margin-top: 28px; padding: 3px 3px 14px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; }
.up-ambassadors-grid::-webkit-scrollbar { display: none; }
.up-ambassadors-grid .up-ambassador-card { min-width: 0; scroll-snap-align: start; }
.up-ambassador-card { display: flex; flex-direction: column; padding: 0; border: 1px solid #dce4dc; border-radius: 16px; overflow: hidden; background: #fff; text-align: left; color: inherit; font: inherit; cursor: pointer; transition: border-color .2s, box-shadow .2s; }
.up-ambassador-photo { display: block; width: 100%; aspect-ratio: 4 / 4.5; overflow: hidden; background: #edf1eb; }
.up-ambassador-photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 22%; transition: transform .3s; }
.up-ambassador-info { display: flex; flex: 1; flex-direction: column; align-items: flex-start; gap: 9px; padding: 22px; }
.up-ambassador-sport { font-size: .76rem; letter-spacing: .1em; text-transform: uppercase; color: #55745b; font-weight: 700; }
.up-ambassador-info strong { font-size: clamp(18px, 1.5vw, 24px); line-height: 1.2; }
.up-ambassador-bio { color: #667267; font-size: .92rem; line-height: 1.5; }
.up-ambassador-action { margin-top: auto; padding-top: 14px; font-size: .88rem; font-weight: 700; color: #294e34; text-decoration: underline; text-underline-offset: 4px; }
.up-ambassadors-footer { display: flex; justify-content: center; margin-top: 28px; }
.up-ambassadors-footer a { padding: 13px 23px; border: 1px solid #b9cbb8; border-radius: 8px; color: #294e34; background: #eff4ec; font-weight: 700; font-size: .92rem; text-decoration: none; }
.up-ambassador-card:focus-visible, .up-ambassadors a:focus-visible, .up-ambassadors-grid:focus-visible { outline: 3px solid #426f49; outline-offset: 3px; }
@media (hover: hover) { .up-ambassador-card:hover { border-color: #8eac90; box-shadow: 0 8px 24px #1b392012; } .up-ambassador-card:hover img { transform: scale(1.025); } .up-ambassadors-footer a:hover { background: #e3eddf; } }
.up-ambassador-dialog { width: min(820px, calc(100% - 32px)); max-height: calc(100dvh - 40px); margin: auto; padding: 0; border: 1px solid #dce4dc; border-radius: 18px; color: #17291e; background: #fff; overflow: auto; }
.up-ambassador-dialog[open] { display: grid; grid-template-columns: .9fr 1.1fr; }
.up-ambassador-dialog::backdrop { background: #10231799; backdrop-filter: blur(4px); }
.up-ambassador-close { position: absolute; z-index: 1; top: 12px; right: 12px; width: 42px; height: 42px; border: 1px solid #d5dfd5; border-radius: 50%; background: #fff; color: #17291e; font-size: 28px; line-height: 1; cursor: pointer; }
.up-ambassador-dialog-photo { width: 100%; height: 100%; min-height: 430px; object-fit: cover; object-position: center 22%; }
.up-ambassador-dialog-copy { padding: 62px 32px 36px; }
.up-ambassador-dialog-copy h2 { margin: 12px 0 20px; font-size: clamp(26px, 3vw, 36px); line-height: 1.12; }
.up-ambassador-dialog-copy h3 { margin: 28px 0 12px; font-size: 1rem; }
.up-ambassador-dialog-copy p, .up-ambassador-dialog-copy li { color: #606e61; line-height: 1.6; }
.up-ambassador-dialog-copy ul { padding-left: 20px; }
.up-ambassador-dialog-copy a { display: inline-block; margin-top: 18px; font-weight: 700; color: #294e34; text-underline-offset: 4px; }
@media (max-width: 900px) { .up-ambassadors-grid { grid-auto-columns: calc((100% - 28px) / 2); } .up-ambassador-card { scroll-snap-align: start; } }
@media (max-width: 600px) { .up-ambassadors { margin: 36px auto 40px; } .up-ambassadors-grid { grid-auto-columns: 76vw; gap: 14px; margin-top: 22px; } .up-ambassador-info { padding: 18px; } .up-ambassador-dialog[open] { grid-template-columns: 1fr; } .up-ambassador-dialog-photo { height: 280px; min-height: 0; } .up-ambassador-dialog-copy { padding: 24px; } }
@media (prefers-reduced-motion: reduce) { .up-ambassador-card, .up-ambassador-photo img { transition: none; } }

/* Reuse the same overlay arrows as all product carousels. */
.up-ambassadors-carousel { margin-top: 28px; }
.up-ambassadors-carousel .up-ambassadors-grid { margin-top: 0; }
@media (max-width: 600px) { .up-ambassadors-carousel { margin-top: 22px; } }

/* Full athlete profiles, using the same content as the UP brand website. */
.up-ambassador-dialog-full { width: min(1120px, calc(100% - 32px)); }
.up-ambassador-dialog-full[open] { grid-template-columns: minmax(240px, .8fr) minmax(0, 1.7fr); align-items: start; }
.up-ambassador-dialog-toolbar { grid-column: 1 / -1; position: sticky; top: 0; height: 0; z-index: 3; }
.up-ambassador-dialog-full .up-ambassador-dialog-photo { position: sticky; top: 0; height: min(680px, calc(100dvh - 40px)); min-height: 0; }
.up-ambassador-dialog-full .up-ambassador-dialog-copy { padding: 52px 34px 34px; min-width: 0; }
.up-ambassador-dialog-full .eyebrow { font-size: .75rem; line-height: 1.6; }
.up-ambassador-summary { padding: 16px 18px; border-left: 3px solid #9ab796; background: #f3f6ef; border-radius: 0 8px 8px 0; }
.up-ambassador-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 24px 0; }
.up-ambassador-facts > div { padding: 12px; border: 1px solid #e0e7dc; border-radius: 8px; min-width: 0; }
.up-ambassador-facts dt { font-size: .74rem; color: #647263; margin-bottom: 4px; }
.up-ambassador-facts dd { margin: 0; font-size: .88rem; overflow-wrap: anywhere; }
.up-ambassador-facts a { margin: 0; }
.up-ambassador-detail-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.up-ambassador-detail-columns h3 { margin-top: 8px; }
.up-ambassador-achievements { list-style: none; padding: 0 !important; }
.up-ambassador-achievements li { padding: 12px 0; border-bottom: 1px solid #e4e9e0; font-size: .86rem; }
.up-ambassador-achievements strong { display: block; color: #233c2b; margin-bottom: 4px; }
.up-ambassador-achievements span { display: block; }
.up-ambassador-products { padding-left: 20px; }
.up-ambassador-products li { padding: 10px 0; font-size: .86rem; }
.up-ambassador-products a { margin-top: 0; line-height: 1.5; }
.up-ambassador-products p { font-size: .83rem; margin: 6px 0 0; }
.up-ambassador-dialog-full .up-ambassador-brand-link { padding-top: 20px; border-top: 1px solid #e0e7dc; font-size: .85rem; }
@media (max-width: 900px) { .up-ambassador-detail-columns { grid-template-columns: 1fr; } }
@media (max-width: 600px) {
 .up-ambassador-dialog-full[open] { grid-template-columns: 1fr; }
 .up-ambassador-dialog-full .up-ambassador-dialog-photo { position: static; height: 300px; }
 .up-ambassador-dialog-full .up-ambassador-dialog-copy { padding: 24px; }
 .up-ambassador-facts { grid-template-columns: 1fr 1fr; }
}

/* Compact monochrome partner strip, below the athlete profiles. */
.up-partners { width: min(var(--max), calc(100% - 32px)); margin: 0 auto 56px; padding-top: 28px; border-top: 1px solid #e0e5dc; }
.up-partners h2 { margin: 0 0 24px; text-align: center; color: #616b61; font-size: 1.05rem; line-height: 1.4; font-weight: 700; letter-spacing: 0; text-transform: none; }
.up-partners-track { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); align-items: center; gap: 24px; padding: 6px 4px 16px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x proximity; scrollbar-width: thin; scrollbar-color: #c2cbbf transparent; }
.up-partner-link { display: flex; align-items: center; justify-content: center; min-width: 0; height: 80px; padding: 8px; border-radius: 6px; scroll-snap-align: start; }
.up-partner-link img { display: block; width: 100%; max-width: 160px; height: 64px; object-fit: contain; filter: grayscale(1); opacity: .62; mix-blend-mode: multiply; transition: opacity .18s; }
.up-partner-link:hover img, .up-partner-link:focus-visible img { opacity: .9; }
.up-partner-link:focus-visible, .up-partners-track:focus-visible { outline: 2px solid #426f49; outline-offset: 2px; }
@media (max-width: 1000px) { .up-partners-track { grid-auto-columns: 148px; gap: 20px; } }
@media (max-width: 600px) { .up-partners { margin-bottom: 36px; padding-top: 22px; } .up-partners h2 { margin-bottom: 16px; font-size: 1rem; } .up-partners-track { grid-auto-columns: 130px; gap: 16px; } .up-partner-link { height: 72px; } .up-partner-link img { height: 56px; } }
@media (prefers-reduced-motion: reduce) { .up-partner-link img { transition: none; } }
.up-partners h2 { width: 100%; max-width: none; }
/* This source logo is lime on transparent; use a flat grey for legibility. */
.up-partner-link img[src*="sportovni-dite"] { filter: grayscale(1) brightness(0); opacity: .5; }
.up-partner-link:hover img[src*="sportovni-dite"], .up-partner-link:focus-visible img[src*="sportovni-dite"] { opacity: .75; }

.customer-pricing-status { position:fixed; bottom:20px; left:50%; transform:translateX(-50%); z-index:10020; display:flex; align-items:center; gap:12px; max-width:calc(100vw - 32px); padding:12px 18px; border:1px solid #d9e3d8; border-radius:12px; background:#fff; color:#244a2d; box-shadow:0 4px 24px #183b2420; font-size:14px; }
.customer-pricing-status[hidden] { display:none; }
.customer-pricing-status button { border:0; background:#244a2d; color:white; padding:7px 12px; border-radius:6px; cursor:pointer; }
.customer-prices-pending .product-card .price-stack,
.customer-prices-pending .detail-price,
.customer-prices-pending .cart-customer-price { visibility:hidden; }
.customer-prices-pending .product-card .price-stack { position:relative; }
.customer-prices-pending .product-card .price-stack::before { content:"Načítám cenu…"; visibility:visible; position:absolute; top:0; left:0; color:#68716c; font-size:13px; font-weight:400; }
body[data-customer-pricing-state="error"].customer-prices-pending .product-card .price-stack::before { content:"Cena není načtena"; }


/* Keep article actions aligned across cards with different text lengths. */
.home-journal-card { display: flex; flex-direction: column; }
.home-journal-card > figure { flex-shrink: 0; }
.home-journal-card > div { display: flex; flex: 1; flex-direction: column; align-items: flex-start; }
.home-journal-card > div > span:last-child { margin-top: auto; padding-top: 16px; }

/* The early <html> guard also covers restored sessions before app.js executes. */
.customer-prices-pending .detail-price-stack,
.customer-prices-pending .cart-item-price,
.customer-prices-pending .cart-summary,
.customer-prices-pending [data-cart-total],
.customer-prices-pending [data-cart-preview] .cart-preview-total { visibility: hidden; }
.customer-prices-pending .detail-price-stack { position: relative; min-height: 1.8em; }
.customer-prices-pending .detail-price-stack::before { content: 'Načítám vaši cenu…'; visibility: visible; position: absolute; inset: 0 auto auto 0; font-size: 14px; font-weight: 400; color: #68716c; }
html[data-customer-pricing-state="error"].customer-prices-pending .detail-price-stack::before,
body[data-customer-pricing-state="error"].customer-prices-pending .detail-price-stack::before { content: 'Cenu se nepodařilo načíst'; }
.customer-prices-pending .cart-unit-price,
.customer-prices-pending .cart-line-total,
.customer-prices-pending .cart-preview-line > div > span,
.customer-prices-pending .cart-preview-line > b,
.customer-prices-pending [data-cart-preview-total],
.customer-prices-pending .checkout-step-summary { visibility: hidden; }
html[lang="en"].customer-prices-pending .product-card .price-stack::before,
html[lang="en"] .customer-prices-pending .product-card .price-stack::before { content: 'Loading your price…'; }
html[lang="en"].customer-prices-pending .detail-price-stack::before,
html[lang="en"] .customer-prices-pending .detail-price-stack::before { content: 'Loading your price…'; }
html[lang="en"] body[data-customer-pricing-state="error"].customer-prices-pending .product-card .price-stack::before,
html[lang="en"] body[data-customer-pricing-state="error"].customer-prices-pending .detail-price-stack::before { content: 'Price could not be loaded'; }
.customer-prices-pending .detail-unit,
.customer-prices-pending .quantity-discount-list,
.customer-prices-pending .quantity-saving { visibility: hidden; }
/* Variant option labels also contain prices; reveal them with the verified list. */
.customer-prices-pending .detail-variant-field select { visibility: hidden; }

/* Sign-in stays primary; registration and recovery use matching quiet buttons. */
main [data-login] .actions { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; margin-top: 12px; }
main [data-login] > button,
main [data-login] .actions > button,
.customer-login-dialog .customer-login-card > button[type="submit"] { width: 100%; min-height: 48px; padding: 14px 18px; border-radius: 10px; font-weight: 600; }
main [data-login] .actions > button.secondary,
.customer-login-dialog a.btn.secondary,
.customer-login-dialog .login-registration-line a.btn.secondary {
 display: flex; align-items: center; justify-content: center; box-sizing: border-box;
 width: 100%; min-height: 48px; padding: 14px 18px;
 border: 1px solid #c8d5c6; border-radius: 10px; background: #fff; color: #244b30;
 font: inherit; font-size: 1rem; font-weight: 600; line-height: 1.3; text-align: center; text-decoration: none;
 transition: background-color .15s, border-color .15s;
}
.customer-login-dialog .login-registration-line { width: 100%; margin-top: 0; gap: 10px; }
.customer-login-dialog .login-registration-line a.btn.secondary { flex-basis: 100%; }
main [data-login] .actions > button.secondary:hover:enabled,
.customer-login-dialog a.btn.secondary:hover { background: #f2f6ef; border-color: #8eac88; color: #1d3b25; }
main [data-login] .actions > button.secondary:focus-visible,
.customer-login-dialog a.btn.secondary:focus-visible { outline: 3px solid #8eac88; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
 main [data-login] .actions > button.secondary, .customer-login-dialog a.btn.secondary { transition: none; }
}

/* Shared customer authentication actions, including recovery and registration. */
:is(main [data-login], main [data-registration], .customer-login-dialog, [data-customer-activation-form]) :is(button.secondary, a.btn.secondary, .login-mode-back, [data-password-reset-offer]),
main [data-registration] > button,
[data-customer-activation-form] > button {
  box-sizing:border-box; display:flex; align-items:center; justify-content:center;
  width:100%; min-height:48px; padding:14px 18px; border:1px solid #c8d5c6;
  border-radius:10px; background:#fff; color:#244b30; font:inherit;
  font-size:1rem; font-weight:600; line-height:1.3; text-align:center;
  text-decoration:none; cursor:pointer;
}
:is(main [data-login], main [data-registration], .customer-login-dialog) :is(button.secondary, a.btn.secondary, .login-mode-back, [data-password-reset-offer]):hover:enabled {
  background:#f2f6ef; border-color:#8eac88;
}
main [data-registration] .actions {display:grid; gap:12px; margin-top:12px;}
:is(main [data-login], main [data-registration], [data-customer-activation-form]) > button:not(.secondary),
.customer-login-dialog .customer-login-card > button[type=submit] {
  background:#1d2921; color:#fff; border:1px solid #1d2921;
}
:is([data-social-login], [data-storefront-social-login]) .social-login-button {
  box-sizing:border-box; min-height:48px; padding:12px 16px; border:1px solid #c8d5c6;
  border-radius:10px; background:#fff; color:#172219; font:inherit; font-weight:600;
}
:is([data-social-login], [data-storefront-social-login]) .social-login-button small {font-size:10px; margin-left:auto;}
:is(main [data-login], main [data-registration], .customer-login-dialog) [hidden] {display:none!important;}

/* Registration follows the primary sign-in action directly. */
.customer-login-dialog .login-registration-line {display:block;text-align:center;margin:12px 0 4px;font-size:14px;line-height:1.5;color:#68716c;}
.customer-login-dialog .login-registration-link {display:inline;padding:0;color:#244b30;font-weight:600;text-decoration:underline;text-underline-offset:3px;}
.customer-login-dialog .login-registration-link:hover {color:#172e20;}

main [data-login] .login-registration-line,.customer-login-card>.login-registration-line {display:block;text-align:center;margin:12px 0 4px;font-size:14px;line-height:1.5;color:#68716c;}
main .card [data-login] button.login-registration-link {display:inline;min-height:0;width:auto;padding:0;border:0;border-radius:0;background:transparent;color:#244b30;font:inherit;font-weight:600;text-decoration:underline;text-underline-offset:3px;}

/* A compact footer grid, with the partner programme alongside product links. */
.site-footer {background:#111b16;color:#f6f7f4;border-top:1px solid #29372e;}
.site-footer .site-footer-inner {width:min(1440px,calc(100% - 64px));grid-template-columns:1.15fr 1fr 1fr 1.25fr 1.05fr;gap:clamp(24px,3vw,48px);padding:52px 0 38px;}
.site-footer .site-footer-brand img {width:220px;max-width:100%;}
.site-footer .site-footer-brand p {font-size:14px;font-weight:400;line-height:1.7;margin-top:20px;max-width:250px;color:#b9c5bc;}
.site-footer .site-footer-column {gap:11px;min-width:0;}
.site-footer .site-footer-column h2 {width:auto;max-width:none;font-size:12px;font-weight:700;line-height:1.5;letter-spacing:.08em;margin:0 0 12px;color:#f5f7f2;}
.site-footer .site-footer-column a,.site-footer .site-footer-column button {font-size:14px;font-weight:400;line-height:1.55;color:#c6d0c8;}
.site-footer .site-footer-column a:hover,.site-footer .site-footer-column button:hover {color:#e1f1cb;text-decoration:underline;text-underline-offset:4px;}
.site-footer .site-footer-links {gap:10px;}
.site-footer-product-stack {display:grid;gap:30px;align-content:start;min-width:0;}
.site-footer [data-up-club-footer] {padding-top:22px;border-top:1px solid #334037;}
.site-footer .site-footer-reviews {gap:18px;}
.site-footer .site-footer-reviews article {gap:6px;padding-bottom:16px;border-bottom:1px solid #2b392f;}
.site-footer .site-footer-reviews strong {font-size:12px;font-weight:600;line-height:1.5;}
.site-footer .site-footer-reviews p,.site-footer .site-footer-contact span {font-size:14px;font-weight:400;line-height:1.65;color:#b9c5bc;}
.site-footer .footer-stars {font-size:16px;}
.site-footer .footer-stars small {font-size:10px;font-weight:600;color:#c6d0c8;}
.site-footer .site-footer-socials {gap:8px;}
.site-footer .site-footer-socials a {padding:7px 12px;font-size:12px;min-height:34px;}
.site-footer .site-footer-bottom {width:min(1440px,calc(100% - 64px));font-size:12px;font-weight:400;line-height:1.6;padding:20px 0 24px;color:#9aab9e;}
@media(max-width:1250px){
 .site-footer .site-footer-inner {grid-template-columns:repeat(4,minmax(0,1fr));gap:30px;}
 .site-footer .site-footer-brand {grid-column:1/-1;display:flex;align-items:center;gap:36px;padding-bottom:28px;border-bottom:1px solid #2b392f;}
 .site-footer .site-footer-brand p {margin:0;max-width:360px;}
 .site-footer .site-footer-reviews {grid-column:auto;}
}
@media(max-width:850px){.site-footer .site-footer-inner {grid-template-columns:repeat(2,minmax(0,1fr));gap:34px;} }
@media(max-width:520px){
 .site-footer .site-footer-inner {width:calc(100% - 40px);grid-template-columns:1fr;padding:32px 0;gap:28px;}
 .site-footer .site-footer-brand {display:block;grid-column:auto;}
 .site-footer .site-footer-brand p {margin-top:16px;}
 .site-footer .site-footer-bottom {width:calc(100% - 40px);flex-direction:column;gap:8px;}
}

/* Edit every cart line directly in the add-to-cart dialog. */
.added-cart-lines { display: grid; gap: 0; }
.added-cart-lines .added-product-summary { grid-template-columns: 76px minmax(0,1fr) auto auto; gap: 18px; padding: 18px 0; border-bottom: 1px solid #e7ebe3; }
.added-cart-lines .added-product-summary:first-child { padding-top: 0; }
.added-cart-lines .added-product-summary:last-child { border-bottom: 0; }
.added-cart-lines .added-product-summary figure { height: 84px; padding: 6px; }
.added-cart-lines .added-product-summary figure img { height: 72px; }
.added-cart-lines .added-product-copy h3 { font-size: 16px; overflow-wrap: anywhere; }
.added-bundle-selection { display: block; margin-bottom: 6px; color: #697568; font-size: 12px; line-height: 1.5; }
.added-line-edit { display: grid; justify-items: center; gap: 7px; }
.added-line-quantity { display: flex; align-items: center; overflow: hidden; border: 1px solid #dce2da; border-radius: 8px; background: #fff; }
.added-line-quantity button { flex: 0 0 36px; width: 36px; min-height: 40px; padding: 0; border: 0; background: #f5f7f3; color: #303933; font: inherit; font-size: 20px; cursor: pointer; }
.added-line-quantity button:disabled { opacity: .35; cursor: default; }
.added-line-quantity input { box-sizing: border-box; width: 48px; min-width: 0; min-height: 40px; padding: 4px 2px; border: 0; border-radius: 0; background: #fff; color: #303933; font: inherit; font-weight: 650; text-align: center; appearance: textfield; -moz-appearance: textfield; }
.added-line-quantity input::-webkit-inner-spin-button, .added-line-quantity input::-webkit-outer-spin-button { margin: 0; -webkit-appearance: none; }
.added-line-remove { min-height: 30px; padding: 3px 8px; border: 0; background: transparent; color: #697568; font: inherit; font-size: 12px; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.added-line-remove:hover { color: #972f2f; }
.added-cart-lines .added-product-price { min-width: 96px; font-size: 18px; text-align: right; }
.added-discounts { display: grid; gap: 8px; margin: 12px 0 20px; padding-top: 16px; border-top: 1px solid #e7ebe3; font-size: 13px; }
.added-discounts > div { display: flex; justify-content: space-between; gap: 16px; }
.added-discounts dd { margin: 0; font-weight: 650; white-space: nowrap; }
.added-feedback { margin: 0 0 12px; color: #972f2f; font-size: 13px; }
.added-feedback:empty { display: none; }
.added-empty-cart { margin: 0; padding: 20px 0; color: #697568; line-height: 1.6; }
.added-cart-button:disabled { opacity: .45; cursor: default; }
.added-line-quantity input:focus-visible { outline: 2px solid #86a67b; outline-offset: -3px; }
@media (max-width: 600px) {
  .added-cart-lines .added-product-summary { grid-template-columns: 64px minmax(0,1fr); gap: 10px 14px; padding: 18px 0; }
  .added-cart-lines .added-product-summary figure { grid-row: auto; height: 72px; }
  .added-cart-lines .added-product-summary figure img { height: 60px; }
  .added-cart-lines .added-product-copy h3 { font-size: 14px; }
  .added-cart-lines .added-product-copy p { font-size: 12px; }
  .added-line-edit { grid-column: 2; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 4px 8px; }
  .added-cart-lines .added-product-price { grid-column: 2; min-width: 0; font-size: 17px; text-align: left; }
}

/* Quantity and removal controls in the header's cart drawer. */
.cart-drawer .cart-preview-copy { min-width:0; }
.cart-drawer .cart-preview-edit { grid-column:2 / -1; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; }
.cart-drawer .cart-preview-quantity { display:flex; align-items:center; overflow:hidden; border:1px solid #dce2da; border-radius:8px; background:#fff; }
.cart-drawer .cart-preview-quantity button { flex:0 0 36px; width:36px; min-height:40px; padding:0; border:0; background:#f0f3ee; color:#303933; font:inherit; font-size:19px; cursor:pointer; }
.cart-drawer .cart-preview-quantity button:disabled { opacity:.35; cursor:default; }
.cart-drawer .cart-preview-quantity input { box-sizing:border-box; width:48px; min-width:0; min-height:40px; padding:4px 2px; border:0; border-radius:0; background:#fff; color:#303933; font:inherit; font-weight:650; text-align:center; appearance:textfield; -moz-appearance:textfield; }
.cart-preview-quantity input::-webkit-inner-spin-button,.cart-preview-quantity input::-webkit-outer-spin-button { margin:0; -webkit-appearance:none; }
.cart-drawer .cart-preview-remove { min-height:36px; padding:4px 8px; border:0; background:transparent; color:#697568; font:inherit; font-size:12px; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.cart-drawer .cart-preview-remove:hover { color:#972f2f; }
.cart-preview-feedback { margin:0; color:#972f2f; font-size:13px; line-height:1.5; }
.cart-preview-feedback:empty { display:none; }
.cart-preview-quantity button:focus-visible,.cart-preview-remove:focus-visible { outline:2px solid #86a67b; outline-offset:-3px; }
.cart-preview-quantity input:focus-visible { outline:2px solid #86a67b; outline-offset:-3px; }
.cart-drawer [data-show-cart-page]:disabled { opacity:.45; cursor:default; }
@media(max-width:380px){.cart-drawer .cart-preview-line{grid-template-columns:42px minmax(0,1fr)}.cart-drawer .cart-preview-line img{width:42px;height:52px}.cart-drawer .cart-preview-line > b{grid-column:2}.cart-drawer .cart-preview-edit{grid-column:2}.cart-drawer .cart-preview-quantity button{flex-basis:32px;width:32px}.cart-drawer .cart-preview-quantity input{width:42px}}

/* One automatic welcome gift; its quantity and price cannot be edited. */
.welcome-cart-gift { display:flex; align-items:center; gap:14px; padding:16px; margin:14px 0; border:1px solid #c9dfc3; border-radius:10px; background:#edf4e8; color:#203b26; }
.welcome-cart-gift img { width:44px; height:58px; object-fit:contain; mix-blend-mode:multiply; }
.welcome-cart-gift div { flex:1; min-width:0; }
.welcome-cart-gift strong { display:block; font-size:14px; }
.welcome-cart-gift small { display:block; margin-top:5px; font-size:11px; line-height:1.5; color:#526a4e; }
.welcome-cart-gift b { font-size:12px; white-space:nowrap; }

.welcome-cart-gift select { display:block; width:100%; max-width:260px; min-height:36px; margin-top:5px; padding:6px 26px 6px 9px; border:1px solid #a1b99b; border-radius:6px; background:#fff; color:#203b26; font:inherit; font-size:12px; }
.welcome-cart-gift select:focus-visible { outline:2px solid #527b4d; outline-offset:2px; }

/* Monster campaign artwork fills its card without packshot margins. */
.product-card [data-detail-open="shoptet-360"] > figure { width:100%; height:auto; aspect-ratio:1 / 1; padding:0; }
.product-card [data-detail-open="shoptet-360"] > figure > img { inset:0; width:100%; height:100%; padding:0; object-fit:cover; transform:none !important; mix-blend-mode:normal; }

.product-card [data-detail-open="shoptet-360"] > figure .product-image-badge { display:none; }

/* Clean Trick or Treat campaign artwork fills its card. */
.product-card [data-detail-open="shoptet-357"] > figure { width:100%; height:auto; aspect-ratio:1 / 1; padding:0; }
.product-card [data-detail-open="shoptet-357"] > figure > img { inset:0; width:100%; height:100%; padding:0; object-fit:cover; transform:none !important; mix-blend-mode:normal; }
.product-card [data-detail-open="shoptet-357"] > figure .product-image-badge { display:none; }
