.vgb-shortcode-form,
.vgb-booking-field{
  --vgb-bg:#eef6fb;
  --vgb-surface:#ffffff;
  --vgb-text:#15253a;
  --vgb-muted:#8392a4;
  --vgb-accent:#34bfd1;
  --vgb-accent-strong:#2b507f;
  --vgb-border:#b8c1cb;
  --vgb-good:#16794c;
  --vgb-good-bg:#eef8f3;
  --vgb-good-border:#9fd1b7;
  --vgb-bad:#b42318;
  --vgb-bad-bg:#fff3f2;
  --vgb-bad-border:#efb4af;
  box-sizing:border-box;
}
.vgb-shortcode-form *, .vgb-booking-field *{box-sizing:border-box}
.vgb-shortcode-form{
  width:100%;
  max-width:620px;
  display:flex;
  flex-direction:column;
  gap:20px;
  padding:24px;
  background:var(--vgb-bg);
  color:var(--vgb-text);
  font:inherit;
}
.vgb-form-intro{text-align:center}
.vgb-form-heading{margin:0 0 6px;font-size:1.35rem;line-height:1.2;color:var(--vgb-text)}
.vgb-form-subheading{margin:0;color:var(--vgb-text);font-size:1rem}
.vgb-resource-title{margin-top:8px;color:var(--vgb-muted);font-size:.92rem}
.vgb-booking-field{width:100%;font:inherit}

