  :root{
    --dark:#191510;
    --dark-2:#221d16;
    --gold:#c8a15b;
    --gold-deep:#a8813f;
    --gold-soft:#e4cd9c;
    --cream:#f7f5f1;
    --card:#eceae5;
    --card-border:#ddd8cd;
    --text-dark:#2b271f;
    --text-muted:#756f63;
    --white:#ffffff;
    --error:#b3452f;
  }

  *{box-sizing:border-box;}
  body{
    margin:0;
    font-family:'Poppins', sans-serif;
    background:
      radial-gradient(circle at 20% 10%, rgba(200,161,91,0.18), transparent 45%),
      radial-gradient(circle at 85% 85%, rgba(200,161,91,0.12), transparent 40%),
      var(--cream);
    color:var(--text-dark);
    padding:48px 16px;
    line-height:1.5;
  }

  .accent{
    font-family:'Playfair Display', serif;
    font-style:italic;
    color:var(--gold);
    font-weight:600;
  }

  .dq-scheduler{
    max-width:660px;
    margin:0 auto;
    background:var(--white);
    border-radius:14px;
    overflow:hidden;
    box-shadow:0 18px 40px rgba(25,21,16,0.12);
  }

  /* ---------- Header ---------- */
  .dq-header{
    position:relative;
    background:
      radial-gradient(circle at 15% 20%, rgba(200,161,91,0.25), transparent 55%),
      linear-gradient(160deg, var(--dark) 0%, var(--dark-2) 100%);
    padding:44px 40px 36px;
    text-align:center;
    color:var(--white);
    overflow:hidden;
  }
  .dq-header::before{
    content:'';
    position:absolute;
    inset:0;
    background:inherit;
    filter:blur(0px);
  }
  .dq-header-glass{
    position:relative;
    z-index:1;
    max-width:460px;
    margin:0 auto;
    padding:26px 30px;
    background:rgba(255,255,255,0.08);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    border:1px solid rgba(255,255,255,0.16);
    border-radius:16px;
    box-shadow:0 8px 28px rgba(0,0,0,0.25);
  }
  .dq-header h2{
    margin:0 0 10px;
    font-size:34px;
    font-weight:700;
    letter-spacing:0.2px;
    line-height:1.15;
  }
  .dq-header p{
    margin:0;
    color:#e4dfd2;
    font-size:14.5px;
    max-width:420px;
    margin:0 auto;
  }

  /* ---------- Step indicator ---------- */
  .dq-steps{
    position:relative;
    z-index:2;
    display:flex;
    align-items:flex-start;
    justify-content:center;
    gap:0;
    background:rgba(255,255,255,0.55);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    margin:-22px 24px 0;
    padding:22px 24px 18px;
    border:1px solid rgba(255,255,255,0.6);
    border-radius:14px;
    box-shadow:0 10px 24px rgba(25,21,16,0.08);
  }
  .dq-step{
    display:flex;
    flex-direction:column;
    align-items:center;
    flex:1;
    position:relative;
    max-width:140px;
  }
  .dq-step-circle{
    width:32px;
    height:32px;
    border-radius:50%;
    border:2px solid #cfc9bb;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:13px;
    font-weight:600;
    color:var(--text-muted);
    background:var(--white);
    transition:all .25s ease;
    z-index:1;
  }
  .dq-step-label{
    margin-top:8px;
    font-size:12px;
    font-weight:500;
    color:var(--text-muted);
    text-align:center;
  }
  .dq-step-line{
    position:absolute;
    top:15px;
    left:calc(-50% + 16px);
    width:calc(100% - 32px);
    height:2px;
    background:#cfc9bb;
    z-index:0;
  }
  .dq-step:first-child .dq-step-line{display:none;}

  .dq-step.active .dq-step-circle{
    background:var(--gold);
    border-color:var(--gold);
    color:var(--white);
  }
  .dq-step.active .dq-step-label{color:var(--text-dark); font-weight:600;}

  .dq-step.done .dq-step-circle{
    background:var(--dark);
    border-color:var(--dark);
    color:var(--gold);
  }
  .dq-step.done .dq-step-line{background:var(--gold);}
  .dq-step.done .dq-step-label{color:var(--text-dark);}

  /* ---------- Body ---------- */
  .dq-body{
    padding:32px 40px 8px;
    min-height:280px;
  }

  .dq-panel{display:none;}
  .dq-panel.active{display:block; animation:dqFade .3s ease;}
  @keyframes dqFade{from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:translateY(0);}}

  .dq-panel h3{
    margin:0 0 4px;
    font-size:18px;
    font-weight:600;
  }
  .dq-panel .dq-sub{
    margin:0 0 22px;
    font-size:13px;
    color:var(--text-muted);
  }

  .dq-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
  }
  .dq-field{margin-bottom:18px;}
  .dq-field label{
    display:block;
    font-size:12.5px;
    font-weight:600;
    margin-bottom:6px;
    color:var(--text-dark);
  }
  .dq-field .req{color:var(--error);}
  .dq-field input,
  .dq-field select,
  .dq-field textarea{
    width:100%;
    padding:11px 14px;
    border:1.5px solid var(--card-border);
    border-radius:8px;
    font-family:inherit;
    font-size:14px;
    color:var(--text-dark);
    background:var(--cream);
    transition:border-color .2s, box-shadow .2s;
  }
  .dq-field textarea{resize:vertical; min-height:90px;}
  .dq-field input:focus,
  .dq-field select:focus,
  .dq-field textarea:focus{
    outline:none;
    border-color:var(--gold);
    box-shadow:0 0 0 3px rgba(200,161,91,0.18);
    background:var(--white);
  }
  .dq-error-text{
    display:none;
    font-size:11.5px;
    color:var(--error);
    margin-top:5px;
  }
  .dq-field.invalid input,
  .dq-field.invalid select,
  .dq-field.invalid textarea{
    border-color:var(--error);
  }
  .dq-field.invalid .dq-error-text{display:block;}

  /* ---------- Date / time ---------- */
  .dq-date-scroller{
    display:flex;
    gap:10px;
    overflow-x:auto;
    padding:4px 2px 14px;
    margin-bottom:6px;
  }
  .dq-date-pill{
    flex:0 0 auto;
    width:64px;
    padding:10px 4px;
    border-radius:10px;
    border:1.5px solid var(--card-border);
    background:var(--cream);
    text-align:center;
    cursor:pointer;
    transition:all .2s;
  }
  .dq-date-pill .dow{
    display:block;
    font-size:11px;
    color:var(--text-muted);
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.4px;
  }
  .dq-date-pill .dom{
    display:block;
    font-size:18px;
    font-weight:700;
    margin-top:3px;
  }
  .dq-date-pill:hover{border-color:var(--gold-soft);}
  .dq-date-pill.selected{
    background:var(--dark);
    border-color:var(--dark);
  }
  .dq-date-pill.selected .dow{color:var(--gold-soft);}
  .dq-date-pill.selected .dom{color:var(--white);}

  .dq-time-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:10px;
    margin-top:6px;
  }
  .dq-time-slot{
    padding:10px 6px;
    text-align:center;
    border-radius:8px;
    border:1.5px solid var(--card-border);
    background:var(--cream);
    font-size:13.5px;
    font-weight:500;
    cursor:pointer;
    transition:all .2s;
  }
  .dq-time-slot:hover{border-color:var(--gold-soft);}
  .dq-time-slot.selected{
    background:var(--gold);
    border-color:var(--gold);
    color:var(--white);
    font-weight:600;
  }
  .dq-time-slot.unavailable{
    opacity:0.4;
    cursor:not-allowed;
    text-decoration:line-through;
  }

  /* ---------- Summary ---------- */
  .dq-summary-card{
    background:var(--card);
    border:1px solid var(--card-border);
    border-radius:10px;
    padding:22px 24px;
  }
  .dq-summary-row{
    display:flex;
    justify-content:space-between;
    gap:16px;
    padding:11px 0;
    border-bottom:1px solid var(--card-border);
    font-size:14px;
  }
  .dq-summary-row:last-child{border-bottom:none;}
  .dq-summary-row .k{color:var(--text-muted); flex:0 0 40%;}
  .dq-summary-row .v{font-weight:600; text-align:right; flex:1;}
  .dq-summary-note{
    margin-top:16px;
    font-size:12.5px;
    color:var(--text-muted);
    text-align:center;
  }

  /* ---------- Footer / buttons ---------- */
  .dq-footer{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:24px 40px 32px;
    gap:12px;
  }
  .dq-btn{
    border:none;
    border-radius:100px;
    padding:13px 28px;
    font-family:inherit;
    font-size:14px;
    font-weight:600;
    cursor:pointer;
    transition:transform .15s, box-shadow .15s, background .2s;
  }
  .dq-btn:active{transform:scale(0.97);}
  .dq-btn-primary{
    background:var(--gold);
    color:var(--white);
    box-shadow:0 8px 18px rgba(200,161,91,0.35);
  }
  .dq-btn-primary:hover{background:var(--gold-deep);}
  .dq-btn-ghost{
    background:transparent;
    color:var(--text-dark);
    border:1.5px solid var(--card-border);
  }
  .dq-btn-ghost:hover{border-color:var(--text-muted);}
  .dq-btn-spacer{visibility:hidden;}

  /* ---------- Success screen ---------- */
  .dq-success{
    display:none;
    text-align:center;
    padding:50px 40px 40px;
  }
  .dq-success.active{display:block;}
  .dq-success-icon{
    width:64px;
    height:64px;
    border-radius:50%;
    background:var(--dark);
    color:var(--gold);
    display:flex;
    align-items:center;
    justify-content:center;
    margin:0 auto 20px;
    font-size:30px;
  }
  .dq-success h3{
    margin:0 0 8px;
    font-size:21px;
  }
  .dq-success p.lead{
    color:var(--text-muted);
    font-size:14px;
    margin:0 0 26px;
  }
  .dq-success .dq-summary-card{
    text-align:left;
    margin-bottom:26px;
  }

  @media (max-width:560px){
    body{padding:0;}
    .dq-scheduler{border-radius:0; box-shadow:none;}
    .dq-header{padding:32px 18px 28px;}
    .dq-header-glass{padding:20px 18px;}
    .dq-header h2{font-size:26px;}
    .dq-steps{margin:-18px 14px 0; padding:18px 10px 14px;}
    .dq-step-label{font-size:10.5px;}
    .dq-body{padding:24px 22px 4px;}
    .dq-row{grid-template-columns:1fr;}
    .dq-time-grid{grid-template-columns:repeat(2, 1fr);}
    .dq-footer{padding:20px 22px 28px;}
    .dq-success{padding:40px 22px 30px;}
  }

.dq-slots-loading{
  grid-column:1 / -1;
  font-size:13px;
  color:var(--text-muted);
  padding:8px 2px;
}

.dq-form-error{
  display:none;
  background:rgba(179,69,47,0.08);
  border:1px solid rgba(179,69,47,0.35);
  color:var(--error);
  font-size:13px;
  padding:10px 14px;
  border-radius:8px;
  margin:0 40px 18px;
}
@media (max-width:560px){
  .dq-form-error{margin:0 22px 16px;}
}
