/* Approved product overview: large photographs, left-aligned information. */
.home-products { padding-block: 76px; }
.home-products .home-section-header { margin-bottom: 32px; }
.home-products .home-section-header > div { width: 100%; }
.home-products h2 em { color: var(--coral); }
.home-product-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.home-product-card { display: flex; flex-direction: column; position: relative; min-width: 0; overflow: hidden; cursor: pointer; border: 1px solid var(--line); border-radius: 24px; background: #fff; color: var(--ink); box-shadow: 0 3px 10px rgba(16,41,67,.025); transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease; }
.home-product-image { position: relative; width: 100%; aspect-ratio: 3 / 2; overflow: hidden; background: var(--grey); }
.home-product-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease, filter .4s ease; }

.home-product-info { flex: 1; min-height: 230px; padding: 28px 30px 32px; text-align: left; }
.home-product-info h3 { margin: 0 0 20px; font-family: var(--heading); font-size: 1.65rem; font-weight: 900; line-height: 1.2; letter-spacing: -.035em; }
.home-product-info ul { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; font-size: 1rem; line-height: 1.45; }
.home-product-info li { position: relative; padding-left: 27px; }
.home-product-info li::before { content: "✓"; position: absolute; left: 0; color: var(--ink); font-weight: 800; }
.home-product-card:focus-visible { outline: 3px solid var(--ink); outline-offset: 5px; border-color: var(--coral); box-shadow: 0 15px 36px rgba(255,168,145,.25); }
@media (hover: hover) and (pointer: fine) {
  .home-product-card:hover { transform: translateY(-10px) scale(1.015); border-color: var(--coral); box-shadow: 0 22px 46px rgba(255,168,145,.38), 0 12px 26px rgba(16,41,67,.12); }
  .home-product-card:hover .home-product-image img { transform: scale(calc(var(--photo-zoom, 1) * 1.07)); filter: brightness(1.06); }
}
@media (max-width: 1000px) and (min-width: 901px) {
  .home-product-grid { gap: 18px; }
  .home-product-info { padding-inline: 22px; }
}
@media (max-width: 900px) {
  .home-product-grid { grid-template-columns: 1fr; gap: 36px; }
  .home-product-card { width: 100%; }
  .home-product-info { min-height: 0; padding: 28px 30px 32px; }
}
@media (max-width: 700px) {
  .home-products { width: calc(100% - 40px); padding-block: 56px; }
  .home-products .home-section-header { margin-bottom: 28px; }
  .home-products .home-section-header h2 { font-size: clamp(2rem, 8.5vw, 2.7rem); line-height: 1.08; }
  .home-product-info { min-height: 220px; padding: 26px 24px 30px; }
  .home-product-info h3 { font-size: 1.55rem; margin-bottom: 18px; }
  .home-product-info ul { gap: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  .home-product-card, .home-product-image img { transition: none; }
  .home-product-card:hover { transform: none; }
  .home-product-card:hover .home-product-image img { transform: none; }
}

/* Photo galleries reuse the bed gallery's swipe, drag and dot controls. */
.home-products .home-product-slides { position: absolute; inset: 0; display: flex; width: 100%; height: 100%; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none; touch-action: pan-x pan-y; cursor: grab; }
.home-products .home-product-slides::-webkit-scrollbar { display: none; }
.home-products .home-product-slides.is-dragging { scroll-snap-type: none; cursor: grabbing; }
.home-products .home-product-slide { display: block; position: relative; flex: 0 0 100%; width: 100%; min-width: 100%; height: 100%; padding: 0; overflow: hidden; scroll-snap-align: start; }
.home-products .home-product-slide img { width: 100%; height: 100%; object-fit: cover; object-position: var(--photo-position, center); transform: scale(var(--photo-zoom, 1)); user-select: none; }
.home-product-offers { position: absolute; top: 16px; left: 16px; right: 16px; z-index: 2; display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; pointer-events: none; }
.home-product-offer, .home-product-bundle { display: inline-flex; flex-direction: column; padding: 10px 14px; border-radius: 999px; color: var(--ink); background: var(--coral); font-weight: 850; font-size: .9rem; line-height: 1.2; box-shadow: 0 4px 15px rgba(16,41,67,.08); }
.home-product-bundle { pointer-events: auto; background: #fff; border-radius: 18px; text-align: center; }
.home-product-bundle small { margin-top: 3px; font-size: .75rem; font-weight: 500; }
.home-products .home-product-dots { position: absolute; z-index: 2; inset: auto auto 8px 50%; transform: translateX(-50%); display: flex; gap: 0; padding: 0 4px; border-radius: 999px; background: rgba(255,255,255,.9); }
.home-products .home-product-dots button { position: relative; display: grid; place-items: center; width: 36px; height: 36px; padding: 0; margin: 0; border: 0; border-radius: 50%; background: transparent; cursor: pointer; }
.home-products .home-product-dots button::after { content: ''; display: block; width: 7px; height: 7px; border-radius: 50%; background: #a6b1b9; }
.home-products .home-product-dots button[aria-current="true"]::after { background: var(--ink); width: 9px; height: 9px; }
.home-products .home-product-dots button:focus-visible, .home-product-bundle:focus-visible { outline: 2px solid var(--ink); outline-offset: 1px; }
.home-product-info h3 a:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
@media (hover: hover) and (pointer: fine) {
 .home-products .home-product-card:hover .home-product-slide img { transform: scale(calc(var(--photo-zoom, 1) * 1.07)); filter: brightness(1.06); }
 .home-products .home-product-card:hover { z-index: 3; }
}
@media (prefers-reduced-motion: reduce) {
 .home-products .home-product-card:hover { transform: none; }
 .home-products .home-product-card:hover .home-product-slide img { transform: scale(var(--photo-zoom, 1)); }
}

/* A single soft reflection whenever an offer scrolls into view. */
.home-page .scroll-offer-shine { overflow: hidden; isolation: isolate; }
.home-page .home-product-offer.scroll-offer-shine,
.home-page .home-product-bundle.scroll-offer-shine { position: relative; }
.home-page .scroll-offer-shine::after {
 content: ''; position: absolute; z-index: 1; inset: -40% auto -40% -65%;
 width: 45%; pointer-events: none; opacity: 0;
 background: linear-gradient(105deg, transparent 5%, rgba(255,255,255,.25) 25%, rgba(255,255,255,.85) 50%, rgba(255,255,255,.25) 75%, transparent 95%);
 transform: translateX(0) skewX(-18deg);
}
.home-page .scroll-offer-shine.is-offer-visible::after {
 animation: offer-scroll-reflection 1.35s ease-in-out var(--shine-delay, 0ms) both;
}
@keyframes offer-scroll-reflection {
 0% { opacity: 0; transform: translateX(0) skewX(-18deg); }
 15% { opacity: .85; }
 75% { opacity: .85; }
 100% { opacity: 0; transform: translateX(420%) skewX(-18deg); }
}
@media (prefers-reduced-motion: reduce) {
 .home-page .scroll-offer-shine::after { display: none; animation: none; }
}
