/* Final storefront refinements. Product facts sit beside photos, never over them. */
:root {
  --pine-soft: #eef3ec;
  --gold: #8a713b;
  --radius: 6px;
}

body { font-size: 16px; }
/* A growing delivery summary must never consume the cart-lines viewport. */
#cart-drawer { overflow-y: auto; overscroll-behavior: contain; }
#cart-drawer .drawer-inner { height: auto; min-height: 100%; }
#cart-drawer .cart-lines { flex: 0 0 auto; overflow: visible; }
#cart-drawer .drawer-bottom { flex: 0 0 auto; margin-top: auto; }
#cart-drawer .drawer-heading { flex: 0 0 auto; }
main, section, article, .container { min-width: 0; }
.button { min-height: 54px; border-radius: 6px; font-size: 14px; line-height: 1.4; }
.button .icon { flex-shrink: 0; }
.icon-button, .filter-button, .text-button { min-height: 44px; }
.text-link { min-height: 44px; line-height: 1.5; }
.button:focus-visible, .pack-option:focus-within {
  outline: 3px solid #4f8390;
  outline-offset: 4px;
}
.product-subtitle, .simple-content p, .guide-content > p,
.feature-copy > .description, .contact-form label { font-size: 15px; line-height: 1.85; }

/* Zero minimum grid tracks prevent a long name from pushing a price off screen. */
.product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.product-grid:has(> .product-card:nth-child(2):last-child) {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.product-card { min-width: 0; }
.product-card-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px 14px;
  min-height: 40px;
  padding-block: 0 12px;
}
.product-card-meta .product-card-badge {
  position: static;
  display: inline-block;
  max-width: 100%;
  font-size: 10px;
  line-height: 1.6;
  letter-spacing: .075em;
  color: var(--slate);
}
.product-card-number { display: none; }
.product-card-visual { aspect-ratio: 1 / 1; border-radius: 6px; background: var(--mist); }
.product-card-visual > a {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  padding: 18px;
}
.product-card-visual .responsive-photo {
  display: block;
  min-width: 0;
  width: 100%;
  height: 100%;
}
.product-card-visual .responsive-photo img, .product-card-visual > a > img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transform: none;
}
.product-card:hover .product-card-visual img { transform: none; }
.product-card-info {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 12px;
  padding-top: 18px;
}
.product-card-info > div { min-width: 0; }
.product-card-info h3 { font-size: 22px; line-height: 1.25; font-weight: 650; overflow-wrap: anywhere; }
.product-card-info .small { font-size: 13px; line-height: 1.6; }
.card-price { font-size: 17px; font-weight: 700; white-space: nowrap; line-height: 1.5; }
.quick-add { width: 48px; height: 48px; right: 14px; bottom: 14px; }
.in-cart-note { font-size: 12px; line-height: 1.5; }

/* Outlined brand stars identify reviews without implying an unprovided average. */
.brand-stars { display: inline-flex; align-items: center; gap: 3px; flex: 0 0 auto; color: var(--gold); }
.brand-stars svg, .brand-stars .icon {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
}
.product-title-review {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 12px;
  margin-top: 14px;
  min-height: 44px;
  font-size: 13px;
  line-height: 1.6;
  color: var(--slate);
}
.product-title-review a { display: inline-flex; align-items: center; min-height: 44px; }
.product-title-review strong { font-weight: 700; }
.review-summary { font-size: 12px; line-height: 1.65; gap: 8px 10px; }
.brand-review-card { background: var(--pine-soft); border-radius: 6px; }
.brand-review-card h3 { font-weight: 650; }
.review-context { font-size: 12px !important; line-height: 1.8; }

/* Reserve real rows for gallery labels and controls, keeping them off the product. */
.product-stage {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: 12px;
  padding: 18px;
  aspect-ratio: 1 / 1.08;
  border-radius: 6px;
}
.product-stage-badge {
  position: static;
  grid-column: 1;
  grid-row: 1;
  font-size: 10px;
  line-height: 1.6;
  letter-spacing: .065em;
  max-width: 100%;
}
.product-stage > .responsive-photo {
  position: relative;
  grid-column: 1;
  grid-row: 2;
  min-height: 0;
  min-width: 0;
  width: 100%;
  height: 100%;
}
.product-stage > .responsive-photo > img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transform: none;
  will-change: auto;
}
.product-stage .inspect-button {
  position: static;
  grid-column: 1;
  grid-row: 3;
  justify-self: start;
  min-height: 44px;
  padding: 10px 14px;
  font-size: 12px;
  background: var(--paper);
}
.gallery-toolbar, .gallery-thumbnails { min-width: 0; }
.gallery-thumbnails { overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; }
.gallery-thumb { flex: 0 0 auto; }
.gallery-note { font-size: 12px; line-height: 1.75; }

