/* =============================================================================
   ROUTES OF PERU - CARRITO PREMIUM V4.1
   Ruta: wp-content/themes/routes-custom/assets/css/cart-checkout.css

   Cambios V4.1:
   - FIX LAYOUT PC: .rop-cart__grid pasa a flex para control preciso de columnas
   - Panel derecho (.rop-cart-summary) con width:340px, min-width:320px, flex-shrink:0
   - Panel izquierdo (.rop-cart__items) con flex:1 y min-width:0 para no aplastar al derecho
   - FIX CENTRADO: .rop-cart-summary__head con text-align:center
   - INFO GRID: siempre 2 columnas base + subtotal full-width (sin lógica de fecha)
   - Eliminadas clases --with-date (ya no se usan)
   - Todo lo demás intacto: diseño, efectos, toast, colores, animaciones, etc.
============================================================================= */

:root{
  --ropc-gold:#C7B16E;
  --ropc-gold-soft:#f7e7b5;
  --ropc-gold-deep:#9c884b;
  --ropc-gold-bright:#D2B539;
  --ropc-ink:#101010;
  --ropc-dark:#0c0c0c;
  --ropc-cream:#f7f3ea;
  --ropc-cream-2:#efe7d6;
  --ropc-text:#23211c;
  --ropc-muted:rgba(35,33,28,.66);
  --ropc-wa:#25D366;
  --ropc-ease:cubic-bezier(.16,1,.3,1);
  --ropc-header-h:78px;
}

@media (max-width:980px){
  :root{ --ropc-header-h:70px; }
}

/* ---------------------------------------------------------------------------
   Toast dorado — admite 2 líneas, sin corte, más ancho
--------------------------------------------------------------------------- */
.rop-cart-toast{
  position:fixed;
  top:calc(var(--ropc-header-h) + 10px);
  left:50%;
  transform:translateX(-50%) translateY(-14px);
  z-index:99998;
  display:inline-flex;
  align-items:flex-start;
  gap:8px;
  padding:11px 20px;
  border-radius:18px;
  background:linear-gradient(135deg, #d4bf74, var(--ropc-gold), var(--ropc-gold-deep));
  color:#1a150a;
  font-size:13.5px;
  font-weight:900;
  box-shadow:
    0 8px 28px rgba(199,177,110,.38),
    0 2px 8px rgba(0,0,0,.16);
  pointer-events:none;
  opacity:0;
  transition:opacity .22s ease, transform .22s var(--ropc-ease);
  white-space:normal;
  max-width:min(480px, calc(100vw - 32px));
  width:max-content;
  text-align:left;
  line-height:1.45;
  word-break:break-word;
}

.rop-cart-toast--visible{
  opacity:1;
  transform:translateX(-50%) translateY(0);
}

.rop-cart-toast__icon{
  font-size:15px;
  line-height:1.45;
  flex-shrink:0;
}

.rop-cart-toast__msg{
  min-width:0;
}

/* ---------------------------------------------------------------------------
   Base página carrito
--------------------------------------------------------------------------- */
body.woocommerce-cart{
  background:
    radial-gradient(900px 380px at 12% 8%, rgba(199,177,110,.12), transparent 62%),
    linear-gradient(180deg, var(--ropc-cream) 0%, var(--ropc-cream-2) 55%, var(--ropc-cream) 100%);
  color:var(--ropc-text);
}

body.woocommerce-cart .entry-title,
body.woocommerce-cart .page-title,
body.woocommerce-cart h1.entry-title,
body.woocommerce-cart .wp-block-post-title,
body.woocommerce-cart .woocommerce-products-header__title{
  display:none!important;
}

body.woocommerce-cart #site-content,
body.woocommerce-cart main#site-content,
body.woocommerce-cart main{
  max-width:none!important;
  width:100%!important;
  padding:0!important;
  margin:0!important;
  min-height:0!important;
}

body.woocommerce-cart #site-content > .container{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
}

body.woocommerce-cart #site-content > .container > h1{
  display:none!important;
}

