/* Focus-accessible, layout-neutral skip link. */
.skip {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  padding: 0;
  position: fixed;
  white-space: nowrap;
  width: 1px;
}

.skip:focus,
.skip:focus-visible {
  clip: auto;
  clip-path: none;
  height: auto;
  left: 1rem;
  overflow: visible;
  padding: .8rem 1rem;
  top: 1rem;
  width: auto;
}

.reason svg {
  color: var(--forest);
  display: block;
  height: 30px;
  margin-bottom: .8rem;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.4;
  width: 30px;
}

.reason p { margin: .35rem 0 0; }
.product-name { line-height: 1.35; min-height: 2.7em; }
.product-info { display: flex; flex-direction: column; }
.heart { align-items: center; display: flex; justify-content: center; }
.product-image picture,
.category picture,
.editorial picture,
.gallery-main picture { display: block; height: 100%; width: 100%; }
.product-image picture img,
.category picture img,
.editorial picture img,
.gallery-main picture img { height: 100%; object-fit: cover; width: 100%; }
.product-pricing { align-items: baseline; display: flex; flex-wrap: wrap; gap: .25rem .55rem; }
.regular-price { color: var(--muted); font-size: .78rem; text-decoration: line-through; }
.launch-price { color: var(--forest); font-size: 1rem; }
.colour-count { color: var(--muted); display: block; font-size: .75rem; margin-top: .25rem; }
.detail-badge { background: var(--forest); color: white; display: inline-block; font-size: .68rem; letter-spacing: .08em; padding: .28rem .5rem; text-transform: uppercase; }
.detail-pricing { align-items: baseline; display: flex; gap: .8rem; margin: .8rem 0 1rem; }
.detail-pricing strong { color: var(--forest); font-size: 1.55rem; }
.detail-heading { font: 500 1.8rem var(--serif); margin-bottom: .5rem; }
.image-swatches { display: flex; flex-wrap: wrap; gap: .7rem; margin: .8rem 0 1.5rem; }
.image-swatch { background: white; border: 2px solid transparent; cursor: pointer; padding: 2px; width: 68px; }
.image-swatch picture { aspect-ratio: 4 / 5; display: block; }
.image-swatch img { height: 100%; object-fit: cover; }
.image-swatch.active { border-color: var(--forest); box-shadow: 0 0 0 2px white, 0 0 0 3px var(--forest); }
.package,.delivery-note { border-top: 1px solid var(--line); display: grid; gap: .35rem; margin-top: 1.5rem; padding-top: 1rem; }
.package strong,.delivery-note strong { margin-bottom: .2rem; text-transform: uppercase; }
.delivery-progress { background: var(--ivory); border-left: 3px solid var(--forest); margin: 0 0 1.5rem; padding: .9rem 1rem; }
.delivery-progress.unlocked { background: #edf5f0; }
.cart-row picture { display: block; height: 138px; width: 110px; }
.cart-row picture img { height: 100%; object-fit: cover; }
.order-line { align-items: start; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; gap: 1rem; padding: .75rem 0; }
.order-line small { color: var(--muted); display: block; margin-top: .15rem; }
.filters select,.filters input[type="range"] { width: 100%; }
.drawer-link { border-bottom: 1px solid var(--line); display: block; padding: .8rem 0; }
.related-products { border-top: 1px solid var(--line); margin-top: 5rem; padding-bottom: 1rem; padding-top: 4.5rem; }
.related-products .section-head { margin-bottom: 1.75rem; }

@media (max-width: 820px) {
  .related-products { margin-top: 3.5rem; padding-top: 3rem; }
  .announce { height: 32px; line-height: 1.2; padding-inline: 1rem; text-align: center; }
  .nav { padding-inline: 1rem; }
  .nav > .iconbtn:first-child { justify-self: start; margin-left: -.55rem; }
  .navicons { align-items: center; }
  .navicons .iconbtn:not(.desktop-only) { align-items: center; display: flex; justify-content: center; }
  .navicons .desktop-only { display: none; }
  .count { right: 0; top: 0; }
  .hero { height: min(600px, calc(100svh - 100px)); min-height: 520px; }
  .hero-copy { padding-bottom: 2rem; }
  .hero h1 { line-height: .98; margin-bottom: .8rem; }
  .hero .actions { gap: .65rem; margin-top: 1.25rem; }
  .hero .btn { min-height: 48px; }
  .section { padding-block: 3rem; }
  .category-section { padding-bottom: 2.5rem; }
  .latest-section { padding-top: 2.5rem; }
  .section-head { margin-bottom: 1.5rem; }
  .latest-section .section-head { margin-bottom: 1.5rem; }
  .categories { align-items: stretch; }
  .category { aspect-ratio: 4 / 5; height: auto; }
  .category-copy { min-height: 64px; padding: .8rem; }
  .category strong { line-height: 1.25; }
  .product-grid { align-items: start; row-gap: 2rem; }
  .product-image { aspect-ratio: 4 / 5; }
  .product-info { min-height: 76px; }
  .badge { left: .5rem; top: .5rem; }
  .heart { height: 40px; right: .45rem; top: .45rem; width: 40px; }
  .cart-row picture { height: 115px; width: 90px; }
  .editorial img { aspect-ratio: 4 / 5; height: auto; max-height: 520px; object-position: center top; }
  .editorial-copy { min-height: 0; padding: 2.5rem 5vw 3rem; }
  .editorial h2 { line-height: .95; }
  .why-section { padding-block: 3rem; }
  .reason { padding: 1.1rem 0; }
  .reason strong { display: block; line-height: 1.3; }
  .newsletter { padding-block: 2.5rem; }
  .footer { padding-top: 3rem; }
  .footer-grid { align-items: start; gap: 2rem 2.5rem; }
  .footer a { margin: 0; min-height: 38px; padding: .45rem 0; }
  .copyright { margin-top: 2.25rem; padding-bottom: .25rem; }
}

@media (max-width: 430px) {
  .container { width: calc(100% - 32px); }
  .hero-copy { width: calc(100% - 32px); }
  .hero h1 { font-size: clamp(2.65rem, 12vw, 3rem); }
  .hero p { font-size: .95rem; }
  .hero .actions { align-items: stretch; flex-direction: column; width: min(100%, 270px); }
  .categories { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: visible; }
  .category { min-width: 0; }
  .category-copy { gap: .4rem; min-height: 62px; }
  .category strong { font-size: .7rem; }
  .product-grid { gap: 1.75rem .75rem; }
  .product-name { font-size: .82rem; }
  .why { gap: 0 1rem; }
  .newsletter .container { width: calc(100% - 32px); }
  .subscribe { flex-wrap: wrap; }
  .subscribe input { min-height: 48px; min-width: 190px; }
  .subscribe .btn { min-height: 48px; }
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-grid > div:first-child { grid-column: 1 / -1; }
  .footer-grid > div:last-child { grid-column: 1 / -1; }
}

@media (max-width: 350px) {
  .announce { font-size: .66rem; }
  .hero { min-height: 500px; }
  .section-title { font-size: 2rem; }
  .section-head > a { font-size: .8rem; }
  .subscribe { display: grid; grid-template-columns: 1fr; }
  .subscribe input { min-width: 0; width: 100%; }
}
/* Same approved hero artwork, losslessly dimensioned and efficiently encoded. */
.hero{background-image:url('/assets/hero.webp')}
.footer h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em}
.category-section,.latest-section,.editorial,.why-section,.newsletter,.footer{content-visibility:auto;contain-intrinsic-size:auto 700px}
@media(max-width:820px){.hero{background-image:url('/assets/hero-mobile.webp')}}
