/*
  INFINSHER STYLESHEET MAP
  Keep these imports in this order because later page styles build on the base.
*/
@import url('./base.css');
@import url('./information.css');
@import url('./cart.css');
@import url('./checkout.css');
@import url('./returns.css');
@import url('./showcases.css');
@import url('./orders-owner.css');
@import url('./responsive.css');
@import url('./visual-refresh.css');
@import url('./tablet.css?v=tablet-layout-7');
@import url('./responsive-final.css?v=responsive-final-1');
/* Final product-cover contract: catalogue covers are always complete, centred
   and free from legacy zoom/crop transforms. Hero artwork remains independent. */
.home-page .product-grid--catalogue .product-image--photo,
.home-page .product-grid--catalogue .product-image--photo img {
  overflow:hidden;
}
.home-page .product-grid--catalogue .product-image--photo img {
  width:100% !important;
  height:100% !important;
  max-width:100%;
  max-height:100%;
  object-fit:contain !important;
  object-position:center center !important;
  transform:none !important;
  transform-origin:center center !important;
}
.home-page .product-grid--catalogue .product-image--photo {
  position:relative;
  isolation:isolate;
  background-image:var(--cover-backdrop,linear-gradient(145deg,#f1eadf,#e6eadf)) !important;
  background-size:cover;
  background-position:center;
}
.home-page .product-grid--catalogue .product-image--photo::before {
  content:'';
  position:absolute;
  z-index:-1;
  inset:-1rem;
  background:inherit;
  background-size:cover;
  background-position:center;
  filter:blur(1rem);
  opacity:.28;
  transform:scale(1.08);
}
/* Product-page related covers use the same complete, aligned presentation. */
.product-detail-page .related-product-card span {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background-image:var(--related-backdrop,linear-gradient(145deg,#f1eadf,#e6eadf));
  background-size:cover;
  background-position:center;
}
.product-detail-page .related-product-card span::before {
  content:'';
  position:absolute;
  z-index:-1;
  inset:-1rem;
  background:inherit;
  background-size:cover;
  background-position:center;
  filter:blur(1rem);
  opacity:.28;
  transform:scale(1.08);
}
.product-detail-page .related-product-card img {
  position:relative;
  z-index:1;
  width:100%;
  height:100%;
  padding:.65rem;
  object-fit:contain;
  object-position:center;
  transform:none;
}
.product-detail-page .related-product-card[data-related-product="nori-45"] span {
  display:grid;
  width:100%;
  height:auto !important;
  aspect-ratio:1 / 1;
  place-items:center;
  overflow:hidden;
  border-radius:1rem !important;
  background:none !important;
}
.product-detail-page .related-product-card[data-related-product="nori-45"] span::before { display:none; }
.product-detail-page .related-product-card[data-related-product="nori-45"] img {
  padding:.65rem !important;
  object-fit:contain !important;
  object-position:center center !important;
  transform:scale(1.3) !important;
}
@media (max-width:760px) and (orientation:portrait) {
  .product-detail-page .related-products-grid { align-items:start; }
  .product-detail-page .related-product-card span {
    width:100%;
    height:auto !important;
    min-height:0;
    aspect-ratio:1 / 1;
  }
  .product-detail-page .related-product-card img {
    padding:.35rem !important;
    object-fit:contain !important;
    object-position:center center !important;
  }
}
@media (max-width:760px) and (orientation:landscape) {
  .product-detail-page .related-products-grid { align-items:start; }
  .product-detail-page .related-product-card span {
    width:100%;
    height:auto !important;
    min-height:0;
    aspect-ratio:1 / 1;
  }
  .product-detail-page .related-product-card img {
    padding:.45rem !important;
    object-fit:contain !important;
    object-position:center center !important;
  }
}
/* Desktop-only product presentation: use more of each card's image frame. */
@media (min-width:1101px) {
  .home-page .product-grid--catalogue .product-image--photo img { padding:.65rem !important; transform:none !important; }
  .home-page .product-grid--catalogue .product-image--kivo img,
  .home-page .product-grid--catalogue .product-image--nori img,
  .home-page .product-grid--catalogue .product-image--vita img { padding:0 !important; transform:scale(1.1) !important; }
  .home-page .product-grid--catalogue .product-image--kivo img { transform:scale(1.7) !important; }
  .home-page .product-grid--catalogue .product-image--mori img { transform:scale(1.2) translateY(3px) !important; }
  .home-page .product-grid--catalogue .product-image--nori img { transform:scale(1.5) !important; }
  .home-page .product-grid--catalogue .product-image--pico img { transform:scale(1.2) !important; }
  .home-page .product-grid--catalogue .product-image--vita img { transform:scale(1.4) !important; }
}
/* Mobile landscape VITA layout: keep copy, bottle, metadata, and controls in
   separate zones so the short viewport cannot make the hero look scrambled. */
@media (max-width:760px) and (orientation:landscape) {
  .home-page .split-colour-copy [data-split-link] {
    position:relative !important;
    top:0 !important;
    margin-top:0 !important;
    transform:none !important;
  }
  .home-page .vita-slide-hero {
    min-height:30rem !important;
    border-radius:1.35rem !important;
  }
  .home-page .vita-slide-copy {
    top:1.4rem !important;
    right:auto !important;
    left:1.25rem !important;
    width:calc(100% - 2.5rem) !important;
  }
  .home-page .vita-slide-copy :is(h1, h2) {
    max-width:17rem !important;
    font-size:clamp(2.2rem,6vw,3.6rem) !important;
  }
  .home-page .vita-slide-copy > p:not(.eyebrow) { max-width:15rem !important; }
  .home-page .vita-slide-copy .vita-slide-link {
    position:absolute !important;
    top:0 !important;
    right:0 !important;
    left:auto !important;
    white-space:nowrap !important;
    margin-right:0 !important;
  }
  .home-page .vita-slide-stage { inset:3rem 35% 0 34% !important; }
  .home-page .vita-slide-bottle--main {
    left:50% !important;
    bottom:-1rem !important;
    width:12rem !important;
    height:22rem !important;
    transform:translateX(-50%) !important;
  }
  .home-page .vita-slide-peek {
    top:1rem !important;
    right:-2rem !important;
    width:6rem !important;
    height:12rem !important;
  }
  .home-page .vita-slide-bottle--peek { width:8rem !important; height:14rem !important; }
  .home-page .vita-slide-meta {
    top:5.25rem !important;
    right:1.25rem !important;
    bottom:auto !important;
    left:auto !important;
    width:11rem !important;
    text-align:right !important;
  }
  .home-page .vita-slide-controls {
    top:14.25rem !important;
    right:1.25rem !important;
    bottom:auto !important;
    left:auto !important;
    width:11rem !important;
    margin:0 !important;
    justify-content:flex-end !important;
    z-index:9 !important;
  }
}
@media (max-width:760px) {
  .home-page .product-grid--catalogue .product-image--photo {
    background-image:var(--cover-backdrop,linear-gradient(145deg,#f1eadf,#e6eadf)) !important;
    background-size:cover !important;
    background-position:center !important;
  }
  .home-page .product-grid--catalogue .product-image--photo::before {
    opacity:.28;
  }
  .home-page .product-grid--catalogue .product-image--photo img {
    padding:.5rem !important;
  }
}
@media (max-width:760px) and (orientation:portrait) {
  .home-page .product-grid--catalogue .product-image--photo img {
    padding:0 !important;
    transform:scale(1.2) !important;
  }
  .home-page .product-grid--catalogue .product-image--mori img,
  .home-page .product-grid--catalogue .product-image--nori img,
  .home-page .product-grid--catalogue .product-image--pico img {
    transform:scale(1.4) !important;
  }
  .home-page .product-grid--catalogue .product-image--nori img {
    transform:scale(2) !important;
  }
}
@media (max-width:760px) and (orientation:landscape) {
  .home-page .product-grid--catalogue .product-image--photo img {
    padding:0 !important;
    transform:scale(1.3) !important;
  }
  .home-page .product-grid--catalogue .product-image--mori img {
    transform:scale(1.1) translateY(3px) !important;
  }
  .home-page .product-grid--catalogue .product-image--kivo img {
    transform:scale(1.4) !important;
  }
}
@media (min-width:761px) and (max-width:1100px) and (orientation:landscape) {
  .home-page .product-grid--catalogue .product-image--mori img,
  .home-page .product-grid--catalogue .product-image--nori img,
  .home-page .product-grid--catalogue .product-image--pico img {
    transform:scale(1.6) !important;
  }
  .home-page .product-grid--catalogue .product-image--mori img {
    position:relative !important;
    top:3px !important;
    transform:scale(1.55) !important;
  }
  .home-page .product-grid--catalogue .product-image--nori img {
    transform:scale(1.7) !important;
  }
}
@media (min-width:761px) and (max-width:1600px) and (orientation:landscape) and (pointer:coarse) {
  .home-page .product-grid--catalogue .product-image--mori img,
  .home-page .product-grid--catalogue .product-image--nori img,
  .home-page .product-grid--catalogue .product-image--pico img {
    transform:scale(1.6) !important;
  }
  .home-page .product-grid--catalogue .product-image--mori img {
    position:relative !important;
    top:3px !important;
    transform:scale(1.55) !important;
  }
  .home-page .product-grid--catalogue .product-image--nori img {
    transform:scale(1.7) !important;
  }
}
@media (min-width:761px) and (max-width:1600px) and (orientation:portrait) and (pointer:coarse) {
  .home-page .product-grid--catalogue .product-image--photo {
    background-size:cover !important;
    background-position:center !important;
  }
  .home-page .product-grid--catalogue .product-image--photo img {
    padding:.5rem !important;
    object-fit:contain !important;
    object-position:center center !important;
    transform:none !important;
  }
}
@media (min-width:761px) and (max-width:1600px) and (orientation:portrait) {
  .home-page .product-grid--catalogue .product-image--photo img {
    padding:.5rem !important;
    object-fit:contain !important;
    object-position:center center !important;
    transform:none !important;
  }
}
@media (min-width:761px) and (orientation:portrait) and (pointer:coarse) {
  .home-page .product-grid--catalogue .product-image--photo img {
    padding:.5rem !important;
    object-fit:contain !important;
    object-position:center center !important;
    transform:none !important;
  }
}
/* Final portrait-tablet guard for browsers that report unusual viewport
   widths or pointer capabilities. */
@media (min-width:761px) and (orientation:portrait) {
  .home-page .product-grid--catalogue {
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
  .home-page .product-grid--catalogue .product-image--photo img {
    padding:.5rem !important;
    object-fit:contain !important;
    object-position:center center !important;
    transform:none !important;
  }
}
@media (min-width:500px) and (min-height:700px) and (orientation:portrait) {
  /* Fallback for tablet portrait browsers using a narrow CSS viewport. */
  .product-detail-page .related-product-card img {
    transform:scale(1.12) !important;
  }
  .product-detail-page .related-product-card[data-related-product="nori-45"] img {
    transform:scale(1.85) !important;
  }
}
@media (min-width:600px) and (min-height:800px) and (orientation:portrait) {
  .home-page .product-grid--catalogue {
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
  .home-page .product-grid--catalogue .product-image--mori img {
    transform:scale(1.1) !important;
  }
}
@media (max-width:760px) and (orientation:portrait),
       (max-width:760px) and (orientation:landscape) {
  .product-detail-page .related-product-card span,
  .product-detail-page .related-product-card[data-related-product="nori-45"] span {
    border:1px solid var(--line);
    border-radius:1rem !important;
    overflow:hidden;
  }
  .product-detail-page .related-product-card img,
  .product-detail-page .related-product-card[data-related-product="nori-45"] img {
    border-radius:.7rem !important;
  }
}
@media (max-width:760px) and (orientation:portrait) {
  .product-detail-page .related-product-card img {
    transform:scale(1.12) !important;
  }
  .product-detail-page .related-product-card[data-related-product="nori-45"] img {
    transform:scale(1.8) !important;
  }
}
@media (max-width:760px) and (orientation:landscape) {
  .product-detail-page .related-product-card img {
    transform:scale(1.12) !important;
  }
  .product-detail-page .related-product-card[data-related-product="nori-45"] img {
    transform:scale(1.5) !important;
  }
}
@media (min-width:761px) and (max-width:1600px) and (orientation:landscape) {
  .product-detail-page .related-products-grid { align-items:start; }
  .product-detail-page .related-product-card span {
    width:100%;
    height:auto !important;
    min-height:0;
    aspect-ratio:1 / 1;
  }
  .product-detail-page .related-product-card img {
    padding:.65rem !important;
    object-fit:contain !important;
    object-position:center center !important;
  }
}
@media (min-width:761px) and (pointer:coarse) {
  .product-detail-page .related-products-grid { align-items:start; }
  .product-detail-page .related-product-card span {
    width:100%;
    height:auto !important;
    min-height:0;
    aspect-ratio:1 / 1;
  }
  .product-detail-page .related-product-card img {
    padding:.65rem !important;
    object-fit:contain !important;
    object-position:center center !important;
  }
}
@media (min-width:761px) {
  .product-detail-page .related-product-card span {
    width:100%;
    height:auto !important;
    min-height:0;
    aspect-ratio:1 / 1;
    border-radius:1rem !important;
  }
  .product-detail-page .related-product-card[data-related-product="nori-45"] span {
    border-radius:0 !important;
  }
  .product-detail-page .related-product-card img {
    width:100%;
    height:100%;
    padding:.65rem !important;
    object-fit:contain !important;
    object-position:center center !important;
  }
  .product-detail-page .related-product-card[data-related-product="nori-45"] img {
    transform:scale(1.7) !important;
    width:170% !important;
    height:170% !important;
    max-width:none !important;
    max-height:none !important;
  }
}
@media (min-width:761px) and (orientation:landscape) {
  .product-detail-page .related-product-card[data-related-product="nori-45"] img {
    transform:scale(1.4) !important;
    width:100% !important;
    height:100% !important;
    max-width:100% !important;
    max-height:100% !important;
  }
}
@media (min-width:761px) and (max-width:1600px) and (orientation:landscape) {
  /* Keep Nori's enlarged recommendation aligned with the neighbouring cards. */
  .product-detail-page .related-product-card[data-related-product="nori-45"] {
    transform:translateY(4px);
  }
}
@media (min-width:761px) and (max-width:1600px) and (orientation:landscape) {
  /* Tablet recommendations mirror the rounded, framed catalogue covers. */
  .product-detail-page .related-product-card span,
  .product-detail-page .related-product-card[data-related-product="nori-45"] span {
    display:grid;
    width:100%;
    height:auto !important;
    min-height:0;
    aspect-ratio:1 / 1;
    place-items:center;
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:1rem !important;
    background-image:var(--related-backdrop,linear-gradient(145deg,#f1eadf,#e6eadf)) !important;
    background-size:cover;
    background-position:center;
  }
  .product-detail-page .related-product-card span::before,
  .product-detail-page .related-product-card[data-related-product="nori-45"] span::before {
    display:block;
  }
  .product-detail-page .related-product-card img,
  .product-detail-page .related-product-card[data-related-product="nori-45"] img {
    width:100% !important;
    height:100% !important;
    max-width:100% !important;
    max-height:100% !important;
    padding:.65rem !important;
    border-radius:.7rem !important;
    object-fit:contain !important;
    object-position:center center !important;
  }
  .product-detail-page .related-product-card[data-related-product="nori-45"] img {
    transform:scale(1.4) !important;
  }
}
@media (min-width:761px) and (max-width:1600px) and (orientation:landscape) {
  .product-detail-page .related-product-card img {
    transform:scale(1.12) !important;
  }
  .product-detail-page .related-product-card[data-related-product="nori-45"] img {
    transform:scale(1.5) !important;
  }
}
/* Header favourites control */
.favourite-button { position: relative; display: inline-grid; place-items: center; width: 2.5rem; height: 2.5rem; color: var(--ink); font-size: 1.35rem; text-decoration: none; }
.favourite-count { position: absolute; right: -.1rem; top: -.1rem; display: grid; place-items: center; min-width: 1rem; height: 1rem; padding: 0 .18rem; border-radius: 999px; color: #fff; background: var(--olive); font-size: .6rem; }
.product-favourite { position: absolute; right: .8rem; top: .8rem; z-index: 2; width: 2.4rem; height: 2.4rem; border: 1px solid var(--line); border-radius: 50%; color: var(--ink); background: rgba(255,255,255,.88); font-size: 1.25rem; cursor: pointer; }
.product-card { position: relative; }
.product-owner-badge { position:absolute; z-index:3; left:.8rem; top:.8rem; padding:.4rem .65rem; border-radius:999px; background:#414c37; color:#fffdf6; font-size:.68rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.product-favourite.is-saved { color: #a94e56; }
.product-stage { position: relative; }
.product-favourite--main { right: .7rem; top: auto; bottom: .7rem; width: 2rem; height: 2rem; font-size: 1.05rem; }
/* Owner-created coupon campaigns shown above the homepage hero. */
.coupon-promotion-stage { max-width:1400px; margin:clamp(1rem,2vw,1.6rem) auto 0; padding:0 clamp(1rem,3vw,2rem); }
.coupon-promotion-track { position:relative; min-height:104px; }
.coupon-promotion-card { position:absolute; inset:0; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:1.5rem; padding:1.2rem clamp(1.2rem,3vw,2.2rem); border:1px solid #dfe3da; border-radius:1rem; background:linear-gradient(120deg,#eef2e9,#fffaf2); opacity:0; pointer-events:none; transform:translateY(.35rem); transition:opacity .35s ease,transform .35s ease; }
.coupon-promotion-card.is-active { opacity:1; pointer-events:auto; transform:none; }
.coupon-promotion-card p { margin:.25rem 0 0; color:#5f6858; }
.coupon-promotion-card strong { display:block; font-size:clamp(1.05rem,2vw,1.45rem); }
.coupon-promotion-code { display:grid; gap:.25rem; min-width:9rem; padding:.75rem 1rem; border:1px dashed #78856d; border-radius:.7rem; color:#35402f; text-align:center; text-decoration:none; }
.coupon-promotion-code small { font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; }
.coupon-promotion-controls { display:flex; justify-content:center; gap:.4rem; padding-top:.65rem; }
.coupon-promotion-controls button { width:.45rem; height:.45rem; padding:0; border:0; border-radius:50%; background:#c8ccc3; cursor:pointer; }
.coupon-promotion-controls button[aria-current='true'] { width:1.3rem; border-radius:1rem; background:#46533f; }
@media(max-width:620px) { .coupon-promotion-card { grid-template-columns:1fr; gap:.75rem; min-height:150px; } .coupon-promotion-track { min-height:178px; } .coupon-promotion-code { justify-self:start; } }
/* Mobile recommendations use the same rounded framed-cover treatment. */
@media (max-width:760px) {
  .product-detail-page .related-product-card[data-related-product="nori-45"] span,
  .product-detail-page .related-product-card[data-related-product="nori-45"] img {
    border-radius:.7rem !important;
    clip-path:none !important;
  }
  .product-detail-page .related-product-card[data-related-product="nori-45"] span {
    border-radius:1rem !important;
    aspect-ratio:1 / 1;
  }
}
@media (min-width:761px) and (orientation:portrait) {
  .product-detail-page .related-product-card span,
  .product-detail-page .related-product-card[data-related-product="nori-45"] span {
    border:1px solid var(--line);
    border-radius:1rem !important;
    overflow:hidden;
  }
  .product-detail-page .related-product-card img {
    border-radius:.7rem !important;
    transform:scale(1.08) !important;
  }
  .product-detail-page .related-product-card[data-related-product="nori-45"] img {
    transform:scale(1.4) !important;
  }
}
@media (min-width:761px) and (orientation:portrait) {
  .product-detail-page .related-product-card img {
    transform:scale(1.08) !important;
  }
  .product-detail-page .related-product-card[data-related-product="nori-45"] img {
    transform:scale(1.8) !important;
  }
}
@media (min-width:600px) and (min-height:800px) and (orientation:portrait) {
  /* Tablet portrait fallback when Android reports a compact CSS width. */
  .product-detail-page .related-product-card span,
  .product-detail-page .related-product-card[data-related-product="nori-45"] span {
    border:1px solid var(--line);
    border-radius:1rem !important;
    overflow:hidden;
  }
  .product-detail-page .related-product-card img {
    border-radius:.7rem !important;
  }
}