body.woocommerce-cart #site-content > .container > .page-content,
body.woocommerce-cart .page-content{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
}

body.woocommerce-cart .woocommerce{
  margin:0!important;
  padding:0!important;
}

body.woocommerce-cart .woocommerce-notices-wrapper,
body.woocommerce-cart .wc-empty-cart-message,
body.woocommerce-cart .return-to-shop,
body.woocommerce-cart .cart-empty.woocommerce-info{
  display:none!important;
}

/* ---------------------------------------------------------------------------
   Layout
--------------------------------------------------------------------------- */
.rop-cart-page{
  position:relative;
  width:100%;
  min-height:0;
  overflow-x:hidden;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Inter,Arial,sans-serif;
  color:var(--ropc-text);
}

.rop-cart-page--empty{ min-height:0; }

.rop-cart-page .container{
  width:min(1200px, calc(100% - 36px));
  margin-inline:auto;
}

.rop-cart-page a{
  text-decoration:none;
  color:inherit;
}

/* ---------------------------------------------------------------------------
   Banner
--------------------------------------------------------------------------- */
.rop-cart-banner{
  position:relative;
  margin:0;
  padding:calc(var(--ropc-header-h) + 14px) 0 14px;
  color:#fff;
  background:var(--ropc-dark);
  overflow:hidden;
  isolation:isolate;
}

.rop-cart-banner__bg{
  position:absolute;
  top:var(--ropc-header-h);
  right:0;
  bottom:0;
  left:0;
  z-index:0;
  background:
    linear-gradient(100deg, rgba(8,8,8,.94) 0%, rgba(8,8,8,.78) 55%, rgba(8,8,8,.70) 100%),
    radial-gradient(520px 180px at 14% 30%, rgba(199,177,110,.20), transparent 70%),
    url('../img/tours/tours-hero1.jpg') center/cover no-repeat;
  pointer-events:none;
}

.rop-cart-banner::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:var(--ropc-header-h);
  z-index:0;
  background:#0c0c0c;
  pointer-events:none;
}

.rop-cart-banner__inner{
  position:relative;
  z-index:1;
}

.rop-cart-kicker{
  display:inline-flex;
  align-items:center;
  margin-bottom:6px;
  padding:5px 12px;
  border-radius:999px;
  background:rgba(199,177,110,.14);
  border:1px solid rgba(199,177,110,.32);
  color:var(--ropc-gold-soft);
  font-size:11px;
  font-weight:950;
  letter-spacing:1px;
  text-transform:uppercase;
}

.rop-cart-banner h1{
  margin:0;
  font-size:clamp(26px, 3.2vw, 38px);
  line-height:1.08;
  font-weight:950;
  letter-spacing:-.5px;
  background:linear-gradient(92deg, #fff 0%, var(--ropc-gold-soft) 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

.rop-cart-banner p{
  margin:6px 0 0;
  max-width:620px;
  color:rgba(255,255,255,.82);
  font-size:14px;
  line-height:1.45;
  font-weight:600;
}

/* ---------------------------------------------------------------------------
   Contenido
--------------------------------------------------------------------------- */
.rop-cart-content{
  padding:14px 0 22px;
}

.rop-cart-content--empty{
  padding:12px 0 8px;
}

/* ---------------------------------------------------------------------------
   GRID PRINCIPAL — FIX V4.1
   Cambiado de CSS Grid a Flexbox para control real de anchos.
   - Izquierda: flex:1, min-width:0 → crece libremente sin aplastar al derecho
   - Derecha: width:340px, min-width:320px, flex-shrink:0 → NUNCA se aplasta
--------------------------------------------------------------------------- */
.rop-cart__grid{
  display:flex;
  flex-direction:row;
  align-items:flex-start;
  gap:16px;
}

.rop-cart__items{
  flex:1;
  min-width:0;
  overflow:hidden;
  border-radius:20px;
  border:1px solid rgba(199,177,110,.26);
  background:rgba(255,255,255,.94);
  box-shadow:
    0 14px 36px rgba(16,16,16,.08),
    inset 0 1px 0 rgba(255,255,255,.7);
}

.rop-cart-summary{
  width:340px;
  min-width:320px;
  flex-shrink:0;
  border-radius:20px;
  border:1px solid rgba(199,177,110,.26);
  background:rgba(255,255,255,.94);
  box-shadow:
    0 14px 36px rgba(16,16,16,.08),
    inset 0 1px 0 rgba(255,255,255,.7);
}

.rop-empty-cart{
  border-radius:20px;
  border:1px solid rgba(199,177,110,.26);
  background:rgba(255,255,255,.94);
  box-shadow:
    0 14px 36px rgba(16,16,16,.08),
    inset 0 1px 0 rgba(255,255,255,.7);
}

/* ---------------------------------------------------------------------------
   Cabecera de sección — Tours seleccionados
--------------------------------------------------------------------------- */
.rop-cart-section-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px;
  border-bottom:1px solid rgba(199,177,110,.16);
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,250,235,.82));
}

