/* =========================================================
   RTM Shop
========================================================= */

.rtm-rc-shop{
  --rtm-green:#1D553A;
  --rtm-green-2:#355640;
  --rtm-border:#D7DDD5;
  --rtm-border-strong:#CCD8CF;
  --rtm-card:#FFFFFF;
  --rtm-text:#1F1E21;
  --rtm-muted:#5D685F;
  --rtm-red:#8A322D;
  --rtm-focus:rgba(29,85,58,.13);

  max-width:1120px;
  margin:0 auto;
  color:var(--rtm-text);
}

.rtm-rc-shop *{
  box-sizing:border-box;
}

.rtm-shop{
  width:100%;
}

.rtm-shop__grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 320px;
  gap:24px;
  align-items:start;
}

/* =========================================================
   Main blocks
========================================================= */

.rtm-shop__products,
.rtm-shop__side{
  background:var(--rtm-card);
  border:1px solid var(--rtm-border);
  min-width:0;
}

.rtm-shop__products .rtm-b-card,
.rtm-shop__side .rtm-b-card{
  background:transparent;
  border:0;
  box-shadow:none;
  border-radius:0;
  padding:20px;
}

.rtm-shop__products .rtm-b-card h2,
.rtm-shop__side .rtm-b-card h2{
  margin:0 0 18px;
  color:var(--rtm-green);
  font-size:clamp(1.8rem,2.2vw,2.45rem);
  line-height:1.1;
  font-weight:800;
}

/* =========================================================
   Product cards
========================================================= */

.rtm-shop__product-list{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:18px;
}

