.kits-page { width: min(1480px, 100%); min-height: 60vh; margin: 0 auto; padding: 64px 20px 96px; background: var(--white); }
.kits-hero { max-width: 980px; margin: 0 auto 54px; text-align: center; }
.kits-hero__intro { max-width: 820px; margin: 42px auto 0; color: #c47786; font-family: var(--serif); font-size: clamp(1.15rem, 2.05vw, 1.85rem); font-weight: 700; line-height: 1.28; }
.kits-hero h1 { margin-bottom: 0; font-family: "Playfair Display", Georgia, serif; font-size: clamp(1.7rem, 5.8vw, 5.5rem); font-weight: 700; letter-spacing: .01em; white-space: nowrap; }
.kits-grid { display: grid; grid-template-columns: 1fr; gap: 30px; }
.kit-card { display: flex; flex-direction: column; min-width: 0; overflow: hidden; border: 1px solid rgba(183,110,121,.18); border-radius: 22px; background: var(--white); box-shadow: 0 12px 35px rgba(61,31,38,.06); transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease; }
.kit-card:hover { border-color: rgba(183,110,121,.42); box-shadow: 0 24px 55px rgba(61,31,38,.13); transform: translateY(-7px); }
.kit-carousel { position: relative; overflow: hidden; background: #f4e8ea; touch-action: pan-y; }
.kit-carousel__viewport { overflow: hidden; aspect-ratio: 1 / 1.12; }
.kit-carousel__track { display: flex; height: 100%; transition: transform .55s cubic-bezier(.22,.61,.36,1); will-change: transform; }
.kit-carousel__slide { flex: 0 0 100%; height: 100%; margin: 0; }
.kit-carousel__slide img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.kit-card:hover .kit-carousel__slide img { transform: scale(1.025); }
.kit-badge { position: absolute; z-index: 3; top: 18px; left: 18px; padding: 7px 12px; border-radius: 999px; background: rgba(250,247,245,.92); color: var(--rose-dark); box-shadow: 0 7px 20px rgba(17,17,17,.1); font-size: .63rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; backdrop-filter: blur(8px); }
.kit-carousel__arrow { position: absolute; z-index: 3; top: 50%; display: grid; place-items: center; width: 42px; height: 42px; padding: 0; border: 1px solid rgba(17,17,17,.08); border-radius: 50%; opacity: 0; background: rgba(250,247,245,.94); color: var(--ink); box-shadow: 0 8px 22px rgba(17,17,17,.13); cursor: pointer; transform: translateY(-50%); transition: opacity .25s ease, transform .25s ease, background .2s ease; }
.kit-carousel__arrow:hover { background: var(--champagne); }
.kit-carousel__arrow--prev { left: 14px; transform: translate(-8px,-50%); }
.kit-carousel__arrow--next { right: 14px; transform: translate(8px,-50%); }
.kit-card:hover .kit-carousel__arrow, .kit-carousel:focus-within .kit-carousel__arrow { opacity: 1; transform: translate(0,-50%); }
.kit-carousel__dots { position: absolute; z-index: 3; right: 0; bottom: 16px; left: 0; display: flex; justify-content: center; gap: 8px; }
.kit-carousel__dots button { width: 7px; height: 7px; padding: 0; border: 1px solid rgba(17,17,17,.35); border-radius: 50%; background: rgba(250,247,245,.72); box-shadow: 0 1px 5px rgba(17,17,17,.12); cursor: pointer; transition: width .25s ease, border-color .25s ease, background .25s ease; }
.kit-carousel__dots button.is-active { width: 22px; border-color: var(--rose-dark); border-radius: 8px; background: var(--rose-dark); }
.kit-card__body { display: flex; flex: 1; flex-direction: column; min-height: 360px; padding: 24px; }
.kit-card__body h2 { margin-bottom: 10px; font-size: clamp(1.35rem, 2vw, 1.65rem); white-space: nowrap; }
.kit-card__category { margin: -2px 0 10px; color: var(--rose-dark); font-size: .65rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.kit-card__includes { display: grid; grid-auto-rows: min-content; align-content: start; gap: 5px; min-height: 82px; margin: 0 0 14px; padding: 0; color: var(--ink); font-size: .82rem; line-height: 1.4; list-style: none; }
.kit-card__includes li { position: relative; padding-left: 15px; }
.kit-card__includes li::before { content: ""; position: absolute; top: .55em; left: 0; width: 5px; height: 5px; border-radius: 50%; background: var(--rose-dark); }
.kit-card__description { margin-bottom: 18px; color: var(--muted); font-size: .83rem; line-height: 1.65; }
.kit-card__footer { margin-top: auto; }
.kit-card__price { margin: 0 0 20px; color: var(--rose-dark); font-size: 1rem; font-weight: 700; }
.kit-card__price del { margin-right: 6px; color: var(--muted); font-weight: 400; }

@media (min-width: 620px) {
  .kits-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 980px) {
  .kits-page { padding: 88px 4vw 120px; }
  .kits-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(18px, 2vw, 32px); }
}

@media (hover: none) {
  .kit-carousel__arrow { opacity: .9; }
  .kit-carousel__arrow--prev { transform: translate(0,-50%); }
  .kit-carousel__arrow--next { transform: translate(0,-50%); }
}

@media (prefers-reduced-motion: reduce) {
  .kit-card, .kit-carousel__track, .kit-carousel__slide img, .kit-carousel__arrow { transition: none; }
}