.rop-cart-section-title span,
.rop-cart-summary__head span{
  display:block;
  margin-bottom:3px;
  color:var(--ropc-gold-deep);
  font-size:11px;
  font-weight:950;
  letter-spacing:.9px;
  text-transform:uppercase;
}

.rop-cart-section-title h2,
.rop-cart-summary__head h2{
  margin:0;
  color:var(--ropc-ink);
  font-size:clamp(18px, 2vw, 24px);
  line-height:1.12;
  font-weight:950;
}

.rop-cart-section-title a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:36px;
  padding:0 13px;
  border-radius:999px;
  background:rgba(199,177,110,.10);
  border:1px solid rgba(199,177,110,.28);
  color:var(--ropc-gold-deep);
  font-size:12.5px;
  font-weight:900;
  white-space:nowrap;
  transition:transform .18s ease, background .18s ease, border-color .18s ease;
}

.rop-cart-section-title a:hover{
  transform:translateY(-1px);
  background:rgba(199,177,110,.16);
  border-color:rgba(199,177,110,.5);
}

/* ---------------------------------------------------------------------------
   Lista de items
--------------------------------------------------------------------------- */
.rop-cart-list{
  display:grid;
  gap:12px;
  padding:12px;
}

/* ---------------------------------------------------------------------------
   Card de tour — V4.1
--------------------------------------------------------------------------- */
.rop-cart-item{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:160px minmax(0, 1fr);
  gap:12px;
  padding:12px;
  border-radius:18px;
  background:#fffaf1;
  border:1px solid rgba(199,177,110,.22);
  box-shadow:0 10px 24px rgba(16,16,16,.05);
  transition:transform .22s var(--ropc-ease), box-shadow .22s ease, border-color .22s ease;
}

.rop-cart-item::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(110deg, transparent 0 35%, rgba(255,255,255,.4) 48%, transparent 58% 100%);
  transform:translateX(-120%);
  opacity:0;
  pointer-events:none;
}

.rop-cart-item:hover{
  transform:translateY(-2px);
  border-color:rgba(199,177,110,.48);
  box-shadow:
    0 16px 36px rgba(16,16,16,.09),
    0 0 16px rgba(199,177,110,.12);
}

.rop-cart-item:hover::after{
  opacity:1;
  animation:ropCartShine 1s var(--ropc-ease) both;
}

@keyframes ropCartShine{
  from{ transform:translateX(-120%); }
  to{ transform:translateX(120%); }
}

/* ---------------------------------------------------------------------------
   Media (imagen)
--------------------------------------------------------------------------- */
.rop-cart-item__media{
  position:relative;
  overflow:hidden;
  min-height:124px;
  border-radius:14px;
  background:#111;
  flex-shrink:0;
}

.rop-cart-item__media a,
.rop-cart-item__media img{
  display:block;
  width:100%;
  height:100%;
}

.rop-cart-item__img{
  object-fit:cover;
  transition:transform .45s var(--ropc-ease), filter .45s ease;
}

.rop-cart-item:hover .rop-cart-item__img{
  transform:scale(1.05);
  filter:saturate(1.06) contrast(1.03);
}

