/* Checkout only (keeps theme header/footer untouched) */

.vgc-box{max-width:1200px;margin:18px auto;padding:14px}
.vgc-row{display:grid;grid-template-columns:1fr;gap:14px}
.vgc-row-cart{grid-template-columns:1.6fr 0.9fr;gap:14px}
.vgc-row-detail{display:grid;grid-template-columns:1.6fr 0.9fr;gap:14px}
@media(max-width:1024px){
  .vgc-row-detail{grid-template-columns:0.55fr 0.40fr;gap:5%;}
}
@media(max-width:960px){
  .vgc-row-cart{grid-template-columns:1fr}
  .vgc-row-detail{grid-template-columns:1fr}
}

.vgc-card{
  background:#fff;
  border:1px solid #eee;
  border-radius:14px;
  padding:14px;
}

.vgc-muted{color:#4b5563;font-size:16px;line-height:1.7}

.vgc-label{display:block;margin:10px 0 6px;font-weight:700;font-size:16px}

.vgc-input{
  width:100%;
  padding:12px 13px;
  border:1px solid #ddd;
  border-radius:10px;
  min-height:48px;
  font-size:16px;
}

.vgc-consent{
  margin-top:12px;
  padding:10px;
  border:1px solid #e5e7eb;
  border-radius:10px;
  background:#f8fafc;
}
.vgc-consent-text{
  margin:0 0 8px;
  color:#475569;
  font-size:15px;
  line-height:1.65;
}
.vgc-consent-check{
  display:flex;
  align-items:flex-start;
  gap:8px;
  color:#0f172a;
  font-size:15px;
  line-height:1.6;
}
.vgc-consent-check input{
  margin-top:2px;
  width:18px;
  height:18px;
  accent-color:#c65d00;
}
.vgc-consent a{
  color:#1e3a5f;
  text-decoration:underline;
}

.vgc-two{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.vgc-btn{
  width:100%;
  margin-top:12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 16px;
  border-radius:12px;
  border:0;
  background:#c65d00;
  color:#fff;
  font-weight:800;
  cursor:pointer;
  min-height:48px;
  font-size:16px;
}
.vgc-btn-ghost{
  width:auto;
  background:#fff;
  border:1px solid #d4d7de;
  color:#1e3a5f;
  box-shadow:none;
}
.vgc-btn-ghost:hover{background:#f4f6fb}

/* Cart item UI */
.vgc-item{display:flex;gap:10px;margin:10px 0}
.vgc-item img{width:56px;height:56px;object-fit:cover;border-radius:10px;border:1px solid #eee}
.vgc-item-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.vgc-line-total{font-weight:900;color:#0f172a;white-space:nowrap;margin-left:8px;font-size:18px;}
.vgc-qtyrow{display:flex;align-items:center;gap:8px;margin-top:6px}
.vgc-qtybtn{
  padding:8px 12px;border:1px solid #ddd;border-radius:10px;background:#fff;cursor:pointer;font-size:16px
}
.vgc-remove{
  margin-left:auto;padding:8px 12px;border:1px solid #f1c0c0;border-radius:10px;background:#fff;cursor:pointer;color:#b00020;font-size:15px
}
.vgc-qty{min-width:28px;text-align:center;font-weight:800;font-size:17px}
.vgc-save{color:#047857;font-weight:800;font-size:15px;margin:2px 0 4px;}
.vgc-subinfo{color:#4b5563;font-size:14px;margin:2px 0 4px;line-height:1.6}
.vgc-tag{
  display:inline-block;
  padding:4px 8px;
  margin-top:4px;
  background:#ecfdf3;
  color:#166534;
  border:1px solid #bbf7d0;
  border-radius:999px;
  font-size:13px;
  font-weight:800;
}

.vgc-price-summary{margin-top:10px}
.vgc-price-summary .row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:8px 0;
  font-size:15px;
}
.vgc-price-summary .row span:last-child{font-weight:800}
.vgc-price-summary .row .highlight{font-size:17px}

/* Offers box */
.vgc-offers{margin-top:10px;font-size:15px;color:#374151;line-height:1.7}
.vgc-offer-title{font-weight:800;margin-bottom:6px}
.vgc-offer-list{margin:0 0 6px 18px;padding:0;line-height:1.5}
.vgc-offer-list li{margin:2px 0;}

/* QR box */
.vgc-qr-box{
  margin-top:10px;
  padding:10px;
  border:1px dashed #d7dce3;
  border-radius:12px;
  text-align:center;
  background:#f8fbff;
}
.vgc-qr-box img{
  width:160px;
  height:160px;
  object-fit:contain;
  margin:6px auto;
  display:block;
  background:#fff;
  border-radius:12px;
  border:1px solid #e5e7eb;
}
.vgc-proof-btn{margin-top:8px;width:100%;}

/* Recommendations */
.vgc-reco{margin-top:12px}
.vgc-reco-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
@media(max-width:1024px){.vgc-reco-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:640px){.vgc-reco-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
.vgc-reco-card{
  border:1px solid #e5e7eb;
  border-radius:12px;
  padding:10px;
  background:#fff;
  box-shadow:0 6px 16px rgba(15,23,42,.06);
}
.vgc-reco-card img{
  width:100%;
  height:120px;
  object-fit:contain;
  background:#f8fafc;
  border-radius:10px;
}
.vgc-reco-name{font-weight:800;font-size:15px;margin:8px 0 4px;color:#0f172a;line-height:1.5}
.vgc-reco-price{font-weight:900;color:#c65d00;font-size:15px;margin-bottom:4px}
.vgc-reco-mrp{font-size:13.5px;color:#6b7280;text-decoration:line-through;margin-bottom:6px}
.vgc-reco-actions{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
}
.vgc-btn-reco{width:auto;padding:8px 12px;border-radius:10px}
.vgc-reco-open{
  text-decoration:none;
  font-weight:700;
  color:#0f172a;
  padding:6px 10px;
  border-radius:10px;
  border:1px solid #e5e7eb;
  background:#f8fafc;
}
.vgc-reco-open:hover{background:#eef2f7}

/* Status banner (gateway return) */
.vgc-banner{
  margin:0 0 12px 0;
  padding:10px 12px;
  border-radius:10px;
  font-size:16px;
  line-height:1.65;
  display:flex;
  align-items:center;
  gap:8px;
}
.vgc-banner.ok{background:rgba(16,185,129,.12);color:#065f46;border:1px solid rgba(16,185,129,.25);}
.vgc-banner.fail{background:rgba(248,113,113,.12);color:#991b1b;border:1px solid rgba(248,113,113,.25);}
.vgc-banner.pending{background:rgba(251,191,36,.14);color:#92400e;border:1px solid rgba(251,191,36,.28);}

/* Discount highlight row */
.vgc-discount-row{
  background:#ecfdf3;
  border:1px dashed #86efac;
  border-radius:10px;
  padding:6px 10px;
  animation:vgcFlash 2.2s ease-in-out infinite;
}
.vgc-discount-row span:last-child{
  font-weight:900;
  color:#166534;
}
@keyframes vgcFlash{
  0%,100%{box-shadow:0 0 0 rgba(16,185,129,0); transform:translateY(0);}
  50%{box-shadow:0 0 0 6px rgba(16,185,129,0.08); transform:translateY(-1px);}
}

/* ─── Promo / Coupon UI on checkout ──────────────────────────────────────── */
.vgc-promo-box {
  margin: 12px 0 14px;
  border-radius: 10px;
  background: linear-gradient(135deg, #fff7e6 0%, #fff 70%);
  border: 1.5px solid #f4d99c;
  padding: 12px 14px;
  box-shadow: 0 1px 3px rgba(176,127,46,.08);
}
.vgc-promo-input-label {
  display: block;
  font-size: 13.5px;
  font-weight: 700;
  color: #4a3417;
  margin-bottom: 6px;
}
.vgc-promo-input-row {
  display: flex;
  gap: 8px;
  align-items: stretch;
}
.vgc-promo-input {
  flex: 1;
  padding: 10px 12px;
  border: 1.5px solid #d4cab2;
  border-radius: 7px;
  font-size: 14px;
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: #fff;
  color: #1E3A5F;
  outline: none;
  transition: border-color .15s ease;
}
.vgc-promo-input:focus { border-color: #b07f2e; box-shadow: 0 0 0 3px rgba(176,127,46,.18); }
.vgc-promo-apply {
  padding: 10px 18px;
  background: linear-gradient(135deg, #1E3A5F 0%, #122639 100%);
  color: #fff;
  border: none;
  border-radius: 7px;
  font-weight: 700;
  font-size: 13.5px;
  cursor: pointer;
  letter-spacing: 0.02em;
  transition: transform .12s ease, box-shadow .12s ease;
  white-space: nowrap;
}
.vgc-promo-apply:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(30,58,95,.35); }
.vgc-promo-apply[disabled] { opacity: .55; cursor: wait; }
.vgc-promo-msg {
  margin-top: 6px;
  font-size: 12.5px;
  min-height: 16px;
}
.vgc-promo-msg.is-success { color: #15803d; font-weight: 600; }
.vgc-promo-msg.is-error   { color: #c0392b; font-weight: 600; }
.vgc-promo-hint {
  margin-top: 6px;
  font-size: 11px;
  color: #888;
}
.vgc-promo-hint code {
  background: #fff;
  border: 1px dashed #d4cab2;
  padding: 1px 6px;
  border-radius: 4px;
  color: #1E3A5F;
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  letter-spacing: 0.04em;
  cursor: pointer;
}
.vgc-promo-hint code:hover { background: #fff7e6; }

/* Applied state */
.vgc-promo-applied {
  background: linear-gradient(135deg, #e8f7e8 0%, #d4edd4 100%);
  border: 1.5px solid #88c988;
  border-radius: 9px;
  padding: 11px 13px;
  margin: -12px -14px 0;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
.vgc-promo-applied-row {
  display: flex;
  align-items: center;
  gap: 10px;
}
.vgc-promo-tick {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px; height: 28px;
  border-radius: 50%;
  background: #15803d;
  color: #fff;
  font-weight: 800;
  font-size: 15px;
  flex-shrink: 0;
}
.vgc-promo-applied-code {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-weight: 800;
  color: #15803d;
  font-size: 14px;
  letter-spacing: 0.06em;
}
.vgc-promo-applied-label {
  font-size: 11.5px;
  color: #2a6a2a;
  margin-top: 1px;
}
.vgc-promo-applied-save {
  margin-left: auto;
  font-weight: 800;
  color: #15803d;
  font-size: 16px;
}
.vgc-promo-remove {
  background: transparent;
  border: 1px solid #88c988;
  color: #2a6a2a;
  padding: 5px 12px;
  border-radius: 5px;
  font-size: 11.5px;
  font-weight: 600;
  cursor: pointer;
  margin-top: 8px;
}
.vgc-promo-remove:hover { background: #c0392b; border-color: #c0392b; color: #fff; }

/* ═════════════════════════════════════════════════════════════════════════
 * VastuGuruji Checkout v3 — modern, clean, mobile-first
 * Coexists with legacy .vgc-* classes (priceSummary, vgc-promo-*, etc.)
 * ═════════════════════════════════════════════════════════════════════════ */
.vgc-v3 {
  --v3-bg: #f7f8fa;
  --v3-card: #ffffff;
  --v3-text: #1a1a1a;
  --v3-muted: #6b6b6b;
  --v3-border: #e9ecef;
  --v3-blue: #1E3A5F;
  --v3-red: #c0392b;
  --v3-red-dark: #a13020;
  --v3-gold: #b07f2e;
  --v3-green: #15803d;
  --v3-green-soft: #e8f7e8;
  max-width: 1200px;
  margin: 18px auto;
  padding: 0 16px 32px;
  color: var(--v3-text);
  font-family: "Lora", "Noto Sans Devanagari", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.vgc-v3 .vgc-banner {
  border-radius: 10px;
  padding: 11px 14px;
  margin: 0 0 14px;
  font-size: 14px;
  border: 1.5px solid;
}
.vgc-v3 .vgc-banner.ok { background: #e8f7e8; border-color: #88c988; color: #15803d; }
.vgc-v3 .vgc-banner.fail { background: #fdecea; border-color: #f5b5af; color: #c0392b; }
.vgc-v3 .vgc-banner.pending { background: #fff8db; border-color: #f0d57b; color: #856404; }

.vgc-v3 .vgc-v3-crumbs { font-size: 12.5px; color: var(--v3-muted); margin: 0 0 14px; }
.vgc-v3 .vgc-v3-crumbs a { color: var(--v3-muted); text-decoration: none; }
.vgc-v3 .vgc-v3-crumbs a:hover { color: var(--v3-blue); text-decoration: underline; }

.vgc-v3-head { margin: 0 0 18px; text-align: center; }
.vgc-v3-head h1 {
  font-family: "Playfair Display", "DM Serif Display", "Noto Sans Devanagari", serif;
  font-size: clamp(26px, 4vw, 34px);
  margin: 0;
  color: var(--v3-blue);
}
.vgc-v3-tagline {
  display: inline-flex; flex-wrap: wrap; gap: 8px;
  margin-top: 6px;
  font-size: 12.5px; color: var(--v3-muted);
  justify-content: center;
}
.vgc-v3-tagline > span { white-space: nowrap; }

/* Grid */
.vgc-v3-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
  gap: 22px;
  align-items: start;
}
.vgc-v3-main { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.vgc-v3-side { position: sticky; top: 18px; }
@media (max-width: 860px) {
  .vgc-v3-grid { grid-template-columns: 1fr; }
  .vgc-v3-side { position: static; }
}

/* Cards */
.vgc-v3-card {
  background: var(--v3-card);
  border-radius: 14px;
  padding: 18px 20px;
  border: 1px solid var(--v3-border);
  box-shadow: 0 1px 2px rgba(0,0,0,.02), 0 4px 12px rgba(0,0,0,.04);
}
.vgc-v3-stephead {
  display: flex; align-items: center; gap: 10px;
  margin: 0 0 14px;
}
.vgc-v3-stepn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--v3-blue) 0%, #122639 100%);
  color: #fff;
  font-weight: 800;
  font-size: 14px;
  flex-shrink: 0;
}
.vgc-v3-stephead h2 {
  margin: 0;
  font-size: 17px;
  font-weight: 700;
  color: var(--v3-blue);
}

/* Cart items (rendered by checkout.js into #cartBox) */
.vgc-v3 #cartBox .vgc-item {
  display: flex; gap: 12px; padding: 10px 0;
  border-bottom: 1px solid var(--v3-border);
}
.vgc-v3 #cartBox .vgc-item:last-child { border-bottom: 0; }
.vgc-v3 #cartBox .vgc-item img {
  width: 64px; height: 64px; object-fit: cover; border-radius: 8px;
  background: #f4f4f4; flex-shrink: 0;
}
.vgc-v3 #cartBox .vgc-item-head { display: flex; justify-content: space-between; gap: 8px; }
.vgc-v3 #cartBox .vgc-line-total { font-weight: 800; color: var(--v3-blue); }
.vgc-v3 #cartBox .vgc-muted { font-size: 12px; color: var(--v3-muted); margin-top: 2px; }
.vgc-v3 #cartBox .vgc-save { font-size: 12px; color: var(--v3-green); font-weight: 600; margin-top: 2px; }
.vgc-v3 #cartBox .vgc-tag {
  display: inline-block; background: #fff7e6; color: var(--v3-gold);
  font-size: 10px; font-weight: 700; padding: 1px 6px; border-radius: 4px;
  margin-left: 6px; vertical-align: middle;
}
.vgc-v3 #cartBox .vgc-subinfo { font-size: 11.5px; color: var(--v3-muted); margin-top: 3px; }

/* Form fields */
.vgc-v3-google {
  display: flex; align-items: center; gap: 10px;
  background: #fff; border: 1.5px solid #dadce0; color: #3c4043;
  border-radius: 10px;
  padding: 10px 14px;
  text-decoration: none;
  font-weight: 600;
  font-size: 14px;
  margin: 0 0 12px;
  transition: box-shadow .15s ease;
}
.vgc-v3-google:hover { box-shadow: 0 2px 8px rgba(0,0,0,.12); }
.vgc-v3-google small { color: var(--v3-muted); font-weight: 400; }
.vgc-v3-google-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 22px; height: 22px; border-radius: 50%;
  background: linear-gradient(135deg, #4285f4, #ea4335 50%, #fbbc04);
  color: #fff; font-weight: 900; font-size: 13px;
}
.vgc-v3-or {
  text-align: center; margin: 12px 0; font-size: 12px; color: var(--v3-muted);
  position: relative;
}
.vgc-v3-or::before, .vgc-v3-or::after {
  content: ''; position: absolute; top: 50%; width: calc(50% - 60px); height: 1px;
  background: var(--v3-border);
}
.vgc-v3-or::before { left: 0; }
.vgc-v3-or::after { right: 0; }
.vgc-v3-or span { background: var(--v3-card); padding: 0 10px; position: relative; }

.vgc-v3-fieldset {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 12px;
}
.vgc-v3-field-full { grid-column: 1 / -1; }
.vgc-v3-field { display: flex; flex-direction: column; }
.vgc-v3-field label {
  font-size: 12px; font-weight: 600; color: var(--v3-muted);
  margin-bottom: 4px;
}
.vgc-v3-field label small { font-weight: 400; color: #999; }
.vgc-v3-field input {
  border: 1.5px solid var(--v3-border);
  border-radius: 8px;
  padding: 10px 12px;
  font-size: 14.5px;
  background: #fff;
  color: var(--v3-text);
  outline: none;
  transition: border-color .15s ease, box-shadow .15s ease;
  font-family: inherit;
}
.vgc-v3-field input:focus {
  border-color: var(--v3-blue);
  box-shadow: 0 0 0 3px rgba(30,58,95,.12);
}
/* Only show red border once user has interacted AND value is invalid */
.vgc-v3-field input.has-error,
.vgc-v3-field input:user-invalid {
  border-color: #f5b5af;
  background: #fef2f2;
}
@media (max-width: 600px) {
  .vgc-v3-fieldset { grid-template-columns: 1fr 1fr; gap: 10px; }
  .vgc-v3-field input { font-size: 16px; padding: 11px 12px; } /* prevents iOS zoom */
}

.vgc-v3-paymode {
  background: #fafbfc;
  border: 1px dashed #d4d8de;
  border-radius: 8px;
  padding: 10px 12px;
  margin: 12px 0;
}
.vgc-v3-paymode strong { display: block; font-size: 13px; margin-bottom: 6px; color: var(--v3-blue); }
.vgc-v3-paymode label { display: block; font-size: 13.5px; padding: 4px 0; }

.vgc-v3-consent {
  margin: 14px 0 4px;
  padding: 12px;
  background: #fafbfc;
  border-radius: 8px;
  border: 1px solid var(--v3-border);
}
.vgc-v3-check {
  display: flex; align-items: flex-start; gap: 8px;
  font-size: 13px; color: var(--v3-text); cursor: pointer;
}
.vgc-v3-check input { margin-top: 3px; flex-shrink: 0; }
.vgc-v3-check a { color: var(--v3-blue); }

/* Sticky summary */
.vgc-v3-summary {
  background: var(--v3-card);
  border-radius: 14px;
  padding: 18px 20px;
  border: 1px solid var(--v3-border);
  box-shadow: 0 1px 2px rgba(0,0,0,.02), 0 6px 18px rgba(0,0,0,.06);
}
.vgc-v3-summary-h {
  margin: 0 0 12px;
  font-size: 16px;
  font-weight: 700;
  color: var(--v3-blue);
  padding-bottom: 10px;
  border-bottom: 1px solid var(--v3-border);
}

/* Price summary row styling (overrides legacy) */
.vgc-v3-summary .vgc-price-summary { display: block !important; }
.vgc-v3-summary .vgc-price-summary .row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 4px 0;
  font-size: 13.5px;
  color: var(--v3-text);
}
.vgc-v3-summary .vgc-price-summary .row > span:first-child { color: var(--v3-muted); }
.vgc-v3-summary .vgc-price-summary .vgc-discount-row > span:last-child { color: var(--v3-green); font-weight: 700; }
.vgc-v3-summary .vgc-v3-shipping > span:last-child { color: var(--v3-green); font-weight: 800; }
.vgc-v3-summary .vgc-v3-free { font-weight: 800; }
.vgc-v3-summary .vgc-v3-total {
  margin-top: 8px; padding-top: 10px;
  border-top: 1.5px dashed var(--v3-border);
  font-size: 15.5px;
}
.vgc-v3-summary .vgc-v3-total > span:first-child { color: var(--v3-text); font-weight: 700; }
.vgc-v3-summary .vgc-v3-total .highlight { color: var(--v3-red); font-weight: 900; font-size: 22px; }

/* CTA button */
.vgc-v3-paybtn {
  width: 100%;
  margin-top: 14px;
  padding: 14px 16px;
  border: none;
  border-radius: 10px;
  background: linear-gradient(135deg, var(--v3-red) 0%, var(--v3-red-dark) 100%);
  color: #fff;
  font-weight: 800;
  font-size: 15px;
  cursor: pointer;
  box-shadow: 0 6px 16px rgba(192,57,43,.35);
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  font-family: inherit;
  transition: transform .15s ease, box-shadow .15s ease;
}
.vgc-v3-paybtn:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 22px rgba(192,57,43,.5);
}
.vgc-v3-paybtn:active { transform: translateY(0); }
.vgc-v3-paybtn-main { letter-spacing: 0.01em; }
.vgc-v3-paybtn-amt { font-size: 13px; font-weight: 600; opacity: .94; }

.vgc-v3-altpay {
  margin-top: 12px;
  font-size: 13px;
}
.vgc-v3-altpay > summary {
  cursor: pointer;
  color: var(--v3-blue);
  font-weight: 600;
  padding: 6px 0;
  list-style: none;
}
.vgc-v3-altpay > summary::after { content: ' ▾'; font-size: 10px; }
.vgc-v3-altpay[open] > summary::after { content: ' ▴'; }
.vgc-v3-altbtn {
  display: block;
  width: 100%;
  padding: 10px 12px;
  margin-top: 6px;
  background: #fff;
  border: 1.5px solid var(--v3-border);
  border-radius: 8px;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--v3-blue);
  cursor: pointer;
  text-decoration: none;
  text-align: center;
  font-family: inherit;
}
.vgc-v3-altbtn:hover { border-color: var(--v3-blue); }

/* Trust grid */
.vgc-v3-trust-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px;
  margin-top: 14px;
  font-size: 10.5px; color: var(--v3-muted);
  text-align: center; line-height: 1.4;
  font-weight: 600;
}
.vgc-v3-trust-grid > div {
  padding: 8px 2px;
  background: #fafbfc;
  border: 1px solid var(--v3-border);
  border-radius: 6px;
  font-size: 18px;
}
.vgc-v3-trust-grid > div { font-size: 10.5px; }
.vgc-v3-trust-grid > div::first-line { font-size: 18px; }

.vgc-v3-payicons {
  margin-top: 10px;
  display: flex; flex-wrap: wrap; justify-content: center; gap: 6px;
  font-size: 10px; color: var(--v3-muted);
}
.vgc-v3-payicons span {
  padding: 3px 8px;
  background: #fafbfc;
  border: 1px solid var(--v3-border);
  border-radius: 4px;
  font-weight: 600;
}

/* Recommended cards */
.vgc-v3-reco-h { margin: 0 0 12px; font-size: 15.5px; color: var(--v3-blue); }
.vgc-v3-reco-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px;
}
.vgc-v3-reco {
  background: #fafbfc;
  border-radius: 9px;
  padding: 8px;
  text-align: center;
  border: 1px solid var(--v3-border);
  display: flex; flex-direction: column;
}
.vgc-v3-reco img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 6px; background: #eee; }
.vgc-v3-reco-name { font-size: 12px; font-weight: 600; margin: 6px 0 2px; min-height: 30px; line-height: 1.25; }
.vgc-v3-reco-prices { display: flex; align-items: center; justify-content: center; gap: 6px; margin-bottom: 6px; }
.vgc-v3-reco-now { font-weight: 800; color: var(--v3-red); font-size: 13px; }
.vgc-v3-reco-off { font-size: 9.5px; font-weight: 700; color: var(--v3-green); background: var(--v3-green-soft); padding: 1px 5px; border-radius: 3px; }
.vgc-v3-reco-btn {
  margin-top: auto;
  padding: 6px 8px;
  background: var(--v3-blue);
  color: #fff;
  border: none; border-radius: 6px;
  font-size: 11.5px; font-weight: 700;
  cursor: pointer;
  font-family: inherit;
}
.vgc-v3-reco-btn:hover { background: #122639; }
@media (max-width: 600px) {
  .vgc-v3-reco-grid { grid-template-columns: repeat(2, 1fr); }
}

/* Mobile sticky CTA footer */
@media (max-width: 860px) {
  .vgc-v3 { padding-bottom: 84px; }
  .vgc-v3-side .vgc-v3-summary { border-radius: 14px; }
}

/* ═════════════════════════════════════════════════════════════════════════
 * Google Sign-in button — Premium "1-Click" design
 * ═════════════════════════════════════════════════════════════════════════ */
.vgc-v3-google-pro {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 18px;
  background: linear-gradient(135deg, #ffffff 0%, #f8faff 60%, #eef3ff 100%);
  border: 2px solid #4285F4;
  border-radius: 12px;
  text-decoration: none;
  color: #1a1a1a;
  font-family: inherit;
  margin: 4px 0 8px;
  overflow: hidden;
  box-shadow: 0 4px 14px rgba(66, 133, 244, 0.18);
  transition: transform .18s cubic-bezier(.21,1.08,.42,1.04), box-shadow .18s ease;
  cursor: pointer;
}
.vgc-v3-google-pro:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(66, 133, 244, 0.32);
  border-color: #1a73e8;
}
.vgc-v3-google-pro:active { transform: translateY(0); }

/* "1-CLICK" badge */
.vgc-v3-google-badge {
  position: absolute;
  top: -8px;
  right: 14px;
  background: linear-gradient(135deg, #34A853 0%, #1e7e34 100%);
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.06em;
  padding: 3px 9px;
  border-radius: 999px;
  box-shadow: 0 3px 8px rgba(52, 168, 83, 0.45);
  z-index: 2;
}

/* Subtle shine sweep animation */
.vgc-v3-google-shine {
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg,
    transparent 30%,
    rgba(255, 255, 255, 0.6) 50%,
    transparent 70%);
  background-size: 200% 100%;
  background-position: 200% 0;
  pointer-events: none;
  animation: vgcV3Shine 3.6s ease-in-out infinite;
}
@keyframes vgcV3Shine {
  0%   { background-position: 200% 0; }
  60%  { background-position: -150% 0; }
  100% { background-position: -150% 0; }
}

/* Left icon container */
.vgc-v3-google-left {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 2px 6px rgba(0,0,0,.08), inset 0 0 0 1px rgba(0,0,0,.04);
  flex-shrink: 0;
  z-index: 1;
}
.vgc-v3-google-svg { width: 22px; height: 22px; display: block; }

/* Text block */
.vgc-v3-google-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  min-width: 0;
  z-index: 1;
}
.vgc-v3-google-text strong {
  font-size: 15.5px;
  font-weight: 700;
  color: #1a73e8;
  letter-spacing: 0.01em;
}
.vgc-v3-google-text small {
  font-size: 11.5px;
  font-weight: 500;
  color: #5f6368;
  line-height: 1.35;
}

/* Arrow */
.vgc-v3-google-arrow {
  font-size: 22px;
  font-weight: 700;
  color: #4285F4;
  flex-shrink: 0;
  z-index: 1;
  transition: transform .2s ease;
}
.vgc-v3-google-pro:hover .vgc-v3-google-arrow { transform: translateX(4px); }

/* Perks row below */
.vgc-v3-google-perks {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 6px 14px;
  margin: 8px 0 4px;
  font-size: 11.5px;
  color: #34A853;
  font-weight: 600;
}
.vgc-v3-google-perks span { white-space: nowrap; }

/* Mobile tweaks */
@media (max-width: 480px) {
  .vgc-v3-google-pro { padding: 12px 14px; gap: 11px; }
  .vgc-v3-google-left { width: 38px; height: 38px; }
  .vgc-v3-google-text strong { font-size: 14.5px; }
  .vgc-v3-google-text small { font-size: 10.5px; }
  .vgc-v3-google-arrow { font-size: 18px; }
  .vgc-v3-google-badge { font-size: 9px; padding: 2px 7px; top: -7px; }
  .vgc-v3-google-perks { gap: 4px 10px; font-size: 10.5px; }
}

/* Address auto-fill — visual signals */
.vgc-v3-field input.vg-addr-autofilled {
  background: #f0f9ff;
  border-color: #93c5fd;
  animation: vgAddrFlash 1.4s ease-out;
}
@keyframes vgAddrFlash {
  0%   { background: #dbeafe; }
  100% { background: #f0f9ff; }
}
.vgc-v3-field input.vg-addr-loading {
  background-image: linear-gradient(90deg, transparent, #f0f9ff 50%, transparent);
  background-size: 200% 100%;
  animation: vgAddrShimmer 1.2s ease-in-out infinite;
}
@keyframes vgAddrShimmer {
  0%   { background-position: -100% 0; }
  100% { background-position: 200% 0; }
}
.vg-pin-msg {
  font-size: 11.5px;
  margin-top: 4px;
  font-weight: 600;
  min-height: 14px;
}
.vg-pin-msg.is-ok  { color: #15803d; }
.vg-pin-msg.is-err { color: #c0392b; }

/* "Use my current location" button */
.vg-geo-btn {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 12px 16px;
  background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
  border: 1.5px dashed #38bdf8;
  border-radius: 10px;
  cursor: pointer;
  color: #075985;
  font-family: inherit;
  font-weight: 700;
  font-size: 14px;
  text-align: center;
  position: relative;
  overflow: hidden;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease, background .2s ease;
}
.vg-geo-btn:hover {
  transform: translateY(-1px);
  border-style: solid;
  border-color: #0ea5e9;
  box-shadow: 0 4px 14px rgba(14, 165, 233, .25);
  background: linear-gradient(135deg, #e0f2fe 0%, #bae6fd 100%);
}
.vg-geo-btn:active { transform: translateY(0); }
.vg-geo-icon { font-size: 20px; }
.vg-geo-label { letter-spacing: 0.01em; }
.vg-geo-sub {
  font-size: 11px; font-weight: 500; color: #0369a1; opacity: .85;
}
/* Loading state */
.vg-geo-btn.is-loading {
  background: linear-gradient(90deg, #f0f9ff 0%, #dbeafe 50%, #f0f9ff 100%);
  background-size: 200% 100%;
  animation: vgGeoLoad 1.4s ease-in-out infinite;
  pointer-events: none;
}
.vg-geo-btn.is-loading .vg-geo-sub { display: none; }
@keyframes vgGeoLoad {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
/* Success */
.vg-geo-btn.is-ok {
  background: #e8f7e8;
  border-color: #88c988;
  color: #15803d;
}
/* Error */
.vg-geo-btn.is-err {
  background: #fdecea;
  border-color: #f5b5af;
  border-style: solid;
  color: #c0392b;
}
@media (max-width: 480px) {
  .vg-geo-btn { padding: 10px 14px; font-size: 13.5px; }
  .vg-geo-icon { font-size: 18px; }
  .vg-geo-sub { font-size: 10.5px; }
}

/* Geo button — hide sub line when in any feedback state */
.vg-geo-btn.is-loading .vg-geo-sub,
.vg-geo-btn.is-ok .vg-geo-sub,
.vg-geo-btn.is-err .vg-geo-sub { display: none; }

/* ═════════════════════════════════════════════════════════════════════════
 * CRITICAL MOBILE FIXES — prevent horizontal overflow on phones
 * ═════════════════════════════════════════════════════════════════════════ */

/* Global overflow guard — no horizontal scroll EVER on mobile checkout */
@media (max-width: 768px) {
  html, body { overflow-x: hidden; max-width: 100vw; }
}

/* The checkout root must respect viewport */
.vgc-v3 {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  overflow-x: hidden;
}
.vgc-v3 *, .vgc-v3 *::before, .vgc-v3 *::after { box-sizing: border-box; }

/* Force single column on phones — stack everything */
@media (max-width: 768px) {
  .vgc-v3-grid {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }
  .vgc-v3-side { position: static !important; }
  .vgc-v3-card { padding: 14px !important; }
  .vgc-v3-main { gap: 14px !important; }
}

/* Fieldset — single column on phones (was 2-col at 600px which was too tight) */
@media (max-width: 540px) {
  .vgc-v3-fieldset {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }
  .vgc-v3-field { min-width: 0; width: 100%; }
  .vgc-v3-field input {
    width: 100%;
    font-size: 16px !important; /* prevents iOS zoom */
    padding: 12px 12px !important;
  }
}

/* Prevent any input or field from sticking out */
.vgc-v3-field, .vgc-v3-field input { max-width: 100%; }

/* Geolocation + Google buttons must not overflow */
.vgc-v3-google-pro, .vg-geo-btn { max-width: 100%; box-sizing: border-box; }
