:root{
  --gpc-primary:#2F8B2F;
  --gpc-primary-dark:#1D3517;
  --gpc-accent:#94BC58;
  --gpc-surface:#FFFFFF;
  --gpc-soft:#F7F8F6;
  --gpc-border:#DDE6D8;
  --gpc-border-strong:#CBDAC5;
  --gpc-text:#151815;
  --gpc-muted:#667064;
  --gpc-shadow:0 18px 60px rgba(18,38,14,.18);
}

html{scrollbar-gutter:stable;}
body.gpc-cart-open{
  overflow:hidden !important;
  padding-right:var(--gpc-scrollbar-width,0px);
}

.gpc-drawer-root{
  position:fixed;
  inset:0;
  z-index:2147483000;
  pointer-events:none;
  font-family:inherit;
  isolation:isolate;
  contain:layout style;
}
.gpc-overlay{
  position:absolute;
  inset:0;
  background:rgba(9,16,8,.42);
  opacity:0;
  transition:opacity .13s linear;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  will-change:opacity;
}
.gpc-drawer{
  position:absolute;
  top:0;
  right:0;
  height:100%;
  width:min(100vw,460px);
  display:block;
  transform:translate3d(100%,0,0);
  transition:transform .17s cubic-bezier(.22,.72,.22,1);
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  will-change:transform;
}
.gpc-drawer-shell{height:100%;}
.gpc-drawer-content{
  height:100%;
  background:#fff;
  box-shadow:var(--gpc-shadow);
  display:flex;
  flex-direction:column;
  color:var(--gpc-text);
  transform:translateZ(0);
}
.gpc-drawer-root.is-open{pointer-events:auto;}
.gpc-drawer-root.is-open .gpc-overlay{opacity:1;}
.gpc-drawer-root.is-open .gpc-drawer{transform:translate3d(0,0,0);}

