/* =========================================================================
   Rowerowa Osada — RESKIN strony rezerwacji (reservation.html)
   Ten plik ładowany jest WYŁĄCZNIE na reservation.html — nie wpływa na inne strony.
   Zasada: KEEP THE LOGIC — REPLACE THE VISUAL LAYER.
   Wszystkie ID i klasy używane przez script.js pozostają nietknięte funkcjonalnie —
   ten plik (oraz redesign-reservation.js) tylko je restyluje.
   ========================================================================= */

:root{
  --rd-ink:#0E1512;
  --rd-forest:#1E3A2F;
  --rd-stone:#F6F3EC;
  --rd-surface:#FBFAF7;
  --rd-ember:#E85D2C;
  --rd-ember-d:#C94A1E;
  --rd-muted:#8A8578;
  --rd-line:#DFD9C9;
  --rd-ok:#2E7D4F;
  --rd-err:#C0392B;
}

body{
  font-family:'Inter', ui-sans-serif, system-ui, sans-serif;
  background:var(--rd-stone) !important;
  color:var(--rd-ink);
}
.rd-mono{font-family:'JetBrains Mono',ui-monospace,monospace;}

/* =========================================================================
   NAVBAR
   ========================================================================= */
header.rd-navbar{
  background:rgba(255,255,255,.96) !important;
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--rd-line) !important;
}
header.rd-navbar .rd-nav-link{
  font-family:'Archivo',sans-serif; font-weight:600; font-size:13.5px; letter-spacing:.02em;
  color:var(--rd-forest);
  transition:color .2s ease;
}
header.rd-navbar .rd-nav-link:hover{ color:var(--rd-ember); }
header.rd-navbar .nav-link-rezerwacja{
  font-family:'Archivo',sans-serif; font-weight:700; font-size:13.5px;
  color:var(--rd-ember) !important;
  border-color:var(--rd-ember) !important;
}
header.rd-navbar .rd-icon-btn{ color:var(--rd-forest); transition:color .2s ease; }
header.rd-navbar .rd-icon-btn:hover{ color:var(--rd-ember); }
.rd-btn-ember{
  background:var(--rd-ember); color:#fff;
  font-family:'Archivo',sans-serif; font-weight:700; font-size:13px; letter-spacing:.02em;
  padding:.68rem 1.3rem; border-radius:4px;
  display:inline-flex; align-items:center; gap:.5rem;
  box-shadow:0 10px 22px -10px rgba(232,93,44,.55);
  transition:background-color .2s ease, transform .2s ease;
}
.rd-btn-ember:hover{ background:var(--rd-ember-d); transform:translateY(-1px); color:#fff; }

/* =========================================================================
   HERO — wąski pas ink zamiast dekoracyjnej sekcji z orbami
   ========================================================================= */
.reservation-hero.rd-hero{
  position:relative;
  min-height:0 !important;
  height:auto !important;
  background:var(--rd-ink) !important;
  overflow:hidden;
  padding:0 !important;
  display:block !important;
}
.rd-hero .rd-hero-img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; opacity:.45;
}
.rd-hero .rd-hero-scrim{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(14,21,18,.5), rgba(14,21,18,.86));
}
.rd-hero .rd-hero-in{
  position:relative; z-index:2;
  max-width:1280px; margin:0 auto;
  padding:2.4rem 1rem 3.6rem;
}
@media(min-width:1024px){ .rd-hero .rd-hero-in{ padding-left:2.25rem; padding-right:2.25rem; } }
.rd-eyebrow{
  font-family:'JetBrains Mono',monospace; font-size:10.5px; letter-spacing:.16em; text-transform:uppercase;
  color:rgba(255,255,255,.6);
}
.rd-eyebrow b{ color:var(--rd-ember); font-weight:500; }
.rd-hero h1.hero-heading{
  font-family:'Bebas Neue', ui-sans-serif, sans-serif !important;
  text-transform:uppercase;
  color:#fff !important;
  font-size:clamp(2.3rem,6.5vw,3.6rem) !important;
  line-height:.95 !important;
  letter-spacing:.01em;
  margin:.55rem 0 .45rem !important;
  background:none !important;
  -webkit-text-fill-color:#fff !important;
}
.rd-hero h1.hero-heading em{ font-style:normal; color:var(--rd-ember); -webkit-text-fill-color:var(--rd-ember); }
.rd-hero p.hero-description{
  color:rgba(255,255,255,.72) !important;
  font-size:14.5px !important;
  max-width:36rem;
  margin:0 !important;
}

/* =========================================================================
   TERMIN WYPOŻYCZENIA + KAFEL KOSZYKA
   ========================================================================= */
.filters-section--reservation-wide{ padding-top:0 !important; background:transparent !important; }
.rental-term-with-cart-row{
  margin-top:-2.2rem;
  position:relative; z-index:5;
  align-items:stretch !important;
  gap:1rem !important;
}
.rental-term-card{
  background:#fff !important;
  border:1px solid var(--rd-line) !important;
  border-radius:6px !important;
  padding:1.3rem 1.4rem !important;
  box-shadow:0 22px 44px -26px rgba(14,21,18,.35) !important;
  position:relative;
}
.rental-term-card::before{ display:none !important; }
.rental-term-header{ margin-bottom:1rem !important; }
.rental-term-header-left{ gap:.6rem !important; }
.rental-term-icon{ display:none !important; }
.rental-term-title{
  font-family:'Archivo',sans-serif !important; font-weight:800 !important;
  font-size:1.02rem !important; letter-spacing:-.01em; color:var(--rd-ink) !important;
  display:flex; align-items:center; gap:.6rem;
}
.rental-term-title::before{
  content:"01";
  font-family:'JetBrains Mono',monospace; font-weight:400; font-size:10px;
  color:var(--rd-ember); letter-spacing:.14em;
}
.rental-days-badge{
  font-family:'JetBrains Mono',monospace !important; font-size:11.5px !important;
  background:var(--rd-forest) !important; color:#fff !important;
  border-radius:999px !important; padding:.5rem 1rem !important;
  border:none !important; white-space:nowrap;
}
.rental-date-fields{ gap:.8rem !important; align-items:end !important; }
.rental-date-field-wrapper{ position:static !important; }
.rental-date-field{
  display:flex !important; align-items:center; gap:.7rem;
  width:100%; text-align:left;
  border:1.5px solid var(--rd-line) !important;
  border-radius:4px !important;
  padding:.7rem .85rem !important;
  background:var(--rd-surface) !important;
  min-height:52px;
  box-shadow:none !important;
  transition:border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
  cursor:pointer;
}
.rental-date-field:hover{ border-color:#cfc8b6 !important; }
.rental-date-field.rd-active{
  border-color:var(--rd-ember) !important;
  box-shadow:0 0 0 3px rgba(232,93,44,.12) !important;
  background:#fff !important;
}
.rental-date-icon{
  background:none !important; width:auto !important; height:auto !important;
  border-radius:0 !important; flex-shrink:0; padding:0 !important;
}
.rental-date-icon svg{ width:17px; height:17px; color:var(--rd-ember) !important; }
.rental-date-icon.return-inactive svg{ color:var(--rd-muted) !important; }
.rental-date-content{ min-width:0; }
.rental-date-label{
  font-family:'JetBrains Mono',monospace !important;
  font-size:9.5px !important; letter-spacing:.14em !important; text-transform:uppercase;
  color:var(--rd-muted) !important; margin-bottom:.15rem !important;
}
.rental-date-placeholder{
  font-family:'Inter',sans-serif !important;
  font-weight:600 !important; font-size:15px !important;
  color:var(--rd-ink) !important; letter-spacing:-.01em; line-height:1.2;
}
.rental-date-field:not(.has-date) .rental-date-placeholder{ color:var(--rd-muted) !important; font-weight:500 !important; }
.rd-dow{
  display:block;
  font-family:'JetBrains Mono',monospace; font-size:9px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--rd-muted); margin-top:.12rem;
}
.rental-date-arrow{ color:var(--rd-line) !important; padding-bottom:.9rem; }
.rental-date-arrow svg{ width:20px; height:20px; }
.date-range-info{
  margin-top:.85rem !important;
  font-size:12.5px !important; color:var(--rd-muted) !important;
  font-family:'Inter',sans-serif !important;
}
.date-range-info b{ color:var(--rd-forest); }