.rop-cart-item__badge{
  position:absolute;
  left:8px;
  top:8px;
  z-index:3;
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:0 9px;
  border-radius:999px;
  background:linear-gradient(135deg, var(--ropc-gold), var(--ropc-gold-deep));
  color:#1a150a;
  font-size:10px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.35px;
  box-shadow:0 4px 10px rgba(0,0,0,.22);
  pointer-events:none;
}

/* ---------------------------------------------------------------------------
   Botón eliminar — MÓVIL (oculto en PC)
--------------------------------------------------------------------------- */
.rop-cart-item__remove--mobile{
  display:none;
}

/* ---------------------------------------------------------------------------
   Botón eliminar — PC
--------------------------------------------------------------------------- */
.rop-cart-item__remove--desktop{
  display:inline-flex;
  align-items:center;
  gap:5px;
  flex-shrink:0;
  min-height:28px;
  padding:0 10px 0 7px;
  border-radius:999px;
  background:rgba(255,255,255,.9);
  border:1px solid rgba(143,17,17,.18);
  color:#8f1111;
  font-size:11px;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 3px 10px rgba(16,16,16,.08);
  transition:background .18s ease, border-color .18s ease, transform .18s ease;
  white-space:nowrap;
}

.rop-cart-item__remove--desktop:hover{
  background:#fff;
  border-color:rgba(143,17,17,.32);
  transform:translateY(-1px);
}

.rop-cart-item__remove-x{
  width:16px;
  height:16px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:rgba(143,17,17,.10);
  font-size:13px;
  line-height:1;
}

.rop-cart-item__remove-text{
  font-size:10.5px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.3px;
}

/* ---------------------------------------------------------------------------
   Cuerpo de la card
--------------------------------------------------------------------------- */
.rop-cart-item__body{
  display:grid;
  gap:9px;
  min-width:0;
}

.rop-cart-item__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}

.rop-cart-item__head-left{
  min-width:0;
  flex:1;
}

.rop-cart-item__head small{
  display:block;
  margin-bottom:3px;
  color:var(--ropc-gold-deep);
  font-size:10.5px;
  font-weight:950;
  letter-spacing:.7px;
  text-transform:uppercase;
}

.rop-cart-item__head h3{
  margin:0;
  color:var(--ropc-ink);
  font-size:clamp(15px, 1.6vw, 19px);
  line-height:1.18;
  font-weight:950;
}

.rop-cart-item__head h3 a:hover{
  color:var(--ropc-gold-deep);
}

/* Detalles del tour (aquí SÍ se muestra la fecha vía WooCommerce item data) */
.rop-cart-item__details{
  padding:9px 11px;
  border-radius:13px;
  background:rgba(255,255,255,.84);
  border:1px solid rgba(16,16,16,.06);
}

.rop-cart-item__details dl,
.rop-cart-item__details .variation{
  margin:0;
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:6px 12px;
}

.rop-cart-item__details dt,
.rop-cart-item__details dd{
  margin:0;
  font-size:12px;
  line-height:1.35;
}

.rop-cart-item__details dt{
  color:rgba(35,33,28,.52);
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.45px;
}

.rop-cart-item__details dd{
  color:rgba(35,33,28,.84);
  font-weight:780;
}

.rop-cart-item__details p{ margin:0; }

.rop-cart-item__details .wc-item-meta{
  margin:0;
  padding:0;
  list-style:none;
}

.rop-cart-item__details .wc-item-meta li{
  display:flex;
  flex-wrap:wrap;
  gap:4px 8px;
  margin:0 0 5px;
  font-size:12px;
}

.rop-cart-item__details .wc-item-meta li:last-child{ margin-bottom:0; }

.rop-cart-item__details .wc-item-meta .wc-item-meta-label{
  color:rgba(35,33,28,.52);
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.4px;
}

/* ---------------------------------------------------------------------------
   INFO GRID V4.1
   Sin lógica de fecha (eliminada).
   Layout: 2 columnas para Adultos | Niños
           2 columnas para Precio Adulto | Precio Niño
           1 columna full-width para Subtotal
--------------------------------------------------------------------------- */
.rop-cart-item__info-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:7px;
}