.gpc-head{background:#eef5fa;border-bottom:1px solid var(--gpc-border);}
.gpc-progress-wrap{padding:12px 18px 10px;}
.gpc-progress-text{font-size:15px;line-height:1.3;color:var(--gpc-primary-dark);margin-bottom:8px;font-weight:700;}
.gpc-progress{height:3px;background:rgba(47,139,47,.12);border-radius:999px;overflow:hidden;}
.gpc-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--gpc-primary),var(--gpc-accent));border-radius:999px;}
.gpc-progress-note{margin:8px 0 0;color:var(--gpc-muted);font-size:11px;line-height:1.35;}
.gpc-title-row{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;background:#fff;border-top:1px solid rgba(0,0,0,.02);border-bottom:1px solid var(--gpc-border);gap:12px;}
.gpc-close{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:0;background:transparent;color:var(--gpc-primary-dark);font-size:28px;line-height:1;cursor:pointer;padding:0;}
.gpc-title-row h2{margin:0;flex:1;text-align:center;font-size:18px;font-weight:800;color:var(--gpc-primary-dark);}
.gpc-pill{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 6px;border-radius:8px;background:#f3f5f6;font-size:14px;font-weight:700;color:var(--gpc-primary-dark);}

.gpc-notices{padding:0 18px;}
.gpc-notices .woocommerce-message,
.gpc-notices .woocommerce-error,
.gpc-notices .woocommerce-info{margin:12px 0 0;border-radius:10px;font-size:13px;}

.gpc-items-area{flex:1;min-height:0;overflow:auto;padding:18px;background:#fff;}
.gpc-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px;}
.gpc-item{
  display:grid;
  grid-template-columns:86px minmax(0,1fr);
  gap:14px;
  min-height:132px;
  padding:14px;
  border:1px solid var(--gpc-border);
  border-radius:16px;
  background:#fff;
  position:relative;
  transition:opacity .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.gpc-item:hover{border-color:var(--gpc-border-strong);box-shadow:0 8px 22px rgba(29,53,23,.06);}
.gpc-item.is-busy,
.gpc-drawer-root.is-busy .gpc-drawer-content,
.gpc-coupon-inner.is-busy,
.gpc-postcode-row.is-busy{opacity:.65;pointer-events:none;}

.gpc-item-thumb{
  width:86px;
  min-height:102px;
  align-self:stretch;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.gpc-item-thumb a{
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
}
.gpc-item-thumb img{
  display:block;
  width:auto !important;
  height:auto !important;
  max-width:76px !important;
  max-height:98px !important;
  margin:auto !important;
  object-fit:contain;
  object-position:center center;
  border-radius:9px;
  background:#fff;
}
.gpc-item-main{display:flex;flex-direction:column;min-width:0;justify-content:space-between;gap:10px;}
.gpc-item-top{display:flex;align-items:flex-start;gap:8px;min-width:0;}
.gpc-item-copy{flex:1;min-width:0;padding-right:2px;}
.gpc-item-name{margin:0 0 8px;font-size:15px;line-height:1.3;font-weight:800;color:var(--gpc-primary);padding-right:4px;}
.gpc-item-name a{text-decoration:none;color:inherit;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.gpc-item-price{display:flex;flex-direction:column;gap:2px;}
.gpc-item-price span{font-size:10px;line-height:1.2;text-transform:uppercase;letter-spacing:.045em;color:var(--gpc-muted);font-weight:700;}
.gpc-item-price strong{font-size:15px;line-height:1.3;font-weight:800;color:#101410;}
.gpc-remove{width:28px;height:28px;border:0;background:#f3f6f1;color:var(--gpc-primary-dark);border-radius:999px;font-size:20px;line-height:1;cursor:pointer;padding:0;flex:0 0 28px;display:flex;align-items:center;justify-content:center;}
.gpc-remove:hover{background:#e9f1e5;}
.gpc-item-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding-top:10px;border-top:1px solid #edf2ea;}
.gpc-qty{display:grid;grid-template-columns:34px 48px 34px;border:1px solid var(--gpc-border);border-radius:10px;overflow:hidden;height:40px;background:#fff;}
.gpc-qty button,.gpc-qty input{border:0;background:#fff;font-size:20px;text-align:center;padding:0;color:var(--gpc-primary-dark);}
.gpc-qty button{cursor:pointer;font-weight:700;transition:background .15s ease;}
.gpc-qty button:hover{background:#f3f8f1;}
.gpc-qty input{font-size:16px;font-weight:800;-moz-appearance:textfield;appearance:textfield;}
.gpc-qty input::-webkit-outer-spin-button,.gpc-qty input::-webkit-inner-spin-button{appearance:none;margin:0;}
.gpc-line-total{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right;min-width:98px;}
.gpc-line-total span{font-size:10px;line-height:1.2;text-transform:uppercase;letter-spacing:.045em;color:var(--gpc-muted);font-weight:700;}
.gpc-line-total strong{font-size:16px;line-height:1.3;font-weight:900;color:#101410;white-space:nowrap;}

.gpc-summary-area{padding:12px 18px 18px;background:#fbfdf9;border-top:1px solid var(--gpc-border);}
.gpc-coupon-box{margin:0 0 12px;border:1px solid var(--gpc-border);border-radius:12px;background:#fff;overflow:hidden;}
.gpc-coupon-box summary{list-style:none;cursor:pointer;font-size:14px;color:var(--gpc-primary-dark);display:flex;align-items:center;justify-content:space-between;font-weight:800;padding:13px 14px;gap:12px;}
.gpc-coupon-box summary::-webkit-details-marker{display:none;}
.gpc-coupon-chevron{width:9px;height:9px;border-right:2px solid var(--gpc-primary-dark);border-bottom:2px solid var(--gpc-primary-dark);transform:rotate(45deg);transition:transform .16s ease;margin-top:-4px;flex:0 0 9px;}
.gpc-coupon-box[open] .gpc-coupon-chevron{transform:rotate(225deg);margin-top:4px;}
.gpc-coupon-inner{display:flex;gap:10px;padding:0 14px 14px;border-top:1px solid #edf2ea;padding-top:12px;}
.gpc-coupon-input{flex:1;min-width:0;height:42px;border:1px solid var(--gpc-border);border-radius:9px;padding:0 12px;font-size:14px;outline:none;}
.gpc-coupon-input:focus{border-color:var(--gpc-primary);box-shadow:0 0 0 2px rgba(47,139,47,.09);}
.gpc-coupon-btn{height:42px;border:0;border-radius:9px;padding:0 16px;background:var(--gpc-primary);color:#fff;font-weight:800;cursor:pointer;}

.gpc-summary-card{border:1px solid var(--gpc-border);border-radius:14px;background:#fff;overflow:hidden;}
.gpc-summary-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px;font-size:15px;border-bottom:1px solid #edf2ea;}
.gpc-summary-row > span{color:#253024;}
.gpc-summary-row strong{font-size:16px;color:#101410;white-space:nowrap;}
.gpc-summary-row--shipping{background:#fcfefb;}

.gpc-postcode-row{padding:13px 14px;border-bottom:1px solid #edf2ea;background:#fff;}
.gpc-postcode-row label{display:block;margin:0 0 7px;font-size:11px;line-height:1.2;text-transform:uppercase;letter-spacing:.045em;color:var(--gpc-muted);font-weight:800;}
.gpc-postcode-control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;}
.gpc-postcode-input{height:40px;min-width:0;border:1px solid var(--gpc-border);border-radius:9px;padding:0 11px;font-size:14px;font-weight:700;color:var(--gpc-text);outline:none;text-transform:uppercase;}
.gpc-postcode-input:focus{border-color:var(--gpc-primary);box-shadow:0 0 0 2px rgba(47,139,47,.09);}
.gpc-postcode-btn{height:40px;border:1px solid var(--gpc-primary);border-radius:9px;padding:0 14px;background:#fff;color:var(--gpc-primary);font-size:13px;font-weight:800;cursor:pointer;}
.gpc-postcode-btn:hover{background:#f4f9f2;}
.gpc-postcode-feedback{margin:6px 0 0;font-size:11px;line-height:1.35;color:var(--gpc-muted);min-height:0;}
.gpc-postcode-feedback:empty{display:none;}
.gpc-postcode-feedback.is-error{color:#b42318;}
.gpc-postcode-feedback.is-success{color:var(--gpc-primary);}

.gpc-shipping-meta{display:grid;grid-template-columns:1.2fr 1.35fr .55fr;border-bottom:1px solid #edf2ea;background:#fafcf9;}
.gpc-shipping-meta > div{min-width:0;padding:11px 12px;border-right:1px solid #edf2ea;display:flex;flex-direction:column;gap:3px;}
.gpc-shipping-meta > div:last-child{border-right:0;text-align:center;align-items:center;}
.gpc-shipping-meta span{font-size:10px;line-height:1.2;text-transform:uppercase;letter-spacing:.04em;color:var(--gpc-muted);font-weight:800;}
.gpc-shipping-meta strong{font-size:12px;line-height:1.3;color:var(--gpc-primary-dark);font-weight:800;white-space:normal;word-break:break-word;}
.gpc-shipping-note{margin:0;padding:11px 14px;border-bottom:1px solid #edf2ea;color:var(--gpc-muted);font-size:12px;line-height:1.45;background:#fff;}
.gpc-summary-row--total{padding:14px;border-bottom:0;background:#f8fbf6;font-size:17px;}
.gpc-summary-row--total span{font-weight:700;color:var(--gpc-primary-dark);}
.gpc-summary-row--total strong{font-size:20px;color:var(--gpc-primary-dark);font-weight:900;}

.gpc-actions{display:flex;flex-direction:column;gap:10px;margin-top:12px;}
.gpc-primary-btn,.gpc-secondary-btn{display:flex;align-items:center;justify-content:center;min-height:48px;border-radius:10px;font-weight:800;text-decoration:none;padding:0 18px;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;}
.gpc-primary-btn{background:var(--gpc-primary);color:#fff;box-shadow:0 10px 24px rgba(47,139,47,.18);}
.gpc-primary-btn:hover{background:#267626;transform:translateY(-1px);}
.gpc-secondary-btn{background:#fff;color:var(--gpc-primary);border:1px solid var(--gpc-primary);}
.gpc-secondary-btn:hover{background:#f7fbf5;transform:translateY(-1px);}
.gpc-empty{text-align:center;padding:32px 0;display:flex;flex-direction:column;gap:14px;align-items:center;justify-content:center;color:var(--gpc-muted);}

@media (max-width:520px){
  .gpc-drawer{width:100vw;}
  .gpc-progress-wrap,.gpc-title-row,.gpc-items-area,.gpc-summary-area,.gpc-notices{padding-left:13px;padding-right:13px;}
  .gpc-item{grid-template-columns:78px minmax(0,1fr);padding:12px;gap:11px;min-height:126px;}
  .gpc-item-thumb{width:78px;min-height:98px;}
  .gpc-item-thumb img{max-width:70px !important;max-height:92px !important;}
  .gpc-item-name{font-size:14px;}
  .gpc-item-price strong,.gpc-line-total strong{font-size:15px;}
  .gpc-line-total{min-width:92px;}
  .gpc-shipping-meta{grid-template-columns:1.1fr 1.35fr .55fr;}
  .gpc-shipping-meta > div{padding:10px 9px;}
  .gpc-shipping-meta strong{font-size:11px;}
}

@media (prefers-reduced-motion:reduce){
  .gpc-overlay,.gpc-drawer,.gpc-coupon-chevron{transition:none !important;}
}

/* v0.1.3 — más espacio para productos y selector de entrega */
.gpc-items-area{
  flex:1 1 330px;
  min-height:235px;
  padding-top:14px;
  padding-bottom:14px;
}
.gpc-items{gap:12px;}
.gpc-item{
  min-height:126px;
  padding:12px 13px;
}
.gpc-item-thumb{min-height:96px;}
.gpc-item-thumb img{max-height:92px !important;}

.gpc-summary-area{
  flex:0 0 auto;
  padding-top:9px;
  padding-bottom:12px;
}
.gpc-coupon-box{margin-bottom:9px;}
.gpc-coupon-box summary{padding:10px 13px;}
.gpc-coupon-inner{padding:9px 12px 11px;}
.gpc-summary-row{padding:10px 13px;}

.gpc-shipping-choice{
  border-bottom:1px solid #edf2ea;
  background:#fff;
  padding:8px 10px 9px;
}
.gpc-shipping-choice-title{
  margin:0 3px 6px;
  font-size:10px;
  line-height:1.2;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--gpc-muted);
  font-weight:800;
}
.gpc-shipping-option{
  position:relative;
  display:grid;
  grid-template-columns:18px minmax(0,1fr) auto;
  align-items:center;
  gap:9px;
  min-height:46px;
  padding:7px 9px;
  border:1px solid var(--gpc-border);
  border-radius:10px;
  background:#fff;
  cursor:pointer;
  transition:border-color .15s ease,background .15s ease,box-shadow .15s ease;
}
.gpc-shipping-option + .gpc-shipping-option{margin-top:6px;}
.gpc-shipping-option:hover{border-color:#b9ceb1;background:#fbfef9;}
.gpc-shipping-option.is-selected{
  border-color:var(--gpc-primary);
  background:#f7fbf5;
  box-shadow:0 0 0 1px rgba(47,139,47,.08);
}
.gpc-shipping-option.is-disabled{
  opacity:.56;
  cursor:not-allowed;
  background:#f7f8f6;
}
.gpc-shipping-option input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.gpc-shipping-radio{
  width:17px;
  height:17px;
  border:2px solid #aebca9;
  border-radius:50%;
  background:#fff;
  display:block;
  position:relative;
}
.gpc-shipping-option input:checked + .gpc-shipping-radio{border-color:var(--gpc-primary);}
.gpc-shipping-option input:checked + .gpc-shipping-radio::after{
  content:'';
  position:absolute;
  inset:3px;
  border-radius:50%;
  background:var(--gpc-primary);
}
.gpc-shipping-option-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:1px;
}
.gpc-shipping-option-copy strong{
  font-size:13px;
  line-height:1.25;
  color:var(--gpc-primary-dark);
  font-weight:850;
}
.gpc-shipping-option-copy small{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:10.5px;
  line-height:1.25;
  color:var(--gpc-muted);
}
.gpc-shipping-option b{
  font-size:12px;
  line-height:1.2;
  white-space:nowrap;
  color:#101410;
  font-weight:850;
}
.gpc-shipping-option.is-disabled b{font-size:10px;color:var(--gpc-muted);}

.gpc-postcode-row{
  display:grid;
  grid-template-columns:88px minmax(0,1fr);
  gap:9px;
  align-items:center;
  padding:9px 12px;
}
.gpc-postcode-row label{
  margin:0;
  font-size:10px;
}
.gpc-postcode-control{grid-template-columns:minmax(0,1fr) auto;gap:6px;}
.gpc-postcode-input,.gpc-postcode-btn{height:36px;}
.gpc-postcode-btn{padding:0 11px;font-size:11px;}
.gpc-postcode-feedback{grid-column:2;margin:0;font-size:10px;}

.gpc-shipping-meta > div{padding:8px 9px;}
.gpc-shipping-meta span{font-size:9px;}
.gpc-shipping-meta strong{font-size:11px;}
.gpc-shipping-note{padding:8px 12px;font-size:10.5px;line-height:1.35;}
.gpc-summary-row--total{padding:11px 13px;}
.gpc-summary-row--total strong{font-size:18px;}

.gpc-actions{
  display:grid;
  grid-template-columns:.92fr 1.45fr;
  gap:8px;
  margin-top:9px;
}
.gpc-primary-btn,.gpc-secondary-btn{
  min-height:44px;
  padding:0 10px;
  font-size:13px;
  text-align:center;
}

@media (min-height:820px){
  .gpc-items-area{min-height:274px;}
}
@media (min-height:900px){
  .gpc-items-area{min-height:292px;}
}

@media (max-width:520px){
  .gpc-items-area{padding-top:12px;padding-bottom:12px;}
  .gpc-item{min-height:122px;padding:11px 12px;}
  .gpc-item-thumb{min-height:92px;}
  .gpc-item-thumb img{max-height:88px !important;}
  .gpc-summary-area{padding-top:8px;padding-bottom:10px;}
  .gpc-shipping-option{min-height:44px;padding:6px 8px;}
  .gpc-postcode-row{grid-template-columns:76px minmax(0,1fr);padding:8px 10px;}
  .gpc-actions{grid-template-columns:.9fr 1.5fr;}
  .gpc-primary-btn,.gpc-secondary-btn{font-size:12px;}
}

@media (max-height:760px){
  .gpc-items-area{min-height:190px;}
  .gpc-progress-note{display:none;}
  .gpc-progress-wrap{padding-top:8px;padding-bottom:7px;}
  .gpc-title-row{padding-top:11px;padding-bottom:11px;}
}

/* v0.1.4 — altura real del viewport y desplazamiento único accesible */
.gpc-drawer-root{
  top:var(--gpc-viewport-offset,0px);
  right:0;
  bottom:auto;
  left:0;
  height:var(--gpc-viewport-height,100dvh);
  max-height:var(--gpc-viewport-height,100dvh);
}
.gpc-drawer{
  height:100%;
  max-height:100%;
  overflow:hidden;
}
.gpc-drawer-shell,
.gpc-drawer-content{
  height:100%;
  max-height:100%;
  min-height:0;
}
.gpc-drawer-content{
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable;
  scroll-padding-bottom:calc(22px + var(--gpc-bottom-obstruction,0px));
}
.gpc-head{
  position:sticky;
  top:0;
  z-index:20;
  flex:0 0 auto;
}
.gpc-items-area{
  flex:0 0 auto;
  min-height:0 !important;
  overflow:visible;
}
.gpc-summary-area{
  flex:0 0 auto;
  padding-bottom:calc(14px + var(--gpc-bottom-obstruction,0px));
}
.gpc-drawer-content::-webkit-scrollbar{width:9px;}
.gpc-drawer-content::-webkit-scrollbar-track{background:#f2f5f0;}
.gpc-drawer-content::-webkit-scrollbar-thumb{background:#9ba896;border-radius:999px;border:2px solid #f2f5f0;}
.gpc-drawer-content{scrollbar-width:thin;scrollbar-color:#9ba896 #f2f5f0;}

@supports not (height:100dvh){
  .gpc-drawer-root{height:var(--gpc-viewport-height,100vh);max-height:var(--gpc-viewport-height,100vh);}
}

/* v0.2.0 — página completa del carrito */
body.gpc-cart-page{
  background:#f5f8f2 !important;
}
body.gpc-cart-page .site-content,
body.gpc-cart-page #content,
body.gpc-cart-page .content-area,
body.gpc-cart-page .site-main{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
}
.gpc-cart-page-main{
  width:100%;
  min-height:65vh;
  padding:34px 20px 72px;
  background:linear-gradient(180deg,#f5f8f2 0,#fff 62%);
}
.gpc-cart-page-shell{
  width:min(1280px,100%);
  margin:0 auto;
  color:var(--gpc-text);
}
.gpc-page-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(360px,.8fr);
  align-items:center;
  gap:32px;
  padding:26px 30px;
  margin-bottom:26px;
  border:1px solid var(--gpc-border);
  border-radius:20px;
  background:#fff;
  box-shadow:0 14px 36px rgba(29,53,23,.07);
}
.gpc-page-kicker,
.gpc-page-section-head span,
.gpc-page-summary-head span{
  display:block;
  margin-bottom:6px;
  color:var(--gpc-primary);
  font-size:11px;
  line-height:1.2;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.07em;
}
.gpc-page-title-line{
  display:flex;
  align-items:flex-end;
  gap:14px;
  flex-wrap:wrap;
}
.gpc-page-title-line h1{
  margin:0;
  color:var(--gpc-primary-dark);
  font-size:36px;
  line-height:1.05;
  font-weight:900;
}
.gpc-page-title-line > span{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:0 11px;
  border-radius:999px;
  background:#eef5ea;
  color:var(--gpc-primary-dark);
  font-size:13px;
  font-weight:800;
}
.gpc-page-hero-copy > p{
  margin:13px 0 0;
  color:var(--gpc-primary-dark);
  font-size:18px;
  line-height:1.35;
  font-weight:800;
}
.gpc-page-progress-card{
  padding:18px 20px;
  border-radius:14px;
  background:#eef5fa;
  border:1px solid #dce8ee;
}
.gpc-page-progress-card .gpc-progress{height:7px;}
.gpc-page-progress-card small{
  display:block;
  margin-top:10px;
  color:var(--gpc-muted);
  font-size:12px;
  line-height:1.45;
}
.gpc-page-notices .woocommerce-message,
.gpc-page-notices .woocommerce-error,
.gpc-page-notices .woocommerce-info{
  margin:0 0 20px;
  border-radius:12px;
}
.gpc-page-grid{
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(360px,.82fr);
  gap:28px;
  align-items:start;
}
.gpc-page-products,
.gpc-page-summary-card,
.gpc-page-empty{
  border:1px solid var(--gpc-border);
  border-radius:20px;
  background:#fff;
  box-shadow:0 12px 32px rgba(29,53,23,.055);
}
.gpc-page-products{padding:24px;}
.gpc-page-section-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:20px;
  padding-bottom:18px;
  border-bottom:1px solid #e9efe6;
}
.gpc-page-section-head h2,
.gpc-page-summary-head h2{
  margin:0;
  color:var(--gpc-primary-dark);
  font-size:24px;
  line-height:1.15;
  font-weight:900;
}
.gpc-page-section-head > a{
  color:var(--gpc-primary);
  font-size:14px;
  font-weight:800;
  text-decoration:none;
  white-space:nowrap;
}
.gpc-page-section-head > a:hover{text-decoration:underline;}
.gpc-page-items{
  display:flex;
  flex-direction:column;
  gap:14px;
  padding-top:18px;
}
.gpc-page-item{
  display:grid;
  grid-template-columns:126px minmax(0,1fr);
  gap:20px;
  min-height:178px;
  padding:18px;
  border:1px solid var(--gpc-border);
  border-radius:16px;
  background:#fff;
  transition:border-color .17s ease,box-shadow .17s ease,transform .17s ease,opacity .17s ease;
}
.gpc-page-item:hover{
  border-color:#b9ceb1;
  box-shadow:0 12px 28px rgba(29,53,23,.07);
  transform:translateY(-1px);
}
.gpc-page-item.is-busy,
.gpc-page-summary-card.is-busy{
  opacity:.62;
  pointer-events:none;
}
.gpc-page-item-thumb{
  width:126px;
  min-height:140px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  border-radius:12px;
  background:#fbfdf9;
}
.gpc-page-item-thumb a{
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
}
.gpc-page-item-thumb img{
  display:block;
  width:auto !important;
  height:auto !important;
  max-width:108px !important;
  max-height:132px !important;
  margin:auto !important;
  object-fit:contain;
  object-position:center;
}
.gpc-page-item-info{
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:18px;
}
.gpc-page-item-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}
.gpc-page-item-heading h3{
  margin:2px 0 0;
  font-size:19px;
  line-height:1.3;
  font-weight:900;
  color:var(--gpc-primary);
}
.gpc-page-item-heading h3 a{color:inherit;text-decoration:none;}
.gpc-page-item-meta{
  margin-top:8px;
  color:var(--gpc-muted);
  font-size:12px;
  line-height:1.45;
}
.gpc-page-item-meta dl,
.gpc-page-item-meta p{margin:0;}
.gpc-page-item-details{
  display:grid;
  grid-template-columns:minmax(130px,1fr) minmax(150px,1fr) minmax(150px,1fr);
  border-top:1px solid #e9efe6;
}
.gpc-page-item-stat{
  min-width:0;
  padding:14px 16px 0 0;
  display:flex;
  flex-direction:column;
  gap:7px;
}
.gpc-page-item-stat + .gpc-page-item-stat{
  padding-left:18px;
  border-left:1px solid #e9efe6;
}
.gpc-page-item-stat > span{
  color:var(--gpc-muted);
  font-size:10px;
  line-height:1.2;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.gpc-page-item-stat > strong{
  color:#101410;
  font-size:17px;
  line-height:1.3;
  font-weight:900;
}
.gpc-page-item-stat--subtotal{
  align-items:flex-end;
  text-align:right;
  padding-right:0;
}
.gpc-page-item-stat--subtotal > strong{
  color:var(--gpc-primary-dark);
  font-size:19px;
}
.gpc-page-coupon{
  margin-top:18px;
  border:1px solid var(--gpc-border);
  border-radius:14px;
  overflow:hidden;
  background:#fbfdf9;
}
.gpc-page-coupon summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:16px 18px;
}
.gpc-page-coupon summary::-webkit-details-marker{display:none;}
.gpc-page-coupon summary > span:first-child{
  display:flex;
  flex-direction:column;
  gap:3px;
}
.gpc-page-coupon summary strong{
  color:var(--gpc-primary-dark);
  font-size:15px;
  font-weight:850;
}
.gpc-page-coupon summary small{
  color:var(--gpc-muted);
  font-size:12px;
}
.gpc-page-coupon[open] .gpc-coupon-chevron{
  transform:rotate(225deg);
  margin-top:4px;
}
.gpc-page-coupon .gpc-coupon-inner{
  padding:14px 18px 18px;
  background:#fff;
}
.gpc-page-summary{
  position:sticky;
  top:126px;
}
.gpc-page-summary-card{
  overflow:hidden;
}
.gpc-page-summary-head{
  padding:22px 22px 18px;
  border-bottom:1px solid #e9efe6;
}
.gpc-page-totals .gpc-summary-row{
  padding:15px 20px;
}
.gpc-summary-row--discount{
  background:#fbfdf9;
  color:var(--gpc-primary);
}
.gpc-summary-row--discount > span{
  display:flex;
  align-items:center;
  gap:7px;
  color:var(--gpc-primary);
  font-weight:700;
}
.gpc-summary-row--discount button{
  width:20px;
  height:20px;
  border:0;
  border-radius:50%;
  background:#e9f1e5;
  color:var(--gpc-primary-dark);
  font-size:14px;
  line-height:1;
  cursor:pointer;
}
.gpc-summary-row--discount strong{color:var(--gpc-primary);}
.gpc-page-summary-card .gpc-shipping-choice{
  padding:16px 18px 18px;
  background:#fbfdf9;
}
.gpc-page-summary-card .gpc-shipping-choice-title{
  margin-bottom:9px;
}
.gpc-page-summary-card .gpc-shipping-option{
  min-height:58px;
  padding:10px 11px;
}
.gpc-page-summary-card .gpc-shipping-option-copy strong{font-size:14px;}
.gpc-page-summary-card .gpc-shipping-option-copy small{font-size:11px;}
.gpc-page-summary-card .gpc-postcode-row{
  padding:16px 18px;
}
.gpc-page-summary-card .gpc-postcode-row.is-secondary{
  background:#fbfdf9;
}
.gpc-page-summary-card .gpc-shipping-meta > div{
  padding:13px 14px;
}
.gpc-page-summary-card .gpc-shipping-note{
  padding:13px 18px;
}
.gpc-page-total-final{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:20px 22px;
  background:#f3f8f0;
  border-top:1px solid var(--gpc-border);
}
.gpc-page-total-final span{
  color:var(--gpc-primary-dark);
  font-size:18px;
  font-weight:850;
}
.gpc-page-total-final strong{
  color:var(--gpc-primary-dark);
  font-size:25px;
  font-weight:950;
  white-space:nowrap;
}
.gpc-page-checkout{
  margin:18px 20px 10px;
  min-height:54px;
  font-size:16px;
}
.gpc-page-total-note{
  margin:0;
  padding:0 22px 20px;
  text-align:center;
  color:var(--gpc-muted);
  font-size:11px;
  line-height:1.45;
}
.gpc-page-empty{
  padding:60px 24px;
  text-align:center;
}
.gpc-page-empty h2{
  margin:0 0 8px;
  color:var(--gpc-primary-dark);
  font-size:28px;
}
.gpc-page-empty p{
  margin:0 0 20px;
  color:var(--gpc-muted);
}
.gpc-page-empty .gpc-primary-btn{
  width:min(260px,100%);
  margin:0 auto;
}

@media (max-width:1050px){
  .gpc-page-grid{grid-template-columns:minmax(0,1.3fr) minmax(330px,.8fr);gap:20px;}
  .gpc-page-item-details{grid-template-columns:1fr 1fr;}
  .gpc-page-item-stat--subtotal{grid-column:1/-1;align-items:flex-start;text-align:left;border-left:0 !important;padding-left:0 !important;padding-top:13px;margin-top:4px;border-top:1px solid #e9efe6;}
}

@media (max-width:860px){
  .gpc-cart-page-main{padding:24px 14px 56px;}
  .gpc-page-hero{grid-template-columns:1fr;gap:18px;padding:22px;}
  .gpc-page-grid{grid-template-columns:1fr;}
  .gpc-page-summary{position:static;}
}

@media (max-width:620px){
  .gpc-cart-page-main{padding-left:10px;padding-right:10px;}
  .gpc-page-hero{padding:18px;border-radius:16px;}
  .gpc-page-title-line h1{font-size:30px;}
  .gpc-page-hero-copy > p{font-size:15px;}
  .gpc-page-products{padding:14px;border-radius:16px;}
  .gpc-page-section-head{align-items:flex-start;}
  .gpc-page-section-head h2,.gpc-page-summary-head h2{font-size:21px;}
  .gpc-page-item{grid-template-columns:92px minmax(0,1fr);gap:13px;min-height:150px;padding:13px;}
  .gpc-page-item-thumb{width:92px;min-height:118px;}
  .gpc-page-item-thumb img{max-width:82px !important;max-height:110px !important;}
  .gpc-page-item-heading h3{font-size:16px;}
  .gpc-page-item-info{gap:12px;}
  .gpc-page-item-details{grid-template-columns:1fr;}
  .gpc-page-item-stat,.gpc-page-item-stat + .gpc-page-item-stat{
    padding:9px 0 0;
    border-left:0;
    border-top:1px solid #edf2ea;
  }
  .gpc-page-item-stat:first-child{border-top:0;padding-top:0;}
  .gpc-page-item-stat--subtotal{grid-column:auto;margin-top:0;align-items:flex-start;text-align:left;}
  .gpc-page-item-stat--qty .gpc-qty{height:38px;grid-template-columns:32px 46px 32px;}
  .gpc-page-coupon .gpc-coupon-inner{flex-direction:column;}
  .gpc-page-coupon .gpc-coupon-btn{width:100%;}
  .gpc-page-summary-card{border-radius:16px;}
  .gpc-page-total-final{padding:17px 18px;}
  .gpc-page-total-final span{font-size:16px;}
  .gpc-page-total-final strong{font-size:21px;}
}

/* v0.2.1 — pasos, metadatos de producto y ajustes de alineación */
.gpc-checkout-steps{
  margin:0 0 18px;
  padding:14px 22px;
  border:1px solid var(--gpc-border);
  border-radius:16px;
  background:#fff;
  box-shadow:0 10px 28px rgba(29,53,23,.045);
}
.gpc-checkout-steps ol{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  margin:0;
  padding:0;
  list-style:none;
}
.gpc-checkout-steps li{
  position:relative;
  z-index:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  gap:6px;
  text-align:center;
  color:#8a9587;
}
.gpc-checkout-steps li:not(:last-child)::after{
  content:"";
  position:absolute;
  z-index:-1;
  top:16px;
  left:calc(50% + 18px);
  width:calc(100% - 36px);
  height:2px;
  background:#dfe7dc;
}
.gpc-checkout-steps li > span{
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border:2px solid #d4ded0;
  border-radius:50%;
  background:#fff;
  color:#7c8879;
  font-size:13px;
  line-height:1;
  font-weight:900;
}
.gpc-checkout-steps li > strong{
  min-width:0;
  color:inherit;
  font-size:12px;
  line-height:1.25;
  font-weight:800;
}
.gpc-checkout-steps li.is-current{
  color:var(--gpc-primary-dark);
}
.gpc-checkout-steps li.is-current > span{
  border-color:var(--gpc-primary);
  background:var(--gpc-primary);
  color:#fff;
  box-shadow:0 0 0 4px rgba(47,139,47,.09);
}

.gpc-page-section-copy{
  flex:1;
  min-width:0;
}
.gpc-page-section-title-row{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}
.gpc-page-section-title-row h2{
  flex:0 0 auto;
}
.gpc-page-section-title-row i{
  flex:1 1 auto;
  min-width:42px;
  height:2px;
  background:linear-gradient(90deg,var(--gpc-accent),transparent);
}

.gpc-page-product-context{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  margin-top:7px;
  color:var(--gpc-muted);
  font-size:11px;
  line-height:1.35;
  font-weight:700;
}
.gpc-page-product-context span + span::before{
  content:"·";
  display:inline-block;
  margin:0 7px;
  color:var(--gpc-primary);
  font-weight:900;
}

.gpc-page-item-stat > span{
  width:100%;
  text-align:center;
}
.gpc-page-item-stat--qty{
  align-items:center;
  text-align:center;
}
.gpc-page-item-stat--qty .gpc-qty{
  margin-right:auto;
  margin-left:auto;
}
.gpc-qty{
  align-items:stretch;
}
.gpc-qty button{
  display:grid;
  place-items:center;
  height:100%;
  min-height:0;
  line-height:1;
}
.gpc-qty input{
  display:block;
  height:100%;
  min-height:0;
  line-height:1;
}

@media (max-width:620px){
  .gpc-checkout-steps{
    padding:12px 8px;
    border-radius:14px;
  }
  .gpc-checkout-steps li{
    gap:5px;
  }
  .gpc-checkout-steps li > span{
    width:28px;
    height:28px;
    font-size:12px;
  }
  .gpc-checkout-steps li:not(:last-child)::after{
    top:14px;
    left:calc(50% + 16px);
    width:calc(100% - 32px);
  }
  .gpc-checkout-steps li > strong{
    font-size:9.5px;
    line-height:1.15;
  }
  .gpc-page-section-title-row{
    gap:10px;
  }
  .gpc-page-product-context{
    font-size:10px;
  }
  .gpc-page-product-context span + span::before{
    margin:0 5px;
  }
}


/* v0.2.2 — reduce el espacio superior de la página Cart */
body.gpc-cart-page .gpc-cart-page-main{
  padding-top:8px !important;
  margin-top:0 !important;
}

@media (max-width:860px){
  body.gpc-cart-page .gpc-cart-page-main{padding-top:8px !important;}
}

/* v0.2.3 — centrado de importes/selector y divisores internos refinados */
.gpc-page-item-details{
  position:relative;
  align-items:stretch;
  border-top-color:#dfe8da;
}
.gpc-page-item-stat,
.gpc-page-item-stat--subtotal{
  position:relative;
  min-height:74px;
  padding:14px 18px 2px;
  align-items:center;
  justify-content:flex-start;
  text-align:center;
}
.gpc-page-item-stat + .gpc-page-item-stat{
  padding-left:18px;
  border-left:0;
}
.gpc-page-item-stat + .gpc-page-item-stat::before{
  content:"";
  position:absolute;
  top:10px;
  bottom:0;
  left:0;
  width:1px;
  background:linear-gradient(to bottom,transparent 0,#d9e5d4 18%,#d9e5d4 82%,transparent 100%);
}
.gpc-page-item-stat > span,
.gpc-page-item-stat > strong{
  width:100%;
  text-align:center;
}
.gpc-page-item-stat--subtotal > strong{
  text-align:center;
}
.gpc-page-item-stat--qty .gpc-qty{
  margin:0 auto;
}

@media (max-width:1050px){
  .gpc-page-item-stat--subtotal{
    align-items:center;
    text-align:center;
    padding:14px 18px 2px !important;
  }
  .gpc-page-item-stat--subtotal::before{display:none;}
  .gpc-page-item-stat--subtotal{
    border-top:1px solid #dfe8da;
  }
}

@media (max-width:620px){
  .gpc-page-item-stat,
  .gpc-page-item-stat + .gpc-page-item-stat,
  .gpc-page-item-stat--subtotal{
    min-height:0;
    padding:10px 0 2px !important;
    align-items:center;
    text-align:center;
    border-left:0;
    border-top:1px solid #dfe8da;
  }
  .gpc-page-item-stat:first-child{
    padding-top:0 !important;
    border-top:0;
  }
  .gpc-page-item-stat + .gpc-page-item-stat::before{display:none;}
}

/* v0.2.4 — límites de stock y sincronización visual */
.gpc-qty button:disabled,
.gpc-qty button[aria-disabled="true"]{
  cursor:not-allowed;
  opacity:.38;
  background:#f4f6f3;
}
.gpc-qty.is-at-limit{
  border-color:#c7d8c1;
}
.gpc-stock-limit{
  display:block;
  width:100%;
  margin-top:5px;
  color:#667064;
  font-size:10px;
  font-weight:700;
  line-height:1.2;
  text-align:center;
}
.gpc-item-bottom .gpc-stock-limit{
  width:auto;
  max-width:92px;
  margin:0;
  text-align:left;
}
.gpc-cart-toast{
  position:fixed;
  z-index:1000001;
  left:50%;
  bottom:24px;
  max-width:min(420px,calc(100vw - 28px));
  padding:12px 16px;
  border:1px solid #cbdac6;
  border-radius:10px;
  background:#1d3517;
  color:#fff;
  box-shadow:0 12px 30px rgba(14,31,11,.24);
  font-size:13px;
  font-weight:700;
  line-height:1.35;
  text-align:center;
  opacity:0;
  pointer-events:none;
  transform:translate(-50%,12px);
  transition:opacity .16s ease,transform .16s ease;
}
.gpc-cart-toast.is-visible{
  opacity:1;
  transform:translate(-50%,0);
}
@media (max-width:520px){
  .gpc-cart-toast{bottom:14px;}
  .gpc-item-bottom .gpc-stock-limit{display:none;}
}

/* v0.2.5 — auditoría y endurecimiento responsive para teléfonos */
.gpc-drawer-root,.gpc-cart-page{max-width:100%;overflow-x:clip}
.gpc-drawer-root *,.gpc-cart-page *{box-sizing:border-box}
.gpc-drawer-root img,.gpc-cart-page img,.gpc-drawer-root svg,.gpc-cart-page svg{max-width:100%}
.gpc-item>*,.gpc-item-top>*,.gpc-item-bottom>*,.gpc-page-grid>*,.gpc-page-item>*,.gpc-page-summary-card>*{min-width:0}
.gpc-item-name,.gpc-page-item-heading,.gpc-shipping-option-copy,.gpc-summary-row,.gpc-page-totals{overflow-wrap:anywhere}
.gpc-drawer{height:100vh;height:100dvh;max-width:100%;padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);overscroll-behavior:contain}
.gpc-items-area{overscroll-behavior:contain}
@media(max-width:620px){
  .gpc-cart-page-shell{width:calc(100% - 20px)!important;max-width:100%;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
  .gpc-page-grid{grid-template-columns:minmax(0,1fr)!important}
  .gpc-page-summary{position:static!important;top:auto!important}
  .gpc-page-item,.gpc-page-products,.gpc-page-summary-card{max-width:100%}
  .gpc-checkout-steps{max-width:100%;padding-inline:8px}
}
@media(max-width:420px){
  .gpc-drawer{width:100%;max-width:100vw}
  .gpc-progress-wrap,.gpc-title-row,.gpc-items-area,.gpc-summary-area{padding-left:12px;padding-right:12px}
  .gpc-item{grid-template-columns:68px minmax(0,1fr);gap:9px;padding:10px}
  .gpc-item-thumb{width:68px;min-height:88px}
  .gpc-item-thumb img{max-width:62px!important;max-height:82px!important}
  .gpc-item-bottom{align-items:stretch;flex-wrap:wrap}
  .gpc-line-total{flex:1 1 auto;min-width:0}
  .gpc-shipping-meta{grid-template-columns:1fr 1fr}
  .gpc-shipping-meta>div:last-child{grid-column:1/-1;border-top:1px solid #edf2ea}
  .gpc-coupon-inner,.gpc-postcode-control{grid-template-columns:1fr;display:grid}
  .gpc-coupon-btn,.gpc-postcode-btn{width:100%}
  .gpc-page-item{grid-template-columns:64px minmax(0,1fr)!important;gap:10px!important}
  .gpc-page-item-thumb{width:64px!important;height:70px!important}
  .gpc-page-item-stats{grid-template-columns:1fr 1fr!important}
}
@media(max-width:350px){
  .gpc-qty{grid-template-columns:30px 42px 30px}
  .gpc-summary-row{align-items:flex-start;flex-direction:column;gap:4px}
  .gpc-summary-row strong{white-space:normal}
}
@media(hover:none),(pointer:coarse){.gpc-item:hover,.gpc-primary-btn:hover,.gpc-secondary-btn:hover{transform:none;box-shadow:none}}


/* v0.2.6 — contenido del drawer diferido fuera de Cart/Checkout */
.gpc-drawer-loading{min-height:220px;display:grid;place-items:center;padding:32px;color:#52624d;font-weight:700;text-align:center}