.vgb-calendar{width:100%;padding:4px 2px 10px;background:transparent;color:var(--vgb-text)}
.vgb-calendar-head{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;gap:8px;margin-bottom:12px}
.vgb-calendar-month{text-align:center;font-size:1.28rem;line-height:1.2;text-transform:capitalize}
.vgb-calendar-nav{appearance:none;border:0;background:transparent;color:var(--vgb-accent);font-size:2rem;line-height:1;width:42px;height:42px;display:grid;place-items:center;cursor:pointer;padding:0;border-radius:50%}
.vgb-calendar-nav:hover{background:color-mix(in srgb,var(--vgb-accent) 9%,transparent)}
.vgb-calendar-nav:disabled{opacity:.25;cursor:not-allowed}
.vgb-calendar-weekdays,.vgb-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.vgb-calendar-weekdays{margin-bottom:5px;color:var(--vgb-muted);font-size:.76rem;font-weight:700;text-align:center}
.vgb-calendar-weekdays span{padding:6px 2px}
.vgb-calendar-day{appearance:none;border:0;background:transparent;color:var(--vgb-text);font:inherit;min-width:0;aspect-ratio:1.25/1;padding:5px;display:grid;place-items:center;cursor:pointer;border-radius:6px;transition:background .16s ease,color .16s ease,transform .16s ease}
.vgb-calendar-day:not(:disabled):hover{background:rgba(43,80,127,.08);transform:translateY(-1px)}
.vgb-calendar-day.is-outside{color:#b3bcc7}
.vgb-calendar-day:disabled{color:#c9d0d8;cursor:not-allowed;transform:none}
.vgb-calendar-day.is-today{box-shadow:inset 0 0 0 1px rgba(43,80,127,.28)}
.vgb-calendar-day.is-selected{background:var(--vgb-accent-strong);color:#fff;font-weight:700}

.vgb-booking-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}
.vgb-control{display:flex;flex-direction:column;gap:6px}
.vgb-control>span,.vgb-payment-label{font-weight:700;font-size:.9rem;color:var(--vgb-text)}
.vgb-control input,.vgb-control select,.vgb-customer-input{width:100%;min-height:50px;border:1px solid var(--vgb-border);border-radius:3px;background:var(--vgb-surface);color:var(--vgb-text);padding:10px 14px;font:inherit;box-shadow:none;outline:1px solid transparent;outline-offset:-1px;transition:border-color .16s ease,outline-color .16s ease,box-shadow .16s ease}
.vgb-control input:focus,.vgb-control select:focus,.vgb-customer-input:focus{border-color:var(--vgb-accent);outline-color:var(--vgb-accent)}
.vgb-customer-input::placeholder{color:#8793a2;opacity:1}
.vgb-customer-fields{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}
.vgb-customer-fields>.vgb-customer-input{grid-column:1/-1}
.vgb-customer-message{min-height:100px;resize:vertical}
.vgb-payment-wrap{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:4px 0;color:var(--vgb-text);width:100%}
.vgb-payment-label{display:block;line-height:1.35}
.vgb-payment-options{display:flex;flex-direction:column;align-items:flex-start;gap:8px;width:100%}
.vgb-payment-wrap .vgb-payment-option{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:9px!important;margin:0!important;padding:0!important;cursor:pointer;line-height:1.35;width:auto}
.vgb-payment-wrap .vgb-payment-option input[type="radio"]{appearance:auto!important;-webkit-appearance:radio!important;position:static!important;opacity:1!important;visibility:visible!important;display:block!important;width:16px!important;height:16px!important;min-width:16px!important;min-height:16px!important;max-width:16px!important;max-height:16px!important;margin:0!important;padding:0!important;flex:0 0 16px!important;box-shadow:none!important;vertical-align:middle;accent-color:var(--vgb-accent)}
.vgb-payment-wrap .vgb-payment-option span{display:block;margin:0;padding:0;line-height:1.35}

.vgb-quote{margin-top:14px;padding:12px 14px;border:1px solid var(--vgb-border);border-radius:7px;display:flex;justify-content:space-between;gap:12px;align-items:center;background:var(--vgb-surface);color:var(--vgb-text);transition:.2s ease;min-height:50px}
.vgb-booking-field.is-available .vgb-quote{border-color:var(--vgb-good-border);background:var(--vgb-good-bg)}
.vgb-booking-field.is-available .vgb-quote-status,.vgb-booking-field.is-available .vgb-quote-price{color:var(--vgb-good)}
.vgb-booking-field.is-invalid .vgb-quote{border-color:var(--vgb-bad-border);background:var(--vgb-bad-bg)}
.vgb-booking-field.is-invalid .vgb-quote-status{color:var(--vgb-bad)}
.vgb-booking-field.is-loading .vgb-quote{opacity:.72}
.vgb-quote-price{font-size:1.08em;white-space:nowrap;color:inherit}

.vgb-shortcode-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.vgb-submit-button{appearance:none;border:0;border-radius:4px;background:var(--vgb-accent);color:#fff;padding:13px 22px;min-height:46px;width:100%;font:inherit;font-weight:800;text-transform:uppercase;cursor:pointer;transition:filter .2s ease,transform .2s ease,background .2s ease,color .2s ease}
.vgb-submit-button:hover{filter:brightness(.95);transform:translateY(-1px)}
.vgb-submit-button:disabled{opacity:.6;cursor:wait;transform:none}
.vgb-submit-status{font-size:.95em}
.vgb-shortcode-form.is-success .vgb-submit-status{color:var(--vgb-good);font-weight:600}

.vgb-price-summary{display:flex;flex-direction:column;gap:0;color:var(--vgb-text);background:transparent}
.vgb-summary-row{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:8px 0}
.vgb-summary-total{border-top:1px solid rgba(21,37,58,.18);margin-top:2px;padding-top:14px;font-size:1.05rem}
.vgb-summary-resource-price,.vgb-summary-total-price{white-space:nowrap}
.vgb-summary-total-price{font-size:1.08em}

.vgb-field-error{padding:12px 14px;border:1px solid #d63638;background:#fcf0f1;color:#8a2424;border-radius:6px}
.vgb-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

@media(max-width:767px){
  .vgb-shortcode-form{padding:18px;gap:17px}
  .vgb-booking-options{grid-template-columns:1fr}
  .vgb-quote{align-items:flex-start;flex-direction:column}
  .vgb-calendar-head{grid-template-columns:36px 1fr 36px}
  .vgb-calendar-nav{width:36px;height:36px}
  .vgb-calendar-day{aspect-ratio:1/1}
}

/* Two-step booking flow */
.vgb-booking-app{position:relative}
.vgb-stepper{display:grid;grid-template-columns:auto minmax(24px,1fr) auto;align-items:center;gap:12px;margin:2px 0 4px}
.vgb-stepper-item{display:flex;align-items:center;gap:8px;color:var(--vgb-muted);font-size:.88rem;transition:color .2s ease}
.vgb-stepper-item span{width:30px;height:30px;border-radius:999px;border:1px solid var(--vgb-border);display:grid;place-items:center;background:var(--vgb-surface);font-weight:800;transition:.2s ease}
.vgb-stepper-item strong{font-weight:700;white-space:nowrap}
.vgb-stepper-item.is-active,.vgb-stepper-item.is-complete{color:var(--vgb-accent-strong)}
.vgb-stepper-item.is-active span,.vgb-stepper-item.is-complete span{background:var(--vgb-accent-strong);border-color:var(--vgb-accent-strong);color:#fff}
.vgb-stepper-line{height:1px;background:var(--vgb-border)}
.vgb-step-panel{display:none;animation:vgbStepIn .25s ease both}
.vgb-step-panel.is-active{display:block}
.vgb-step-panel[hidden]{display:none!important}
@keyframes vgbStepIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.vgb-step-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:18px}
.vgb-step-actions-next{flex-direction:column;align-items:stretch}
.vgb-next-button,.vgb-submit-button{appearance:none;border:0;border-radius:4px;background:var(--vgb-accent);color:#fff;padding:13px 22px;min-height:46px;font:inherit;font-weight:800;text-transform:uppercase;cursor:pointer;transition:filter .2s ease,transform .2s ease,background .2s ease,color .2s ease}
.vgb-next-button{width:100%}
.vgb-next-button:hover,.vgb-submit-button:hover{filter:brightness(.95);transform:translateY(-1px)}
.vgb-next-button:disabled,.vgb-submit-button:disabled{opacity:.48;cursor:not-allowed;transform:none}
.vgb-back-button{appearance:none;border:1px solid var(--vgb-border);border-radius:4px;background:transparent;color:var(--vgb-text);padding:12px 18px;min-height:46px;font:inherit;font-weight:700;cursor:pointer;transition:.2s ease}
.vgb-back-button:hover{background:rgba(0,0,0,.04)}
.vgb-step-actions-submit .vgb-submit-button{flex:1}
.vgb-selection-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:18px;padding:14px;border:1px solid var(--vgb-border);border-radius:7px;background:var(--vgb-surface)}
.vgb-selection-summary>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.vgb-selection-summary span{font-size:.75rem;color:var(--vgb-muted);text-transform:uppercase;letter-spacing:.04em}
.vgb-selection-summary strong{font-size:.92rem;color:var(--vgb-text);overflow-wrap:anywhere}
.vgb-step-status,.vgb-submit-status{min-height:1.3em;font-size:.92rem}
.vgb-booking-app.has-error .vgb-submit-status,.vgb-booking-app.has-error .vgb-step-status{color:var(--vgb-bad);font-weight:600}
.vgb-booking-app.is-success .vgb-submit-status{color:var(--vgb-good);font-weight:700}

@media(max-width:767px){
  .vgb-stepper-item strong{display:none}
  .vgb-selection-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vgb-step-actions-submit{display:grid;grid-template-columns:auto 1fr}
}

/* Extras, custom fields and privacy */
.vgb-extras-wrap{margin-top:18px}
.vgb-extras-title{font-weight:800;color:var(--vgb-text);margin-bottom:9px}
.vgb-extras-list{display:grid;gap:8px}
.vgb-extra-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid var(--vgb-border);border-radius:7px;padding:11px 12px;background:var(--vgb-surface);cursor:pointer;transition:border-color .18s ease,background .18s ease,transform .18s ease}
.vgb-extra-item:hover{border-color:var(--vgb-accent);transform:translateY(-1px)}
.vgb-extra-item:has(input:checked){border-color:var(--vgb-accent);background:color-mix(in srgb,var(--vgb-accent) 7%,var(--vgb-surface))}
.vgb-extra-item input{margin:0}
.vgb-extra-copy{display:flex;flex-direction:column;gap:2px;min-width:0;color:var(--vgb-text)}
.vgb-extra-copy small{color:var(--vgb-muted);font-size:.8rem}
.vgb-extra-price{font-weight:800;color:var(--vgb-text);white-space:nowrap}
.vgb-extra-price small{font-weight:500;color:var(--vgb-muted)}
.vgb-custom-field{display:flex;flex-direction:column;gap:6px;color:var(--vgb-text);font-weight:600;font-size:.9rem}
.vgb-custom-field .vgb-custom-input{font-weight:400}
.vgb-custom-heading{margin-top:8px;padding-top:12px;border-top:1px solid var(--vgb-border);font-size:1.08rem;font-weight:800;color:var(--vgb-text)}
.vgb-custom-check,.vgb-privacy-consent{display:flex;gap:9px;align-items:flex-start;color:var(--vgb-text);line-height:1.45;cursor:pointer}
.vgb-custom-check input,.vgb-privacy-consent input{margin-top:3px;flex:0 0 auto}
.vgb-privacy-consent{padding:12px 14px;border:1px solid var(--vgb-border);border-radius:7px;background:var(--vgb-surface);font-size:.9rem}
.vgb-privacy-consent a{color:var(--vgb-accent-strong);text-decoration:underline;text-underline-offset:2px}
.vgb-customer-input[type=file]{padding:9px 12px;height:auto}
@media(max-width:767px){.vgb-extra-item{grid-template-columns:auto minmax(0,1fr)}.vgb-extra-price{grid-column:2}}

.vgb-width-100{grid-column:1/-1}
.vgb-width-50{grid-column:span 6}
.vgb-width-33{grid-column:span 4}
.vgb-custom-heading.vgb-width-50,.vgb-custom-heading.vgb-width-33{grid-column:1/-1}
@media(max-width:767px){.vgb-width-50,.vgb-width-33{grid-column:1/-1}}