.rop-cart-item__info-cell{
  display:grid;
  gap:3px;
  padding:8px 10px;
  border-radius:12px;
  background:rgba(255,255,255,.84);
  border:1px solid rgba(199,177,110,.16);
}

.rop-cart-item__info-cell > span{
  color:#5a5343;
  font-size:10.5px;
  font-weight:950;
  letter-spacing:.6px;
  text-transform:uppercase;
}

.rop-cart-item__info-cell > strong{
  color:var(--ropc-ink);
  font-size:14px;
  font-weight:950;
}

.rop-cart-price-value{
  color:#1a150a !important;
  font-size:15.5px !important;
  font-weight:950 !important;
}

/* Subtotal ocupa siempre el ancho completo */
.rop-cart-item__info-cell--subtotal{
  grid-column:1 / -1;
  background:linear-gradient(180deg, #fff8d9, #f7e7a1);
  border-color:rgba(199,177,110,.36);
}

.rop-cart-item__info-cell--subtotal .rop-cart-subtotal-value{
  color:#1a150a !important;
  font-size:17px !important;
  font-weight:950 !important;
}

/* ---------------------------------------------------------------------------
   Controles +/- de pasajeros
--------------------------------------------------------------------------- */
.rop-cart-pax-control{
  display:inline-flex;
  align-items:center;
  gap:0;
  border-radius:10px;
  overflow:hidden;
  border:1px solid rgba(199,177,110,.30);
  background:#fff;
}

.rop-cart-pax-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border:none;
  background:rgba(199,177,110,.10);
  color:var(--ropc-gold-deep);
  font-size:15px;
  font-weight:900;
  cursor:pointer;
  transition:background .14s ease, color .14s ease;
  line-height:1;
  padding:0;
  -webkit-tap-highlight-color:transparent;
  user-select:none;
}

.rop-cart-pax-btn:hover{
  background:rgba(199,177,110,.22);
  color:#7a6a2e;
}

.rop-cart-pax-btn:active{
  background:rgba(199,177,110,.32);
}

.rop-cart-pax-value{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:30px;
  height:28px;
  padding:0 2px;
  color:var(--ropc-ink) !important;
  font-size:14px !important;
  font-weight:950 !important;
  background:#fff;
  text-align:center;
}

.rop-cart-item__info-cell--editable{
  padding:6px 8px;
}

/* ---------------------------------------------------------------------------
   Cupón
--------------------------------------------------------------------------- */
.rop-cart-coupon{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 12px 12px;
  padding:10px;
  border-radius:14px;
  background:rgba(199,177,110,.08);
  border:1px solid rgba(199,177,110,.16);
}

.rop-cart-coupon label{
  font-size:11px;
  font-weight:950;
  text-transform:uppercase;
  color:var(--ropc-gold-deep);
  white-space:nowrap;
}

.rop-cart-coupon input{
  flex:1;
  min-width:0;
  min-height:38px;
  border-radius:999px;
  border:1.5px solid rgba(16,16,16,.12);
  background:#fff;
  padding:8px 12px;
  font:inherit;
  outline:none;
}

.rop-cart-coupon input:focus{
  border-color:rgba(199,177,110,.5);
  box-shadow:0 0 0 3px rgba(199,177,110,.14);
}

.rop-cart-hidden-actions{ display:none!important; }

/* ---------------------------------------------------------------------------
   Botones globales
--------------------------------------------------------------------------- */
.rop-btn,
.rop-cart-checkout,
.rop-cart-whatsapp{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:46px;
  padding:0 18px!important;
  border-radius:999px!important;
  font-weight:950!important;
  text-decoration:none!important;
  border:1px solid transparent!important;
  cursor:pointer;
  transition:
    transform .18s var(--ropc-ease),
    box-shadow .18s ease,
    filter .18s ease,
    background .18s ease,
    border-color .18s ease;
  position:relative;
  overflow:hidden;
}