/* kafel „Zobacz koszyk" */
.reservation-cart-peek{
  background:var(--rd-ink) !important;
  color:#fff !important;
  border-radius:6px !important;
  padding:1.1rem 1.3rem !important;
  width:auto !important;
  min-width:min(100%,13.5rem);
  min-height:64px !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:.9rem !important;
  box-shadow:0 22px 44px -26px rgba(14,21,18,.5) !important;
  transition:background-color .2s ease, transform .2s ease;
}
.reservation-cart-peek:hover{ background:#1a2420 !important; color:#fff !important; transform:translateY(-1px); }
.reservation-cart-peek-icon-wrap{ flex-shrink:0; }
.reservation-cart-peek-icon{
  width:38px; height:38px; border-radius:50%;
  background:rgba(255,255,255,.08);
  display:flex; align-items:center; justify-content:center;
}
.reservation-cart-peek-icon svg{ width:18px; height:18px; color:#fff; }
.reservation-cart-peek-badge{
  background:var(--rd-ember) !important; color:#fff !important;
  font-family:'JetBrains Mono',monospace !important; font-size:10px !important;
  min-width:18px; height:18px; border-radius:999px;
  display:flex; align-items:center; justify-content:center; padding:0 4px;
  top:-5px !important; right:-5px !important;
}
.reservation-cart-peek-label{
  font-family:'Archivo',sans-serif !important; font-weight:700 !important; font-size:13.5px !important;
  color:#fff !important; text-align:left;
}
.rd-peek-sub{
  display:block;
  font-family:'JetBrains Mono',monospace; font-size:9.5px; letter-spacing:.1em; text-transform:uppercase;
  color:rgba(255,255,255,.5); margin-top:.1rem; font-weight:400;
}

/* =========================================================================
   KATEGORIE (lewa kolumna)
   ========================================================================= */
.reservation-main-grid{ background:transparent !important; padding-top:1.8rem !important; }
.reservation-category-column{
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
  padding:0 !important;
  flex:0 0 15rem !important;
}
.category-title{
  font-family:'JetBrains Mono',monospace !important;
  font-size:10px !important; letter-spacing:.16em !important; text-transform:uppercase;
  color:var(--rd-muted) !important;
  margin-bottom:.75rem !important;
}
.reservation-category-column .category-buttons{ gap:.45rem !important; }
.category-button{
  display:flex !important; align-items:center; justify-content:space-between; gap:.6rem;
  font-family:'Archivo',sans-serif !important; font-weight:600 !important; font-size:13px !important;
  color:var(--rd-forest) !important;
  background:#fff !important;
  border:1.5px solid var(--rd-line) !important;
  border-radius:4px !important;
  padding:.7rem .9rem !important;
  min-height:44px;
  box-shadow:none !important;
  transition:border-color .2s ease, color .2s ease, background-color .2s ease;
}
.category-button:hover{ border-color:var(--rd-ember) !important; color:var(--rd-ember) !important; background:#fff !important; }
.category-button.selected{
  background:var(--rd-ink) !important;
  border-color:var(--rd-ink) !important;
  color:#fff !important;
}
.category-icon{ display:none !important; }
.category-button .category-button-label{ font-family:'Archivo',sans-serif; }

/* wskaźnik przewijania kategorii (mobile) */
.scroll-indicator-bar{ background:var(--rd-line) !important; height:4px !important; }
.scroll-indicator-fill{ background:linear-gradient(to right,var(--rd-ember),var(--rd-ember-d)) !important; }
.scroll-indicator-hint{
  font-family:'JetBrains Mono',monospace !important;
  font-size:9.5px !important; letter-spacing:.1em; text-transform:uppercase;
  color:var(--rd-muted) !important; opacity:1 !important;
}
.scroll-hint-icon{ color:var(--rd-ember) !important; }

/* =========================================================================
   NAGŁÓWEK LISTY + SIATKA ROWERÓW
   ========================================================================= */
.bike-list-section{ background:transparent !important; padding:0 !important; }
.bike-list-container{ max-width:none !important; padding:0 !important; }
.bike-list-header{ margin-bottom:1.1rem !important; }
.bike-list-title{
  font-family:'Archivo',sans-serif !important; font-weight:800 !important;
  font-size:clamp(1.35rem,2.6vw,1.7rem) !important;
  letter-spacing:-.02em; color:var(--rd-ink) !important;
}
.bike-list-subtitle{
  font-family:'JetBrains Mono',monospace !important;
  font-size:10.5px !important; letter-spacing:.1em !important; text-transform:uppercase;
  color:var(--rd-muted) !important; margin-top:.3rem !important;
}
.bike-list-subtitle .bike-count{ color:var(--rd-ember) !important; font-weight:400; }

.bike-grid{ gap:1rem !important; grid-template-columns:1fr !important; }
@media(min-width:560px){ .bike-grid{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; } }
@media(min-width:1000px){ .bike-grid{ grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:1.25rem !important; } }
@media(min-width:1280px){ .bike-grid{ grid-template-columns:repeat(4,minmax(0,1fr)) !important; gap:1.5rem !important; } }

/* ---- KARTA ROWERU: default / hover / selected / unavailable ---- */
.bike-card{
  position:relative;
  background:#fff !important;
  border:1.5px solid var(--rd-line) !important;
  border-radius:6px !important;
  overflow:hidden;
  display:flex; flex-direction:column;
  opacity:1 !important;
  transition:border-color .25s ease, box-shadow .25s ease, transform .25s ease !important;
}
.bike-card:hover{
  transform:translateY(-3px) !important;
  border-color:#cfc8b6 !important;
  box-shadow:0 18px 36px -20px rgba(14,21,18,.28) !important;
}
.bike-card:hover .bike-image{ transform:scale(1.02) !important; }
.bike-card.rd-selected{
  border-color:var(--rd-ember) !important;
  box-shadow:0 0 0 1px var(--rd-ember), 0 18px 36px -20px rgba(232,93,44,.3) !important;
}
.bike-card.unavailable{ opacity:.55 !important; }
.bike-card.unavailable:hover{ transform:none !important; box-shadow:none !important; border-color:var(--rd-line) !important; }
.bike-card.unavailable .bike-image{ filter:grayscale(.5); }

.bike-image-container{
  position:relative;
  height:auto !important;
  background:none !important;
  border-bottom:1px solid var(--rd-line);
  padding:1.25rem 1rem .9rem;
  overflow:visible !important;
  cursor:zoom-in;
}
@media(min-width:1000px){ .bike-image-container{ padding:1.5rem 1.1rem 1.1rem; } }
.bike-image{
  width:auto !important;
  height:190px !important;
  margin:0 auto;
  object-fit:contain !important;
  filter:drop-shadow(0 16px 20px rgba(14,21,18,.16));
  transition:transform .35s cubic-bezier(.16,1,.3,1) !important;
}
@media(min-width:1000px){ .bike-image{ height:240px !important; } }

/* podpowiedź powiększenia zdjęcia */
.rd-zoom-hint{
  position:absolute; right:.6rem; bottom:.5rem;
  width:30px; height:30px; border-radius:999px;
  background:rgba(255,255,255,.92); border:1px solid var(--rd-line);
  display:flex; align-items:center; justify-content:center;
  color:var(--rd-ink); opacity:0; transform:scale(.85);
  transition:opacity .2s ease, transform .2s ease;
  pointer-events:none;
  box-shadow:0 6px 14px -6px rgba(14,21,18,.3);
}
.rd-zoom-hint svg{ width:14px; height:14px; }
.bike-card:hover .rd-zoom-hint{ opacity:1; transform:scale(1); }

/* ---- LIGHTBOX ze zdjęciem roweru ---- */
.rd-lightbox{
  position:fixed; inset:0; z-index:10500;
  display:none; align-items:center; justify-content:center;
  padding:5vh 5vw;
  background:rgba(14,21,18,.82);
  backdrop-filter:blur(4px);
  opacity:0; transition:opacity .22s ease;
}
.rd-lightbox.rd-open{ display:flex; opacity:1; }
.rd-lightbox-inner{
  position:relative;
  max-width:min(920px,90vw); max-height:88vh;
  display:flex; flex-direction:column; align-items:center;
  transform:scale(.96); transition:transform .22s cubic-bezier(.16,1,.3,1);
}
.rd-lightbox.rd-open .rd-lightbox-inner{ transform:scale(1); }
.rd-lightbox-img{
  max-width:100%; max-height:68vh; object-fit:contain;
  background:#fff;
  padding:clamp(1.25rem,4vw,2.5rem) clamp(1.5rem,5vw,3rem);
  border-radius:20px;
  box-shadow:0 30px 60px -18px rgba(0,0,0,.55);
}
.rd-lightbox-cap{
  margin-top:1.25rem; text-align:center; color:#fff;
}
.rd-lightbox-cap .rd-lb-name{
  font-family:'Archivo',sans-serif; font-weight:800; font-size:1.15rem; letter-spacing:-.01em;
}
.rd-lightbox-cap .rd-lb-price{
  font-family:'JetBrains Mono',monospace; font-size:.85rem; color:var(--rd-ember2,#ff9d6e); margin-top:.25rem;
}
/* Przypięty do rogu ekranu (position:fixed), NIE do rogu zdjęcia —
   dzięki temu nigdy nie nachodzi na obszar <img>, niezależnie od
   proporcji/rozmiaru konkretnego zdjęcia roweru. */
.rd-lightbox-close{
  position:fixed; top:1.5rem; right:1.5rem; z-index:2;
  width:44px; height:44px; border-radius:999px;
  background:#fff; border:none; color:var(--rd-ink);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; box-shadow:0 10px 24px -10px rgba(0,0,0,.5);
  transition:transform .15s ease;
}
.rd-lightbox-close:hover{ transform:scale(1.08); }
.rd-lightbox-close svg{ width:18px; height:18px; }
@media(max-width:640px){
  .rd-lightbox-close{ top:1rem; right:1rem; width:40px; height:40px; }
}
body.rd-lightbox-locked{ overflow:hidden !important; }

/* badge rozmiaru (lewy górny róg) */
.bike-badge{
  top:.75rem !important; left:.75rem !important; right:auto !important;
  font-family:'JetBrains Mono',monospace !important;
  font-size:9.5px !important; font-weight:400 !important; letter-spacing:.1em;
  border-radius:3px !important;
  padding:.3rem .55rem !important;
  border:none !important;
}
.bike-badge.available{ background:var(--rd-ink) !important; color:#fff !important; }
.bike-badge.unavailable{ background:rgba(138,133,120,.9) !important; color:#fff !important; }

/* znacznik „w koszyku" (prawy górny róg) — dodawany przez JS */
.rd-incart-flag{
  position:absolute; top:.75rem; right:.75rem;
  background:var(--rd-ember); color:#fff;
  font-family:'Archivo',sans-serif; font-weight:700; font-size:10px; letter-spacing:.02em;
  border-radius:999px; padding:.32rem .6rem;
  display:none; align-items:center; gap:.25rem;
}
.bike-card.rd-selected .rd-incart-flag{ display:inline-flex; }

.bike-content{ padding:1rem 1.1rem 1.1rem !important; display:flex; flex-direction:column; flex:1; }
@media(min-width:1000px){ .bike-content{ padding:1.25rem 1.35rem 1.35rem !important; } }
.bike-name{
  font-family:'Archivo',sans-serif !important; font-weight:700 !important;
  font-size:15px !important; letter-spacing:-.01em; line-height:1.3 !important;
  color:var(--rd-ink) !important; margin-bottom:0 !important;
}
@media(min-width:1000px){ .bike-name{ font-size:16.5px !important; } }
.bike-card:hover .bike-name{ color:var(--rd-ink) !important; }

/* cena — przeniesiona pod nazwę (JS wstawia ją do .bike-content) */
.bike-price{
  position:static !important;
  background:none !important; backdrop-filter:none !important;
  padding:0 !important; border-radius:0 !important;
  margin-top:.35rem;
  color:var(--rd-ember) !important;
  display:block;
}
.bike-price-amount{
  font-family:'Archivo',sans-serif !important; font-weight:800 !important;
  font-size:1.12rem !important; color:var(--rd-ember) !important;
}
@media(min-width:1000px){ .bike-price-amount{ font-size:1.4rem !important; } }
.bike-price-unit{
  font-family:'JetBrains Mono',monospace !important;
  font-size:9px !important; letter-spacing:.06em; text-transform:uppercase;
  color:var(--rd-muted) !important; margin-left:.2rem !important;
}

.bike-specs{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:.45rem .9rem !important;
  border-top:1px solid var(--rd-line);
  margin-top:.7rem !important; padding-top:.7rem;
  margin-bottom:.95rem !important;
}
@media(min-width:1000px){ .bike-specs{ gap:.6rem 1rem !important; margin-top:.9rem !important; padding-top:.9rem; margin-bottom:1.15rem !important; } }
.bike-spec{ background:none !important; padding:0 !important; border:none !important; }
.bike-spec-header{ gap:.25rem !important; margin-bottom:.1rem !important; }
.bike-spec-header svg{ display:none !important; }
.bike-spec-label{
  font-family:'JetBrains Mono',monospace !important;
  font-size:8.5px !important; letter-spacing:.1em !important; text-transform:uppercase;
  color:var(--rd-muted) !important;
}
.bike-spec-value{
  font-family:'Inter',sans-serif !important; font-weight:600 !important;
  font-size:12px !important; color:var(--rd-ink) !important;
}
@media(min-width:1000px){ .bike-spec-value{ font-size:12.5px !important; } }

.bike-reserve-button{
  margin-top:auto !important;
  width:100%;
  font-family:'Archivo',sans-serif !important; font-weight:700 !important;
  font-size:12.5px !important; text-transform:uppercase; letter-spacing:.03em;
  border:1.5px solid var(--rd-ink) !important;
  color:var(--rd-ink) !important;
  background:#fff !important;
  border-radius:4px !important;
  padding:.68rem !important;
  min-height:44px;
  transition:background-color .2s ease, color .2s ease, border-color .2s ease, transform .1s ease;
}
@media(min-width:1000px){ .bike-reserve-button{ font-size:13px !important; padding:.8rem !important; min-height:48px; } }
.bike-reserve-button.available:hover{ background:var(--rd-ink) !important; color:#fff !important; }
.bike-reserve-button:active{ transform:scale(.985); }
.bike-reserve-button.in-cart{
  background:rgba(232,93,44,.08) !important;
  border-color:transparent !important;
  color:var(--rd-ember-d) !important;
  text-transform:none; font-weight:600 !important;
  opacity:1 !important; cursor:pointer !important;
}
.bike-reserve-button.in-cart:hover{ background:rgba(192,57,43,.1) !important; color:var(--rd-err) !important; }
.bike-reserve-button.unavailable{
  border-color:var(--rd-line) !important;
  color:var(--rd-muted) !important;
  background:var(--rd-surface) !important;
  text-transform:none; font-weight:600 !important;
  cursor:not-allowed;
}

.empty-state{
  background:#fff !important;
  border:1px dashed var(--rd-line) !important;
  border-radius:6px !important;
  padding:2.6rem !important;
}
.empty-icon,.empty-emoji{ display:none !important; }
.empty-title{ font-family:'Archivo',sans-serif !important; font-weight:700 !important; font-size:1rem !important; color:var(--rd-ink) !important; }
.empty-text{ font-size:13px !important; color:var(--rd-muted) !important; }

/* =========================================================================
   KOSZYK (inline)
   ========================================================================= */
.cart-modal--inline .cart-modal-content{
  background:#fff !important;
  border:1px solid var(--rd-line) !important;
  border-radius:6px !important;
  box-shadow:0 24px 48px -30px rgba(14,21,18,.3) !important;
  overflow:hidden;
}
.cart-modal-header{
  background:var(--rd-ink) !important;
  border-bottom:none !important;
  padding:1.05rem 1.3rem !important;
}
.cart-modal-title{
  font-family:'JetBrains Mono',monospace !important;
  font-size:11px !important; letter-spacing:.16em !important; text-transform:uppercase;
  color:#fff !important; font-weight:400 !important;
}
.cart-modal-back-btn{
  font-family:'Archivo',sans-serif !important; font-weight:600 !important; font-size:12.5px !important;
  color:rgba(255,255,255,.75) !important;
  background:none !important; border:none !important; padding:0 !important;
}
.cart-modal-back-btn:hover{ color:var(--rd-ember) !important; }
.cart-modal-back-icon{ width:14px; height:14px; }
.cart-modal-body{ padding:1.4rem !important; gap:1.4rem !important; }
@media(min-width:900px){ .cart-modal-body{ gap:2rem !important; } }
.cart-section-label{
  font-family:'JetBrains Mono',monospace !important;
  font-size:9.5px !important; letter-spacing:.16em !important; text-transform:uppercase;
  color:var(--rd-muted) !important;
  display:flex; align-items:center; gap:.45rem;
  margin-bottom:.7rem !important;
}
.cart-section-label::after{ content:""; flex:1; height:1px; background:var(--rd-line); }
.cart-section-icon{ display:none !important; }
.cart-date-display{
  background:var(--rd-surface) !important;
  border:1px solid var(--rd-line) !important;
  border-radius:4px !important;
  padding:.75rem .95rem !important;
  font-family:'JetBrains Mono',monospace !important;
  font-size:12.5px !important; color:var(--rd-forest) !important;
}
.cart-empty{ text-align:center; color:var(--rd-muted) !important; font-size:13px !important; padding:1.4rem 0 !important; }
.cart-empty-icon{ display:none !important; }

.cart-discount-input{
  border:1.5px solid var(--rd-line) !important;
  border-radius:4px !important;
  padding:.65rem .8rem !important;
  font-family:'JetBrains Mono',monospace !important;
  font-size:12.5px !important; letter-spacing:.06em; text-transform:uppercase;
  background:var(--rd-surface) !important;
}
.cart-discount-input:focus{ border-color:var(--rd-ember) !important; outline:none !important; box-shadow:none !important; }
.cart-discount-btn{
  font-family:'Archivo',sans-serif !important; font-weight:700 !important;
  font-size:12px !important; text-transform:uppercase; letter-spacing:.04em;
  border:1.5px solid var(--rd-ink) !important;
  background:#fff !important; color:var(--rd-ink) !important;
  border-radius:4px !important; padding:0 1rem !important;
  transition:background-color .2s ease, color .2s ease;
}
.cart-discount-btn:hover{ background:var(--rd-ink) !important; color:#fff !important; }
.cart-discount-message{ font-size:12px !important; line-height:1.45; }
.cart-discount-message.text-success{ color:var(--rd-ok) !important; }

.cart-summary-section{
  background:var(--rd-surface) !important;
  border:1px solid var(--rd-line) !important;
  border-radius:6px !important;
  padding:1rem 1.15rem !important;
  margin-top:1.3rem !important;
}
.cart-summary-row{ padding:.28rem 0 !important; }
.cart-summary-label{ font-family:'Inter',sans-serif !important; font-size:13px !important; color:var(--rd-muted) !important; }
.cart-summary-value{ font-family:'JetBrains Mono',monospace !important; font-size:13px !important; color:var(--rd-forest) !important; }
.cart-summary-divider{ background:var(--rd-line) !important; margin:.6rem 0 0 !important; }
.cart-summary-total{ padding-top:.7rem !important; align-items:baseline !important; }
.cart-summary-total .cart-summary-label{
  font-family:'JetBrains Mono',monospace !important;
  font-size:10.5px !important; letter-spacing:.16em !important; text-transform:uppercase;
  color:var(--rd-muted) !important;
}
.cart-summary-total .cart-summary-value{
  font-family:'Archivo',sans-serif !important; font-weight:800 !important;
  font-size:1.65rem !important; letter-spacing:-.01em; color:var(--rd-ink) !important;
}
.cart-modal-footer{
  border-top:1px solid var(--rd-line) !important;
  background:#fff !important;
  padding:1.2rem 1.4rem !important;
}
.cart-button-secondary{
  font-family:'Archivo',sans-serif !important; font-weight:600 !important; font-size:13px !important;
  color:var(--rd-muted) !important; background:none !important; border:none !important;
  padding:.8rem 1rem !important; border-radius:4px !important;
}
.cart-button-secondary:hover{ color:var(--rd-ink) !important; background:none !important; }
.cart-button-primary{
  background:var(--rd-ember) !important; color:#fff !important;
  font-family:'Archivo',sans-serif !important; font-weight:700 !important; font-size:14px !important;
  border-radius:4px !important; padding:.95rem 2rem !important;
  min-height:48px;
  box-shadow:0 12px 26px -12px rgba(232,93,44,.55) !important;
  transition:background-color .2s ease, transform .2s ease;
}
.cart-button-primary:hover:not(:disabled){ background:var(--rd-ember-d) !important; transform:translateY(-1px); }
.cart-button-primary:disabled{ background:var(--rd-line) !important; color:var(--rd-muted) !important; box-shadow:none !important; }

/* =========================================================================
   PODSUMOWANIE REZERWACJI (checkout inline)
   ========================================================================= */
.checkout-modal--inline .checkout-modal-inner{
  background:#fff !important;
  border:1px solid var(--rd-line) !important;
  border-radius:6px !important;
  box-shadow:0 24px 48px -30px rgba(14,21,18,.3) !important;
}
.checkout-modal--inline h2{
  font-family:'Archivo',sans-serif !important; font-weight:800 !important;
  font-size:1.3rem !important; letter-spacing:-.01em; color:var(--rd-ink) !important;
}
#checkoutContent input[type="text"],
#checkoutContent input[type="email"],
#checkoutContent input[type="tel"],
#checkoutContent textarea{
  border:1.5px solid var(--rd-line) !important;
  border-radius:4px !important;
  background:var(--rd-surface) !important;
  font-size:14px !important;
  min-height:44px;
}
#checkoutContent input:focus,#checkoutContent textarea:focus{
  border-color:var(--rd-ember) !important;
  box-shadow:0 0 0 3px rgba(232,93,44,.1) !important;
  outline:none !important;
}
#checkoutContent label{ color:var(--rd-forest) !important; }
#checkoutTotal{
  font-family:'Archivo',sans-serif !important; font-weight:800 !important;
  font-size:1.8rem !important; color:var(--rd-ember) !important; letter-spacing:-.01em;
}
#checkoutPaymentButton button{
  background:var(--rd-ember) !important; color:#fff !important;
  font-family:'Archivo',sans-serif !important; font-weight:700 !important; font-size:14px !important;
  border-radius:4px !important; padding:.95rem 1.5rem !important; min-height:48px;
  box-shadow:0 12px 26px -12px rgba(232,93,44,.55) !important;
}
#checkoutPaymentButton button:hover{ background:var(--rd-ember-d) !important; }

/* =========================================================================
   POTWIERDZENIE DODANIA DO KOSZYKA (wariant C + A)
   ========================================================================= */
.rd-fly{
  position:fixed; z-index:9500; pointer-events:none; object-fit:contain;
  transition:transform .8s cubic-bezier(.55,-.15,.35,1), opacity .8s ease;
  filter:drop-shadow(0 10px 16px rgba(14,21,18,.3));
}
@keyframes rdCartPulse{0%{transform:scale(1);}35%{transform:scale(1.13);}100%{transform:scale(1);}}
.rd-cart-pulse{ animation:rdCartPulse .55s cubic-bezier(.16,1,.3,1); }
@keyframes rdBdgPop{0%{transform:scale(1);}40%{transform:scale(1.5);}100%{transform:scale(1);}}
.rd-bdg-pop{ animation:rdBdgPop .5s cubic-bezier(.16,1,.3,1); }

#rdMiniCart{
  position:fixed; z-index:9400; right:1.25rem; bottom:1.25rem;
  display:inline-flex; align-items:center; gap:.8rem;
  background:var(--rd-ink); color:#fff;
  border-radius:999px; padding:.62rem 1.1rem .62rem .7rem;
  box-shadow:0 20px 42px -16px rgba(14,21,18,.65);
  transform:translateY(20px) scale(.94); opacity:0; visibility:hidden;
  transition:transform .3s cubic-bezier(.16,1,.3,1), opacity .3s ease, visibility .3s;
  border:none; cursor:pointer;
}
#rdMiniCart.rd-show{ transform:none; opacity:1; visibility:visible; }
@media(max-width:640px){
  #rdMiniCart{ left:.75rem; right:.75rem; border-radius:6px; justify-content:space-between; padding:.7rem .8rem .7rem .7rem; }
}
#rdMiniCart .rd-ic{
  position:relative; width:36px; height:36px; border-radius:50%;
  background:rgba(255,255,255,.1);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
#rdMiniCart .rd-ic svg{ width:17px; height:17px; }
#rdMiniCart .rd-ic .rd-b{
  position:absolute; top:-4px; right:-4px;
  min-width:18px; height:18px; border-radius:999px; background:var(--rd-ember);
  font-family:'JetBrains Mono',monospace; font-size:10px;
  display:flex; align-items:center; justify-content:center; padding:0 4px;
}
#rdMiniCart .rd-tx{ line-height:1.25; text-align:left; }
#rdMiniCart .rd-tx .rd-a{ font-family:'Archivo',sans-serif; font-weight:700; font-size:14px; }
#rdMiniCart .rd-tx .rd-s{
  font-family:'JetBrains Mono',monospace; font-size:9px; letter-spacing:.1em; text-transform:uppercase;
  color:rgba(255,255,255,.5);
}
#rdMiniCart .rd-go{
  margin-left:.35rem;
  font-family:'Archivo',sans-serif; font-weight:700; font-size:12px;
  background:var(--rd-ember); color:#fff; border-radius:999px;
  padding:.5rem 1rem; min-height:38px; white-space:nowrap;
  border:none; cursor:pointer;
  transition:background-color .2s ease;
}
@media(max-width:640px){ #rdMiniCart .rd-go{ border-radius:4px; } }
#rdMiniCart .rd-go:hover{ background:var(--rd-ember-d); }
/* nie zasłaniaj dolnego paska zalogowanego użytkownika */
body.rd-has-bottombar #rdMiniCart{ bottom:5.25rem; }

/* =========================================================================
   ZJEDNOCZONY DOLNY PASEK (mobile) — koszyk + „Mój panel" w jednym rzędzie
   Aktywne WYŁĄCZNIE gdy JS ustawi klasę body.rd-cart-merged (patrz
   redesign-reservation.js: refreshBottomBar()) — czyli dokładnie wtedy, gdy
   jednocześnie: pasek z ceną (#rdMiniCart) ma pokazać zawartość koszyka
   ORAZ wspólny #mobileBottomBar jest widoczny. Poza tym stanem oba paski
   wyglądają i działają dokładnie tak jak dziś.
   Struktura #mobileBottomBar i cała logika logowania/koszyka w script.js —
   BEZ ZMIAN. Ten plik ładowany jest tylko na reservation.html.
   ========================================================================= */
@media(max-width:767px){
  body.rd-cart-merged #mobileBottomBar > div.flex{ padding:0 !important; }
  body.rd-cart-merged #mobileBottomBarContent{
    justify-content:flex-start !important;
    align-items:stretch !important;
  }
  /* druga, zbędna ikonka koszyka ze wspólnego paska — ukryta tylko wtedy,
     gdy pasek z ceną poniżej i tak pokazuje koszyk */
  body.rd-cart-merged #mobileBottomBarContent > div.relative.group{
    display:none !important;
  }
  body.rd-cart-merged .rd-ub-account{
    display:flex !important; align-items:center; justify-content:center;
    width:60px; flex-shrink:0;
    padding:0 !important; margin:0 !important;
    border:none !important; border-right:1px solid var(--rd-line) !important;
    background:#fff !important; box-shadow:none !important; border-radius:0 !important;
    position:relative; text-decoration:none;
    /* element dziedziczy z Tailwind "transition-all duration-300" (efekt
       hover na oryginalnej kapsule „Mój panel") — bez wyłączenia tego,
       zmiana paddingu animowałaby się 300ms i JS zmierzyłby wysokość paska
       w połowie animacji, zanim się ustabilizuje */
    transition:none !important; transform:none !important;
  }
  body.rd-cart-merged .rd-ub-account .rd-ub-avatar{
    width:34px; height:34px; border-radius:50%;
    background:var(--rd-forest); color:#fff;
    display:flex; align-items:center; justify-content:center;
    font-family:'Archivo',sans-serif; font-weight:700; font-size:13px;
    border:2px solid var(--rd-ember);
  }
  body.rd-cart-merged .rd-ub-account .rd-ub-login-ic{
    width:20px; height:20px; color:var(--rd-forest);
  }
  body.rd-cart-merged .rd-ub-account .rd-ub-dot{
    position:absolute; top:9px; right:15px; width:9px; height:9px; border-radius:50%;
    background:var(--rd-ember); border:1.5px solid #fff;
  }

  /* pasek z ceną „zadokowany" tuż obok kapsuły konta — razem jeden rząd.
     #mobileBottomBar ma z-index:9999 (Tailwind z-[9999]) i rozciąga się na
     całą szerokość ekranu — bez podniesienia z-index tutaj, jego (puste od
     strony konta) pole zasłoniłoby zadokowany pasek z ceną. */
  body.rd-cart-merged #rdMiniCart{
    left:60px !important; right:0 !important; bottom:0 !important;
    height:var(--rd-bottombar-h,60px) !important;
    z-index:10000 !important;
    border-radius:0 !important;
    background:#fff !important; color:var(--rd-ink) !important;
    box-shadow:none !important; border-top:1px solid var(--rd-line);
    justify-content:flex-start !important; gap:.7rem;
    padding:0 .9rem !important;
  }
  body.rd-cart-merged #rdMiniCart .rd-ic{ background:var(--rd-stone); }
  body.rd-cart-merged #rdMiniCart .rd-ic svg{ color:var(--rd-forest); }
  body.rd-cart-merged #rdMiniCart .rd-tx .rd-s{ color:var(--rd-muted); }
  body.rd-cart-merged #rdMiniCart .rd-go{ margin-left:auto; border-radius:8px !important; }
}