.rtm-shop__item{
  border:1px solid var(--rtm-border);
  border-radius:12px;
  overflow:hidden;
  background:#fff;
  display:flex;
  flex-direction:column;
  min-width:0;
  transition:border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.rtm-shop__item:hover{
  border-color:var(--rtm-border-strong);
  box-shadow:0 8px 22px rgba(0,0,0,.06);
  transform:translateY(-1px);
}

/* =========================================================
   Product media
========================================================= */

.rtm-rc-shop button.rtm-shop__media,
.rtm-shop__media{
  appearance:none;
  -webkit-appearance:none;
  border:0 !important;
  outline:0;
  box-shadow:none !important;
  background:#F7F8F5 !important;
  background-image:none !important;
  text-shadow:none !important;
  padding:18px;
  aspect-ratio:4 / 3;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:180px;
  max-height:220px;
  cursor:pointer;
  width:100%;
  border-radius:0;
}

.rtm-shop__media:focus-visible{
  outline:none;
  box-shadow:inset 0 0 0 4px var(--rtm-focus) !important;
}

.rtm-shop__media--placeholder{
  cursor:default;
}

.rtm-shop__thumb{
  display:block;
  max-width:100%;
  max-height:100%;
  width:auto;
  height:auto;
  object-fit:contain;
  background:#fff;
  box-shadow:0 0 0 8px #fff;
}

.rtm-shop__thumb-placeholder{
  width:100%;
  height:100%;
  border:1px dashed rgba(0,0,0,.12);
  background:linear-gradient(135deg, rgba(0,0,0,.02), rgba(0,0,0,.045));
  border-radius:6px;
}

/* =========================================================
   Product content
========================================================= */

.rtm-shop__content{
  padding:16px 18px 12px;
}

.rtm-shop__item-title{
  font-weight:800;
  color:var(--rtm-green);
  margin:0 0 7px;
  font-size:1.08rem;
  line-height:1.3;
}

.rtm-shop__item-description{
  font-size:15px;
  line-height:1.45;
  color:var(--rtm-muted);
  margin:0;
}

/* =========================================================
   Quantity stepper
========================================================= */

.rtm-shop__item-actions{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:14px;
  padding:0 18px 18px;
  margin-top:auto;
}

.rtm-shop__item-controls{
  display:inline-grid;
  grid-template-columns:44px 52px 44px;
  align-items:center;
  height:44px;
  border:1px solid var(--rtm-border-strong);
  border-radius:10px;
  overflow:hidden;
  background:#fff;
}

.rtm-shop__qty-btn{
  appearance:none;
  -webkit-appearance:none;
  width:44px;
  height:44px;
  border:0 !important;
  border-radius:0 !important;
  background:var(--rtm-green) !important;
  color:#fff !important;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
  font-weight:800;
  line-height:1;
  cursor:pointer;
  box-shadow:none !important;
  text-shadow:none !important;
  padding:0;
  transition:background-color .15s ease, transform .12s ease;
}

.rtm-shop__qty-btn:hover{
  background:var(--rtm-green-2) !important;
}

.rtm-shop__qty-btn:active{
  transform:scale(.96);
}

.rtm-shop__qty-btn:focus-visible{
  outline:none;
  box-shadow:inset 0 0 0 3px rgba(255,255,255,.35) !important;
}

.rtm-shop__qty-value{
  min-width:52px;
  height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:15px;
  font-weight:800;
  color:var(--rtm-text);
  background:#fff;
  border-left:1px solid var(--rtm-border-strong);
  border-right:1px solid var(--rtm-border-strong);
}

/* Oude preview-knop verbergen */
.rtm-shop__preview-btn{
  display:none !important;
}

/* =========================================================
   Sidebar / summary
========================================================= */

.rtm-shop__side .rtm-b-card{
  position:sticky;
  top:24px;
}

.rtm-shop__summary-items{
  display:grid;
  gap:10px;
  margin:0 0 18px;
}

.rtm-shop__summary-line{
  display:flex;
  justify-content:space-between;
  gap:12px;
  font-size:15px;
  line-height:1.45;
  padding-bottom:10px;
  border-bottom:1px solid rgba(0,0,0,.08);
}

.rtm-shop__summary-line strong{
  color:var(--rtm-green);
  white-space:nowrap;
}

.rtm-shop__empty{
  color:var(--rtm-muted);
  font-size:15px;
  line-height:1.45;
}

.rtm-shop__shipping-title{
  margin:0 0 10px;
  font-weight:800;
  color:var(--rtm-text);
}

.rtm-shop__shipping-options{
  display:grid;
  gap:8px;
  margin:0 0 18px;
}

.rtm-shop__shipping-option{
  border:1px solid var(--rtm-border);
  padding:11px 12px;
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:9px;
  background:#fff;
  font-size:15px;
  line-height:1.35;
  transition:background-color .15s ease, border-color .15s ease, box-shadow .15s ease;
}

.rtm-shop__shipping-option:hover{
  background:#F4F7F4;
  border-color:var(--rtm-border-strong);
}

.rtm-shop__shipping-option:has(input:checked){
  border-color:var(--rtm-green);
  box-shadow:0 0 0 4px var(--rtm-focus);
}

.rtm-shop__shipping-option input{
  accent-color:var(--rtm-green);
  margin:0;
  flex:0 0 auto;
}

.rtm-shop__total{
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid rgba(0,0,0,.08);
  font-weight:800;
  color:var(--rtm-red);
}

.rtm-shop__side .rtm-b-actions{
  margin-top:18px;
}

.rtm-shop__side .rtm-b-btn,
.rtm-shop__side .rtm-b-btn-primary{
  appearance:none;
  min-height:42px;
  padding:11px 18px;
  border:0;
  border-radius:0;
  background:var(--rtm-green);
  color:#fff;
  font-weight:800;
  cursor:pointer;
  transition:background-color .15s ease, transform .15s ease, box-shadow .15s ease;
}

.rtm-shop__side .rtm-b-btn:hover,
.rtm-shop__side .rtm-b-btn-primary:hover{
  background:var(--rtm-green-2);
  transform:translateY(-1px);
}

.rtm-shop__side .rtm-b-btn:focus-visible,
.rtm-shop__side .rtm-b-btn-primary:focus-visible{
  outline:none;
  box-shadow:0 0 0 4px var(--rtm-focus);
}

.rtm-shop__side .rtm-b-error{
  margin:0 0 16px;
  padding:12px 14px;
  border:1px solid rgba(138,50,45,.25);
  border-radius:6px;
  background:rgba(138,50,45,.08);
  color:var(--rtm-red);
}

/* =========================================================
   Lightbox
========================================================= */

.rtm-shop-lightbox{
  position:fixed;
  inset:0;
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
}

.rtm-rc-shop button.rtm-shop-lightbox__backdrop,
.rtm-shop-lightbox__backdrop{
  appearance:none;
  -webkit-appearance:none;
  position:absolute;
  inset:0;
  border:0 !important;
  outline:0;
  background:rgba(0,0,0,.82) !important;
  background-image:none !important;
  box-shadow:none !important;
  text-shadow:none !important;
  cursor:pointer;
  padding:0;
  border-radius:0;
}

.rtm-shop-lightbox__dialog{
  position:relative;
  z-index:1;
  max-width:min(92vw,1100px);
  max-height:90vh;
  padding:12px;
}

.rtm-shop-lightbox__image{
  display:block;
  max-width:100%;
  max-height:calc(90vh - 24px);
  width:auto;
  height:auto;
  background:#fff;
  padding:10px;
  border-radius:8px;
  box-shadow:0 18px 45px rgba(0,0,0,.28);
}

.rtm-rc-shop button.rtm-shop-lightbox__close,
.rtm-shop-lightbox__close{
  appearance:none;
  -webkit-appearance:none;
  position:absolute;
  top:-8px;
  right:-8px;
  width:40px;
  height:40px;
  border:0 !important;
  border-radius:999px;
  background:#fff !important;
  background-image:none !important;
  color:#1F1E21 !important;
  font-size:28px;
  line-height:1;
  cursor:pointer;
  box-shadow:0 8px 20px rgba(0,0,0,.18) !important;
  text-shadow:none !important;
  padding:0;
}

.rtm-shop-lightbox__close:hover{
  background:#f5f5f5 !important;
}

/* =========================================================
   Responsive
========================================================= */

@media (max-width: 900px){
  .rtm-shop__grid{
    grid-template-columns:1fr;
  }

  .rtm-shop__side .rtm-b-card{
    position:static;
    top:auto;
  }
}

@media (max-width: 640px){
  .rtm-shop__products .rtm-b-card,
  .rtm-shop__side .rtm-b-card{
    padding:14px;
  }

  .rtm-shop__product-list{
    grid-template-columns:1fr;
    gap:14px;
  }

  .rtm-shop__content{
    padding:14px 14px 10px;
  }

  .rtm-shop__item-actions{
    padding:0 14px 14px;
  }

  .rtm-shop__media{
    min-height:160px;
    max-height:200px;
  }

  .rtm-shop__side .rtm-b-btn,
  .rtm-shop__side .rtm-b-btn-primary{
    width:100%;
  }
}