.rop-btn::after,
.rop-cart-checkout::after,
.rop-cart-whatsapp::after{
  content:"";
  position:absolute;
  inset:-40% -120%;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.22), transparent);
  transform:translateX(-20%) rotate(12deg);
  opacity:0;
  pointer-events:none;
}

.rop-btn:hover::after,
.rop-cart-checkout:hover::after,
.rop-cart-whatsapp:hover::after{
  opacity:1;
  animation:ropBtnShine 1.05s var(--ropc-ease) both;
}

@keyframes ropBtnShine{
  from{ transform:translateX(-40%) rotate(12deg); }
  to{ transform:translateX(40%) rotate(12deg); }
}

.rop-btn--gold{
  background:linear-gradient(135deg, var(--ropc-gold), var(--ropc-gold-deep))!important;
  color:#1a150a!important;
  box-shadow:0 10px 24px rgba(199,177,110,.26)!important;
}

.rop-btn--dark{
  background:#111!important;
  color:#fff!important;
  border-color:rgba(255,255,255,.12)!important;
}

.rop-btn--whatsapp,
.rop-cart-whatsapp{
  background:linear-gradient(135deg, #1ebe57, var(--ropc-wa))!important;
  color:#fff!important;
  box-shadow:0 10px 22px rgba(37,211,102,.2)!important;
}

.rop-btn:hover,
.rop-cart-checkout:hover,
.rop-cart-whatsapp:hover{
  transform:translateY(-2px);
  filter:brightness(1.03);
}

/* ---------------------------------------------------------------------------
   Resumen lateral — FIX V4.1
   - Sticky en desktop
   - Cabecera centrada
--------------------------------------------------------------------------- */
.rop-cart-summary{
  position:sticky;
  top:calc(var(--ropc-header-h) + 12px);
  padding:14px;
  align-self:start;
}

/* FIX CENTRADO: "Resumen de tu reserva" y "Total a pagar" */
.rop-cart-summary__head{
  padding-bottom:10px;
  margin-bottom:10px;
  border-bottom:1px solid rgba(199,177,110,.18);
  text-align:center;
}

.rop-cart-summary__head span{
  justify-content:center;
}

.rop-cart-summary__rows{
  display:grid;
  gap:7px;
}

.rop-cart-summary__row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 11px;
  border-radius:12px;
  background:#fffaf1;
  border:1px solid rgba(199,177,110,.16);
}

.rop-cart-summary__row span{
  color:#4a4336;
  font-weight:850;
  font-size:13px;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  flex:1;
}

.rop-cart-summary__row strong{
  color:#1a150a;
  font-weight:950;
  text-align:right;
  font-size:15.5px;
  flex-shrink:0;
}

.rop-cart-summary__row--tour{
  background:rgba(255,255,255,.7);
  border:1px solid rgba(199,177,110,.12);
}

.rop-cart-summary__row--tour span{
  font-size:12.5px;
  color:#5a5343;
}

.rop-cart-summary__row--tour strong{
  font-size:15px;
  color:#1a150a;
}