/* The feature annotation gets its own row instead of covering the straw. */
.feature-visual {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 14px;
  height: auto;
  min-height: 0;
  aspect-ratio: auto;
  padding: 22px;
  border-radius: 6px;
}
.feature-corner { position: static; font-size: 11px; line-height: 1.6; }
.feature-visual > .responsive-photo { width: 100%; height: auto; aspect-ratio: 1 / 1; }
.feature-visual > .responsive-photo > img { width: 100%; height: 100%; min-height: 0; object-fit: contain; aspect-ratio: auto; }
.feature-annotation {
  position: static;
  align-self: stretch;
  padding: 14px 0 0;
  border: 0;
  border-top: 1px solid var(--line);
  background: transparent;
  font-size: 11px;
  line-height: 1.7;
  letter-spacing: .04em;
}

/* Bundle cards share one layout, whether supplied with a composite or component photos. */
.bundle-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; align-items: stretch; }
.bundle-card { display: flex; flex-direction: column; min-width: 0; border: 1px solid var(--line); background: #fff; border-radius: 6px; overflow: hidden; }
.bundle-meta { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; min-height: 47px; padding: 13px 18px; font-size: 11px; line-height: 1.5; }
.bundle-meta > span { min-width: 0; overflow-wrap: anywhere; }
.bundle-meta .eyebrow { font-size: 10px; letter-spacing: .065em; }
.bundle-visual, .bundle-detail-visual {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 0;
  overflow: hidden;
  background: var(--mist);
}
.bundle-visual { padding: 18px; aspect-ratio: 1 / 1; min-height: 210px; }
.bundle-visual > .responsive-photo, .bundle-visual > picture,
.bundle-detail-visual > .responsive-photo, .bundle-detail-visual > picture {
  flex: 1 1 0;
  min-width: 0;
  width: 0;
  height: 100%;
}
.bundle-visual > img, .bundle-detail-visual > img { flex: 1 1 0; min-width: 0; width: 0; height: 100%; object-fit: contain; }
.bundle-visual picture img, .bundle-detail-visual picture img { width: 100%; height: 100%; object-fit: contain; }
.bundle-card-copy { display: flex; flex-direction: column; gap: 12px; flex: 1; min-width: 0; padding: 22px 20px; }
.bundle-card-copy h2, .bundle-card-copy h3 { font-size: 22px; line-height: 1.25; font-weight: 650; letter-spacing: -.025em; overflow-wrap: anywhere; }
.bundle-card-copy > p { font-size: 14px; line-height: 1.7; color: var(--slate); }
.bundle-contents { padding: 0; margin: 0; list-style: none; font-size: 13px; line-height: 1.8; color: var(--slate); }
.bundle-contents li { display: flex; align-items: flex-start; gap: 8px; }
.bundle-contents .icon { width: 16px; height: 16px; margin-top: 4px; }
.bundle-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 7px 10px; margin-top: 3px; }
.bundle-price strong { font-size: 24px; font-weight: 700; line-height: 1.3; letter-spacing: -.03em; white-space: nowrap; }
.bundle-price s, .bundle-price del, .bundle-price small { font-size: 13px; line-height: 1.6; color: var(--muted); }
.bundle-price > span { font-size: 13px; line-height: 1.6; color: #385439; }
.offer-saving { display: inline-flex; align-items: center; padding: 4px 8px; border-radius: 4px; background: var(--pine-soft); font-size: 11px; line-height: 1.5; font-weight: 650; color: #385439; }
.bundle-actions { display: grid; align-content: end; gap: 10px; margin-top: auto; padding-top: 12px; }
.bundle-actions .button { width: 100%; justify-content: space-between; min-height: 52px; padding-inline: 16px; gap: 12px; }
.bundle-actions .text-link { justify-self: start; font-size: 13px; }
.bundle-detail-layout { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 72px); align-items: start; padding-block: 28px 72px; }
.bundle-detail-visual { position: sticky; top: 112px; padding: 26px; aspect-ratio: 1 / 1; border-radius: 6px; }
.bundle-detail-copy { min-width: 0; padding-top: 10px; }
.bundle-detail-copy h1 { font-size: clamp(36px, 4vw, 58px); line-height: 1.1; margin-top: 12px; }
.bundle-detail-copy > p:not(.eyebrow) { margin-top: 18px; font-size: 15px; line-height: 1.85; color: var(--slate); }
.bundle-detail-copy .bundle-contents { margin-top: 20px; font-size: 14px; }
.bundle-detail-copy .bundle-price { margin-block: 24px; }
.bundle-detail-copy .bundle-price strong { font-size: 30px; }
.bundle-detail-copy .bundle-actions { margin-top: 20px; }

/* Whole labels are tappable. Checked and keyboard states have distinct outlines. */
.pack-selector { min-width: 0; width: 100%; margin: 24px 0 0; padding: 0; border: 0; }
.pack-selector legend { padding: 0; margin-bottom: 13px; font-size: 14px; line-height: 1.5; font-weight: 650; }
.pack-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.pack-option {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  align-content: start;
  align-items: start;
  gap: 8px;
  min-width: 0;
  min-height: 106px;
  padding: 14px 12px;
  border: 1px solid #c8d3ce;
  border-radius: 6px;
  background: #fff;
  cursor: pointer;
}
.pack-option:has(input:checked) { border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); background: var(--pine-soft); }
.pack-option input[type="radio"] { width: 16px; height: 16px; margin: 3px 0 0; accent-color: var(--ink); cursor: pointer; }
.pack-option > span { min-width: 0; }
.pack-option strong { display: block; font-size: 14px; line-height: 1.4; font-weight: 650; }
.pack-option small { display: block; font-size: 12px; line-height: 1.5; color: var(--muted); margin-top: 5px; }
.pack-option .pack-value { grid-column: 2; font-size: 17px; font-weight: 700; line-height: 1.4; color: var(--ink); }
.pack-option .pack-value > strong { font-size: inherit; font-weight: 700; }
.pack-option .offer-saving { grid-column: 2; justify-self: start; margin-top: 2px; }
.pack-selection-note { margin-top: 12px; font-size: 13px; line-height: 1.75; color: var(--slate); }
.buy-row { grid-template-columns: 132px minmax(0, 1fr); gap: 12px; }
.quantity { min-width: 0; }
.quantity button { width: 44px; min-width: 44px; min-height: 50px; }
.quantity input { width: 36px; min-width: 0; font-size: 16px; }
.small-quantity { min-width: 126px; max-width: 138px; min-height: 44px; }
.small-quantity button { min-height: 44px; }
.small-quantity span { flex: 1; min-width: 24px; padding-inline: 3px; text-align: center; font-size: 13px; }
.product-section-links { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 28px; padding-block: 10px; border-block: 1px solid var(--line); }
.product-section-links a { display: inline-flex; align-items: center; min-height: 44px; padding-block: 8px; font-size: 13px; font-weight: 600; line-height: 1.5; }

