.wc-wv-wrap{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}
.wc-wv-btn{appearance:none;border:0;border-radius:7px;padding:12px 16px;font-size:15px;font-weight:600;line-height:1.2;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;cursor:pointer;transition:transform .15s ease,opacity .15s ease}
.wc-wv-btn:hover{transform:translateY(-1px);opacity:.94}
.wc-wv-whatsapp{background:#25D366;color:#fff}
.wc-wv-video{background:#111827;color:#fff}
.wc-wv-icon{font-size:11px;border:1px solid rgba(255,255,255,.45);border-radius:4px;padding:2px 4px}

/* Viewport-safe modal: opening it must not push the product page up/down. */
.wc-wv-modal{display:none;position:fixed;inset:0;z-index:2147483000;padding:12px;box-sizing:border-box;overflow:hidden}
.wc-wv-modal.is-open{display:flex;align-items:center;justify-content:center}
.wc-wv-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.58)}
.wc-wv-dialog{position:relative;z-index:2;isolation:isolate;background:#fff;width:min(96vw,760px);max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain;margin:0;padding:18px 20px 20px;border-radius:12px;box-shadow:0 18px 60px rgba(0,0,0,.26);box-sizing:border-box;scrollbar-gutter:stable}
.wc-wv-close{position:absolute;right:11px;top:7px;border:0;background:transparent;font-size:30px;line-height:1;cursor:pointer;z-index:3;padding:2px 6px}
.wc-wv-dialog h3{margin:0 42px 4px 0;font-size:22px;line-height:1.25}
.wc-wv-product-line{margin:0 0 8px;color:#555;font-size:14px;line-height:1.35}
.wc-wv-variation-line{margin:-2px 0 10px;color:#374151;font-size:13px;line-height:1.35}

/* Compact desktop form so the complete request form fits in a normal laptop viewport. */
.wc-wv-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}
.wc-wv-form [hidden]{display:none!important}
.wc-wv-form label{display:block;min-width:0;font-size:13px;font-weight:600;margin:0;line-height:1.35}
.wc-wv-form label span{font-weight:400;color:#777}
.wc-wv-form input,.wc-wv-form textarea,.wc-wv-form select{width:100%;box-sizing:border-box;margin-top:5px;padding:8px 10px;border:1px solid #d1d5db;border-radius:7px;background:#fff;color:#111827;font:inherit;line-height:1.3}
.wc-wv-form input,.wc-wv-form select{min-height:39px}
.wc-wv-form textarea{min-height:58px;max-height:110px;resize:vertical}

/* Prevent aggressive theme :invalid styling from showing an error border before the customer submits. */
.wc-wv-form input:invalid,.wc-wv-form select:invalid{border-color:#d1d5db!important;box-shadow:none!important;outline:none}
.wc-wv-form input:focus,.wc-wv-form select:focus{border-color:#6b7280!important;box-shadow:0 0 0 1px #6b7280!important;outline:none}
.wc-wv-submit,.wc-wv-status{grid-column:1/-1}
.wc-wv-submit{width:100%;border:0;border-radius:7px;padding:10px 16px;background:#111827;color:#fff;font-weight:700;cursor:pointer;min-height:42px;margin-top:1px}
.wc-wv-submit:disabled{opacity:.6;cursor:wait}
.wc-wv-status{margin-top:0;font-size:13px;line-height:1.4}
.wc-wv-status.is-success{color:#067a38}
.wc-wv-status.is-error{color:#b42318}
.wc-wv-status a{font-weight:700;text-decoration:underline}

/* Keep the underlying page fixed without visible scrollbar/layout jump. JS compensates padding. */
body.wc-wv-modal-open{overflow:hidden}

.wc-wv-hp{position:absolute!important;left:-99999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}

@media(max-width:680px){
  .wc-wv-wrap{display:grid;grid-template-columns:1fr}
  .wc-wv-btn{width:100%}
  .wc-wv-modal{padding:8px}
  .wc-wv-dialog{width:100%;max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px);padding:16px 14px 16px;border-radius:10px}
  .wc-wv-dialog h3{font-size:19px;margin-right:38px}
  .wc-wv-form{grid-template-columns:1fr;gap:9px}
  .wc-wv-submit,.wc-wv-status{grid-column:1}
  .wc-wv-form textarea{min-height:56px}
}

@media(max-height:620px){
  .wc-wv-modal.is-open{align-items:flex-start}
  .wc-wv-dialog{max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px);padding-top:14px;padding-bottom:14px}
  .wc-wv-form{gap:7px 10px}
  .wc-wv-form input,.wc-wv-form select{min-height:36px;padding:7px 9px}
  .wc-wv-form textarea{min-height:48px}
}