/* ---------------------------------------------------------------------------
   TOTAL DE RESERVA — imponente, centrado
--------------------------------------------------------------------------- */
.rop-cart-summary__total{
  margin-top:4px;
  border-radius:18px;
  background:linear-gradient(160deg, #fff9d0 0%, #f5dc5e 40%, #e8c82a 100%);
  border:2px solid rgba(210,181,57,.70);
  box-shadow:
    0 10px 28px rgba(210,181,57,.22),
    0 2px 8px rgba(210,181,57,.14),
    inset 0 1px 0 rgba(255,255,255,.55);
  overflow:hidden;
}

.rop-cart-summary__total-inner{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:18px 14px 16px;
  gap:2px;
}

.rop-cart-summary__total-label{
  display:block;
  color:#5a4a10;
  font-size:11px;
  font-weight:950;
  letter-spacing:1.1px;
  text-transform:uppercase;
}

.rop-cart-summary__total-amount{
  display:block;
  color:#1a150a;
  font-size:34px;
  font-weight:950;
  line-height:1.08;
  letter-spacing:-.5px;
}

.rop-cart-summary__total-note{
  display:block;
  color:#7a6820;
  font-size:11px;
  font-weight:800;
  letter-spacing:.4px;
  margin-top:2px;
}

/* ---------------------------------------------------------------------------
   Acciones del resumen
--------------------------------------------------------------------------- */
.rop-cart-summary__actions{
  display:grid;
  gap:8px;
  margin-top:12px;
}

.rop-cart-checkout{
  width:100%;
  min-height:52px;
  padding:0 18px!important;
  font-size:14.5px!important;
  letter-spacing:.2px;
  background:linear-gradient(135deg, #d4bf74 0%, var(--ropc-gold) 42%, var(--ropc-gold-deep) 100%)!important;
  color:#1a150a!important;
  box-shadow:
    0 12px 28px rgba(199,177,110,.28),
    inset 0 1px 0 rgba(255,255,255,.35)!important;
  border:1px solid rgba(156,136,75,.35)!important;
}

.rop-cart-checkout__label{
  font-weight:950;
}

.rop-cart-checkout__arrow{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border-radius:999px;
  background:rgba(26,21,10,.10);
  flex:0 0 auto;
}

.rop-cart-checkout__arrow svg{
  display:block;
  width:16px;
  height:16px;
}

.rop-cart-checkout:hover{
  box-shadow:
    0 16px 34px rgba(199,177,110,.34),
    inset 0 1px 0 rgba(255,255,255,.4)!important;
}

.rop-cart-whatsapp{
  width:100%;
  min-height:44px;
  font-size:13px!important;
}

/* ---------------------------------------------------------------------------
   Empty cart — icono SVG negro
--------------------------------------------------------------------------- */
.rop-empty-cart{
  max-width:520px;
  margin:0 auto;
  padding:22px 18px 18px;
  text-align:center;
}

.rop-empty-cart__icon{
  width:60px;
  height:60px;
  margin:0 auto 12px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:linear-gradient(135deg, var(--ropc-gold), var(--ropc-gold-deep));
  box-shadow:0 10px 22px rgba(199,177,110,.26);
}

.rop-empty-cart__icon svg{
  display:block;
  width:30px;
  height:30px;
}

.rop-empty-cart h2{
  margin:0;
  color:var(--ropc-ink);
  font-size:clamp(22px, 2.8vw, 28px);
  line-height:1.1;
  font-weight:950;
}

.rop-empty-cart p{
  max-width:400px;
  margin:8px auto 0;
  color:var(--ropc-muted);
  line-height:1.45;
  font-weight:600;
  font-size:14px;
}

.rop-empty-cart__actions{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
}

/* ---------------------------------------------------------------------------
   Footer compacto en empty
--------------------------------------------------------------------------- */
body.woocommerce-cart .site-footer{
  margin-top:0!important;
}

.rop-cart-page--empty{
  margin-bottom:0!important;
  padding-bottom:0!important;
}

body.woocommerce-cart.rop-cart-is-empty .site-footer__cta{
  padding-top:22px!important;
  padding-bottom:22px!important;
  margin-top:0!important;
}

body.woocommerce-cart.rop-cart-is-empty .site-footer{
  margin-top:0!important;
}

body.woocommerce-cart:has(.rop-cart-page--empty) .site-footer__cta{
  padding-top:22px!important;
  padding-bottom:22px!important;
  margin-top:0!important;
}

/* Ocultar update_cart */
.woocommerce-cart-form button[name="update_cart"],
.woocommerce-cart-form input[name="update_cart"]{
  display:none!important;
}

/* ---------------------------------------------------------------------------
   RESPONSIVE — TABLET (≤1100px)
   Columnas apiladas, resumen deja de ser sticky
--------------------------------------------------------------------------- */
@media (max-width:1100px){
  .rop-cart__grid{
    flex-direction:column;
  }

  .rop-cart__items{
    width:100%;
  }

  .rop-cart-summary{
    position:relative;
    top:auto;
    width:100%;
    min-width:0;
  }
}

/* ---------------------------------------------------------------------------
   RESPONSIVE — MÓVIL (≤760px)
--------------------------------------------------------------------------- */
@media (max-width:760px){
  .rop-cart-page .container{
    width:min(1200px, calc(100% - 14px));
  }

  .rop-cart-banner{
    padding:calc(var(--ropc-header-h) + 10px) 0 10px;
  }

  .rop-cart-banner h1{ font-size:24px; }
  .rop-cart-banner p{ font-size:13px; }

  .rop-cart-content{ padding:10px 0 18px; }
  .rop-cart-content--empty{ padding:10px 0 6px; }

  .rop-cart__items,
  .rop-cart-summary,
  .rop-empty-cart{
    border-radius:16px;
  }

  .rop-cart-section-title{
    padding:12px;
    display:block;
  }

  .rop-cart-section-title a{
    width:100%;
    margin-top:8px;
  }

  .rop-cart-list{
    padding:10px;
    gap:10px;
  }

  /* Card en móvil: 1 columna */
  .rop-cart-item{
    grid-template-columns:1fr;
    padding:10px;
    border-radius:15px;
    gap:10px;
  }

  .rop-cart-item__media{
    min-height:180px;
    border-radius:12px;
  }

  /* Eliminar MÓVIL: visible */
  .rop-cart-item__remove--mobile{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    position:absolute;
    top:8px;
    right:8px;
    z-index:5;
    width:28px;
    height:28px;
    border-radius:999px;
    background:rgba(255,255,255,.92);
    border:1.5px solid rgba(143,17,17,.22);
    color:#8f1111;
    font-size:16px;
    font-weight:900;
    line-height:1;
    cursor:pointer;
    box-shadow:0 3px 10px rgba(0,0,0,.18);
    transition:background .16s ease, border-color .16s ease, transform .16s ease;
  }

  .rop-cart-item__remove--mobile:hover,
  .rop-cart-item__remove--mobile:active{
    background:#fff;
    border-color:rgba(143,17,17,.4);
    transform:scale(1.08);
  }

  /* Eliminar PC: oculto en móvil */
  .rop-cart-item__remove--desktop{
    display:none;
  }

  .rop-cart-item__head{
    display:block;
  }

  .rop-cart-item__details dl,
  .rop-cart-item__details .variation{
    grid-template-columns:1fr;
    gap:5px;
  }

  /* Info grid en móvil: 2 columnas — subtotal siempre full */
  .rop-cart-item__info-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .rop-cart-item__info-cell--subtotal{
    grid-column:1 / -1;
  }

  .rop-cart-coupon{
    margin:0 10px 10px;
    display:grid;
    grid-template-columns:1fr;
  }

  .rop-cart-summary{
    padding:12px;
  }

  .rop-cart-summary__total-amount{ font-size:28px; }

  .rop-empty-cart{ padding:18px 14px 14px; }
  .rop-empty-cart__actions{ flex-direction:column; }
  .rop-empty-cart__actions .rop-btn{ width:100%; }

  body.woocommerce-cart.rop-cart-is-empty .site-footer__cta,
  body.woocommerce-cart:has(.rop-cart-page--empty) .site-footer__cta{
    padding-top:18px!important;
    padding-bottom:18px!important;
  }
}

@media (max-width:420px){
  .rop-cart-page .container{ width:calc(100% - 12px); }
  .rop-cart-banner h1{ font-size:22px; }
  .rop-cart-summary__total-amount{ font-size:26px; }
}

/* ---------------------------------------------------------------------------
   Accesibilidad
--------------------------------------------------------------------------- */
@media (prefers-reduced-motion:reduce){
  .rop-cart-item,
  .rop-cart-item__img,
  .rop-btn,
  .rop-cart-checkout,
  .rop-cart-whatsapp,
  .rop-cart-toast{
    transition:none!important;
    animation:none!important;
  }
  .rop-cart-item:hover::after,
  .rop-btn:hover::after,
  .rop-cart-checkout:hover::after,
  .rop-cart-whatsapp:hover::after{
    animation:none!important;
    opacity:0!important;
  }
}