/* Shipping and order costs remain readable beside the purchase decision. */
.destination-quote { display: grid; gap: 10px; min-width: 0; padding: 18px; margin-block: 20px; background: var(--pine-soft); border: 1px solid #d4dfcf; border-radius: 6px; }
.destination-quote label { font-size: 13px; font-weight: 650; line-height: 1.5; }
.destination-quote select { width: 100%; min-width: 0; min-height: 48px; padding: 10px 35px 10px 12px; border-color: #bccdb8; background: var(--paper); font-size: 16px; line-height: 1.5; }
.destination-quote p, .destination-quote small { font-size: 13px; line-height: 1.75; color: var(--slate); }
.shipping-progress { display: grid; gap: 8px; margin-block: 16px; font-size: 13px; line-height: 1.65; }
.shipping-progress span { display: block; }
.shipping-progress progress { display: block; width: 100%; height: 8px; overflow: hidden; border: 0; border-radius: 999px; accent-color: var(--ink); background: #dfe7dd; }
.shipping-progress progress::-webkit-progress-bar { background: #dfe7dd; border-radius: 999px; }
.shipping-progress progress::-webkit-progress-value { background: var(--ink); border-radius: 999px; }
.shipping-progress progress::-moz-progress-bar { background: var(--ink); border-radius: 999px; }
.shipping-notice { margin-top: 12px; font-size: 13px; line-height: 1.75; color: var(--slate); }
.order-costs { display: grid; gap: 13px; padding-top: 18px; margin-block: 18px; border-top: 1px solid var(--line); }
.order-costs > div { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; min-width: 0; font-size: 14px; line-height: 1.6; }
.order-costs > div > span { min-width: 0; }
.order-costs strong { flex: 0 0 auto; text-align: right; font-weight: 650; }
.order-costs > div:last-child { padding-top: 13px; border-top: 1px solid var(--line); font-size: 16px; }
.order-costs > div:last-child strong { font-size: 22px; font-weight: 700; letter-spacing: -.025em; }
.drawer-bottom .payment-note { font-size: 12px; line-height: 1.8; }
.cart-line { grid-template-columns: 80px minmax(0, 1fr) auto; }
.checkout-summary .cart-line { grid-template-columns: 80px minmax(0, 1fr) auto; }
.cart-line > strong { white-space: nowrap; }
.cart-line > div { min-width: 0; }
.cart-line-title { display: block; overflow-wrap: anywhere; }
.line-controls { flex-wrap: wrap; }
/* Bundle thumbnails keep every component inside the existing thumbnail track. */
.offer-thumbnail {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  gap: 1px;
  width: 80px;
  height: 90px;
  min-width: 0;
  overflow: hidden;
  border-radius: 3px;
  background: var(--mist);
}
.offer-thumbnail > img {
  display: block;
  flex: 1 1 0;
  min-width: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.search-result .offer-thumbnail { display: inline-flex; flex: 0 0 70px; width: 70px; height: 80px; }
.search-result .offer-thumbnail > img { width: 100%; height: 100%; object-fit: contain; }
.search-result > span:not(.offer-thumbnail) { min-width: 0; overflow-wrap: anywhere; }
.search-result > b { flex: 0 0 auto; white-space: nowrap; }
.upsell-line .offer-thumbnail { display: inline-flex; flex: 0 0 50px; width: 50px; height: 65px; margin-top: 0; }
.upsell-line .offer-thumbnail > img { width: 100%; height: 100%; object-fit: contain; }

/* Policy tables scroll inside their frame rather than widening a phone page. */
.policy-table-wrap { max-width: 100%; min-width: 0; overflow-x: auto; overscroll-behavior-x: contain; border: 1px solid var(--line); border-radius: 6px; scrollbar-width: thin; }
.shipping-table { width: 100%; min-width: 610px; border-collapse: collapse; font-size: 14px; line-height: 1.75; background: #fff; }
.shipping-table th, .shipping-table td { padding: 15px 18px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
.shipping-table th { font-size: 12px; font-weight: 700; color: var(--slate); background: var(--pine-soft); }
.shipping-table tr:last-child td { border-bottom: 0; }
.support-topics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-block: 28px; }
.support-topics > * { min-width: 0; padding: 24px; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
.support-topics h2, .support-topics h3, .support-topics strong { font-size: 22px; line-height: 1.3; }
.support-topics p { font-size: 14px; line-height: 1.8; margin-top: 12px; color: var(--slate); }
.support-topics a { min-height: 44px; }
.privacy-controls { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-block: 24px; }
.privacy-controls button, .privacy-controls a { min-height: 48px; font-size: 14px; }
.privacy-controls p { flex-basis: 100%; font-size: 13px; line-height: 1.75; }
.contact-form textarea { font-size: 16px; line-height: 1.8; }
.contact-result { font-size: 14px; line-height: 1.8; }
.simple-content h2 { line-height: 1.2; scroll-margin-top: 110px; }
.simple-content li { margin-block: 8px; }

@media (max-width: 1100px) {
  .bundle-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
  .bundle-visual { min-height: 260px; }
  .bundle-card-copy { padding: 24px; }
  .pack-options { gap: 8px; }
  .pack-option { padding: 13px 10px; }
}

@media (max-width: 820px) {
  .product-grid { gap: 20px; }
  .product-card-info { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .product-card-info h3 { font-size: 20px; }
  .product-card-info .card-price { padding-top: 0; }
  .product-card-visual > a { padding: 14px; }
  .bundle-detail-layout { gap: 30px; }
  .bundle-detail-copy h1 { font-size: 38px; }
  .bundle-detail-visual { padding: 18px; }
  .support-topics { gap: 12px; }
  .support-topics > * { padding: 20px; }
}

@media (max-width: 760px) {
  /* Copy and the primary CTA come first; a separate photo protects the product crop. */
  .hero { display: flex; flex-direction: column; height: auto; max-height: none; min-height: 0; color: var(--ink); background: var(--paper); }
  .hero::after { display: none; }
  .hero > .responsive-photo, .hero > .hero-mobile-picture {
    position: relative;
    inset: auto;
    display: block;
    flex: 0 0 auto;
    order: 2;
    width: 100%;
    height: clamp(260px, 68vw, 430px);
    min-height: 260px;
    overflow: hidden;
  }
  .hero > .responsive-photo > img, .hero > .hero-mobile-picture > img, .hero .mobilehero {
    position: relative;
    inset: auto;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 55%;
  }
  .hero-content { order: 1; height: auto; min-height: 0; padding-block: 30px; }
  .hero h1 { font-size: clamp(42px, 10.8vw, 64px); line-height: 1.05; margin-top: 17px; font-weight: 650; letter-spacing: -.05em; }
  .hero h1 em { color: #517448; }
  .hero .eyebrow { color: var(--slate); font-size: 10px; line-height: 1.6; }
  .hero-description { color: var(--slate); max-width: 560px; font-size: 15px; line-height: 1.75; margin-top: 20px; }
  .hero .review-summary { color: var(--slate); font-size: 12px; max-width: none; margin-top: 19px; }
  .hero .review-star { color: var(--gold); fill: none; }
  .hero .review-divider { background: var(--line); }
  .hero .hero-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; width: 100%; max-width: 580px; margin-top: 20px; }
  .hero .hero-buttons .button { width: 100%; min-height: 52px; padding: 13px 18px; font-size: 14px; justify-content: space-between; }
  .hero .hero-buttons .white-outline { background: transparent; backdrop-filter: none; color: var(--ink); border-color: #b9c9c5; justify-content: center; }
  .hero-footer { width: 100%; margin-top: 29px; padding: 0; color: var(--slate); align-items: center; gap: 20px; }
  .hero-footer > p { font-size: 10px; line-height: 1.6; }
  .hero-coordinate { font-size: 9px; line-height: 1.7; }
  .hero-coordinate .compass { width: 42px; height: 42px; border-color: #b9c9c5; }
  .product-stage { aspect-ratio: 1 / 1.16; max-height: none; min-height: 330px; }
  .product-stage > .responsive-photo { min-height: 0; }
  .product-stage-badge { font-size: 10px; }
  .product-details h1 { font-size: 38px; line-height: 1.12; }
  .purchase-benefits li { font-size: 14px; line-height: 1.7; }
  .pack-options { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .pack-option { grid-template-columns: 18px minmax(0, 1fr) auto; min-height: 78px; padding: 16px; align-items: center; gap: 12px; }
  .pack-option input[type="radio"] { margin-top: 0; }
  .pack-option strong { font-size: 15px; }
  .pack-option .pack-value { grid-column: 3; grid-row: 1; font-size: 18px; align-self: center; white-space: nowrap; }
  .pack-option .offer-saving { grid-column: 2 / -1; }
  .pack-selection-note { font-size: 13px; }
  .buy-row .button { font-size: 14px; min-height: 56px; padding-inline: 14px; gap: 8px; }
  .buy-row .button .icon { width: 18px; height: 18px; }
  .bundle-detail-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; padding-block: 20px 54px; }
  .bundle-detail-visual { position: relative; top: auto; width: 100%; max-height: 520px; padding: 24px; }
  .bundle-detail-copy { padding-top: 0; }
  .bundle-detail-copy h1 { font-size: 38px; }
  .bundle-detail-copy .bundle-actions .button { min-height: 56px; }
  .product-section-links { flex-wrap: nowrap; overflow-x: auto; overscroll-behavior-x: contain; gap: 24px; scrollbar-width: thin; }
  .product-section-links a { flex: 0 0 auto; white-space: nowrap; }
  .support-topics { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .mobile-purchase-bar > div { min-width: 0; }
  .mobile-purchase-bar > div > span { font-size: 12px; max-width: 180px; }
  .mobile-purchase-bar .button { font-size: 13px; min-width: 148px; min-height: 52px; }
}

@media (max-width: 640px) {
  .bundle-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .bundle-visual { min-height: 0; height: clamp(250px, 77vw, 390px); aspect-ratio: auto; padding: 22px; }
  .bundle-card-copy { padding: 24px; }
  .bundle-card-copy h2, .bundle-card-copy h3 { font-size: 25px; }
  .bundle-meta { padding: 15px 22px; font-size: 12px; }
  .bundle-actions .button { font-size: 14px; min-height: 54px; }
}

@media (max-width: 600px) {
  :root { --space: 18px; }
  /* The 1024 by 1536 portrait keeps its cap and lower product edges in this crop. */
  .hero > .responsive-photo, .hero > .hero-mobile-picture {
    height: 106vw;
    min-height: 0;
    max-height: none;
    aspect-ratio: 1 / 1.06;
  }
  .hero > .responsive-photo > img, .hero > .hero-mobile-picture > img, .hero .mobilehero {
    object-position: 50% 65%;
  }
  .header-inner { grid-template-columns: 44px minmax(0, 1fr) 88px; gap: 8px; }
  .header-inner > .logo { justify-self: center; min-width: 0; }
  .header-actions { gap: 0; }
  .header-actions .icon-button, .header-actions .bag-button { width: 44px; min-width: 44px; padding: 8px; }
  .header-actions .bag-button { gap: 3px; }
  .mobile-trigger { min-width: 44px; width: 44px; padding: 10px; }
  .logo img { width: 27px; height: 27px; }
  .logo-text { font-size: 12px; }
  .hero-content { padding-block: 25px 29px; }
  .hero h1 { font-size: clamp(40px, 11.6vw, 55px); margin-top: 14px; }
  .hero .eyebrow { font-size: 9px; letter-spacing: .075em; max-width: none; }
  .hero-description { font-size: 14px; line-height: 1.75; max-width: none; margin-top: 16px; }
  .hero .review-summary { font-size: 12px; line-height: 1.6; gap: 6px 9px; margin-top: 16px; }
  .hero .review-summary > span:last-child { padding-left: 0; }
  .hero .hero-buttons { grid-template-columns: minmax(0, 1fr); max-width: none; gap: 10px; margin-top: 17px; }
  .hero .hero-buttons .button { min-height: 52px; font-size: 14px; padding-inline: 18px; }
  .hero .hero-buttons .white-outline { min-height: 46px; font-size: 13px; }
  .hero-footer { margin-top: 25px; gap: 14px; }
  .hero-footer > p { font-size: 9px; max-width: 150px; }
  .hero-coordinate { font-size: 8px; gap: 8px; }
  .hero-coordinate > span:first-child { max-width: 135px; }
  .hero-coordinate .compass { width: 36px; height: 36px; }
  .product-grid, .product-grid:has(> .product-card:nth-child(2):last-child) { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .product-card-meta { min-height: 38px; padding-bottom: 11px; }
  .product-card-meta .product-card-badge { font-size: 10px; }
  .product-card-visual > a { padding: 18px; }
  .product-card-info { grid-template-columns: minmax(0, 1fr) auto; padding-top: 17px; gap: 12px; }
  .product-card-info h3 { font-size: 22px; }
  .product-card-info .small { font-size: 13px; }
  .card-price { font-size: 17px; padding-top: 1px; }
  .feature-visual { padding: 18px; gap: 13px; }
  .feature-copy > .description { font-size: 15px; }
  .feature-price { font-size: 13px; }
  .product-stage { padding: 16px; gap: 10px; }
  .product-details h1 { font-size: 34px; }
  .product-details .product-subtitle { font-size: 15px; line-height: 1.8; }
  .product-title-review { font-size: 13px; gap: 8px 10px; margin-top: 12px; }
  .product-details .review-summary { font-size: 12px; }
  .product-details .review-summary > span:last-child { padding-left: 0; font-size: 12px; }
  .review-divider { display: none; }
  .purchase-trust span, .purchase-trust a { font-size: 11px; line-height: 1.75; }
  .purchase-note { font-size: 12px; line-height: 1.75; }
  .decision-card > p:not(.eyebrow) { font-size: 14px; line-height: 1.8; }
  .decision-card > .text-link { font-size: 12px; }
  .product-details .faq summary { font-size: 14px !important; }
  .product-details .faq > div { font-size: 14px !important; }
  .gallery-thumbnails { flex: 1 1 0; }
  .gallery-pagination { flex: 0 0 auto; }
  .gallery-note { font-size: 12px; }
  .brand-review-card > p:not(.review-context) { font-size: 14px; }
  .review-actions .button { font-size: 14px; }
  .bundle-detail-visual { padding: 18px; min-height: 280px; }
  .bundle-detail-copy h1 { font-size: 34px; }
  .destination-quote { padding: 17px; }
  .destination-quote select { font-size: 16px; }
  .shipping-progress, .shipping-notice { font-size: 13px; }
  .cart-line, .checkout-summary .cart-line { grid-template-columns: 62px minmax(0, 1fr) auto; gap: 10px; }
  .cart-line > a > img, .checkout-summary .cart-line > a > img { width: 62px; height: 86px; }
  .cart-line .offer-thumbnail, .checkout-summary .cart-line .offer-thumbnail { width: 62px; height: 86px; }
  .cart-line-title, .checkout-summary .cart-line-title { font-size: 13px; line-height: 1.5; }
  .cart-line > strong { font-size: 13px; }
  /* Summary padding leaves less room than the drawer; prices get a separate row. */
  .checkout-summary .cart-line { grid-template-columns: 62px minmax(0, 1fr); }
  .checkout-summary .cart-line > strong { grid-column: 2; justify-self: end; }
  .cart-line .small { font-size: 11px; }
  .line-controls { gap: 8px; }
  .line-controls .text-button { min-height: 44px; font-size: 12px; }
  .small-quantity { min-width: 126px; max-width: 138px; }
  .small-quantity button { width: 44px; min-width: 44px; min-height: 44px; }
  .drawer-bottom .payment-note { font-size: 12px; }
  .shipping-table { min-width: 570px; font-size: 13px; }
  .shipping-table th, .shipping-table td { padding: 14px; }
  .privacy-controls { align-items: stretch; }
  .privacy-controls button, .privacy-controls a { width: 100%; justify-content: center; }
  .simple-content p, .simple-content li { font-size: 15px; line-height: 1.85; }
  .footer-column a { font-size: 13px; min-height: 44px; }
  .mobile-purchase-bar { padding-inline: 14px; gap: 10px; }
  .mobile-purchase-bar > div > span { font-size: 11px; max-width: 145px; }
  .mobile-purchase-bar .button { min-width: 145px; padding-inline: 14px; }
}

@media (max-width: 359px) {
  .logo { gap: 6px; }
  .logo-text { font-size: 11px; }
  .logo-sub { font-size: 4px; }
  .logo img { width: 25px; height: 25px; }
  .hero h1 { font-size: 39px; }
  .hero-footer { gap: 10px; }
  .hero-footer > p { max-width: 110px; }
  .hero-coordinate > span:first-child { max-width: 105px; }
  .product-card-info h3 { font-size: 20px; }
  .product-details h1, .bundle-detail-copy h1 { font-size: 31px; }
  .buy-row { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .buy-row > .quantity { width: 144px; justify-self: start; }
  .buy-row .button { width: 100%; }
  .pack-option { grid-template-columns: 18px minmax(0, 1fr) auto; gap: 9px; padding: 14px 12px; }
  .pack-option strong { font-size: 14px; }
  .pack-option .pack-value { font-size: 16px; }
  .mobile-purchase-bar > div > span { max-width: 115px; font-size: 10px; }
  .mobile-purchase-bar > div > strong { font-size: 18px; }
  .mobile-purchase-bar .button { min-width: 139px; padding-inline: 11px; font-size: 12px; }
  .bundle-card-copy { padding: 21px; }
  .bundle-card-copy h2, .bundle-card-copy h3 { font-size: 23px; }
  .cart-line, .checkout-summary .cart-line { grid-template-columns: 54px minmax(0, 1fr) auto; gap: 8px; }
  .checkout-summary .cart-line { grid-template-columns: 54px minmax(0, 1fr); }
  .cart-line > a > img, .checkout-summary .cart-line > a > img { width: 54px; height: 80px; }
  .cart-line .offer-thumbnail, .checkout-summary .cart-line .offer-thumbnail { width: 54px; height: 80px; }
  .cart-line-title, .checkout-summary .cart-line-title, .cart-line > strong { font-size: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .product-card img, .bundle-card img, .button { transition: none; }
  .gallery-thumbnails, .product-section-links, .policy-table-wrap { scroll-behavior: auto; }
}
