/* GGD Widget v1.2.1 */
.ggd-widget-wrap *,.ggd-widget-wrap *::before,.ggd-widget-wrap *::after{box-sizing:border-box;margin:0;padding:0}
.ggd-widget-wrap{font-family:'Heebo',-apple-system,BlinkMacSystemFont,sans-serif;width:100%;max-width:520px;display:flex;flex-direction:column;gap:10px;margin:0 auto}
.ggd-card{background:#1b3260;border-radius:14px;overflow:hidden;border:1px solid rgba(255,255,255,0.09)}
.ggd-card-face{display:flex;align-items:center;gap:14px;padding:20px}
.ggd-face-icon{width:40px;height:40px;border-radius:9px;background:rgba(255,255,255,0.06);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:19px;color:#fff}
.ggd-face-text{flex:1;min-width:0}
.ggd-face-title{font-size:18px!important;font-weight:700!important;color:#fff!important;margin:0 0 2px 0!important;padding:0!important;line-height:1.2!important;letter-spacing:-0.01em!important;text-transform:none!important;max-width:100%!important}
.ggd-face-lead{font-size:12.5px;color:rgba(255,255,255,0.55);line-height:1.45}
.ggd-face-actions{display:flex;gap:7px;flex-shrink:0}

/* ── Buttons: clear visual hierarchy ── */
/* Primary action — solid red, full weight */
.ggd-btn-primary{display:inline-flex;align-items:center;justify-content:center;padding:9px 18px;border-radius:8px;font-size:13px;font-weight:700;font-family:inherit;cursor:pointer;border:none;background:#d42b2b;color:#fff;transition:background .15s;white-space:nowrap;letter-spacing:-0.01em;line-height:1}
.ggd-btn-primary:hover{background:#b82222}
.ggd-btn-primary:focus-visible{outline:2px solid #fff;outline-offset:2px}

/* Secondary action — outlined, lower weight */
.ggd-btn-secondary{display:inline-flex;align-items:center;justify-content:center;padding:8px 14px;border-radius:8px;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;border:1.5px solid rgba(255,255,255,0.25);background:rgba(255,255,255,0.06);color:#fff;transition:all .15s;white-space:nowrap;letter-spacing:-0.01em;line-height:1}
.ggd-btn-secondary:hover{background:rgba(255,255,255,0.12);border-color:rgba(255,255,255,0.4)}
.ggd-btn-secondary:focus-visible{outline:2px solid #fff;outline-offset:2px}

/* Back — ghost, subdued */
.ggd-btn-back{display:inline-flex;align-items:center;gap:4px;padding:7px 10px;border-radius:7px;font-size:12.5px;font-weight:500;font-family:inherit;cursor:pointer;border:1px solid rgba(255,255,255,0.12);background:transparent;color:rgba(255,255,255,0.45);transition:all .15s;letter-spacing:-0.01em;line-height:1}
.ggd-btn-back:hover{color:rgba(255,255,255,0.8);border-color:rgba(255,255,255,0.25);background:rgba(255,255,255,0.04)}
.ggd-btn-back:focus-visible{outline:2px solid #fff;outline-offset:2px}

/* Cancel — text only, clearly non-destructive */
.ggd-cancel-link{display:inline-flex;align-items:center;font-size:11.5px;font-weight:400;color:rgba(255,255,255,0.22);cursor:pointer;background:none;border:none;font-family:inherit;padding:4px 0;transition:color .15s;letter-spacing:0;text-decoration:underline;text-underline-offset:2px;text-decoration-color:rgba(255,255,255,0.12)}
.ggd-cancel-link:hover{color:rgba(255,255,255,0.45);text-decoration-color:rgba(255,255,255,0.3)}
.ggd-cancel-link:focus-visible{outline:2px solid #fff;outline-offset:2px;border-radius:3px}

/* Legacy aliases — keep working for any inline uses */
.ggd-btn{padding:8px 14px;border-radius:8px;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;border:1.5px solid rgba(255,255,255,0.2);background:rgba(255,255,255,0.06);color:#fff;transition:background .15s;white-space:nowrap;letter-spacing:-0.01em;line-height:1}
.ggd-btn:hover{background:rgba(255,255,255,0.11)}
.ggd-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}
.ggd-btn-red{background:#d42b2b;border-color:transparent}
.ggd-btn-red:hover{background:#b82222}
.ggd-btn-ghost{background:transparent;border-color:rgba(255,255,255,0.12);color:rgba(255,255,255,0.45);font-size:12.5px;padding:7px 12px}
.ggd-btn-ghost:hover{color:#fff;background:rgba(255,255,255,0.06)}
.ggd-btn-next{background:#d42b2b;border-color:transparent;padding:9px 20px;font-size:13px;font-weight:700}
.ggd-btn-next:hover{background:#b82222}

.ggd-form-panel{display:none;border-top:1px solid rgba(255,255,255,0.09)}
.ggd-form-panel.open{display:block}
.ggd-form-inner{padding:18px 20px 22px}
.ggd-step{display:none}
.ggd-step.active{display:block}

.ggd-field{margin-bottom:12px}
.ggd-field label{display:block;font-size:12px;font-weight:600;color:rgba(255,255,255,0.55);margin-bottom:6px;letter-spacing:.01em}
.ggd-field input[type=text],.ggd-field input[type=email],.ggd-field input[type=tel],.ggd-field textarea{width:100%;padding:9px 12px;font-size:13.5px;font-family:inherit;border:1.5px solid rgba(255,255,255,0.12);border-radius:8px;background:rgba(255,255,255,0.05);color:#fff;outline:none;transition:border-color .15s;-webkit-appearance:none}
.ggd-field input::placeholder,.ggd-field textarea::placeholder{color:rgba(255,255,255,0.28)}
.ggd-field input:focus,.ggd-field textarea:focus{border-color:rgba(255,255,255,0.32);background:rgba(255,255,255,0.07)}
.ggd-field textarea{resize:none;height:72px;line-height:1.55}
.ggd-row2{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.ggd-opt-label{font-size:11px;color:rgba(255,255,255,0.28);font-weight:400;margin-left:4px}

.ggd-pills{display:flex;flex-wrap:wrap;gap:6px}
.ggd-pills-lg .ggd-pill{padding:10px 18px;font-size:14px;border-radius:9px}
.ggd-pill{padding:6px 13px;border-radius:7px;border:1.5px solid rgba(255,255,255,0.13);font-size:12.5px;font-weight:500;font-family:inherit;cursor:pointer;color:rgba(255,255,255,0.55);background:transparent;transition:all .15s;letter-spacing:-0.01em}
.ggd-pill:hover{background:rgba(255,255,255,0.06);color:#fff;border-color:rgba(255,255,255,0.25)}
.ggd-pill.on{background:#d42b2b;color:#fff;border-color:transparent;font-weight:600}
.ggd-pill:focus-visible{outline:2px solid #fff;outline-offset:2px}

.ggd-reveal{overflow:hidden;max-height:0;opacity:0;transition:max-height .35s ease,opacity .3s ease}
.ggd-reveal.visible{max-height:700px;opacity:1}
.ggd-reveal-divider{border:none;border-top:1px solid rgba(255,255,255,0.09);margin:14px 0}

/* Delivery toggle */
.ggd-addr-toggle{display:flex;gap:0;margin-bottom:9px}
.ggd-addr-tab{flex:1;padding:7px 8px;font-size:12.5px;font-weight:600;font-family:inherit;cursor:pointer;border:1.5px solid rgba(255,255,255,0.12);background:transparent;color:rgba(255,255,255,0.5);transition:all .15s;text-align:center;letter-spacing:-0.01em}
.ggd-addr-tab:first-child{border-radius:8px 0 0 8px}
.ggd-addr-tab:last-child{border-radius:0 8px 8px 0}
.ggd-addr-tab:not(:first-child){border-left:none}
.ggd-addr-tab.on{background:rgba(212,43,43,0.2);color:#fff;border-color:#d42b2b;position:relative;z-index:1}
.ggd-addr-tab:hover:not(.on){background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.75)}
.ggd-addr-tab:focus-visible{outline:2px solid #fff;outline-offset:-3px}

/* Pickup address display */
.ggd-pickup-address{display:none;margin-top:6px;padding:10px 12px;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.09);border-radius:8px}
.ggd-pickup-address.visible{display:block}
.ggd-pickup-address p{font-size:13px;color:rgba(255,255,255,0.7);line-height:1.5}
.ggd-pickup-address strong{color:#fff;display:block;margin-bottom:2px;font-size:13px}
.ggd-pickup-address span{font-size:11.5px;color:rgba(255,255,255,0.4);margin-top:4px;display:block}

.ggd-upload-area{border:1.5px dashed rgba(255,255,255,0.15);border-radius:9px;padding:14px;text-align:center;cursor:pointer;position:relative;transition:background .15s}
.ggd-upload-area:hover{background:rgba(255,255,255,0.04)}
.ggd-upload-area:focus-within{border-color:rgba(255,255,255,0.35)}
.ggd-upload-area input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.ggd-upload-icon{font-size:22px;color:rgba(255,255,255,0.28);display:block;margin-bottom:4px}
.ggd-upload-label{font-size:13px;font-weight:500;color:rgba(255,255,255,0.55)}
.ggd-upload-hint{font-size:11px;color:rgba(255,255,255,0.28);margin-top:3px}
.ggd-upload-preview{font-size:12px;color:#7ab8ff;margin-top:5px;font-weight:600}

.ggd-step-nav{display:flex;justify-content:space-between;align-items:center;margin-top:14px}

.ggd-success{text-align:center;padding:10px 0 6px}
.ggd-success-icon{font-size:30px;display:block;margin-bottom:10px}
.ggd-success-parts .ggd-success-icon{color:#7ab8ff}
.ggd-success-showroom .ggd-success-icon{color:#4fcca0}
.ggd-success h3{font-size:16px!important;font-weight:700!important;color:#fff!important;margin-bottom:6px!important;letter-spacing:-0.02em!important;line-height:1.2!important}
.ggd-success p{font-size:13px;color:rgba(255,255,255,0.55);line-height:1.6}
.ggd-success strong{color:rgba(255,255,255,0.85)}
.ggd-confirm-note{margin-top:10px;padding:9px 12px;background:rgba(255,255,255,0.05);border-radius:8px;border:1px solid rgba(255,255,255,0.09);font-size:12.5px;color:rgba(255,255,255,0.55);display:flex;align-items:center;gap:7px;justify-content:center}
.ggd-confirm-note i{color:#4fcca0;font-size:15px}

/* Fluent Booking embed */
.ggd-fluent-booking-wrap{padding:0 20px 20px}
.ggd-fluent-booking-wrap .fluentbooking-wrap{border-radius:10px;overflow:hidden}

/* Notification badges for staff */
.ggd-staff-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:#4fcca0;background:rgba(79,204,160,0.12);border:1px solid rgba(79,204,160,0.25);border-radius:5px;padding:3px 8px;margin-top:4px}

.ggd-cal-wrap{padding:18px 20px 22px}
.ggd-cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.ggd-cal-month{font-size:14px;font-weight:700;color:#fff;letter-spacing:-0.02em}
.ggd-cal-nav{background:rgba(255,255,255,0.06);border:1.5px solid rgba(255,255,255,0.09);color:rgba(255,255,255,0.5);width:30px;height:30px;border-radius:7px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;font-family:inherit;transition:all .15s}
.ggd-cal-nav:hover{background:rgba(255,255,255,0.11);color:#fff}
.ggd-cal-nav:focus-visible{outline:2px solid #fff;outline-offset:2px}
.ggd-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:18px}
.ggd-cal-dow{font-size:10px;font-weight:700;text-align:center;color:rgba(255,255,255,0.28);text-transform:uppercase;letter-spacing:.06em;padding-bottom:6px}
.ggd-cal-day{aspect-ratio:1;border-radius:8px;border:none;font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}
.ggd-cal-day.empty{background:none;cursor:default}
.ggd-cal-day.unavailable{color:rgba(255,255,255,0.18);background:none;cursor:default}
.ggd-cal-day.available{background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.75)}
.ggd-cal-day.available:hover{background:rgba(212,43,43,0.2);color:#fff}
.ggd-cal-day.selected{background:#d42b2b;color:#fff;font-weight:700}
.ggd-cal-day.today{box-shadow:0 0 0 1.5px rgba(255,255,255,0.3)}
.ggd-cal-day:focus-visible{outline:2px solid #fff;outline-offset:2px}
.ggd-slots-label{font-size:10.5px;font-weight:700;color:rgba(255,255,255,0.28);text-transform:uppercase;letter-spacing:.1em;margin-bottom:9px}
.ggd-slots-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:18px}
.ggd-slot{padding:9px 6px;border-radius:8px;border:1.5px solid rgba(255,255,255,0.11);background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.65);font-size:12.5px;font-weight:500;font-family:inherit;cursor:pointer;text-align:center;transition:all .15s}
.ggd-slot:hover{background:rgba(212,43,43,0.2);color:#fff;border-color:#d42b2b}
.ggd-slot.on{background:#d42b2b;color:#fff;border-color:transparent;font-weight:700}
.ggd-slot.full{color:rgba(255,255,255,0.2);cursor:default;text-decoration:line-through;background:none}
.ggd-slot:focus-visible{outline:2px solid #fff;outline-offset:2px}
.ggd-selected-time-display{font-size:13px;font-weight:500;color:rgba(255,255,255,0.55);margin-bottom:14px;padding:10px 12px;background:rgba(255,255,255,0.06);border-radius:8px;border:1px solid rgba(255,255,255,0.09)}
.ggd-selected-time-display strong{color:#fff;font-weight:700}
.ggd-hint-text{font-size:11.5px;color:rgba(255,255,255,0.28);margin-top:7px;line-height:1.5}
.ggd-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Intent button selected states */
.ggd-btn-primary.ggd-intent-selected,
.ggd-btn-secondary.ggd-intent-selected{background:#d42b2b!important;border-color:transparent!important;color:#fff!important;opacity:1!important}
.ggd-btn-primary.ggd-intent-selected:hover,
.ggd-btn-secondary.ggd-intent-selected:hover{background:rgba(212,43,43,0.75)!important}
.ggd-btn-primary.ggd-intent-unselected,
.ggd-btn-secondary.ggd-intent-unselected{opacity:0.45!important}
.ggd-btn-primary.ggd-intent-unselected:hover,
.ggd-btn-secondary.ggd-intent-unselected:hover{opacity:0.7!important}

/* Eyebrow label */
.ggd-intent-eyebrow{font-size:10px;font-weight:700;color:rgba(255,255,255,0.35);text-transform:uppercase;letter-spacing:0.12em;margin-bottom:12px;min-height:14px}
.ggd-intent-eyebrow:empty{margin-bottom:0}

/* Kill reveal dividers */
.ggd-reveal-divider{display:none!important}

/* ── Force text colours against theme overrides ── */
.ggd-widget-wrap input[type=text],
.ggd-widget-wrap input[type=email],
.ggd-widget-wrap input[type=tel],
.ggd-widget-wrap textarea{color:#fff!important;-webkit-text-fill-color:#fff!important;opacity:1!important}
.ggd-widget-wrap input[type=text]::placeholder,
.ggd-widget-wrap input[type=email]::placeholder,
.ggd-widget-wrap input[type=tel]::placeholder,
.ggd-widget-wrap textarea::placeholder{color:rgba(255,255,255,0.32)!important;-webkit-text-fill-color:rgba(255,255,255,0.32)!important;opacity:1!important}
.ggd-widget-wrap label{color:rgba(255,255,255,0.65)!important}
.ggd-widget-wrap legend{color:rgba(255,255,255,0.65)!important}
.ggd-widget-wrap fieldset legend span{color:#fff!important}
.ggd-widget-wrap .ggd-field label{color:rgba(255,255,255,0.65)!important}
.ggd-widget-wrap .ggd-opt-label{color:rgba(255,255,255,0.35)!important}
.ggd-widget-wrap p{color:rgba(255,255,255,0.55)!important}
.ggd-widget-wrap strong{color:#fff!important}
.ggd-widget-wrap .ggd-face-lead{color:rgba(255,255,255,0.55)!important}
.ggd-widget-wrap .ggd-hint-text{color:rgba(255,255,255,0.32)!important}
.ggd-widget-wrap .ggd-upload-label{color:rgba(255,255,255,0.65)!important}
.ggd-widget-wrap .ggd-upload-hint{color:rgba(255,255,255,0.35)!important}
.ggd-widget-wrap .ggd-slots-label{color:rgba(255,255,255,0.35)!important}
.ggd-widget-wrap .ggd-step-label{color:rgba(255,255,255,0.35)!important}
.ggd-widget-wrap .ggd-intent-eyebrow{color:rgba(255,255,255,0.45)!important}
.ggd-widget-wrap .ggd-success h3{color:#fff!important}
.ggd-widget-wrap .ggd-success p{color:rgba(255,255,255,0.6)!important}
/* Autofill override */
.ggd-widget-wrap input:-webkit-autofill,
.ggd-widget-wrap input:-webkit-autofill:hover,
.ggd-widget-wrap input:-webkit-autofill:focus{-webkit-text-fill-color:#fff!important;-webkit-box-shadow:0 0 0 1000px #1e3a6e inset!important;transition:background-color 5000s ease-in-out 0s}

/* ── Force button styles against theme ── */
.ggd-widget-wrap .ggd-btn-primary{background:#d42b2b!important;border-color:transparent!important;color:#fff!important}
.ggd-widget-wrap .ggd-btn-primary:hover{background:#b82222!important}
.ggd-widget-wrap .ggd-btn-secondary{background:transparent!important;border:1.5px solid rgba(255,255,255,0.3)!important;color:#fff!important}
.ggd-widget-wrap .ggd-btn-secondary:hover{background:rgba(255,255,255,0.08)!important;border-color:rgba(255,255,255,0.5)!important}
.ggd-widget-wrap .ggd-btn-back{background:transparent!important;border:1px solid rgba(255,255,255,0.15)!important;color:rgba(255,255,255,0.5)!important}
.ggd-widget-wrap .ggd-btn-back:hover{background:rgba(255,255,255,0.05)!important;color:rgba(255,255,255,0.8)!important}
.ggd-widget-wrap .ggd-btn-primary.ggd-intent-selected{background:#d42b2b!important;border-color:transparent!important;color:#fff!important;opacity:1!important}
.ggd-widget-wrap .ggd-btn-secondary.ggd-intent-selected{background:#d42b2b!important;border-color:transparent!important;color:#fff!important;opacity:1!important}
.ggd-widget-wrap .ggd-btn-primary.ggd-intent-unselected{opacity:0.4!important}
.ggd-widget-wrap .ggd-btn-secondary.ggd-intent-unselected{opacity:0.4!important}
.ggd-widget-wrap .ggd-btn-primary.ggd-intent-unselected:hover,
.ggd-widget-wrap .ggd-btn-secondary.ggd-intent-unselected:hover{opacity:0.7!important}
.ggd-widget-wrap .ggd-cancel-link{background:none!important;border:none!important;color:rgba(255,255,255,0.3)!important;text-decoration:underline!important;font-size:11.5px!important;padding:4px 0!important}
.ggd-widget-wrap .ggd-cancel-link:hover{color:rgba(255,255,255,0.55)!important}
/* Also nuke any generic a, button resets the theme applies */
.ggd-widget-wrap button{border-radius:8px!important;font-family:'Heebo',-apple-system,sans-serif!important;line-height:1!important}
.ggd-widget-wrap .ggd-pill{background:transparent!important;border:1.5px solid rgba(255,255,255,0.18)!important;color:rgba(255,255,255,0.6)!important}
.ggd-widget-wrap .ggd-pill:hover{background:rgba(255,255,255,0.07)!important;color:#fff!important}
.ggd-widget-wrap .ggd-pill.on{background:#d42b2b!important;border-color:transparent!important;color:#fff!important}

/* ── Cancel: white outline ghost ── */
.ggd-widget-wrap .ggd-cancel-link,
.ggd-widget-wrap button.ggd-cancel-link{
  display:inline-flex!important;align-items:center!important;
  padding:7px 14px!important;
  border-radius:8px!important;
  border:1.5px solid rgba(255,255,255,0.3)!important;
  background:transparent!important;
  color:rgba(255,255,255,0.65)!important;
  font-size:12.5px!important;font-weight:500!important;
  text-decoration:none!important;
  cursor:pointer!important;
  transition:border-color .15s,color .15s!important;
}
.ggd-widget-wrap .ggd-cancel-link:hover,
.ggd-widget-wrap button.ggd-cancel-link:hover{
  border-color:rgba(255,255,255,0.6)!important;
  color:#fff!important;
  background:transparent!important;
}

/* ── v1.1.6: Button overhaul ── */

/* Both intent buttons: identical red at rest */
.ggd-widget-wrap #ggd-btn-part,
.ggd-widget-wrap #ggd-btn-repair{
  background:#d42b2b!important;
  border:none!important;
  color:#fff!important;
  font-weight:700!important;
  opacity:1!important;
  padding:9px 16px!important;
  border-radius:8px!important;
  font-size:13px!important;
  cursor:pointer!important;
}
.ggd-widget-wrap #ggd-btn-part:hover,
.ggd-widget-wrap #ggd-btn-repair:hover{
  background:rgba(212,43,43,0.75)!important;
}

/* Selected: full red, full opacity */
.ggd-widget-wrap #ggd-btn-part.ggd-intent-selected,
.ggd-widget-wrap #ggd-btn-repair.ggd-intent-selected{
  background:#d42b2b!important;
  opacity:1!important;
  border:none!important;
}

/* Unselected: white outline */
.ggd-widget-wrap #ggd-btn-part.ggd-intent-unselected,
.ggd-widget-wrap #ggd-btn-repair.ggd-intent-unselected{
  background:transparent!important;
  border:1.5px solid rgba(255,255,255,0.4)!important;
  color:rgba(255,255,255,0.6)!important;
  opacity:1!important;
}
.ggd-widget-wrap #ggd-btn-part.ggd-intent-unselected:hover,
.ggd-widget-wrap #ggd-btn-repair.ggd-intent-unselected:hover{
  border-color:rgba(255,255,255,0.7)!important;
  color:#fff!important;
  background:rgba(255,255,255,0.05)!important;
}

/* Brand/model row: equal height alignment */
.ggd-widget-wrap .ggd-row2{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:9px!important;
  align-items:start!important;
}
.ggd-widget-wrap .ggd-row2 .ggd-field,
.ggd-widget-wrap .ggd-row2 fieldset.ggd-field{
  margin-bottom:0!important;
}
.ggd-widget-wrap .ggd-row2 fieldset legend,
.ggd-widget-wrap .ggd-row2 .ggd-field label{
  display:block!important;
  font-size:12px!important;
  font-weight:600!important;
  color:rgba(255,255,255,0.65)!important;
  margin-bottom:6px!important;
  min-height:18px!important;
}

/* Next / primary action buttons — clear distinction from pills */
.ggd-widget-wrap .ggd-step-nav .ggd-btn-primary,
.ggd-widget-wrap .ggd-step-nav button.ggd-btn-primary{
  background:#d42b2b!important;
  color:#fff!important;
  border:none!important;
  font-weight:700!important;
  font-size:13px!important;
  padding:9px 20px!important;
  border-radius:8px!important;
  min-width:90px!important;
}
.ggd-widget-wrap .ggd-step-nav .ggd-btn-primary:hover{background:#b82222!important}

/* Back button in step nav */
.ggd-widget-wrap .ggd-step-nav .ggd-btn-back{
  background:transparent!important;
  border:1.5px solid rgba(255,255,255,0.2)!important;
  color:rgba(255,255,255,0.5)!important;
  font-size:12.5px!important;
  padding:7px 12px!important;
  border-radius:8px!important;
}
.ggd-widget-wrap .ggd-step-nav .ggd-btn-back:hover{
  border-color:rgba(255,255,255,0.4)!important;
  color:#fff!important;
}

/* Showroom book button */
.ggd-widget-wrap #ggd-btn-showroom{
  background:#d42b2b!important;
  border:none!important;
  color:#fff!important;
  font-weight:700!important;
}
.ggd-widget-wrap #ggd-btn-showroom:hover{background:rgba(212,43,43,0.75)!important}


/* ════════════════════════════════════════════════════════════
   v1.2.0 — Earn the red: one unified state language, AA contrast,
   single-primary face, progressive photo, step progress, focus card.
   Appended last so it wins the cascade over theme bleed-through.
   ──────────────────────────────────────────────────────────── */

/* ── 1. Kill theme bleed-through on raw <button> controls ──
   These rules were previously unarmored, so Elementor/ShopEngine
   painted them its default blue. Armor → navy / red / outline. */

/* Delivery + pickup: clean segmented toggle, one clear active state */
.ggd-widget-wrap .ggd-addr-tab{background:rgba(255,255,255,0.05)!important;border:1.5px solid rgba(255,255,255,0.16)!important;color:rgba(255,255,255,0.62)!important;font-weight:600!important}
.ggd-widget-wrap .ggd-addr-tab:first-child{border-radius:8px 0 0 8px!important}
.ggd-widget-wrap .ggd-addr-tab:last-child{border-radius:0 8px 8px 0!important}
.ggd-widget-wrap .ggd-addr-tab:not(:first-child){border-left:none!important}
.ggd-widget-wrap .ggd-addr-tab:hover:not(.on){background:rgba(255,255,255,0.09)!important;color:#fff!important}
.ggd-widget-wrap .ggd-addr-tab.on{background:#d42b2b!important;border-color:#d42b2b!important;color:#fff!important;font-weight:700!important}

/* Time slots: outline at rest (reads "pick one"), red when chosen */
.ggd-widget-wrap .ggd-slot{background:rgba(255,255,255,0.05)!important;border:1.5px solid rgba(255,255,255,0.14)!important;color:rgba(255,255,255,0.72)!important;font-weight:500!important}
.ggd-widget-wrap .ggd-slot:hover:not(.full):not(.on){background:rgba(212,43,43,0.18)!important;border-color:#d42b2b!important;color:#fff!important}
.ggd-widget-wrap .ggd-slot.on{background:#d42b2b!important;border-color:#d42b2b!important;color:#fff!important;font-weight:700!important}
.ggd-widget-wrap .ggd-slot.full{background:transparent!important;border-color:rgba(255,255,255,0.08)!important;color:rgba(255,255,255,0.25)!important;text-decoration:line-through!important;cursor:default!important}

/* Calendar nav arrows */
.ggd-widget-wrap .ggd-cal-nav{background:rgba(255,255,255,0.06)!important;border:1.5px solid rgba(255,255,255,0.14)!important;color:rgba(255,255,255,0.7)!important}
.ggd-widget-wrap .ggd-cal-nav:hover{background:rgba(255,255,255,0.12)!important;color:#fff!important}

/* Calendar days: bulletproof navy / red */
.ggd-widget-wrap .ggd-cal-day.available{background:rgba(255,255,255,0.06)!important;color:rgba(255,255,255,0.78)!important}
.ggd-widget-wrap .ggd-cal-day.available:hover{background:rgba(212,43,43,0.18)!important;color:#fff!important}
.ggd-widget-wrap .ggd-cal-day.selected{background:#d42b2b!important;color:#fff!important;font-weight:700!important}
.ggd-widget-wrap .ggd-cal-day.unavailable{background:transparent!important;color:rgba(255,255,255,0.2)!important}
.ggd-widget-wrap .ggd-cal-day.empty{background:transparent!important}

/* ── 2. Contrast → WCAG AA on the navy card (#1b3260) ── */
.ggd-widget-wrap input::placeholder,
.ggd-widget-wrap textarea::placeholder{color:rgba(255,255,255,0.55)!important;-webkit-text-fill-color:rgba(255,255,255,0.55)!important}
.ggd-widget-wrap .ggd-field label,
.ggd-widget-wrap legend{color:rgba(255,255,255,0.72)!important}
.ggd-widget-wrap .ggd-opt-label{color:rgba(255,255,255,0.5)!important}
.ggd-widget-wrap .ggd-upload-hint,
.ggd-widget-wrap .ggd-hint-text,
.ggd-widget-wrap .ggd-slots-label,
.ggd-widget-wrap .ggd-intent-eyebrow{color:rgba(255,255,255,0.55)!important}
.ggd-widget-wrap .ggd-face-lead{color:rgba(255,255,255,0.62)!important}
.ggd-widget-wrap .ggd-success p{color:rgba(255,255,255,0.68)!important}
.ggd-widget-wrap .ggd-pickup-address p{color:rgba(255,255,255,0.75)!important}
.ggd-widget-wrap .ggd-pickup-address span{color:rgba(255,255,255,0.55)!important}
.ggd-widget-wrap .ggd-cal-dow{color:rgba(255,255,255,0.5)!important}
.ggd-widget-wrap .ggd-confirm-note{color:rgba(255,255,255,0.62)!important}
.ggd-widget-wrap .ggd-selected-time-display{color:rgba(255,255,255,0.62)!important}

/* ── 3. Parts face: one primary (Find a Part), one secondary (Diagnose) ──
   After a choice is made, the .ggd-intent-selected/.unselected rules above
   take over (higher #id.class specificity): selected red, the other outline. */
.ggd-widget-wrap #ggd-btn-part{background:#d42b2b!important;border:none!important;color:#fff!important;font-weight:700!important;opacity:1!important}
.ggd-widget-wrap #ggd-btn-part:hover{background:#b82222!important}
.ggd-widget-wrap #ggd-btn-repair{background:transparent!important;border:1.5px solid rgba(255,255,255,0.4)!important;color:rgba(255,255,255,0.85)!important;font-weight:600!important;opacity:1!important}
.ggd-widget-wrap #ggd-btn-repair:hover{background:rgba(255,255,255,0.06)!important;border-color:rgba(255,255,255,0.7)!important;color:#fff!important}

/* ── 4. Progressive photo upload — collapsed until asked for ── */
.ggd-widget-wrap .ggd-photo-toggle{display:inline-flex;align-items:center;gap:7px;background:transparent;border:none;font-family:inherit;cursor:pointer;color:rgba(255,255,255,0.62)!important;font-size:12.5px;font-weight:600;padding:2px 0;text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(255,255,255,0.25)}
.ggd-widget-wrap .ggd-photo-toggle:hover{color:#fff!important;text-decoration-color:rgba(255,255,255,0.5)}
.ggd-widget-wrap .ggd-photo-toggle i{font-size:15px}
.ggd-widget-wrap .ggd-photo-collapse{overflow:hidden;max-height:0;opacity:0;transition:max-height .3s ease,opacity .25s ease}
.ggd-widget-wrap .ggd-photo-collapse.visible{max-height:320px;opacity:1;margin-top:10px}
.ggd-widget-wrap .ggd-reveal.visible{max-height:1400px!important}

/* ── 5. Step progress (two-segment bar per flow) ── */
.ggd-widget-wrap .ggd-progress{display:flex;align-items:center;gap:6px;margin-bottom:14px}
.ggd-widget-wrap .ggd-progress-dot{flex:1;height:5px;border-radius:3px;background:rgba(255,255,255,0.14);transition:background .25s}
.ggd-widget-wrap .ggd-progress-dot.done{background:rgba(255,255,255,0.4)}
.ggd-widget-wrap .ggd-progress-dot.current{background:#d42b2b}

/* ── 6. Slot AM/PM grouping ── */
.ggd-widget-wrap .ggd-slots-subhead{grid-column:1/-1;font-size:10px;font-weight:700;color:rgba(255,255,255,0.5)!important;text-transform:uppercase;letter-spacing:.1em;margin:6px 0 1px}
.ggd-widget-wrap .ggd-slots-subhead:first-child{margin-top:0}

/* ── 7. Keep focus on the active flow — dim the other card ── */
.ggd-widget-wrap .ggd-card{transition:opacity .25s}
.ggd-widget-wrap.ggd-flow-active .ggd-card.ggd-dim{opacity:0.5}
.ggd-widget-wrap.ggd-flow-active .ggd-card.ggd-dim:hover{opacity:1}

/* Respect reduced motion */
@media (prefers-reduced-motion:reduce){
  .ggd-widget-wrap .ggd-reveal,
  .ggd-widget-wrap .ggd-photo-collapse,
  .ggd-widget-wrap .ggd-progress-dot,
  .ggd-widget-wrap .ggd-card{transition:none!important}
}


/* ── v1.2.1: breathing room below two-column rows ──
   .ggd-row2 children are margin-bottom:0 (column alignment), which left the
   *next* field's label flush against the row above it ("What part are you
   looking for?" under Brand/Model; "Mobile" under First/Last name). Restore
   the normal 12px field rhythm after every two-column row. */
.ggd-widget-wrap .ggd-row2{margin-bottom:12px!important}


/* ════════════════════════════════════════════════════════════
   v1.2.2 — Stacked card face + comfier scale.
   The face was a 3-column flex row (icon | text | actions), which forced
   the lead text into a ~200px column and the buttons into a fixed rail:
   it broke at every width and needed breakpoint patches to survive mobile.
   Now it stacks: [icon + title] / lead / actions — each row full width, so
   it reflows on its own and needs no width-specific code.
   Appended last so it wins the cascade over the theme-armor blocks above.
   ──────────────────────────────────────────────────────────── */

/* Face: vertical stack, roomier padding */
.ggd-widget-wrap .ggd-card-face{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  gap:14px!important;
  padding:26px 24px!important;
}

/* Row 1 — icon sits beside the title, vertically centred */
.ggd-widget-wrap .ggd-face-header{
  display:flex!important;
  align-items:center!important;
  gap:14px!important;
  min-width:0!important;
}

/* Bigger icon tile to hold its own against the larger title */
.ggd-widget-wrap .ggd-face-icon{
  width:52px!important;height:52px!important;
  border-radius:12px!important;
  font-size:25px!important;
  flex-shrink:0!important;
}

/* Titles: much larger, tighter tracking */
.ggd-widget-wrap .ggd-face-title{
  font-size:29px!important;
  font-weight:800!important;
  line-height:1.15!important;
  letter-spacing:-0.025em!important;
  margin:0!important;
  color:#fff!important;
  max-width:100%!important;
}

/* Row 2 — lead text, full width of the card, larger and more readable */
.ggd-widget-wrap .ggd-face-lead{
  font-size:16.5px!important;
  line-height:1.5!important;
  color:rgba(255,255,255,0.68)!important;
  margin:0!important;
  max-width:52ch!important;
}

/* Row 3 — actions get the full width and share it evenly */
.ggd-widget-wrap .ggd-face-actions{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:10px!important;
  flex-shrink:1!important;
  margin-top:2px!important;
}
.ggd-widget-wrap .ggd-face-actions > button{
  flex:1 1 auto!important;
  min-width:150px!important;
}

/* Comfier buttons everywhere on the face — bigger hit area, bigger text */
.ggd-widget-wrap .ggd-face-actions .ggd-btn-primary,
.ggd-widget-wrap .ggd-face-actions .ggd-btn-secondary,
.ggd-widget-wrap #ggd-btn-part,
.ggd-widget-wrap #ggd-btn-repair,
.ggd-widget-wrap #ggd-btn-showroom{
  padding:15px 26px!important;
  font-size:16px!important;
  font-weight:700!important;
  border-radius:10px!important;
  line-height:1.1!important;
  letter-spacing:-0.01em!important;
  min-height:52px!important;
}

/* In-form primary/back buttons: same comfier scale, kept proportional */
.ggd-widget-wrap .ggd-step-nav .ggd-btn-primary,
.ggd-widget-wrap .ggd-step-nav button.ggd-btn-primary{
  padding:13px 24px!important;
  font-size:15px!important;
  border-radius:10px!important;
  min-height:48px!important;
  min-width:110px!important;
}
.ggd-widget-wrap .ggd-step-nav .ggd-btn-back{
  padding:12px 18px!important;
  font-size:14px!important;
  border-radius:10px!important;
  min-height:48px!important;
}

/* Success headings scale with the new face titles */
.ggd-widget-wrap .ggd-success h3{
  font-size:21px!important;
  line-height:1.2!important;
}
.ggd-widget-wrap .ggd-success p{font-size:14.5px!important}

/* Single breakpoint left: on genuinely narrow phones the buttons go
   full-width rather than squeezing side by side. That is the only
   width-specific rule the face now needs. */
@media (max-width:420px){
  .ggd-widget-wrap .ggd-card-face{padding:22px 18px!important;gap:12px!important}
  .ggd-widget-wrap .ggd-face-title{font-size:25px!important}
  .ggd-widget-wrap .ggd-face-lead{font-size:15.5px!important}
  .ggd-widget-wrap .ggd-face-actions > button{flex:1 1 100%!important;min-width:0!important}
}


/* ════════════════════════════════════════════════════════════
   v1.2.3 — Heebo throughout + a touch smaller.
   The face titles were already Heebo (inherited from the theme's
   heading rules) while the lead text and every button were DM Sans,
   so each card was quietly mixing two typefaces. Heebo is already
   loaded site-wide by the theme, so the plugin's own DM Sans request
   is dropped rather than replaced — one less render-blocking font.
   ──────────────────────────────────────────────────────────── */

/* Font: one family, and armored so theme button rules can't override it */
.ggd-widget-wrap,
.ggd-widget-wrap button,
.ggd-widget-wrap input,
.ggd-widget-wrap textarea,
.ggd-widget-wrap select,
.ggd-widget-wrap legend,
.ggd-widget-wrap label{
  font-family:'Heebo',-apple-system,BlinkMacSystemFont,sans-serif!important;
}
/* Keep the icon fonts out of it */
.ggd-widget-wrap .ti,
.ggd-widget-wrap [class^="ti-"],
.ggd-widget-wrap [class*=" ti-"]{
  font-family:'tabler-icons'!important;
}

/* Scale: a touch smaller across the face */
.ggd-widget-wrap .ggd-card-face{gap:13px!important;padding:24px 22px!important}
.ggd-widget-wrap .ggd-face-header{gap:13px!important}
.ggd-widget-wrap .ggd-face-icon{
  width:46px!important;height:46px!important;
  border-radius:11px!important;
  font-size:22px!important;
}
.ggd-widget-wrap .ggd-face-title{
  font-size:25px!important;
  font-weight:700!important;
  letter-spacing:-0.02em!important;
}
.ggd-widget-wrap .ggd-face-lead{font-size:15px!important;line-height:1.5!important}

/* Buttons: slightly tighter, still a comfortable target */
.ggd-widget-wrap .ggd-face-actions{gap:9px!important}
.ggd-widget-wrap .ggd-face-actions .ggd-btn-primary,
.ggd-widget-wrap .ggd-face-actions .ggd-btn-secondary,
.ggd-widget-wrap #ggd-btn-part,
.ggd-widget-wrap #ggd-btn-repair,
.ggd-widget-wrap #ggd-btn-showroom{
  padding:13px 22px!important;
  font-size:14.5px!important;
  min-height:47px!important;
}
.ggd-widget-wrap .ggd-step-nav .ggd-btn-primary,
.ggd-widget-wrap .ggd-step-nav button.ggd-btn-primary{
  padding:12px 21px!important;
  font-size:14px!important;
  min-height:45px!important;
}
.ggd-widget-wrap .ggd-step-nav .ggd-btn-back{
  padding:11px 16px!important;
  font-size:13.5px!important;
  min-height:45px!important;
}

/* Success block follows the face down */
.ggd-widget-wrap .ggd-success h3{font-size:19px!important}
.ggd-widget-wrap .ggd-success p{font-size:14px!important}

/* Narrow phones */
@media (max-width:420px){
  .ggd-widget-wrap .ggd-card-face{padding:20px 17px!important;gap:11px!important}
  .ggd-widget-wrap .ggd-face-title{font-size:22.5px!important}
  .ggd-widget-wrap .ggd-face-lead{font-size:14.5px!important}
  .ggd-widget-wrap .ggd-face-icon{width:42px!important;height:42px!important;font-size:20px!important}
}


/* ── v1.2.4: lead copy and button labels up a step ────────────
   The face lead and the button labels were sized down in v1.2.3 and ended up
   quieter than the cards deserve. Both come back up; the buttons grow their
   min-height with the type so the label keeps its breathing room. */

.ggd-widget-wrap .ggd-face-lead{
  font-size:17px!important;
  line-height:1.5!important;
  max-width:54ch!important;
}

.ggd-widget-wrap .ggd-face-actions .ggd-btn-primary,
.ggd-widget-wrap .ggd-face-actions .ggd-btn-secondary,
.ggd-widget-wrap #ggd-btn-part,
.ggd-widget-wrap #ggd-btn-repair,
.ggd-widget-wrap #ggd-btn-showroom{
  font-size:16.5px!important;
  padding:15px 26px!important;
  min-height:53px!important;
  font-weight:700!important;
}

@media (max-width:420px){
  .ggd-widget-wrap .ggd-face-lead{font-size:16px!important}
  .ggd-widget-wrap .ggd-face-actions .ggd-btn-primary,
  .ggd-widget-wrap .ggd-face-actions .ggd-btn-secondary,
  .ggd-widget-wrap #ggd-btn-part,
  .ggd-widget-wrap #ggd-btn-repair,
  .ggd-widget-wrap #ggd-btn-showroom{font-size:16px!important;padding:14px 22px!important}
}


/* ── v1.2.5: face title + lead down ~15% ──────────────────────
   Title 25px -> 21px, lead 17px -> 14.5px. Mobile steps down with them. */

.ggd-widget-wrap .ggd-face-title{
  font-size:21px!important;
  line-height:1.2!important;
}
.ggd-widget-wrap .ggd-face-lead{
  font-size:14.5px!important;
  line-height:1.5!important;
}

@media (max-width:420px){
  .ggd-widget-wrap .ggd-face-title{font-size:19px!important}
  .ggd-widget-wrap .ggd-face-lead{font-size:13.5px!important}
}

/* open="yes": calendar is already showing, so the opener button is redundant */
.ggd-widget-wrap--open #ggd-btn-showroom{display:none}
