/* Homepage offer carousel. Product cards stay compact; details live on product pages. */
body.duilink-theme :is(#offerte,#offers) .offerFeature{
  display:grid;
  grid-template-columns:minmax(230px,.72fr) minmax(0,1.9fr);
  align-items:center;
  gap:clamp(24px,3.8vw,48px);
  margin-top:22px;
}
body.duilink-theme :is(#offerte,#offers) .offerIntro{min-width:0;max-width:390px;}
body.duilink-theme :is(#offerte,#offers) .offerIntro .h2{margin:0 0 12px;}
body.duilink-theme :is(#offerte,#offers) .offerIntro>p{line-height:1.55;}
body.duilink-theme :is(#offerte,#offers) .offerCarousel{position:relative;min-width:0;}
body.duilink-theme :is(#offerte,#offers) .offerViewport{
  overflow-x:auto;overflow-y:hidden;padding:4px 2px 10px;
  scroll-snap-type:x mandatory;scroll-padding-inline:2px;
  overscroll-behavior-x:contain;scrollbar-width:none;
  -webkit-overflow-scrolling:touch;cursor:grab;user-select:none;
}
body.duilink-theme :is(#offerte,#offers) .offerViewport::-webkit-scrollbar{display:none;}
body.duilink-theme :is(#offerte,#offers) .offerViewport.isDragging{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto;}
body.duilink-theme :is(#offerte,#offers) .offerGrid.offerTrack{
  display:flex;align-items:stretch;gap:16px;width:max-content;min-width:100%;
  margin:0;grid-template-columns:none;
}
body.duilink-theme :is(#offerte,#offers) .offerTrack>.offerCard{
  position:relative;box-sizing:border-box;flex:0 0 clamp(350px,37vw,460px);
  min-width:0;height:auto;padding:16px;scroll-snap-align:start;scroll-snap-stop:always;
  overflow:hidden;border:1px solid var(--dui-border);border-radius:18px;
  background:var(--dui-surface);transition:border-color .2s ease,box-shadow .2s ease;
}
body.duilink-theme :is(#offerte,#offers) .offerTrack>.offerCard:hover,
body.duilink-theme :is(#offerte,#offers) .offerTrack>.offerCard:focus-within{
  border-color:var(--dui-accent);box-shadow:0 14px 32px rgba(15,23,42,.1);
}
body.duilink-theme :is(#offerte,#offers) .offerTrack>.offerCard.isFeatured{border-color:var(--dui-accent);}
body.duilink-theme :is(#offerte,#offers) .offerCard .featureMedia{
  display:block;position:relative;width:100%;height:auto;aspect-ratio:16/10;
  margin:0 0 12px;overflow:hidden;border-radius:12px;background:#f1f5f9;
}
body.duilink-theme :is(#offerte,#offers) .offerCard .offerMediaLink{position:relative;z-index:3;color:inherit;text-decoration:none;cursor:pointer;user-select:none;-webkit-user-drag:none;}
body.duilink-theme :is(#offerte,#offers) .offerCard .featureMedia picture{display:block;width:100%;height:100%;}
body.duilink-theme :is(#offerte,#offers) .offerCard .featureMedia img{
  display:block;width:100%;height:100%;object-fit:contain;object-position:center;
  background:#f1f5f9;pointer-events:none;
}
body.duilink-theme :is(#offerte,#offers) .offerBody{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 12px;}
body.duilink-theme :is(#offerte,#offers) .offerBody h3{grid-column:1;margin:0;font-size:22px;line-height:1.15;}
body.duilink-theme :is(#offerte,#offers) .offerLabel{grid-column:1;margin:0;color:var(--dui-muted);font-size:14px;line-height:1.3;}
body.duilink-theme :is(#offerte,#offers) .offerPrice{grid-column:2;grid-row:1 / span 2;margin:0;color:var(--dui-text);font-size:18px;font-weight:800;white-space:nowrap;}
body.duilink-theme :is(#offerte,#offers) .offerCardLink{position:absolute;inset:0;z-index:2;border-radius:inherit;}
body.duilink-theme :is(#offerte,#offers) .offerCardLink:focus-visible{outline:3px solid var(--dui-accent);outline-offset:-4px;}
body.duilink-theme :is(#offerte,#offers) .offerCarouselControls{
  display:flex;align-items:center;justify-content:center;gap:18px;margin:12px 0 0;
}
body.duilink-theme :is(#offerte,#offers) .offerCarouselDots{display:flex;align-items:center;justify-content:center;gap:9px;}
body.duilink-theme :is(#offerte,#offers) .offerCarouselDot{
  display:block;width:9px;height:9px;padding:0;border:0;border-radius:50%;
  background:var(--dui-border);cursor:pointer;transition:transform .18s ease,background-color .18s ease;
}
body.duilink-theme :is(#offerte,#offers) .offerCarouselDot:hover{transform:scale(1.2);}
body.duilink-theme :is(#offerte,#offers) .offerCarouselDot.isActive{background:var(--dui-accent-strong);transform:scale(1.28);}
body.duilink-theme :is(#offerte,#offers) .offerCarouselDot:focus-visible{outline:3px solid color-mix(in srgb,var(--dui-accent) 40%,transparent);outline-offset:4px;}
body.duilink-theme :is(#offerte,#offers) .offerCarouselArrows{display:flex;gap:8px;}
body.duilink-theme :is(#offerte,#offers) .offerCarouselButton{
  display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;
  border:1px solid var(--dui-border);border-radius:50%;background:var(--dui-surface);color:var(--dui-text);cursor:pointer;
  transition:background-color .18s ease,border-color .18s ease,color .18s ease;
}
body.duilink-theme :is(#offerte,#offers) .offerCarouselButton:hover:not(:disabled),
body.duilink-theme :is(#offerte,#offers) .offerCarouselButton:focus-visible{border-color:var(--dui-accent);background:var(--dui-accent-soft);color:var(--dui-accent-strong);}
body.duilink-theme :is(#offerte,#offers) .offerCarouselButton:focus-visible{outline:3px solid color-mix(in srgb,var(--dui-accent) 35%,transparent);outline-offset:2px;}
body.duilink-theme :is(#offerte,#offers) .offerCarouselButton:disabled{opacity:.42;cursor:default;}
body.duilink-theme :is(#offerte,#offers) .offerCarouselButton svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
@media(max-width:900px){
 body.duilink-theme :is(#offerte,#offers) .offerFeature{grid-template-columns:minmax(0,1fr);gap:14px;margin-top:18px;}
 body.duilink-theme :is(#offerte,#offers) .offerIntro{max-width:680px;}
 body.duilink-theme :is(#offerte,#offers) .offerTrack>.offerCard{flex-basis:min(72vw,460px);}
}
@media(max-width:520px){
 body.duilink-theme :is(#offerte,#offers) .offerFeature{gap:8px;margin-top:14px;}
 body.duilink-theme :is(#offerte,#offers) .offerTrack.offerGrid{gap:12px;}
 body.duilink-theme :is(#offerte,#offers) .offerTrack>.offerCard{flex-basis:min(86vw,390px);padding:12px;border-radius:16px;}
 body.duilink-theme :is(#offerte,#offers) .offerCard .featureMedia{margin-bottom:10px;}
 body.duilink-theme :is(#offerte,#offers) .offerBody h3{font-size:20px;}
 body.duilink-theme :is(#offerte,#offers) .offerLabel{font-size:13px;}
 body.duilink-theme :is(#offerte,#offers) .offerPrice{font-size:16px;}
 body.duilink-theme :is(#offerte,#offers) .offerCarouselControls{margin-top:10px;}
}
@media(prefers-reduced-motion:reduce){
 body.duilink-theme :is(#offerte,#offers) .offerCarouselButton,body.duilink-theme :is(#offerte,#offers) .offerCarouselDot{transition:none;}
}

/* Allow the cloned first slide to align at the start before the seamless reset. */
body.duilink-theme :is(#offerte,#offers) .offerLoopPad{display:block;flex:0 0 0px;pointer-events:none;}
body.duilink-theme :is(#offerte,#offers) .offerViewport.isLoopReset{scroll-snap-type:none!important;scroll-behavior:auto!important;}


/* Product photos are 1400x788; match the media viewport to avoid
   the letterbox strip left by the old 16/10 aspect ratio in both themes. */
body.duilink-theme :is(#offerte,#offers) .offerCard .featureMedia {
  aspect-ratio:1400 / 788;
  background:#0b1212;
}
body.duilink-theme :is(#offerte,#offers) .offerCard .featureMedia img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  background:#0b1212;
}