/* =========================================================================
   KALENDARZ ZAKRESU (jeden na obie daty)
   ========================================================================= */
#rdCalPop{
  position:absolute; left:0; right:0; top:calc(100% + .6rem);
  z-index:120;
  background:#fff; border:1px solid var(--rd-line); border-radius:6px;
  box-shadow:0 30px 60px -24px rgba(14,21,18,.4);
  padding:1.1rem 1.2rem 1rem;
  opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s;
}
#rdCalPop.rd-open{ opacity:1; visibility:visible; transform:translateY(0); }
.rd-cal-top{ display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:.9rem; }
.rd-cal-nav{
  width:34px; height:34px; border:1.5px solid var(--rd-line); border-radius:4px;
  display:flex; align-items:center; justify-content:center; color:var(--rd-forest);
  background:#fff; cursor:pointer; flex-shrink:0;
  transition:border-color .18s ease, color .18s ease;
}
.rd-cal-nav:hover{ border-color:var(--rd-ember); color:var(--rd-ember); }
.rd-cal-nav:disabled{ opacity:.3; cursor:default; }
.rd-cal-titles{ display:flex; flex:1; justify-content:space-around; gap:1rem; }
.rd-cal-title{ font-family:'Archivo',sans-serif; font-weight:800; font-size:14.5px; letter-spacing:-.01em; text-align:center; }
.rd-cal-title span{ font-family:'JetBrains Mono',monospace; font-weight:400; font-size:11px; color:var(--rd-muted); margin-left:.35rem; letter-spacing:.06em; }
.rd-cal-title:nth-child(2){ display:none; }
@media(min-width:720px){ .rd-cal-title:nth-child(2){ display:block; } }
.rd-cal-months{ display:grid; grid-template-columns:minmax(0,1fr); gap:1.6rem; }
@media(min-width:720px){ .rd-cal-months{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.rd-cal-m{ min-width:0; }
.rd-cal-m:nth-child(2){ display:none; }
@media(min-width:720px){ .rd-cal-m:nth-child(2){ display:block; } }
.rd-cal-dow{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:2px; margin-bottom:.35rem; }
.rd-cal-dow span{
  font-family:'JetBrains Mono',monospace; font-size:9px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--rd-muted); text-align:center; padding:.3rem 0;
}
.rd-cal-grid{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:2px; }
.rd-cal-d{
  position:relative; min-width:0; height:38px;
  display:flex; align-items:center; justify-content:center;
  font-family:'Inter',sans-serif; font-size:13.5px; font-weight:600; color:var(--rd-ink);
  border:none; background:none; border-radius:4px; cursor:pointer;
  transition:background-color .15s ease, color .15s ease;
}
.rd-cal-d.rd-empty{ visibility:hidden; }
.rd-cal-d:not(.rd-off):not(.rd-sel):hover{ background:rgba(14,21,18,.06); }
.rd-cal-d.rd-off{ color:var(--rd-line); cursor:not-allowed; font-weight:500; }
.rd-cal-d.rd-today::after{
  content:""; position:absolute; bottom:5px; left:50%; transform:translateX(-50%);
  width:4px; height:4px; border-radius:50%; background:var(--rd-ember);
}
.rd-cal-d.rd-in{ background:rgba(232,93,44,.1); border-radius:0; color:var(--rd-ember-d); }
.rd-cal-d.rd-sel{ background:var(--rd-ember); color:#fff; }
.rd-cal-d.rd-sel.rd-today::after{ background:#fff; }
.rd-cal-d.rd-sel.rd-start{ border-radius:4px 0 0 4px; }
.rd-cal-d.rd-sel.rd-end{ border-radius:0 4px 4px 0; }
.rd-cal-d.rd-sel.rd-start.rd-end{ border-radius:4px; }
.rd-cal-foot{
  display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  border-top:1px solid var(--rd-line); margin-top:.9rem; padding-top:.85rem;
}
.rd-cal-hint{ font-family:'JetBrains Mono',monospace; font-size:9.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--rd-muted); }
.rd-cal-hint b{ color:var(--rd-ember); font-weight:500; }
.rd-cal-actions{ display:flex; align-items:center; gap:.6rem; }
.rd-cal-clear{
  font-family:'Archivo',sans-serif; font-weight:600; font-size:12px; color:var(--rd-muted);
  background:none; border:none; padding:.5rem .7rem; border-radius:4px; cursor:pointer;
  transition:color .18s ease;
}
.rd-cal-clear:hover{ color:var(--rd-err); }
.rd-cal-done{
  font-family:'Archivo',sans-serif; font-weight:700; font-size:12.5px;
  background:var(--rd-ink); color:#fff; border:none; border-radius:4px;
  padding:.62rem 1.15rem; min-height:40px; cursor:pointer;
  transition:background-color .2s ease;
}
.rd-cal-done:hover{ background:var(--rd-forest); }
.rd-cal-done:disabled{ background:var(--rd-line); color:var(--rd-muted); cursor:not-allowed; }

/* =========================================================================
   OVERLAY FINALIZACJI + STOPKA
   ========================================================================= */
.reservation-processing-card{ border-radius:8px !important; }
.reservation-processing-title{ font-family:'Archivo',sans-serif !important; font-weight:800 !important; color:var(--rd-ink) !important; }
.reservation-processing-spinner{ border-top-color:var(--rd-ember) !important; }
footer.rd-footer{ background:var(--rd-ink) !important; color:rgba(255,255,255,.72) !important; }
footer.rd-footer h3{
  font-family:'JetBrains Mono',monospace !important; font-size:11px !important;
  letter-spacing:.16em !important; text-transform:uppercase; color:rgba(255,255,255,.45) !important;
}
footer.rd-footer a:hover{ color:var(--rd-ember) !important; }

::selection{ background:var(--rd-ember); color:#fff; }

@media (prefers-reduced-motion: reduce){
  .rd-fly,.bike-card,.bike-image,#rdMiniCart,#rdCalPop{ transition:none !important; animation:none !important; }
}

/* =========================================================================
   ZESTAWY: rower + przyczepka / fotelik (widok "Przyczepki" / "Foteliki")
   Zakładki i nagłówki sekcji są stylowane po stabilnych atrybutach/klasach
   generowanych przez script.js (data-accessory-type, .accessory-section) —
   sama logika przełączania zakładek i sortowania NIE jest tu ruszana.
   ========================================================================= */

/* ---- zakładki "Przyczepki" / "Foteliki" ---- */
button[data-accessory-type]{
  font-family:'Archivo',sans-serif !important; font-weight:700 !important; font-size:12.5px !important;
  letter-spacing:.01em !important; border-radius:4px !important;
  border:1.5px solid var(--rd-line) !important;
  background:#fff !important; color:var(--rd-forest) !important;
  box-shadow:none !important; padding:.6rem 1.05rem !important;
  transition:border-color .2s ease, color .2s ease, background-color .2s ease !important;
}
button[data-accessory-type]:hover{ border-color:var(--rd-ember) !important; color:var(--rd-ember) !important; }
button[data-accessory-type].bg-primary{
  background:var(--rd-ink) !important; border-color:var(--rd-ink) !important; color:#fff !important;
}
button[data-accessory-type] span[class*="rounded-full"]{
  font-family:'JetBrains Mono',monospace !important; font-size:9.5px !important; font-weight:400 !important;
  letter-spacing:.05em !important; border-radius:999px !important; padding:.18rem .4rem !important;
}
button[data-accessory-type] span[class*="text-success"]{ background:rgba(46,125,79,.14) !important; color:var(--rd-ok) !important; }
button[data-accessory-type] span[class*="text-destructive"]{ background:rgba(192,57,43,.14) !important; color:var(--rd-err) !important; }
button[data-accessory-type].bg-primary span[class*="text-success"]{ background:rgba(255,255,255,.16) !important; color:#cdeedd !important; }
button[data-accessory-type].bg-primary span[class*="text-destructive"]{ background:rgba(255,255,255,.16) !important; color:#ffd7d0 !important; }

/* ---- nagłówki sekcji ("Rowery elektryczne z przyczepką" itd.) ---- */
.accessory-section h3{
  font-family:'Archivo',sans-serif !important; font-weight:700 !important; font-size:1rem !important;
  color:var(--rd-ink) !important; letter-spacing:-.01em !important;
}
.accessory-section .h-px{ background:var(--rd-line) !important; }
.accessory-section .grid{ gap:1.25rem !important; }
@media(min-width:1000px){ .accessory-section .grid{ gap:1.5rem !important; } }

/* ---- karta zestawu (Wariant B: miniatura dodatku na zdjęciu) ---- */
.rd-set-card{
  background:#fff; border:1.5px solid var(--rd-line); border-radius:6px;
  overflow:hidden; display:flex; flex-direction:column;
  transition:border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.rd-set-card:hover{
  transform:translateY(-3px); border-color:#cfc8b6;
  box-shadow:0 18px 36px -20px rgba(14,21,18,.28);
}
.rd-set-card.unavailable{ opacity:.55; }
.rd-set-card.unavailable:hover{ transform:none; box-shadow:none; border-color:var(--rd-line); }
.rd-set-card.unavailable .rd-set-bike-img{ filter:grayscale(.5); }

.rd-set-b-image{
  position:relative; border-bottom:1px solid var(--rd-line);
  padding:1.3rem 1rem .9rem; display:flex; align-items:center; justify-content:center;
}
.rd-set-bike-img{
  width:auto; height:170px; object-fit:contain;
  filter:drop-shadow(0 16px 20px rgba(14,21,18,.16));
  transition:transform .35s cubic-bezier(.16,1,.3,1);
}
@media(min-width:1000px){ .rd-set-bike-img{ height:210px; } }
.rd-set-card:hover .rd-set-bike-img{ transform:scale(1.02); }

.rd-set-avail{
  position:absolute; top:.75rem; left:.75rem;
  font-family:'JetBrains Mono',monospace; font-size:9.5px; letter-spacing:.1em;
  text-transform:uppercase; border-radius:3px; padding:.3rem .55rem;
  background:var(--rd-ink); color:#fff;
}
.rd-set-avail.unavailable{ background:rgba(138,133,120,.9); }

.rd-set-addon-thumb{
  position:absolute; bottom:.7rem; right:.7rem;
  width:52px; height:52px; border-radius:8px;
  background:var(--rd-surface); border:1.5px solid var(--rd-line);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 20px -12px rgba(14,21,18,.35);
}
.rd-set-addon-thumb img{ width:78%; height:78%; object-fit:contain; }
.rd-set-addon-label{
  position:absolute; bottom:.7rem; right:4.05rem;
  font-family:'JetBrains Mono',monospace; font-size:9px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--rd-muted); background:#fff; border:1px solid var(--rd-line);
  border-radius:3px; padding:.28rem .5rem; display:flex; align-items:center; white-space:nowrap;
}

.rd-set-body{ padding:1.1rem 1.2rem 1.2rem; display:flex; flex-direction:column; flex:1; }
@media(min-width:1000px){ .rd-set-body{ padding:1.25rem 1.35rem 1.35rem; } }
.rd-set-name{
  font-family:'Archivo',sans-serif; font-weight:700; font-size:15.5px; letter-spacing:-.01em;
  margin:0 0 .15rem; color:var(--rd-ink);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
@media(min-width:1000px){ .rd-set-name{ font-size:16.5px; } }
.rd-set-sub{ font-family:'Inter',sans-serif; font-size:12px; color:var(--rd-muted); margin:0 0 .9rem; }

.rd-set-price{ display:flex; align-items:baseline; gap:.35rem; margin-bottom:.15rem; }
.rd-set-price-amount{ font-family:'Archivo',sans-serif; font-weight:800; font-size:1.3rem; color:var(--rd-ember); }
@media(min-width:1000px){ .rd-set-price-amount{ font-size:1.45rem; } }
.rd-set-price-unit{ font-family:'JetBrains Mono',monospace; font-size:9px; letter-spacing:.06em; text-transform:uppercase; color:var(--rd-muted); }
.rd-set-price-breakdown{ font-family:'JetBrains Mono',monospace; font-size:10px; color:var(--rd-muted); margin-bottom:.9rem; }

.rd-set-specs{
  display:grid; grid-template-columns:1fr 1fr; gap:.5rem 1rem;
  border-top:1px solid var(--rd-line); padding-top:.75rem; margin-bottom:1rem;
}
.rd-set-spec-label{
  font-family:'JetBrains Mono',monospace; font-size:8.5px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--rd-muted); display:block;
}
.rd-set-spec-value{ font-family:'Inter',sans-serif; font-weight:600; font-size:12.5px; color:var(--rd-ink); }

.rd-set-btn{
  margin-top:auto; width:100%; font-family:'Archivo',sans-serif; font-weight:700;
  font-size:12.5px; text-transform:uppercase; letter-spacing:.03em;
  border:1.5px solid var(--rd-ink); color:var(--rd-ink); background:#fff;
  border-radius:4px; padding:.75rem; min-height:44px; cursor:pointer;
  transition:background-color .2s ease, color .2s ease, border-color .2s ease;
}
@media(min-width:1000px){ .rd-set-btn{ font-size:13px; padding:.8rem; min-height:48px; } }
.rd-set-btn:hover{ background:var(--rd-ink); color:#fff; }
.rd-set-btn:active{ transform:scale(.985); }
.rd-set-btn.unavailable{
  border-color:var(--rd-line); color:var(--rd-muted); background:var(--rd-surface);
  text-transform:none; font-weight:600; cursor:not-allowed;
}
.rd-set-btn.unavailable:hover{ background:var(--rd-surface); color:var(--rd-muted); }
