
/* BathXpertz Quote Modal — site theme (teal / mint). Variables scoped to the modal. */
.qm-overlay{
  --green:#135454;--olive:#1c6a6a;--olive-2:#1c6a6a;--tan:#70c3b3;--tan-dark:#4f9e8f;
  --ink:#11231f;--grey:#6b7c7a;--cream:#f0fffc;--cream-2:#e3f4f0;--line:#c5e8e2;--white:#fff;
  --shadow:0 24px 60px -28px rgba(19,84,84,.35);
  font-family:"NeueHaas", Arial, Helvetica, sans-serif;
}
.qm-overlay *{box-sizing:border-box;}
.qm h3,.qm h4,.qm-success h3{font-family:"NeueHaas", Arial, Helvetica, sans-serif;}
.qm-rail .logo{font-family:"NeueHaas", Arial, Helvetica, sans-serif;}

  .qm-overlay{position:fixed;inset:0;background:rgba(17,35,31,.55);backdrop-filter:blur(4px);z-index:300;display:none;align-items:center;justify-content:center;padding:20px;opacity:0;transition:.3s}
  .qm-overlay.open{display:flex;opacity:1}
  .qm{background:#fff;width:100%;max-width:880px;border-radius:18px;overflow:hidden;display:grid;grid-template-columns:300px 1fr;box-shadow:0 40px 90px -30px rgba(0,0,0,.6);transform:translateY(18px) scale(.98);transition:.35s;max-height:94vh}
  .qm-overlay.open .qm{transform:none}
  .qm-rail{background:linear-gradient(160deg,#135454,#1c6a6a);color:#fff;padding:34px 28px;display:flex;flex-direction:column}
  .qm-rail .logo{font-family:"NeueHaas", Arial, Helvetica, sans-serif;font-weight:700;font-size:24px;color:#fff;margin-bottom:24px}
  .qm-rail .logo .x{color:var(--tan)}
  .qm-rail h3{color:#fff;font-size:24px;line-height:1.2;margin-bottom:10px}
  .qm-rail p{font-size:14px;color:#d3efe9;font-weight:300}
  .qm-steps{margin-top:auto;display:flex;flex-direction:column;gap:14px;padding-top:28px}
  .qm-steps .s{display:flex;align-items:center;gap:12px;font-size:14px;color:#a9c9c2;transition:.25s}
  .qm-steps .s .dot{width:28px;height:28px;border-radius:50%;border:1.5px solid #4f8f85;display:flex;align-items:center;justify-content:center;font-size:13px;font-family:"NeueHaas", Arial, Helvetica, sans-serif;flex:none}
  .qm-steps .s.active{color:#fff}
  .qm-steps .s.active .dot{background:var(--tan);border-color:var(--tan);color:#fff}
  .qm-steps .s.done .dot{background:#4f8f85;border-color:#4f8f85;color:#fff}
  .qm-rail .assure{margin-top:22px;font-size:12.5px;color:#c2e7e0;border-top:1px solid rgba(255,255,255,.15);padding-top:16px}
  .qm-body{padding:30px 34px;overflow-y:auto;position:relative}
  .qm-close{position:absolute;top:16px;right:18px;background:none !important;border:0;box-shadow:none !important;font-size:30px;line-height:1;color:#6b7c7a;cursor:pointer;z-index:5}
  .qm-close:hover,.qm-close:focus{background:none !important;box-shadow:none !important;color:var(--tan-dark)}
  .qm-prog{height:5px;background:var(--cream-2);border-radius:10px;overflow:hidden;margin-bottom:22px}
  .qm-prog i{display:block;height:100%;width:20%;background:var(--tan);border-radius:10px;transition:.35s}
  .qm-step{display:none;animation:qmfade .3s}
  .qm-step.active{display:block}
  @keyframes qmfade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
  .qm-step h4{font-size:22px;margin-bottom:4px}
  .qm-step .hint{font-size:13.5px;color:var(--grey);margin-bottom:20px}
  .qm-field{margin-bottom:16px}
  .qm-field label{display:block;font-size:13px;font-weight:500;margin-bottom:7px;color:var(--ink)}
  .qm-field label .req{color:#d64545}
  .qm-overlay .qm-field input,
  .qm-overlay .qm-field select{
    width:100% !important;
    max-width:100% !important;
    display:block !important;
    padding:11px 14px !important;
    border:1.5px solid #c5e8e2 !important;
    border-radius:10px !important;
    font-family:inherit !important;
    font-size:14.5px !important;
    line-height:1.3 !important;
    background-color:#f0fffc !important;
    color:#11231f !important;
    box-sizing:border-box !important;
  }
  .qm-overlay .qm-field input:focus,
  .qm-overlay .qm-field select:focus{
    outline:none !important;
    border-color:#1c6a6a !important;
    background-color:#fff !important;
  }
  .qm-overlay .qm-field input.err,
  .qm-overlay .qm-field select.err{
    border-color:#d64545 !important;
    background-color:#fdeeee !important;
  }
  .qm-overlay .qm-select{
    position:relative !important;
    display:block !important;
    width:100% !important;
    max-width:100% !important;
  }
  .qm-overlay .qm-select select{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    min-width:100% !important;
    height:44px !important;
    padding:10px 40px 10px 14px !important;
    border:1.5px solid #c5e8e2 !important;
    border-color:#c5e8e2 !important;
    border-radius:10px !important;
    background-color:#f0fffc !important;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7c7a' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") !important;
    background-repeat:no-repeat !important;
    background-position:right 12px center !important;
    background-size:16px 16px !important;
    appearance:none !important;
    -webkit-appearance:none !important;
    -moz-appearance:none !important;
    cursor:pointer !important;
    color:#11231f !important;
    text-indent:0 !important;
  }
  .qm-overlay .qm-select select::-ms-expand{display:none !important}
  .qm-overlay .qm-select select:focus{
    border-color:#1c6a6a !important;
    background-color:#fff !important;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231c6a6a' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") !important;
    background-repeat:no-repeat !important;
    background-position:right 12px center !important;
    background-size:16px 16px !important;
  }
  .qm-overlay .qm-select select.err{
    border-color:#d64545 !important;
    background-color:#fdeeee !important;
  }
  .qm-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  .qm-chips{display:flex;flex-wrap:wrap;gap:10px}
  .qm-chip{position:relative;cursor:pointer}
  .qm-chip input{position:absolute;opacity:0;inset:0;cursor:pointer}
  .qm-chip span{display:block;padding:11px 16px;border:1.5px solid var(--line);border-radius:40px;font-size:14px;background:#fff;transition:.2s;user-select:none}
  .qm-chip input:checked + span{background:var(--green);color:#fff;border-color:var(--green)}
  .qm-chip:hover span{border-color:var(--olive)}
  .qm-icards{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:12px}
  .qm-icards--2{grid-template-columns:1fr 1fr}
  .qm-icard{position:relative;cursor:pointer}
  .qm-icard input{position:absolute;opacity:0;inset:0;cursor:pointer}
  .qm-icard span{display:flex;flex-direction:column;align-items:center;gap:9px;padding:18px 10px;border:1.5px solid var(--line);border-radius:12px;text-align:center;font-size:13.5px;font-weight:500;background:#fff;transition:.2s;height:100%}
  .qm-icard span svg{width:30px;height:30px;stroke:var(--olive);fill:none;stroke-width:1.6;transition:.2s}
  .qm-icard span small{font-weight:300;font-size:11.5px;color:var(--grey)}
  .qm-icard:hover span{border-color:var(--olive)}
  .qm-icard input:checked + span{border-color:var(--tan);background:var(--cream);box-shadow:0 0 0 2px var(--tan) inset}
  .qm-icard input:checked + span svg{stroke:var(--tan-dark)}

  .qm-err-msg{color:#d64545;font-size:12.5px;margin-top:-8px;margin-bottom:12px;display:none}
  .qm-err-msg.show{display:block}
  .qm-otp-note{font-size:13.5px;color:var(--grey);margin-bottom:14px}
  .qm-otp-note b{color:var(--ink)}
  .qm-edit{color:var(--olive);font-size:12.5px;cursor:pointer;text-decoration:underline;margin-left:6px}
  .qm-otp{display:flex;gap:10px;margin-bottom:6px}
  .qm-otp input{width:56px;height:62px;text-align:center;font-size:24px;font-family:"NeueHaas", Arial, Helvetica, sans-serif;border:1.5px solid var(--line);border-radius:10px;background:var(--cream);padding:0}
  .qm-otp input:focus{outline:none;border-color:var(--olive);background:#fff}
  .qm-resend{font-size:13px;color:var(--grey);margin-top:12px}
  .qm-resend button{background:none;border:0;color:var(--tan-dark);font-weight:600;cursor:pointer;font-family:inherit;font-size:13px;padding:0}
  .qm-resend button:disabled{color:var(--grey);cursor:default;font-weight:400}
  .qm-demo{background:#eefaf7;border:1px dashed var(--tan);color:#2f7d75;font-size:12px;padding:9px 12px;border-radius:8px;margin-top:14px}
  .qm-nav{display:flex;justify-content:space-between;align-items:center;margin-top:24px;gap:12px}
  .qm-btn{display:inline-flex;align-items:center;gap:8px;font-family:"NeueHaas", Arial, Helvetica, sans-serif;font-weight:500;font-size:14px;letter-spacing:.06em;text-transform:uppercase;padding:13px 26px;border-radius:40px;border:1.5px solid transparent;cursor:pointer;transition:.25s}
  .qm-btn.primary{background:var(--tan);color:#fff;margin-left:auto}
  .qm-btn.primary:hover{background:var(--tan-dark)}
  .qm-btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}
  .qm-btn.ghost:hover{border-color:var(--olive)}
  .qm-consent{font-size:11.5px;color:var(--grey);margin-top:14px;text-align:center}
  .qm-success{display:none;text-align:center;padding:30px 10px}
  .qm-success.show{display:block;animation:qmfade .4s}
  .qm-success .tick{width:76px;height:76px;border-radius:50%;background:var(--olive);color:#fff;display:flex;align-items:center;justify-content:center;font-size:38px;margin:0 auto 20px}
  .qm-success h3{font-size:27px;margin-bottom:10px}
  .qm-success p{color:var(--grey);font-size:15px;max-width:380px;margin:0 auto 18px}
  .qm-summary{background:var(--cream);border-radius:12px;padding:18px 20px;text-align:left;max-width:430px;margin:0 auto 22px;font-size:14px}
  .qm-summary div{display:flex;justify-content:space-between;gap:14px;padding:5px 0;border-bottom:1px dashed var(--line)}
  .qm-summary div:last-child{border-bottom:0}
  .qm-summary b{color:var(--ink);font-weight:500}.qm-summary span{color:var(--grey);text-align:right}
  .qm-verified{display:inline-flex;align-items:center;gap:6px;background:#eef8f4;color:#2f7d75;font-size:12px;font-weight:500;padding:5px 12px;border-radius:30px;margin-bottom:14px}
  @media(max-width:760px){
    .qm{grid-template-columns:1fr;max-height:96vh}
    .qm-rail{display:none}
    .qm-row{grid-template-columns:1fr}
    .qm-otp input{width:48px;height:56px;font-size:21px}
    .qm-icards--2{grid-template-columns:1fr}
  }
