 :root{
    --maroon:#630017;
    --maroon-dark:#5d0215;
    --cream:#eee8e1;
    --card:#fbf9f6;
    --ink:#3a2f2a;
    --muted:#8a7a70;
    --rule:#e3d8cb;
    --gold:#c2955a;
    --done:#8a5a35;
  }
  .eyebrow{
    letter-spacing:.18em;
    font-size:.78rem;
    font-weight:600;
    color:var(--gold);
    text-align:center;
  }
  .page-title{
    font-size:3rem;
    color:var(--maroon);
    font-weight:600;
    text-align:center;
  }
  .page-sub{
    text-align:center;
    color:#6b5f57;
    max-width:44ch;
    margin:0 auto;
    font-size:1.02rem;
  }
  .info-row{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:1.5rem;
    color:var(--ink);
    font-size:.95rem;
    flex-wrap:wrap;
  }
  .info-item{ display:flex; align-items:center; gap:.6rem; }
  .info-icon{
    width:42px; height:42px; border-radius:50%;
    background:#f1e2d6; color:var(--gold);
    display:flex; align-items:center; justify-content:center; flex-shrink:0;
  }
  .info-divider{ width:1px; height:34px; background:var(--rule); }

  .wizard-card{
    background:var(--card);
    border:1px solid var(--rule);
    border-radius:.4rem;
    position:relative;
    overflow:hidden;
  }
  .bg-deco{
    position:absolute;
    top:-60px; right:-140px;
    width:360px; height:360px;
    border:1px solid #fbf9f7;
    transform:rotate(45deg);
    z-index:0; pointer-events:none;
  }
  .bg-deco::after{
    content:"";
    position:absolute;
    top:50px; left:50px; right:50px; bottom:50px;
    border:1px solid #fbf9f7; border-radius:50%;
  }
  .wizard-card > .card-inner{ position:relative; z-index:1; }

  /* stepper */
  .stepper{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    position:relative;
    max-width:780px;
    margin:0 auto;
  }
  .stepper::before{
    content:"";
    position:absolute; top:20px; left:20px; right:20px; height:1px;
    background:var(--rule); z-index:0;
  }
  .stepper .rail-done{
    content:"";
    position:absolute; top:20px; left:20px; height:1px;
    background:var(--done); z-index:0;
  }
  .step{
    position:relative; z-index:1;
    display:flex; flex-direction:column; align-items:center; gap:.6rem;
    background:var(--card);
    padding:0 .4rem;
    width:100px;
  }
  .step-circle{
    width:40px; height:40px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    font-weight:600; font-size:.9rem;
    border:1px solid var(--rule); background:var(--card); color:var(--muted);
  }
  .step.active .step-circle{ background:var(--maroon); border-color:var(--maroon); color:#fff; }
  .step.done .step-circle{ background:var(--done); border-color:var(--done); color:#fff; }
  .step-label{ font-size:.82rem; text-align:center; color:var(--muted); line-height:1.3; }
  .step.active .step-label{ color:var(--maroon); font-weight:600; }
  .step.done .step-label{ color:var(--done); font-weight:600; }

  .step-eyebrow{ text-align:center; letter-spacing:.15em; font-size:.75rem; font-weight:600; color:var(--gold); }
  .step-title{ text-align:center; color:var(--maroon); font-size:1.9rem; font-weight:600; }
  .step-sub{ text-align:center; color:#6b5f57; }

  /* radio option rows */
  .option-card{
    border:1px solid var(--rule); border-radius:.35rem; background:#fff;
    padding:1.1rem 1.4rem; display:flex; align-items:center; gap:1rem;
    cursor:pointer; transition:border-color .15s ease, background .15s ease; height:100%;
  }
  .option-card:hover{ border-color:#c9a37f; }
  .option-card input[type="radio"]{ width:20px; height:20px; accent-color:var(--maroon); flex-shrink:0; }
  .option-icon{ width:38px; height:38px; color:var(--gold); flex-shrink:0; display:flex; align-items:center; justify-content:center; }
  .option-title{ font-weight:600; color:var(--ink); margin-bottom:.1rem; }
  .option-desc{ color:var(--muted); font-size:.88rem; }
  .option-card.selected{ border-color:var(--maroon); background:#fdf7f4; }

  /* step3 - center-icon cards */
  .choice-card{
    border:1px solid var(--rule); border-radius:.35rem; background:#fff;
    padding:1.5rem 1.25rem; text-align:center; cursor:pointer; height:100%;
    transition:border-color .15s ease, background .15s ease;
  }
  .choice-card:hover{ border-color:#c9a37f; }
  .choice-card.selected{ border-color:var(--maroon); background:#fdf7f4; }
  .choice-card .choice-icon{
    width:52px; height:52px; margin:0 auto .75rem; border-radius:50%;
    background:#f4e9df; color:var(--gold); display:flex; align-items:center; justify-content:center;
  }
  .choice-card .form-check-input{ accent-color:var(--maroon); margin-bottom:.75rem; }
  .form-check-input:checked {
    background-color: var(--maroon);
    border-color: var(--maroon);
}
  .choice-title{ font-weight:600; margin-bottom:.25rem; }
  .choice-desc{ color:var(--muted); font-size:.85rem; }

  /* step5 - pricing cards */
  .pkg-card{
    border:1px solid var(--rule); border-radius:.4rem; background:#fff;
    padding:1.5rem 1.25rem; height:100%; position:relative; cursor:pointer;
    transition:border-color .15s ease, box-shadow .15s ease;
  }
  .pkg-card:hover{ border-color:#c9a37f; }
  .pkg-card.selected{ border-color:var(--maroon); box-shadow:0 0 0 1px var(--maroon); }
  .pkg-badge{
    position:absolute; top:-12px; left:50%; transform:translateX(-50%);
    background:var(--maroon); color:#fff; font-size:.68rem; font-weight:600;
    letter-spacing:.06em; padding:.25rem .75rem; border-radius:1rem; white-space:nowrap;
  }
  .pkg-icon{ width:34px; height:34px; color:var(--gold); margin-bottom:.75rem; }
  .pkg-name{ font-weight:700; letter-spacing:.03em; margin-bottom:.35rem; }
  .pkg-desc{ color:var(--muted); font-size:.85rem; margin-bottom:.9rem; }
  .pkg-list{ list-style:none; padding:0; margin:0; font-size:.85rem; }
  .pkg-list li{ display:flex; gap:.5rem; padding:.2rem 0; color:var(--ink); }
  .pkg-list li::before{ content:"✓"; color:var(--gold); flex-shrink:0; }

  /* step6 - form */
  .form-label{ font-weight:600; font-size:.88rem; color:var(--ink); }
  .form-control, .form-select{
    border-color:var(--rule); border-radius:.3rem; padding:.65rem .9rem;
  }
  .form-control:focus, .form-select:focus{
    border-color:var(--maroon); box-shadow:0 0 0 .2rem rgba(92,26,38,.12);
  }
  .input-icon-group{ position:relative; }
  .input-icon-group .field-icon{
    position:absolute; left:.85rem; top:50%; transform:translateY(-50%);
    color:var(--gold);
  }
  .input-icon-group input, .input-icon-group textarea{ padding-left:2.4rem; }
  .field-hint{ font-size:.78rem; color:var(--muted); margin-top:.25rem; }
  .privacy-note{ font-size:.82rem; color:var(--muted); display:flex; align-items:center; gap:.4rem; }

  .btn-maroon{
    background:var(--maroon-dark); color:#fff; font-weight:600;
    padding:.75rem 1.75rem; border:none; border-radius:.3rem;
  }
  .btn-maroon:hover{ background:#2c0a10; color:#fff; }
  .btn-outline-maroon{
    background:#fff; color:var(--maroon-dark); font-weight:600;
    padding:.75rem 1.5rem; border:1px solid var(--rule); border-radius:.3rem;
  }
  .btn-outline-maroon:hover{ background:#f4ece5; color:var(--maroon-dark); }

  /* stacked wizard - one step visible on top, others layered behind via z-index */
  .wizard-stack{
    position:relative;
  }
  .wizard-stack .step-section{
    position:relative;
    width:100%;
    transition:opacity .25s ease, transform .25s ease;
  }
  .wizard-stack.js-ready .step-section{
    position:absolute;
    top:0; left:0;
    opacity:0;
    pointer-events:none;
    transform:translateY(12px) scale(.99);
    z-index:1;
  }
  .wizard-stack.js-ready .step-section.is-active{
    position:relative;
    opacity:1;
    pointer-events:auto;
    transform:translateY(0) scale(1);
    z-index:10;
  }

  /* validation state */
  .option-card.is-invalid,
  .choice-card.is-invalid,
  .pkg-card.is-invalid{
    border-color:#b3392f;
  }
  @keyframes shake{
    10%, 90% { transform: translateX(-1px); }
    20%, 80% { transform: translateX(2px); }
    30%, 50%, 70% { transform: translateX(-4px); }
    40%, 60% { transform: translateX(4px); }
  }
  .shake{ animation: shake .4s ease; }
.wpcf7-form  {
	visibility: hidden;
}
.bg-deco {
	display: none !important;
}